OSDN Git Service

* cpphash.c (dump_hash_helper): Take the slot, not the element.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
2
3         * cpphash.c (dump_hash_helper): Take the slot, not the element.
4
5 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
6
7         * flow.c (verify_flow_info): Check for unconditional return.
8
9 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
10
11         * config/ia64/ia64.md (restore_stack_nonlocal): New.
12         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
13         (__ia64_restore_stack_nonlocal): New.
14         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
15
16 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17
18         * cpphash.c (collect_formal_parameters): Do not complain about
19         parameter names that just start with `__VA_ARGS__'.
20
21 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
22
23         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
24         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
25         * i386.c (pentiumpro_cost): Set mul cost to 4.
26         (x86_use_movx): Set for PPro.
27
28 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
29
30         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
31         STACK_BOUNDARY for empty frames now.
32
33 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
34
35         * stor-layout.c (layout_union): Remove.
36         (layout_union_field): New function, split out from layout_union.
37         (finish_union_layout): Likewise.
38         (layout_field): Handle unions by calling layout_union_field.
39         (finish_record_layout): Handle unions.
40         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
41         QUAL_UNION_TYPE handling.
42
43 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
44
45         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
46         end of basic block is jump_insn, not barrier; use create_basic_block
47         instead of creating basic block by hand.
48
49 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
50
51         * flow.c (reorder_basic_blocks): Account for barriers when writing
52         over NEXT_INSN (last_bb->end).
53         (verify_flow_info): Add check for missing barriers.
54
55 2000-03-14  Greg McGary  <gkm@gnu.org>
56
57         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
58         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
59         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
60         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
61         __unbounded, __unbounded__): New keywords.
62         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
63         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
64         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
65
66 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
67
68         * cselib.h: New file.
69         * alias.c: Include "cselib.h".
70         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
71         MEMs as two new arguments.
72         (get_addr): New static function.
73         (find_base_term): Handle VALUEs.
74         (memrefs_conflict_p): Likewise.
75         (true_dependence): Call get_addr on the addresses.
76         Call fixed_scalar_and_varying_struct_p with addresses that have been
77         passed through get_addr and canon_rtx.
78         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
79         with true_dependence.
80         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
81         * loop.c: Include "cselib.h".
82         (load_mems): Process extended basic block that enters the loop with
83         cselib.  Use that information to change initialization of the shadow
84         register so that a constant equivalence is seen by later passes.
85         * reload1.c: Include "cselib.h".
86         (reload_cse_invalidate_regno): Delete function.
87         (reload_cse_mem_conflict_p): Likewise.
88         (reload_cse_invalidate_mem): Likewise.
89         (reload_cse_invalidate_rtx): Likewise.
90         (reload_cse_regno_equal_p): Likewise.
91         (reload_cse_check_clobber): Likewise.
92         (reload_cse_record_set): Likewise.
93         (reg_values): Delete static variable.
94         (invalidate_regno_rtx): Likewise.
95         (reload_cse_delete_noop_set): New static function.
96         (reload_cse_simplify): New static function, broken out of
97         reload_cse_regs_1.
98         (reload_cse_noop_set_p): Delete unused argument INSN.
99         Just call rtx_equal_for_cselib_p on set source and destination.
100         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
101         reload_cse_delete_noop_set.  Delete code to keep track of values; use
102         cselib functions instead.  Delete code to push/pop obstacks.
103         (reload_cse_simplify_set): Use cselib to find equivalent values.
104         Delete code to push/pop obstacks.
105         (reload_cse_simplify_operands): Likewise.
106         * rtl.def (VALUE): New rtx code.
107         * rtl.h (union rtunion_def): New elt rt_cselib.
108         (X0CSELIB, CSELIB_VAL_PTR): New macros.
109         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
110         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
111         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
112         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
113         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
114         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
115         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
116         cselib_record_set, cselib_record_sets): New static functions.
117         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
118         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
119         references_value_p): New functions.
120         (MAX_USELESS_VALUES, REG_VALUES): New macros.
121         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
122         n_useless_values, reg_values, callmem, cselib_obstack,
123         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
124         New static variables.
125         * varray.h (union varray_data_tag): New elt te.
126         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
127         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
128         dependencies.
129
130 2000-03-14  Nick Clifton  <nickc@cygnus.com>
131
132         * gcc.c (do_spec_1): Catch the case where %* is used in a
133         substitution pattern, but it has not been initialised.
134         Issue a meaningful error message if an unrecognised operator
135         is encountered in a spec string.
136
137 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
138
139         * function.c (prepare_function_start): Correctly initialize
140         cfun->stack_alignment_needed.
141
142 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
143
144         * cppfiles.c (find_include_file): Don't assume nshort is a
145         substring of name.
146
147 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
148
149         * configure.in (hppa configurations): Add pa32-regs.h to the
150         list of tm files as appropriate.
151         * configure: Rebuilt.
152         * pa.c (compute_frame_size): Remove explicit knowledge about FP
153         register numbering.
154         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
155         (fmpyaddoperands, fmpysuboperands): Likewise.
156         * pa.h: Remove various definitions which depend on knowing
157         how registers are numbered.
158         * pa32-regs.h: New file with PA32 register numbering specific
159         definitions.
160
161 2000-03-14  Richard Henderson  <rth@cygnus.com>
162
163         * regmove.c (combine_stack_adjustments): New.
164         (stack_memref_p, single_set_for_csa): New.
165         (free_csa_memlist, record_one_stack_memref): New.
166         (try_apply_stack_adjustment): New.
167         (combine_stack_adjustments_for_block): New.
168         * rtl.h (combine_stack_adjustments): Declare.
169         * toplev.c (rest_of_compilation): Call it.
170
171         * i386.md: Revert 2000-01-16 change.
172
173 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
174
175         * gccbug.in: Add web category, gcc specific classes.
176
177 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
178
179         * stor-layout.c (finalize_record_size): Fix typo.
180
181 2000-03-14  Stan Shebs  <shebs@apple.com>
182
183         * c-typeck.c (c_alignof): Error on incomplete types.
184         * extend.texi (Alignment): Document this.
185
186 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
187
188         * cppfiles.c: Include mkdeps.h.
189         (find_include_file, read_include_file): Remove _cpp_ prefix
190         from name, make static.
191         (_cpp_execute_include): New function, broken out of
192         do_include.
193
194         * cpplib.c: Don't include mkdeps.h.
195         (struct directive): Remove type field. Reorder entries.  The
196         function takes only one argument.
197         (struct if_stack): Make type field an int.
198         (directive_table): Rename to dtable.  Generate it, the
199         prototypes of the directive handlers, and the enum for the
200         directive numbers, from a template macro.
201         (do_ifndef, do_include_next, do_import): New functions.
202         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
203         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
204         do_ident, do_assert, do_unassert, do_sccs): Take only one
205         argument.
206         (do_sccs): Define always, but alter behavior based on
207         SCCS_DIRECTIVE.
208         (_cpp_handle_directive, consider_directive_while_skipping):
209         Restructure for new directive table layout.
210
211         (pass_thru_directive): Take a directive number, not a pointer
212         to a struct directive.
213         (parse_include): New function, broken out of do_include.
214         (do_include, do_import, do_include_next): Use parse_include
215         and _cpp_execute_include.
216         (do_elif, do_else): Test for T_ELSE specifically when checking
217         for #elif/#else after #else.
218         (parse_ifdef): New function, broken out of do_ifdef.
219         (validate_else): Expect a name arg without a leading #.
220         (if_directive_name): Delete.
221         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
222         directive handlers with only one argument.
223
224         * cpphash.h: Update prototypes.
225         (enum node_type): Remove entries for directives.
226         * Makefile.in: Update dependencies.
227
228         * cpphash.c (dump_hash_helper): Only dump nodes of type
229         T_MACRO.  Emit a newline after each definition.
230
231 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
232
233         * gccbug.in: New file.
234         * configure.in (all_outputs): Add gccbug.
235         * Makefile.in (install-common): Install gccbug.
236         (GCCBUG_INSTALL_NAME): New variable.
237         * configure: Rebuilt.
238         
239 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
240
241         * function.c (put_var_into_stack): Use type_for_mode to calculate
242         part_type.  Use MEM_SET_IN_STRUCT_P.
243         * expr.c (store_field): Handle CONCAT.
244         (store_constructor): Use fields_length.
245         * tree.c (fields_length): New fn.
246         * tree.h: Declare it.
247
248 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
249
250         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
251         (cpplex.o): New target.
252         * po/POTFILES.in: Add cpplex.c.
253
254         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
255         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
256         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
257         skip_block_comment, skip_line_comment, skip_comment,
258         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
259         _cpp_parse_name, skip_string, parse_string,
260         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
261         _cpp_get_directive_token, find_position,
262         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
263         (maybe_macroexpand, _cpp_lex_token): New functions.
264
265         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
266         parse_goto_mark): Delete.
267         (_cpp_handle_eof): New function.
268         (_cpp_handle_directive): Rename from handle_directive.
269         (_cpp_output_line_command): Rename from output_line_command.
270         (do_if, do_elif): Call _cpp_parse_expr directly.
271         * cppfiles.c (_cpp_read_include_file): Don't call
272         init_input_buffer here.
273         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
274         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
275         here; pop the token_buffer and skip the rest of the line here.
276         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
277         here.
278
279         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
280         Define here.
281         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
282         CPP_GOTO_MARK): New macros.
283         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
284         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
285         _cpp_read_and_prescan, _cpp_init_input_buffer,
286         _cpp_grow_token_buffer, _cpp_get_directive_token,
287         _cpp_handle_directive, _cpp_handle_eof,
288         _cpp_output_line_command): Prototype them here.
289         * cpplib.h (enum cpp_token): Add CPP_MACRO.
290         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
291         quote_string, output_line_command): Remove.
292
293 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
294
295         * stmt.c (expand_end_case): RANGE may be signed, and when checking
296         whether it is too large we must also verify that it isn't negative.
297
298 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
299
300         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
301         (movsi_zero_liveg0): Remove.
302         (movsf_insn_novis_liveg0): Remove.
303         (negsi2): Remove.
304         (negsi2_not_liveg0): Rename to negsi2.
305         (one_cmplsi2): Remove.
306         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
307         (one_cmplsi2_liveg0): Remove.
308         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
309         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
310         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
311         (PREDICATE_CODES): Remove zero_operand.
312         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
313         TARGET_BROKEN_SAVERESTORE.
314         (zero_operand): Remove.
315         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
316         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
317         options.
318         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
319         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
320         TARGET_BROKEN_SAVERESTORE): Remove.
321         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
322         Remove.
323         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
324         Remove.
325         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
326         Remove.
327
328         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
329
330 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
331
332         * cpplib.c (do_pragma_implementation): Fix off-by-one error
333         truncating a string.  Don't assume tokens are nul terminated.
334         Problem noted by Andreas Jaeger <aj@suse.de>
335
336 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
337
338         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
339         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
340         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
341
342 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
343
344         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
345         STRUCTURE_SIZE_BOUNDARY.
346
347 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
348
349         * tree.h (record_layout_info_s): New structure.
350         (record_layout_info): New type.
351         (new_record_layout_info): New function.
352         (layout_field): Likewise.
353         (finish_record_layout): Likewise.
354         * stor-layout.c (layout_record): Remove.
355         (new_record_layout_info): New function.
356         (layout_field): New function, broken out from layout_record.
357         (finalize_record_size): Likewise.
358         (compute_record_mode): Likewise.
359         (finalize_type_size): New function, broken out from layout_type.
360         (finish_record_layout): Likewise.
361         (layout_type): Use them.
362         
363 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
364
365         * cpphash.c: Don't include version.h.
366         (special_symbol) [case T_VERSION]: Look for the string in
367         hp->value.cpval; don't use version_string.
368         * cppinit.c (initialize_builtins): Set hp->value.cpval for
369         __VERSION__ to version_string.
370         * Makefile.in (cpphash.o): Update deps.
371
372 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
373
374         Convert cpplib to use libiberty/hashtab.c.
375
376         * cpplib.h (struct cpp_reader): Make hashtab and
377         all_include_files of type 'struct htab *'.  Delete HASHSIZE
378         and ALL_INCLUDE_HASHSIZE macros.
379
380         * cpphash.h: Update prototypes.
381         (struct hashnode): Remove next, prev, and bucket_hdr members.
382         Make length a size_t.  Add hash member.
383         (struct ihash): Remove next member.  Add hash member.  Make
384         name a flexible array member.
385
386         * cppfiles.c: Include hashtab.h.
387         (include_hash): Delete.
388         (IHASHSIZE): New macro.
389         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
390         (cpp_included): Do the hash lookup here.
391         (_cpp_find_include_file): Rewrite.
392         (cpp_read_file): Put the "fake" hash entry into the hash
393         table.  Honor the control_macro, if it turns out we've seen
394         the file before.  Don't push the buffer here.
395         (_cpp_read_include_file): Push the buffer here.
396         (OMODES): New macro.  Use it whenever we call open(2).
397
398         * cpphash.c: Include hashtab.h.
399         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
400         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
401         _cpp_lookup_slot): New functions.
402         (HASHSIZE): new macro.
403         (hashf, _cpp_install, _cpp_delete_macro): Delete.
404         (_cpp_lookup): Use hashtab.h routines.
405
406         * cppinit.c: Include hashtab.h.
407         (cpp_reader_init): Call _cpp_init_macro_hash and
408         _cpp_init_include_hash.  Don't allocate hashtab directly.
409         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
410         pfile->all_include_files.
411         (initialize_builtins): Use _cpp_make_hashnode and
412         htab_find_slot to add hash entries.
413         (cpp_finish): Just call _cpp_dump_macro_hash.
414         * cpplib.c: Include hashtab.h.
415         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
416         create hash entries.
417         (do_pragma_poison, do_assert): Likewise.
418         (do_include): Don't push the buffer here.  Don't increment
419         system_include_depth unless _cpp_read_include_file succeeds.
420         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
421         or htab_remove_elt.
422         (do_pragma_implementation): Use alloca to create copy.
423
424         * Makefile.in: Update dependencies.
425
426 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
427
428         * cppinit.c (cl_directive_handler): More K&R fixing.
429
430 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
431
432         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
433         STACK_BOUNDARY.
434         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
435
436 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
437
438         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
439         Change from char[] to macros.
440
441 2000-03-12  Neil Booth  <NeilB@earthling.net>
442
443         * cppinit.c (cpp_start_read): Update indirect function
444         call to K&R C.
445
446 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
447
448         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
449         entry.
450
451         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
452         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
453
454 2000-03-11  Neil Booth  <NeilB@earthling.net>
455
456         * cppinit.c (struct pending option): Replace undef with a 
457         pointer to a directive handling routine.
458         (struct cpp_pending): Replace separate assert_ and define_ 
459         lists with one directive_ list.
460         (new_pending_define): Rename new_pending_directive. Extra
461         argument is the directive's handling routine.
462         (handle_option): Update to use new_pending_directive.
463
464 2000-03-11  Neil Booth  <NeilB@earthling.net>
465
466         * cppfiles.c (file_cleanup, _cpp_find_include_file,
467         remap_filename, _cpp_read_include_file, actual_directory,
468         hack_vms_include_specification): Replace bcopy(), index() etc
469         calls.  Add casts to some allocations.  Make some variables
470         pointers to const [unsigned] char.
471         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
472         collect_formal_parameters): Similarly.
473         * cppinit.c (struct pending_option, append_include_chain,
474         cpp_options_init, cpp_reader_init, initialize_standard_includes,
475         cpp_start_read, new_pending_define, handle_option): Similarly.
476         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
477         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
478         do_pragma_implementation, detect_if_not_defined,
479         do_ifdef, skip_if_group, cpp_get_token, parse_string,
480         do_assert, do_unassert): Similarly.
481         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
482         function prototypes.
483         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.   
484
485 2000-03-10  Richard Henderson  <rth@cygnus.com>
486
487         * builtins.c (expand_builtin_strlen): Revert last change.
488         Use emit_insn_before if we're at the beginning of a sequence.
489
490 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
491
492         * builtins.c (expand_builtin_strlen): Make sure that we have something
493         at the beginning of the sequence.
494
495         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
496         deferred inlines.
497
498         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
499
500 2000-03-10  Richard Henderson  <rth@cygnus.com>
501
502         * except.c (can_throw): Use INTVAL on a CONST_INT.
503         (reachable_handlers): Likewise.
504         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
505
506 2000-03-10  Andreas Jaeger  <aj@suse.de>
507
508         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
509         MD_STARTFILE_PREFIX since those are not needed on linux.
510         (ASM_FILE_START): New, from mips/gnu.h.
511
512 2000-03-09  Richard Henderson  <rth@cygnus.com>
513             Alex Samuel  <samuel@codesourcery.com> and others
514         
515         * Makefile.in (ssa.o): New rule.
516         (OBJS): Add ssa.o.
517         (STAGESTUFF): Add *.ssa and *.ussa.
518         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
519         * rtl.def (PHI): New RTL expression.
520         * rtl.h (clear_log_links): New declaration.
521         (convert_to_ssa): Likewise.
522         (convert_from_ssa): Likewise.
523         * flow.c (split_edge): If the entry node falls through to the
524         split edge's source block, split the entry edge.
525         (clear_log_links): New function.
526         * toplev.c (ssa_dump): New variable.
527         (flag_ssa): Likewise.
528         (f_options): Add "ssa".
529         (compile_file): Create SSA dump files.
530         (rest_of_compilation): Go to and from SSA if enabled.
531         (decide_d_option): Handle -de for SSA dump files.
532         * ssa.c: New file.
533         
534 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
535
536         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
537         same as VAR_DECL.
538
539 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
540
541         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
542
543 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
544
545         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
546         (MD_STARTFILE_PREFIX_1): New macro.
547
548 2000-03-09  Robert Lipe  <robertl@sco.com>
549
550         * config/ia64/ia64.c: Include system.h.
551
552 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
553
554         * except.c (nothrow_function_p): If -fno-exceptions, just return.
555         (init_eh_nesting_info): Likewise.
556
557         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
558         (TREE_NOTHROW): Rename from TREE_RAISES.
559         * toplev.c (rest_of_compilation): Set it.
560         * print-tree.c (print_node): Adjust.
561         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
562         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
563         * calls.c (emit_call_1): Add 'nothrow' parm.  Add 
564         REG_EH_REGION note as appropriate.
565         (libfunc_nothrow): New fn.
566         (emit_library_call, emit_library_call_value): Use it.
567         (expand_call): Check TREE_NOTHROW.
568
569         * varasm.c (make_decl_rtl): Skip initial '*' when setting
570         DECL_ASSEMBLER_NAME.
571
572 2000-03-09  Andreas Jaeger  <aj@suse.de>
573
574         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
575         (TARGET_MEM_FUNCTIONS): Define.
576
577 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
578
579         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
580
581         * except.c (can_throw): See through a SEQUENCE.
582         (nothrow_function_p): New fn.
583         * except.h: Declare it.
584         * function.c (current_function_nothrow): New var.
585         (prepare_function_start): Initialize it.
586         * output.h: Declare it.
587         * toplev.c (rest_of_compilation): Set it.
588         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
589
590 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
591
592         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
593         match.  (cpp_compare_defs): Count the nul separator when
594         advancing over argument names.
595
596 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
597
598         * recog.c (preprocess_constraints): Matching constraints affect
599         same alternative/different operand, not same operand/different
600         alternative.
601         
602         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
603         register and a constant specially.
604
605 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
606
607         * libgcc2.h: New file.
608         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
609
610 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
611
612         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
613         * configure: Regenerate.
614         * config/ia64: New.
615
616 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
617
618         * Makefile.in (LIBCPP_DEPS): New macro.
619         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
620         it to declare deps.
621         * cpperror.c: Include cpphash.h.
622         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
623         dingleberry.
624         (lex): Don't use CPP_WARN_UNDEF.
625         (_cpp_parse_expr): Return an int, the truth value.
626         * cppfiles.c: Include cpphash.h.
627         (_cpp_merge_include_chains): Move to cppinit.c and make static.
628         * cppinit.c (include_defaults_array): Disentangle.
629         (cpp_cleanup): Don't free the if stack here.
630         (cpp_finish): Pop off all buffers, not just one.
631         * cpplib.c (eval_if_expr): Return int.
632         (do_xifdef): Rename do_ifdef.
633         (handle_directive): Don't use CPP_PREPROCESSED. 
634         (cpp_get_token): Don't use CPP_C89.
635         * fix-header.c: Don't use CPP_OPTIONS.
636
637         * cpplib.h: Move U_CHAR, enum node_type, struct
638         file_name_list, struct ihash, is_idchar, is_idstart,
639         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
640         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
641         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
642         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
643         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
644         of _cpp_simplify_pathname, _cpp_find_include_file,
645         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
646         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
647         cppinit.c.
648         Change all uses of U_CHAR to be unsigned char instead.
649         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
650
651 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
652
653         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
654         (dwarf2out_begin_prologue): Set it.
655         (output_call_frame_info): Don't emit EH unwind info for leaves.
656
657         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
658         can occur outside of an EH region.
659         * except.c: Correct comments about rethrow behavior.
660         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
661
662 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
663
664         * flow.c (make_edges): Always call make_eh_edge for calls.
665
666 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
667
668         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
669         (struct cpp_buffer): Remove fname and underflow fields.
670         (struct cpp_reader): Remove get_token field.
671         (struct include_hash): Rename to struct ihash.  Add typedef to
672         IHASH.
673         (struct if_stack): Remove fname field.
674         (IF_STACK_FRAME): Rename to IF_STACK.
675
676         * cpperror.c (print_containing_files): Trust that there are no
677         macro buffers below the top file buffer.
678         * cppfiles.c: Replace all references to 'struct include_hash'
679         with 'IHASH'.  Rename initialize_input_buffer to
680         init_input_buffer.  Don't set or reference cpp_buffer->fname,
681         use buffer->ihash->name instead.
682         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
683         not CPP_NULL_BUFFER.
684         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
685         IF_STACK_FRAME, IHASH not struct include_hash.
686         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
687         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
688         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
689         references to cpp_buffer->fname (delete entirely, or use
690         ->ihash->name instead) and IF_STACK->fname.
691         (cpp_push_buffer): Don't set new->underflow.
692         (do_include): Use cpp_file_buffer.
693
694         * cpphash.c (collect_formal_parameters): Remove duplicate
695         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
696         used as a macro argument name.  Don't append "..." to namebuf
697         for varargs macros.  After we're done scanning, go through
698         namebuf and make it NUL separated, not comma separated.
699         (_cpp_compare_defs): Remove register tag from variables.
700         Expect defn->argnames to be NUL separated.
701         (_cpp_dump_definition): Expect defn->argnames to be NUL
702         separated and in forward order.
703         * cpphash.h: Update documentation of argnames field.
704
705 2000-03-08  Richard Henderson  <rth@cygnus.com>
706
707         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
708         to fail.  Don't pre-expand the source operand.
709
710         * i386.md (strlensi): Initialize eoschar and align before use.
711
712 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
713
714         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
715         CONSTRUCTOR element.
716
717 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
718
719         * mips.c (mips_expand_prologue): If the last 
720         named argument is the vararg marker "va_list", treat it as
721         an unnamed argument.
722
723 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
724
725         * dbxout.c (dbxout_parms): When correcting for promoted 
726         big-endian parameters, use the mode of the DECL_RTL rather 
727         than UNITS_PER_WORD.
728
729 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
730
731         * c-common.h (make_fname_decl): Declare.
732         * c-common.c (make_fname_decl): Define.
733         (declare_hidden_char_array): Remove.
734         (declare_function_name): Use make_fname_decl.
735         * c-decl.c (c_make_fname_decl): New function.
736         (init_decl_processing): Set make_fname_decl.
737
738 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
739
740         * cccp.c (handle_directive): Initialize backslash_newlines_p.
741
742 2000-03-07  Philipp Thomas  <pthomas@suse.de>
743
744         * po/POTFILES.in: Remove cppalloc.c from file list.
745
746 2000-03-07  Steve Chamberlain  <sac@pobox.com>
747
748         * pj.c (pj_expand_prologue): current_function->args_info is
749         now current_function_args_info.  
750
751         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
752         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
753         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
754
755 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
756
757         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
758         output as hexadecimal rather than the default octal.
759
760 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
761
762         * cpphash.c (special_symbol): Fix thinko in previous commit.
763
764 2000-03-07  Neil Booth  <NeilB@earthling.net>
765
766         * cppexp.c (struct operation, left_shift, right_shift,
767         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
768         "int"s to "unsigned int"s.
769         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
770         Similarly.
771         * cpplib.h: Update for above.
772         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
773         returned from allocations.
774
775         * cppinit.c (opt_comp, parse_options): New functions.
776         (handle_option): Use parse_option to parse a single command
777         line option, that possibly takes an argument.
778         (cpp_handle_options): Sort the array of command line options on
779         first invocation (non-ASCII hosts only).
780         (print_help): Update.
781
782 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
783
784         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
785         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
786         
787         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
788         initialized.
789         * cppinit.c (cpp_cleanup): Free imp->nshort also.
790
791         * cpperror.c (cpp_print_containing_files,
792         cpp_print_file_and_line, v_cpp_message): Rename to
793         print_containing_files, print_file_and_line, and v_message.
794         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
795         to _cpp_parse_expr, parse_escape, and lex.
796         (parse_charconst): Remove broken multibyte support.
797         * cppfiles.c (include_hash): Make static.
798         (cpp_included): New function.
799         (merge_include_chains, find_include_file, finclude,
800         simplify_pathname): Rename to _cpp_merge_include_chains,
801         _cpp_find_include_file, _cpp_read_include_file, and
802         _cpp_simplify_pathname.
803         * cpphash.c (cpp_lookup, free_definition, delete_macro,
804         cpp_install, create_definition, macroexpand, compare_defs,
805         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
806         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
807         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
808         * cppinit.c (cpp_handle_option): Rename to handle_option, make
809         static.
810         * cpplib.c: Remove extern prototype of cpp_parse_expr.
811
812         * cpphash.h: Update prototypes.
813         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
814
815 2000-03-07  Andrew Haley  <aph@cygnus.com>
816
817         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
818         PTRDIFF_TYPE should be based solely on Pmode.
819         (SIZE_TYPE): ditto.
820
821 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
822
823         * rtl.h (rtunion_def): Constify member `rtstr'.
824         (emit_line_note_after, emit_line_note, emit_line_note_force,
825         emit_note, decode_asm_operands): Constify.
826         
827         * cse.c (canon_hash): Likewise.
828
829         * dbxout.c (dbxout_block): Likewise.
830
831         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
832         v_warning_for_asm): Likewise.
833
834         * dwarfout.c (function_start_label): Likewise.
835
836         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
837         emit_line_note_force): Likewise.
838
839         * final.c (last_filename, asm_insn_count, final_scan_insn,
840         output_source_line): Likewise.
841
842         * function.h (struct emit_status): Likewise.
843
844         * gcse.c (hash_expr_1): Likewise.
845
846         * genattr.c (gen_attr, main): Likewise.
847
848         * genattrtab.c (struct function_unit, current_alternative_string,
849         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
850         attr_numeral, check_attr_test, check_attr_value,
851         convert_set_attr_alternative, convert_set_attr,
852         compute_alternative_mask, simplify_by_exploding, gen_attr,
853         gen_unit): Likewise.
854
855         * genflags.c (gen_insn): Likewise.
856
857         * gengenrtl.c (type_from_format): Likewise.
858
859         * genopinit.c (gen_insn): Likewise.
860
861         * genoutput.c (n_occurrences, process_template, process_template):
862         Likewise.
863
864         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
865         Likewise.
866
867         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
868         Likewise.
869
870         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
871         ggc_set_mark, ggc_get_size): Likewise.
872
873         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
874
875         * optabs.c (init_one_libfunc): Likewise.
876
877         * output.h (assemble_start_function): Likewise.
878
879         * recog.c (decode_asm_operands): Likewise.
880
881         * toplev.c (rest_of_compilation): Likewise.
882
883         * tree.h (emit_line_note_after, emit_line_note,
884         emit_line_note_force): Likewise.
885
886         * varasm.c (asm_output_bss, asm_output_aligned_bss,
887         asm_emit_uninitialised, assemble_start_function,
888         assemble_variable, const_hash, compare_constant_1,
889         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
890
891         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
892
893         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
894
895         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
896
897         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
898
899         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
900         arm_dllimport_name_p): Likewise.
901
902         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
903         Likewise.
904
905         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
906
907         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
908
909         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
910         arm_mark_dllexport, arm_mark_dllimport,
911         arm_pe_encode_section_info): Likewise.
912
913         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
914         ASM_FINISH_DECLARE_OBJECT): Likewise.
915
916         * arm/thumb.c (thumb_function_prologue): Likewise.
917
918         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
919
920         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
921
922         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
923
924         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
925
926         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
927
928         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
929
930         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
931         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
932
933         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
934
935         * i386/i386.c (asm_output_function_prefix): Likewise.
936
937         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
938
939         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
940
941         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
942
943         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
944         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
945         ASM_OUTPUT_SECTION_NAME): Likewise.
946
947         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
948
949         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
950
951         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
952
953         * m32r/m32r.c (m32r_encode_section_info): Likewise.
954
955         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
956
957         * mcore/mcore.c (mcore_encode_section_info): Likewise.
958
959         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
960
961         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
962
963         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
964
965         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
966
967         * mips/mips.md (movdi, movsi): Likewise.
968
969         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
970
971         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
972
973         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
974
975         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
976         ASM_OUTPUT_ASCII): Likewise.
977
978         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
979         output_mi_thunk, output_toc): Likewise.
980
981         * rs6000/rs6000.md (movsi): Likewise.
982
983         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
984
985         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
986
987         * v850/v850.c (print_operand, print_operand_address,
988         v850_encode_data_area): Likewise.
989
990 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
991         
992         * config/mips/mips.md (zero_extendsidi2): Always force operand
993         one to memory for mips16.
994
995 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
996
997         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
998         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
999         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
1000         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
1001         (min_precision): Result is unsigned.
1002         (add_double, neg_double, mul_double): Low word is unsigned.
1003         (lshift_double, rshift_double, lrotate_double): Likewise.
1004         (rrotate_double, div_and_round_double): Likewise.
1005         (tree_floor_log2, compare_tree_int): New functions.
1006         (preserve_rtl_expr_temps): New declaration.
1007         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
1008         (decl_attributes): Use tree_log2 to find alignment.
1009         Check for TREE_INT_CST_HIGH for format args.
1010         (min_precision): Now unsigned.
1011         Use tree_floor_log2.
1012         (truthvalue_conversion): Delete long-disabled code.
1013         * c-decl.c (finish_struct): Clean up tests on field width.
1014         (finish_function): Use compare_tree_int.
1015         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
1016         * c-typeck.c (comptypes): Use tree_int_cst_equal.
1017         (default_conversion, digest_init): Use compare_tree_int.
1018         (build_binary_op): Use integer_all_onesp and compare_tree_int.
1019         Fix type errors in forming masks.
1020         * calls.c (initialize_argument_information): Use compare_tree_int.
1021         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
1022         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
1023         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
1024         (store_field): Use compare_tree_int.
1025         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
1026         (expand_expr, case ARRAY_REF): Use compare_tree_int.
1027         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
1028         (do_store_flag): Use compare_tree_int.
1029         * fold-const.c (encode, decode): Low part is always unsigned.
1030         (force_fit_type, add_double, neg_double, mul_double): Likewise.
1031         (lshift_double, rshift_double, lrotate_double): Likewise.
1032         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
1033         (fold_convert): Use compare_tree_int.
1034         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
1035         (invert_truthvalue, case INTEGER_CST): Likewise.
1036         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
1037         * mkdeps.c (deps_dummy_targets): Make I unsigned.
1038         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
1039         (lshift_double, rshift_double, lrotate_double, rrotate_double):
1040         Likewise.
1041         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
1042         (expand_end_case): Use compare_tree_int.
1043         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
1044         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
1045         (layout_decl): Likewise.
1046         (layout_record, layout_union): Make sizes unsigned.
1047         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
1048         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
1049         * tree.c (struct type_hash): hashcode is unsigned.
1050         (build_type_attribute_variant, type_hash_list): Likewise.
1051         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
1052         (attribute_hash_list, build_array_type, build_method_type): Likewise.
1053         (build_complex_type): Likewise.
1054         (real_value_from_int_cst): Remove unneeded casts.
1055         (integer_all_onesp): Add casts.
1056         (tree_floor_log2, compare_tree_int): New functions.
1057         (build_index_type): Use tree_int_cst_sgn.
1058         * varasm.c (assemble_variable): Use compare_tree_int.
1059
1060 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
1061
1062         * cpphash.c (collect_expansion): Also catch ## at start of macro.
1063
1064         * varasm.c (make_decl_rtl): Don't add a number to members of
1065         local classes.
1066         (make_function_rtl): Likewise.
1067
1068 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1069
1070         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
1071         patch from 2000-01-28.
1072
1073 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
1074
1075         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
1076         filled with an insn from the jump target.
1077
1078 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1079
1080         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
1081         (c4x_external_ref): Likewise.
1082         * config/c4x/c4x.c (struct name_list): Likewise.
1083
1084 1999-12-16  Ben Collins  <bcollins@debian.org>
1085
1086         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
1087         argument to genmultilib.
1088         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
1089         the contents into the multilib.h header.
1090         * gcc.c: Declare multilib_exclusions for the specs file.
1091         (set_multilib_dir): Use it.
1092         (print_multilib_info): Likewise.
1093         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
1094         to pass to genmultilib.
1095
1096 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1097
1098         * builtins.c (built_in_class_names, built_in_names): Constify a
1099         char*.
1100
1101         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
1102         int.
1103         (_mcleanup): Ensure value matches format specifier in sprintf.
1104
1105         * cpphash.c (special_symbol): Don't needlessly cast away
1106         const-ness.
1107
1108         * cppinit.c (base_name): Delete unused prototype.
1109
1110         * mkdeps.c (deps_init): Make definition K&R safe.
1111
1112         * tree.h (built_in_class_names, built_in_names): Constify a
1113         char*.
1114
1115 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
1116
1117         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
1118         floating point instructions for epilogue delay.
1119
1120         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
1121         to gas if it supports .register pseudo.
1122
1123         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
1124         LONG_DOUBLE_TYPE_SIZE if not defined.
1125         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
1126         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
1127         * real.c: Likewise.
1128         * gengenrtl.c: Likewise.
1129         * print-rtl.c: Likewise.
1130         * rtl.c: Likewise.
1131         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
1132         MASK_LONG_DOUBLE_128.
1133         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
1134         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
1135         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
1136         (SUBTARGET_SWITCHES): Define.
1137         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
1138         with -mlong-double-128.
1139         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
1140         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
1141         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
1142         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
1143         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
1144         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
1145         with -mlong-double-128.
1146         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
1147         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
1148         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
1149         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
1150         TARGET_LONG_DOUBLE_128): Define.
1151         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
1152         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
1153         long double on TARGET_ARCH64.
1154
1155 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
1156
1157         * function.c (free_temps_for_rtl_expr): Don't free slots
1158         that have been pushed into a higher level.
1159         
1160         Revert this patch:
1161         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
1162
1163 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
1164
1165         * basic-block.h (ALLOCA_REG_SET): Remove.
1166         (INITIALIZE_REG_SET): New macro.
1167         * flow.c (update_life_info): Use it.
1168         (calculate_global_regs_live): Likewise.
1169         (propagate_block): Likewise.
1170         * global.c (build_insn_chain): Likewise.
1171         * haifa-sched.c (schedule_region): Likewise.
1172
1173 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
1174
1175         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
1176         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
1177         (DWARF_ARANGES_PAD_SIZE): New define.
1178         (output_aranges): Use it to pad the address range header.
1179         (DWARF_ROUND): Fix for non power of 2 rounding.
1180
1181 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
1182
1183         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
1184
1185 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
1186
1187         * tree.def (RTL_EXPR): Update documentation.
1188         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
1189         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
1190         * function.c (preserve_rtl_expr_temp): New function.
1191         (preserve_rtl_expr_temps): Likewise.
1192         (preserve_rtl_expr_result): Use it.
1193
1194         Revert this patch:
1195         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
1196
1197 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
1198
1199         * regmove.c (copy_src_to_dest)  Do not create src->dest move
1200         for unchanging destination.
1201
1202 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
1203
1204         * function.h (struct sequence_stack): Remove rtl_expr.
1205         (struct emit_staus): Likewise.
1206         (seq_rtl_expr): Remove.
1207         * tree.h (free_temps_for_rtl_expr): Don't declare.
1208         (start_sequence_for_rtl_expr): Likewise.
1209         * rtl.h (preserve_rtl_expr_result): Likewise.
1210         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
1211         (start_sequence_for_rtl_expr): Remove.
1212         (push_topmost_sequence): Don't save sequence_rtl_expr.
1213         (pop_topmost_sequence): Remove comment about not restoring it.
1214         (end_sequence): Don't set seq_rtl_expr.
1215         (init_emit): Don't initialize it.
1216         (mark_sequence_stack): Don't mark it.
1217         (mark_emit_status): Likewise.
1218         * except.c (protect_with_terminate): Use
1219         start_sequence_for_rtl_expr, not start_sequence.
1220         * expr.c (expand_expr, case RTL_EXPR): Don't call
1221         preserve_rtl_expr_result or free_temps_for_rtl_expr.
1222         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
1223         (preserve_rtl_expr_result): Remove.
1224         (free_temps_for_rtl_expr): Likewise.
1225         (pop_temp_slots): Likewise.
1226         (mark_temp_slot): Don't mark the rtl_expr.
1227         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
1228         start_sequence_for_rtl_expr.
1229         
1230 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
1231
1232         * mkdeps.c, mkdeps.h: New files.
1233         * po/POTFILES.in: Add them.
1234         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
1235         (cpplib.o, cppinit.o): Depend on mkdeps.h.
1236         (mkdeps.o): New target.
1237
1238         * cppfiles.c: Delete deps_output.
1239         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
1240         OBJECT_SUFFIX, and base_name.
1241         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
1242         the include hash.
1243         (initialize_dependency_output): Use deps_init,
1244         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
1245         all the unnecessary string bashing.
1246         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
1247         level.
1248         * cpplib.c (do_include): Use deps_add_dep.
1249         * cpplib.h (struct cpp_reader): Replace deps_buffer,
1250         deps_allocated_size, deps_size, deps_column members with
1251         single pointer to a struct deps.  Delete prototype of
1252         deps_output.
1253
1254         * cppinit.c: Fix thinko in previous patch.
1255
1256 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1257
1258         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
1259         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
1260         (mode_for_size_tree): New function.
1261         (layout_decl, layout_type): Call it and clean up BLKmode checks.
1262         * tree.h (mode_for_size_tree): New declaration.
1263         
1264         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
1265
1266 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
1267
1268         * stmt.c (is_body_block): Move...
1269         * dwarfout.c, dwarf2out.c: ...from here.
1270         * tree.h: Declare it.
1271         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
1272         * final.c (final_start_function): Do call remove_unnecessary_notes
1273         when scheduling.
1274
1275 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
1276
1277         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
1278         
1279         * cpplib.h (_dollar_ok): New macro.
1280         (is_idchar, is_idstart): Use it.
1281         (IStable): Rename to _cpp_IStable.  Declare it const if
1282         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
1283         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
1284         is_space): Update for renamed IStable.
1285
1286         * cppinit.c: Delete all references to FAKE_CONST and CAT
1287         macros. Define init_IStable as empty macro if gcc >=2.7 or
1288         C99. Change TABLE() to ISTABLE and hardcode name of table.
1289         (cpp_start_read): Don't change the IStable based on
1290         dollars_in_ident.
1291
1292         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
1293         changed.  Handle '$' for char1 correctly.
1294         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
1295
1296         * cppexp.c (tokentab2): Make const.
1297         (cpp_lex): Make toktab const.
1298         * cppinit.c (include_defaults_array): Make const.
1299         (initialize_standard_includes): Make default_include const.
1300
1301 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
1302
1303         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
1304         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
1305         (gen_decl_die): Likewise.
1306         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
1307         (output_decl): Likewise.
1308
1309         * varasm.c (make_function_rtl): If we change the name used in the
1310         rtl, update DECL_ASSEMBLER_NAME accordingly.
1311         (make_decl_rtl): Likewise.
1312
1313         * toplev.c (rest_of_compilation): Tweak formatting.
1314
1315         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
1316         remove_unnecessary_notes.
1317         (debug_ignore_block): New fn.
1318         * toplev.h: Declare it.
1319         * emit-rtl.c (remove_unncessary_notes): Call it.
1320         * dwarf2out.c (dwarf2out_ignore_block): New fn.
1321         * dwarf2out.h: Declare it.
1322         * final.c (final_start_function): Don't call remove_unnecessary_notes
1323         if we did insn scheduling.
1324
1325 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
1326
1327         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
1328         * cpplib.h: Delete SET_CPP_PEDANTIC.
1329
1330 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1331
1332         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
1333         result is a RECORD_TYPE.
1334
1335 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
1336
1337         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
1338
1339 2000-03-03  Richard Henderson  <rth@cygnus.com>
1340
1341         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
1342         addition over compliments over shifts.
1343
1344 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1345
1346         * reload1.c (reload_combine_note_use): Handle return register USEs.
1347         REG case: Handle multi-hard-register hard regs.
1348
1349 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1350
1351         * md.texi: Document use of '*' in insn pattern name.
1352
1353 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
1354
1355         * calls.c (special_function_p): operator new may not be malloc-like.
1356
1357         * gcse.c (dump_hash_table): Really fix error in last change.
1358
1359 2000-03-02  Denis Chertykov  <denisc@overta.ru>
1360
1361         * avr.c (print_operand): Use print_operand_address instead of
1362         output_addr_const.
1363         * avr/libgcc.S: Cleanup code.
1364
1365 2000-03-02  Richard Henderson  <rth@cygnus.com>
1366
1367         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
1368
1369 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
1370
1371         * tree.h (TYPE_ALIGN_UNIT): New macro.
1372
1373 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
1374
1375         * i386.c: (constant_call_address_operand): Reject CONST_INT.
1376
1377 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
1378
1379         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
1380         for the buffer.
1381         (SET_CPP_PEDANTIC): New macro.
1382         * cpplib.c (do_include): Don't bother checking system_header_p.
1383         (do_warning, do_ident, do_assert, do_unassert): Likewise.
1384         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
1385
1386         * function.h (struct expr_status): Add x_arg_space_so_far.
1387         (arg_space_so_far): New macro.
1388         * expr.c (init_expr): Initialize it.
1389         * calls.c (emit_call_1): Reset it.
1390         (compute_argument_block_size, expand_call): Use it.
1391         (expand_call, store_one_arg): Increment it.
1392
1393 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1394
1395         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
1396         a UNION_TYPE.
1397
1398 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
1399
1400         * cppfiles.c (cpp_read_file): New function.
1401
1402         * cpphash.c (collect_expansion): Make sure to reset last_token
1403         to NORM when we hit a string.  Handle trailing whitespace
1404         properly when the expansion is empty.
1405         (create_definition): Disable line commands while parsing the
1406         directive line.
1407         (dump_definition): If pfile->lineno == 0, output a line
1408         command ahead of the dump, and add a trailing newline.
1409
1410         * cppinit.c (append_include_chain): Add fifth argument, which
1411         indicates whether or not system headers are C++ aware.
1412         (initialize_standard_includes): New function,
1413         broken out of read_and_prescan.  Pass 'cxx_aware' value from
1414         the include_defaults_array on to append_include_chain.
1415         (dump_special_to_buffer): Const-ify char array.
1416         (builtin_array): Don't dump __BASE_FILE__.
1417         (cpp_start_read): Use cpp_read_file.  Reorder code for
1418         clarity.  Don't output line commands here for -D/-A/-U
1419         switches.  Don't call deps_output for files included with
1420         -include or -imacros.
1421
1422         * cpplib.c (do_define): Don't pay any attention to the second
1423         argument.
1424         (cpp_expand_to_buffer): Disable line commands while scanning.
1425         (output_line_command): Work in the file buffer.
1426         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
1427         Fix formatting of comments.  Prototype cpp_read_file.
1428
1429 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1430
1431         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
1432         reference the language-equivalent of sizetype.
1433         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
1434         * fold-const.c (size_binop, size_diffop): Put back checks.
1435         * gcse.c (dump_hash_table): Fix minor error in last change.
1436         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
1437         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
1438         all sizetypes.
1439
1440 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
1441
1442         * calls.c (expand_call)  Do not attempt to combine stack adjustments
1443         with inhibit_defer_pop set.
1444
1445 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
1446
1447         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
1448         the DECL_SIZE for a FIELD_DECL.
1449
1450 2000-03-01  Bruce Korb  <bkorb@gnu.org>
1451
1452         * fixinc/inclhack.tpl: remove unused symlinks
1453         * fixinc/README: GCC Maintainer info
1454         * fixinc/inclhack.sh: regen
1455         * fixinc/fixincl.sh: regen
1456
1457 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
1458
1459         * cpphash.c (collect_expansion): Trim trailing white space
1460         from macro definitions, but don't go past the last insertion
1461         point.
1462
1463 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
1464
1465         * i386.md (mulqi3): New pattern.
1466
1467 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
1468
1469         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
1470         token types.
1471         (struct cpp_reader): Add parsing_if_directive and
1472         parsing_define_directive flags.               
1473         (struct cpp_options): Remove output_conditionals flag.
1474         (check_macro_name): Delete prototype.
1475
1476         * cpphash.h (struct macrodef): Delete.
1477         (struct reflist): Separate from struct definition.
1478         (struct definition): Remove unused fields.  Add column number.
1479         (create_definition): Returns a DEFINITION *.  Takes a
1480         cpp_reader * and an int.
1481
1482         * cpphash.c (SKIP_WHITE_SPACE): Delete.
1483         (PEEKC): Copy defn from cpplib.c.
1484         (rest_extension, REST_EXTENSION_LENGTH): Delete.
1485         (struct arg): New.
1486         (struct arglist): Simplify.
1487         (collect_expansion): Rewrite.  Get tokens by calling
1488         cpp_get_token.  Add more error checking.
1489         (collect_formal_parameters): New function, broken out of
1490         create_definition and reworked to use get_directive_token.
1491         (create_definition): All real work is now in collect_expansion
1492         and collect_formal_parameters.  do_define handles finding the
1493         macro name.  Return a DEFINITION, not a MACRODEF.
1494         (macroexpand): Replace bcopy with memcpy throughout.  Replace
1495         character-at-a-time copy loop with memcpy and pointer increments.
1496         (compare-defs): d1->argnames / d2->argnames might be null.
1497
1498         * cpplib.c (copy_rest_of_line): Delete function.
1499         (skip_rest_of_line): Do all the work ourselves.
1500         (skip_string): New function.
1501         (parse_string): Use skip_string.
1502         (get_macro_name): New function.
1503         (check_macro_name): Delete.
1504         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
1505         (cpp_skip_hspace): Use CPP_BUMP_LINE.
1506         (handle_directive): ICE if we're called on a macro buffer.
1507         (do_define): Determine macro name and type (funlike/objlike)
1508         here.  Expunge all uses of MACRODEF.
1509         (cpp_push_buffer): Set line_base to NULL.
1510         (do_undef, read_line_number): Don't worry about getting a POP token.
1511         (eval_if_expression): Set/reset parsing_if_directive around
1512         cpp_parse_expr. Don't clear only_seen_white.
1513         (skip_if_group): Remove output_conditionals logic.  Use
1514         skip_rest_of_line.
1515         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
1516         tokens under appropriate conditions.
1517         (cpp_unassert): Call do_unassert not do_assert.  Oops.
1518
1519         * cppexp.c (parse_defined): New function, break out of
1520         cpp_lex.
1521         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
1522         ourselves, with cpp_defined.
1523         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
1524
1525         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
1526         * gcc.dg/strpaste-2.c: New.
1527
1528 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
1529
1530         * fold-const.c (size_binop): Don't asert inputs are the same and
1531         have TYPE_IS_SIZETYPE set.
1532         (size_diffop): Likewise.
1533
1534 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
1535
1536         * dwarfout.c (output_block): Output abstract blocks even if they
1537         don't have TREE_ASM_WRITTEN set.
1538
1539         * calls.c (emit_library_call): Check for null REG.
1540
1541 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1542
1543         * c-decl.c (current_function_decl): Move to toplev.c.
1544         (init_decl_processing): Don't add current_function_decl as a ggc
1545         root here.
1546         * dbxout.c (dbxout_symbol): Change return type to int.
1547         (dbxout_symbol_location, dbxout_syms): Likewise.
1548         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
1549         any locals. Use current_function_func_begin_label if set.
1550         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
1551         * dwarf2out.c (dwarf2out_begin_prologue): Set
1552         current_function_func_begin_label.
1553         * final.c (final_start_function): Reset it.
1554         * toplev.c (current_function_decl): Define it here.
1555         (current_function_func_begin_label): New variable.
1556         (main): Add both as ggc roots.
1557         * tree.h (current_function_func_begin_label): Declare.
1558
1559 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1560
1561         * gcse.c: Cleanups throughout: mostly white-space, but also
1562         some minor rearrangement of code.
1563
1564 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
1565
1566         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
1567         returns a PARALLEL.  Use emit_group_load and use_group_regs
1568         as needed.  
1569         (emit_library_call_value): Similarly.
1570
1571         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
1572         * pa/quadlib.asm: Remove.
1573         * pa/quadlib.c: New file.
1574
1575         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
1576         * configure: Rebuilt.
1577
1578 2000-02-29  Philip Blundell  <pb@futuretv.com>
1579
1580         * config/arm/conix-elf.h: New file.
1581         * configure.in (arm*-*-conix*): New configuration.
1582         * configure: Regenerate.
1583
1584 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
1585
1586         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
1587         don't have TREE_ASM_WRITTEN set.
1588
1589 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1590
1591         * Eliminate DECL_FIELD_SIZE.
1592         * builtins.c (built_in_class_names, built_in_names): New variables.
1593         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
1594         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
1595         DECL_SIZE, not DECL_FIELD_SIZE.
1596         * print-tree.c (print_node): Remove code that prints extra blank
1597         lines in some cases.
1598         Properly handle inline and builtin function cases.
1599         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
1600         * tree.h (built_in_class_named, built_in_names): New declarations.
1601         (union tree_decl): Rename internal unions to u1 and u2 and change
1602         some of their components.
1603         Add new field built_in_class.
1604         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
1605         Reflect above changes.
1606         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
1607         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
1608         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
1609         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
1610
1611 2000-02-28  Dmitri Makarov  <dim@windriver.com>
1612
1613         * extend.texi: Document ARM's support for long/short calls.
1614
1615         * invoke.texi: Document ARM's -mlong-calls command line switch.
1616         
1617         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
1618         (arm_encode_call_attribute): Add prototype.
1619         (arm_set_default_type_attribute): Add prototype.
1620         (arm_strip_name_encoding): Add prototype.
1621
1622         * config/arm/arm.c (arm_init_cumulative_args): replace
1623         initialisation og 'long_calls' field with initialisation of
1624         'call_cookie' field.
1625         (enum arm_pragma_enum): New enum.
1626         (arm_pragma_long_calls): New static variable.
1627         (arm_process_pragma): Also process "#pragma long_calls_off".
1628         (arm_valid_type_attribute_p): Accept short_call attribute.
1629         (arm_comp_type_attributes): Check long/short call attributes.
1630         (arm_encode_call_attribute):  New function:  Encode long_call
1631         or short_call attribute in function name.
1632         (arm_set_default_type_attributes): New function: Assign
1633         default attributes to newly defined type.
1634         (current_file_function_operand): New function: Return true if
1635         the symbol is a function which has already been compiled.
1636         (arm_is_longcall_p): New function: Return true if the
1637         indicated function should be called via a long call.
1638         (arm_get_strip_length): New function.  Returns number of
1639         prefix characters to be stripped from a function's name.
1640         (arm_strip_name_encoding): New function.  Strip prefix characters
1641         from a function's name.
1642
1643         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
1644         with 'call_cookie'.
1645         (SHORT_CALL_FAG_CHAR): Define.
1646         (LONG_CALL_FAG_CHAR): Define.
1647         (ENCODED_SHORT_CALL_ATTR_P): Define.
1648         (ENCODED_LONG_CALL_ATTR_P): Define.
1649         (ARM_NAME_ENCODING_LENGTHS): Define.
1650         (STRIP_NAME_ENCODING): Define.
1651         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
1652         (ARM_ENCODE_CALL_TYPE): Define.
1653         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
1654         (ARM_DECLARE_FUNCTION_SIZE): Define.
1655         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
1656
1657         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
1658         if a long call is needed.
1659         (call_value): Ditto.
1660         (call_symbol): Ditto.
1661
1662         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
1663         ARM_DECLARE_FUNCTION_SIZE.
1664
1665         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
1666         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
1667         (ARM_STRIP_NAME_ENCODING): Undefine.
1668         (STRIP_NAME_ENCODING): Undefine.
1669         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
1670         (ASM_DECLARE_FUNCTION_NAME): Ditto.
1671         (ASM_OUTPUT_COMMON): Ditto.
1672         (ASM_DECLARE_OBJECT_NAME): Ditto.
1673
1674         * config/arm/pe.c (arm_dllexport_name_p): Check for
1675         ARM_PE_FLAG_CHAR.
1676         (arm_dllimport_name_p): Ditto.
1677         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
1678         (arm_mark_dllimport): Ditto.
1679         
1680 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1681
1682         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
1683
1684 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
1685
1686         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
1687
1688 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
1689
1690         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
1691         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
1692         NO_BUILTIN_WCHAR_TYPE is not defined.
1693         (CPP_WCHAR_TYPE): Delete.
1694         * cccp.c (main): Don't change wchar_type if cplusplus.
1695         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
1696
1697 2000-02-28  Nick Clifton  <nickc@cygnus.com>
1698
1699         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
1700
1701 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
1702
1703         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
1704         (ASM_WEAKEN_LABEL): Define.
1705  
1706 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
1707
1708         * expr.c (store_constructor): Do not emit USE.
1709         * rtl.h (stupid_life_analysis): Remove.
1710
1711 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1712
1713         * function.c (number_blocks): Reset next_block_index based on
1714         what debugging format is used, not what is defined.
1715         
1716         * lcm.c: Minor reformatting throughout.
1717         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
1718         
1719         * toplev.c (rest_of_compilation): Account for time in
1720         optimize_mode_switching.
1721
1722         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
1723         if only marking labels.
1724
1725 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
1726
1727         * calls.c (expand_call): Attempt to combine stack adjustments with
1728         pending stack adjustments.
1729
1730 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1731
1732         * loop.c (reg_in_basic_block_p): Don't abort when falling through
1733         to the end of the function.
1734
1735 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
1736
1737         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
1738         blocks.
1739         * final.c (next_block_index): Remove.
1740         (max_block_depth): Likewise.
1741         (pending_blocks): Likewise.
1742         (init_final): Don't initialize them.
1743         (final_start_function): Don't set next_block_index.  Set up
1744         BLOCK_NUMBER.
1745         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
1746         * function.h (number_blocks): New function.
1747         * function.c (get_block_vector): New function.
1748         (identify_blocks): Use it.
1749         (reorder_blocks): Set NOTE_BLOCK.
1750         (number_blocks): New function.
1751         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
1752         * tree.h (BLOCK_NUMBER): New macro.
1753         (tree_block): Add block_num field.
1754         * dbxout.c (next_block_number): Remove.
1755         (dbxout_init): Don't set it.
1756         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
1757         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
1758         block numbers.
1759         * toplev.c (rest_of_compilation): Always call
1760         find_loop_tree_blocks.  Fix indentation.
1761         * dwarf2out.c (next_block_number): Remove.
1762         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
1763         to determine block numbers.
1764         (gen_inlined_subroutine_die): Likewise.
1765         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
1766         (decls_for_scope): Don't increment next_block_number.
1767         * dwarfout.c (next_block_number): Remove.
1768         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
1769         to determine block numbers. 
1770         (output_inlined_subroutine_die): Likewise.
1771         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
1772         (output_decls_for_scope): Don't increment next_block_number.
1773         * sdbout.c (next_block_number): Remove.
1774         (sdbout_block): Use BLOCK_NUMBER.
1775         (sdbout_begin_block): Simplify.
1776         * xcoffout.c (next_block_number): Remove.
1777         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
1778         (xcoffout_begin_block): Don't set next_block_number.
1779         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
1780         next_block_number.
1781         
1782 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1783
1784         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
1785         (expand_builtin_strcpy): Pass correct type to size_binop.
1786         (expand_builtin_strcmp): Likewise.
1787         Clean up conditional structure.
1788         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
1789         (complete_array_type): Don't use size_binop for MAXINDEX.
1790         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
1791         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
1792         (c_alignof): Use size_one_node.
1793         (build_unary_op): Pass arg of proper type to size_binop.
1794         (really_start_incremental_init, push_init_level): Use sizetype for
1795         constructor{,_bit,_unfilled}_index.
1796         (pop_init_label, output_init_element): Likewise.
1797         (output_pending_init_elements, process_init_element): Likewise.
1798         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
1799         * expr.c (store_expr): Use size_int.
1800         (store_constructor): Use proper types for size_binop args.
1801         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
1802         (expand_expr_unaligned): Likewise.
1803         (string_contant): Return object of sizetype.
1804         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
1805         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
1806         (ARGS_SIZE_TREE): Pass proper types to size_binop.
1807         * fold-const.c (int_const_binop): Refine when size_int is called.
1808         (fold_convert): Likewise.
1809         (size_int_wide): Rework to take KIND as arg, only take low order
1810         bits, handle new sizetype_tab datatype, and chain entries in
1811         size_table.
1812         (size_int_type_wide): New function.
1813         (size_binop): Validate types of arguments.
1814         (ssize_binop): Deleted.
1815         (size_diffop): New function.
1816         (extract_muldiv): Only fold division into multiplication for sizetypes.
1817         * function.c (assign_parms): Use size_diffop and make sure
1818         VAR field is of ssizetype; also pass proper type to size_binop.
1819         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
1820         (round_down): Deleted from here.
1821         * store-layout.c (sizetype_tab): Now an array.
1822         (sizetype_set, early_root_list): New variables.
1823         (variable_size): Use size_one_node.
1824         (round_up): Pass proper type to size_binop.
1825         (round_down): Moved to here and corrected as above.
1826         (layout_record): Pass proper arg types to size_binop.
1827         (layout_type): Likewise.
1828         If sizetype_set is zero, record the type just laid out.
1829         (make_unsigned_type): Don't call set_sizetype;
1830         (make_signed_type): Likewise; also, call fixup_signed_type.
1831         (initialize_sizetypes): New function.
1832         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
1833         set name of bitsizetype to "bit_size_type".
1834         Fix up type of sizes of all types made before call.
1835         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
1836         * tree.c (fix_sizetype): Deleted.
1837         (build_common_tree_nodes): Call initialize_sizetypes.
1838         (build_common_tree_nodes_2): Don't call fix_sizetype.
1839         * tree.h (TYPE_IS_SIZETYPE): New macro.
1840         (initialize_sizetype): New declaration.
1841         (enum size_type_kind): New type.
1842         (struct sizetype_tab): Deleted.
1843         (sizetype_tab): Now array; adjust sizetype macros.
1844         (size_diffop, size_int_type_wide): New functions.
1845         (size_int_wide): Change number of args and type; access macros changed.
1846         (ssize_int, sbitsize_int): New macros.
1847         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
1848         (ROUND_TYPE_SIZE_UNIT): New macro.
1849
1850 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
1851
1852         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
1853
1854 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1855
1856         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
1857         Mark as possibly unused.
1858
1859         * cse.c (cse_insn): Delete dead code involving tablejump.
1860         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
1861
1862         * Makefile.in (libcpp.a): Start by deleting it.
1863
1864 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1865
1866         * cpplib.h (enum file_change_code): Added rename_file.
1867         * cpplib.c (do_line): If a filename is given, set file_change to
1868         rename_file.
1869         (output_line_command): If file_change is rename_file, always
1870         output a # directive with the file name.
1871
1872         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
1873
1874 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
1875
1876         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
1877         when copying a PARM_DECL or RESULT_DECL.
1878
1879 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1880
1881         * fix-header.c (recognized_function): Also fix prototypes for
1882         functions taking "void".
1883
1884 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
1885
1886         * reload1.c (do_output_reload): Check reg_reloaded_valid before
1887         looking at reg_reloaded_contents.
1888
1889 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
1890
1891         * Makefile.in (STMP_FIXINC): New toggle.
1892         (LIBGCC2_DEPS): Delete all references.
1893         (stmp-headers): Delete target.  All references either deleted
1894         or changed to stmp-int-headers.
1895         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
1896         (LIBCPP_OBJS): Take out cppalloc.o.
1897         (cppalloc.o): Delete target.
1898         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
1899         (gen-protos, fix-header): Link with libiberty.a.
1900         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
1901         to empty.
1902
1903         * configure.in: Remove refs to strerror.
1904         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
1905         * system.h: Take out strerror stanza.
1906
1907         * cpperror.c (my_strerror): Delete function.
1908         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
1909         * cppmain.c (main): Call xmalloc_set_program_name first thing.
1910         * cppalloc.c: Delete file.
1911         * gen-protos.c: Don't provide xrealloc.
1912
1913         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
1914         xstrerror throughout.
1915
1916 2000-02-26  Bruce Korb  <bkorb@gnu.org>
1917
1918         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
1919         match for DOS headers, too.
1920         * fixinc/inclhack.sh,fixincl.x: Regenerate.
1921
1922 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
1923
1924         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
1925         is right for most ELF targets.
1926         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
1927         Let the default file use %U properly.
1928         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
1929         default.
1930
1931         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
1932         numbers.
1933
1934 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1935
1936         * toplev.c (documented_lang_options): Correct spelling error.
1937         (decode_d_option, decode_f_option, main): Likewise.
1938
1939         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
1940
1941         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
1942         to tell assembler it is permitted to expand large constants.
1943
1944 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
1945
1946         * protoize.c: (AUX_INFO_SUFFIX): New macro.
1947         (aux_info_suffix): Use.
1948         (SAVE_SUFFIX): New macro.
1949         (save_suffix): Use.
1950         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
1951         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
1952         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
1953
1954         * invoke.texi (Running Protoize): Update documentation.
1955
1956 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
1957
1958         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
1959
1960 2000-02-25  John Wehle  (john@feith.com)
1961
1962         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
1963
1964 2000-02-25  Anthony Green  <green@cygnus.com>
1965
1966         * toplev.c (rest_of_compilation): Rebuild jump labels if
1967         combine_instructions has created a new direct jump.
1968         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
1969         when appropriate.
1970         (combine_instructions): Call try_combine with new argument.
1971         Return non-null value when new direct jump instruction is created.
1972         * rtl.h: combine_instructions returns an int.
1973
1974 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
1975
1976         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
1977         jump when changing a computed jump into a jump to a known
1978         target.
1979
1980 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
1981
1982         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
1983         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
1984
1985         * i386.md (define_expand "clrstrsi"): Fix typo.
1986
1987 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
1988
1989         * rtl.texi: Fix typo.
1990
1991 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1992
1993         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
1994         UNITS_PER_WORD.  Change caller initial_elimination_offset.
1995         (rounded_frame_size): Take into account that argument pushed has
1996         changed.  Fix TARGET_ALIGN_DOUBLE problem.
1997
1998 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
1999
2000         * haifa-sched.c (schedule_block): Explain the real reason
2001         we delete REG_SAVE_NOTEs on the first insn of a block.
2002         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
2003
2004 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
2005
2006         * input.h (push_srcloc): New function.
2007         (pop_srcloc): Likewise.
2008         * toplev.c (push_srcloc): Define it.
2009         (pop_srcloc): Likewise.
2010
2011 2000-02-24  Richard Henderson  <rth@cygnus.com>
2012
2013         * flow.c (life_analysis): When collecting reg info, clear
2014         regs_ever_live.
2015
2016 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2017
2018         Fix bug exposed by reload.c no longer rounding the frame
2019         size to BIGGEST_ALIGNMENT:
2020         * sh.c (rounded_frame_size): New function.
2021         (sh_expand_prologue, sh_expand_epilogue): Use it.
2022         (initial_elimination_offset): Likewise.
2023
2024 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2025
2026         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
2027         * sh-protos.h (sh_need_epilogue): Declare.
2028         * sh.c (sh_need_epilogue_known): New static variable.
2029         (sh_need_epilogue): New function.
2030         (function_epilogue): Clear need_epilogue_known.
2031         * sh.md (return): Split into expander / insn pattern.
2032         Make the expander conditional on ! sh_need_epilogue ().
2033
2034 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
2035
2036         * machmode.h (get_mode_alignment): Declare.
2037         (GET_MODE_ALIGNMENT): Call it.
2038         * stor-layout.c (get_mode_alignment): New function. Make
2039         sure alignment is always power of 2.
2040
2041 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
2042
2043         * i386.h: Remove useless definition of "I386" and misleading
2044         comment above it.
2045
2046 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
2047
2048         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
2049         under which TREE_PERMANENT will be set.
2050         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
2051         build1): Use TREE_SET_PERMANENT.
2052         * print-tree.c (print_node): Don't report value of
2053         TREE_PERMANENT if ggc_p is true.
2054
2055         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
2056         decide whether to give a type a new alias set.
2057         * objc/objc-act.c (build_objc_string_object): Never copy the string.
2058         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
2059         of value of 'obstack'.
2060
2061
2062 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2063
2064         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
2065
2066 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2067
2068         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
2069         * cpplib.c (cpp_get_token): Produce them.
2070         * cppexp.c (cpp_lex): Handle them.
2071
2072 2000-02-23  Nick Clifton  <nickc@cygnus.com>
2073
2074         * config/arm/arm.c (arm_comp_type_attributes): Simply and
2075         comment tests on type attributes.
2076
2077 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2078
2079         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
2080         conform to documentation.
2081         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
2082         to check for special cases.
2083         * sh-protos.h (sh_loop_align): Declare.
2084         * sh.c (sh_loop_align): Define.
2085
2086 2000-02-22  Andrew Haley  <aph@cygnus.com>
2087
2088         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
2089         (SIZE_TYPE): Is 32 bits when using -mgp32.
2090         (PTRDIFF_TYPE): Ditto.
2091
2092 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2093
2094         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
2095
2096 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
2097
2098         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
2099         BIGGEST_FIELD_ALIGNMENT a constant.
2100
2101 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
2102
2103         * dwarf2out.c (output_line_info): Put the marker for the end of
2104         the line number info at the actual end.
2105         (gen_struct_or_union_type_die): Use decl_function_context 
2106         to check for local classes.
2107         * dwarfout.c (output_type): Likewise.
2108
2109 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
2110
2111         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
2112         for arguments with a mode, but no type.
2113         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
2114         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
2115         * pa/long_double.h: New file.
2116         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
2117         both have 128bit wide long doubles.
2118         * configure: Rebuilt.
2119
2120 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2121
2122         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
2123
2124         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
2125         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
2126         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
2127
2128         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
2129
2130         * integrate.c (compare_blocks, find_block): Likewise.
2131
2132         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
2133
2134         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
2135
2136         * stmt.c (stmt_status, set_file_and_line_for_stmt,
2137         expand_asm_operands): Likewise.
2138
2139 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
2140
2141         * predict.c (estimate_probability): Added the pointer heuristic to
2142         the collection of static branch predictors.
2143
2144 2000-02-21  Catherine Moore  <clm@cygnus.com>
2145
2146         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
2147         * invoke.texi (-mfix7000): Document.
2148
2149 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
2150
2151         * diagnostic.c (init_output_buffer): Make it possible to output at
2152         least 32 characters if we're given a too long prefix.
2153
2154 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
2155
2156         * varasm.c (initializer_constant_valid_p): Call
2157         lang_expand_constant to simplify the constant.
2158
2159 2000-02-20  Bruce Korb  <bkorb@gnu.org>
2160
2161         * fixinc/inclhack.def(stdio_va_list):
2162         typedef needs to be disabled.
2163         * fixinc/inclhack.sh: regen
2164         * fixinc/fixincl.x: regen
2165
2166 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
2167
2168         * print-rtl.c (print_rtx): Don't print addresses when
2169         flag_dump_unnumbered.
2170
2171 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2172
2173         * sparc.c (sparc_output_scratch_registers): Mark parameter with
2174         ATTRIBUTE_UNUSED.
2175         (sparc_va_arg, sparc_flat_output_function_prologue,
2176         sparc_flat_output_function_epilogue): Cast value to unsigned in
2177         comparison.
2178         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
2179         
2180         * sparc.md: Add default case in switch.
2181
2182 2000-02-19  Richard Henderson  <rth@cygnus.com>
2183
2184         * c-typeck.c (add_pending_init): Don't abort for multiple
2185         fields at the same offset.
2186         (pending_init_member): Test the correct member.
2187
2188 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2189
2190         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
2191         instead of SImode.
2192         (start_catch_handler) : Same.
2193
2194 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
2195
2196         * Makefile.in: Have flow.o depend on $(EXPR_H)
2197
2198 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2199
2200         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
2201         * c-decl.c (duplicate_decls, finish_enum): Likewise.
2202         (finish_decl): Remove -Wlarger-than code from here.
2203         * flags.h (id_clash_len): Now int.
2204         (larger_than_size): Now HOST_WIDE_INT.
2205         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
2206         Clean up checking to see if in table.
2207         (make_bit_field_ref): Remove extra parm to bitsize_int.
2208         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
2209         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
2210         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
2211         and for computing size of decl.
2212         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
2213         Move -Wlarger-than code to here.
2214         (layout_record): Remove extra arg to bitsize_int.
2215         Set TYPE_BINFO_SIZE_UNIT.
2216         (layout_union): Remove extra arg to bitsize_int.
2217         Use proper type for size of QUAL_UNION.
2218         (layout_type): Remove extra arg to bitsize_int.
2219         * toplev.c (id_clash_len): Now int.
2220         (larger_than_size): Now HOST_WIDE_INT.
2221         (decode_W_option): Clean up id-clash and larger-than- cases.
2222         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
2223         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
2224         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
2225         (struct tree_decl): New field size_unit.
2226         (size_int_wide): No HIGH operand; NUMBER is now signed.
2227         (size_int_2): Deleted.
2228         (size_int, bitsize_int): Don't use it and rework args.
2229         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
2230
2231 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
2232
2233         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
2234
2235 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
2236
2237         * invoke.texi (Warning Options): Add an explanation of why
2238         you might want the -Wfloat-equal flag.
2239
2240 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2241
2242         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
2243         * cppinit.c (new_pending_define): Add cast to avoid warning.
2244         * expmed.c (extract_bit_field): Likewise.
2245         * flow.c (enum reorder_skip_type): New type.
2246         (skip_insns_between_blcok): New it.
2247         Rework to avoid warning about possibly undefined variable.
2248         * function.c (assign_parms): Make thisparm_boundary unsigned.
2249         * genrecog.c (write_switch): Cast XWINT result to int.
2250         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
2251         * mips-tfile.c (init_file): Make two versions of FDR intializer:
2252         one for MIPS and one for Alpha.
2253         (get_tag, copy_object): Add casts to avoid warnings.
2254         * optabs.c (init_one_libfunc): Cast NAME to (char *).
2255         * reload.c (find_reloads): Make TYPE enum reload_type.
2256         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
2257         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
2258         * varasm.c (compare_constant_1): Add cast to avoid warning.
2259         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
2260         to (char *).
2261         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
2262         Cast switch operand of size to int.
2263         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
2264         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
2265         in unhandled case.
2266
2267 2000-02-18  Nick Clifton  <nickc@cygnus.com>
2268
2269         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
2270         anything for an alignment of zero.
2271
2272         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
2273         anything for an alignment of zero.
2274
2275 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
2276
2277         * gcc.texi (Bug Reporting): Refer to bugs.html.
2278         (Bug Lists): Likewise.
2279         * system.h (GCCBUGURL): New preprocessor define.
2280         * rtl.c (fancy_abort): Use it.
2281         * gcc.c (main): Likewise.
2282
2283 2000-02-18  Richard Henderson  <rth@cygnus.com>
2284
2285         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
2286         (life_analysis_1): Subsume into ...
2287         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
2288         Use update_life_info for the relaxation.
2289         (update_life_info): Update REG_BASIC_BLOCK for registers live on
2290         entry and regs_live_at_setjmp.
2291         (set_noop_p): Simplify.
2292         (notice_stack_pointer_modification_1): Renamed from s/_1//.
2293         (record_volatile_insns): Split into ...
2294         (delete_noop_moves): ... here,
2295         (notice_stack_pointer_modification): ... here,
2296         (insn_dead_p): ... and here.
2297         (propagate_block): Don't query INSN_VOLATILE.
2298         (mark_used_regs): Mind !PROP_REG_INFO.
2299         * toplev.c (rest_of_compilation): Call mark_constant_function here,
2300         not in life_analysis.
2301
2302 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
2303
2304         * loop.c (canonicalize_condition): New function,
2305         broken out of get_condition.
2306         (get_condition): Use it.
2307         * expr.h (canonicalize_condition): Prototype it.
2308
2309         * tree.h (tree_int_cst_msb): Declare.
2310         * tree.c (tree_int_cst_msb): New function.
2311
2312 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
2313
2314         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
2315         isn't set.
2316
2317         * invoke.texi (-fmessage-length=n): Document.
2318
2319 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
2320
2321         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
2322
2323 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
2324
2325         * function.c (thread_prologue_and_epilogue_insns): Put a line note
2326         after the prologue.
2327
2328 2000-02-17  Nick Clifton  <nickc@cygnus.com>
2329
2330         * config/arm/thumb.c: Replace includes of system headers with
2331         #include "system.h".
2332
2333 2000-02-16  Richard Henderson  <rth@cygnus.com>
2334
2335         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
2336         Add crtbeginS.o and crtendS.o.
2337         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
2338         (ENDFILE_SPEC): Use crtendS.o.
2339         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
2340
2341         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
2342         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
2343         shared and present.
2344         (__dso_handle): New variable.
2345         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
2346         bias to __CTOR_END__.
2347         
2348 2000-02-16  Richard Henderson  <rth@cygnus.com>
2349
2350         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
2351
2352 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
2353
2354         * longlong.h (__clz_tab): Declare as static to match definition.
2355
2356 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
2357         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
2358         (XREF_FILE_NAME): Define.
2359
2360         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
2361         (EH_FRAME_SECTION_ASM_OP): Define.
2362         (IDENT_ASM_OP): Define.
2363         (TEXT_SECTION_ASM_OP): Define.
2364         (CPP_SPEC): Define.
2365         (CTORS_SECTION_ASM_OP): Define.
2366         (CTOR_SECTION_FUNCTION): Use it.
2367         (DTORS_SECTION_ASM_OP): Define.
2368         (DTOR_SECTION_FUNCTION): Use it.
2369
2370 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
2371
2372         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
2373         NOTE_BASIC_BLOCK.
2374
2375         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
2376         debug_bb_n): New functions.
2377         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
2378         * basic-block.h: Prototype new functions.
2379
2380 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
2381
2382         * configure.in: Add support for avr target.
2383         * configure: Rebuilt.
2384
2385         * invoke.texi: Add AVR invocation docs.
2386         * install.texi: Add information about AVR.
2387         * md.texi: Add AVR constraint letters description.
2388         * extend.texi: Add description for AVR specific attributes.
2389
2390 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
2391
2392         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
2393
2394 2000-02-16  Nick Clifton  <nickc@cygnus.com>
2395
2396         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
2397         (make_insn_raw): Move RTL check here.
2398
2399 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2400
2401         * version.c: Include gansidecl.h and version.h.
2402
2403         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
2404         
2405         * configure.in (gcc_version): When setting, narrow search to
2406         lines containing `version_string'.
2407
2408         * Makefile.in (mainversion): Likewise. 
2409         (GCC_H): New variable.
2410         (gcc.h): Delete target.
2411         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
2412         (version.o): Depend on version.h.
2413         (dbxout.o): Don't depend on gcc.h.
2414
2415 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
2416                           Michael Meissner  <meissner@cygnus.com>
2417
2418         * md.texi (Simple Constraints): Add item about whitespace.
2419         * genoutput.c (strip_whitespace): New.
2420         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
2421         strip_whitespace for constraints.
2422         Test pointer using NULL, not 0.
2423
2424 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2425
2426         * cpplib.c (do_line): Pedwarn for #line > 32767.
2427
2428         * c-lex.c (readescape): Warn about '\x', but do not reject it.
2429
2430 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
2431
2432         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
2433         to default cpp spec.
2434         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
2435         * cpp.texi: Document __GNUC_PATCHLEVEL__.
2436         * cpp.1: Likewise.
2437
2438         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
2439         default spec.
2440
2441 2000-02-15  Denis Chertykov  <denisc@overta.ru>
2442
2443         * configure.in: Add support for avr target.
2444
2445 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2446
2447         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
2448         (sh_addr_diff_vec_mode): Don't declare.
2449         * sh.c (sh_addr_diff_vec_mode): Delete.
2450
2451 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2452
2453         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
2454
2455 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2456
2457         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
2458         (smulsi3_highpart_i): Name.
2459         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
2460         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
2461         (smulsi3_highpart, umulsi3_highpart): Likewise.
2462
2463         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
2464         correctly independent of endianness.
2465         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
2466         confuse the optimizers.
2467         (mulsidi3+1, umulsidi3+1): New define_split.
2468
2469 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
2470
2471         * config/sh/sh.md: Guard insn splits against illegal registers.
2472         * config/sh/sh.h: Correct comment about macros.
2473
2474 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2475                           Andrew MacLeod  <amacleod@cygnus.com>
2476
2477         * Makefile.in (lcm.o): Depend on insn-attr.h.
2478         * basic-block.h (optimize_mode_switching): Declare.
2479         * lcm.c (tm_p.h, insn-attr.h): #include.
2480         (seginfo, bb_info): New structs.
2481         (antic, transp, comp, delete, insert) : New file-scope static variables.
2482         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
2483         (reg_becomes_live, optimize_mode_switching): Likewise.
2484         * tm.texi: Add description of mode switching macros.
2485         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
2486
2487         * sh-protos.h (remove_dead_before_cse): Remove prototype.
2488         (fldi_ok, fpscr_set_from_mem): New prototypes.
2489         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
2490         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
2491         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
2492         (sh_flag_remove_dead_before_cse): Remove declaration.
2493         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
2494         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
2495         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
2496         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
2497         (barrier_align): Allow for JUMP_INSNS containing a parallel.
2498         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
2499         (fldi_ok): New function.
2500         (get_fpscr_rtx): Add fpscr_rtx as GC root.
2501         (emit_sf_insn): Only generate fpu switches when optimize < 1.
2502         (emit_df_insn): Likewise.
2503         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
2504         (sh_flag_remove_dead_before_cse): Delete.
2505         (get_free_reg, fpscr_set_from_mem): New functions.
2506         * sh.md (movdf, movsf): Remove no_new_pseudos code.
2507         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
2508
2509 2000-02-15  Loren Rittle  <ljrittle@acm.org>
2510
2511         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
2512
2513 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2514
2515         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
2516         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
2517
2518         * cccp.c: Include version.h and/or don't declare `version_string'.
2519         * collect2.c: Likewise.
2520         * alpha.c: Likewise.
2521         * arm/aof.h: Likewise.
2522         * arm/coff.h: Likewise.
2523         * arm/elf.h: Likewise.
2524         * arm/pe.h: Likewise.
2525         * arm/tcoff.h: Likewise.
2526         * arm/telf.h: Likewise.
2527         * arm/tpe.h: Likewise.
2528         * arm/vxarm.h: Likewise.
2529         * convex/convex.c: Likewise.
2530         * i386/dgux.c: Likewise.
2531         * i386/sun386.h: Likewise.
2532         * m88k/m88k.c: Likewise.
2533         * mcore/mcore-pe.h: Likewise.
2534         * mips/mips.h: Likewise.
2535         * romp/romp.h: Likewise.
2536         * sh/sh.c: Likewise.
2537         * cpphash.c: Likewise.
2538         * cppinit.c: Likewise.
2539         * dwarf2out.c: Likewise.
2540         * dwarfout.c: Likewise.
2541         * gcc.c: Likewise.
2542         * gcc.h: Likewise.
2543         * mips-tfile.c: Likewise.
2544         * protoize.c: Likewise.
2545         * toplev.c: Likewise.
2546         * tree.h: Likewise.
2547         
2548         * version.c (version_string): Constify a char*.
2549
2550         * version.h: New file.
2551
2552 2000-02-14  Nick Clifton  <nickc@cygnus.com>
2553
2554         * configure.in: Add mcore-elf and mcore-pe targets.
2555         * configure: Regenerate.
2556
2557         * NEWS: Add note that MCore port has been contributed.
2558
2559         * invoke.texi: Document command line switches for MCore port.
2560         * install.texi: Add MCore to list of supported targets.
2561
2562 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
2563
2564         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
2565         then we will need to import the frame handling functions.
2566         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
2567         to import the frames themselves.
2568
2569 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
2570                           Jason Eckhardt  <jle@cygnus.com>
2571
2572         * basic_block.h: Added prototype for reorder_basic_blocks.
2573         * toplev.c: Changes to add -freorder-blocks and graph dump after
2574         block reordering is done.
2575         * flow.c (reorder_block_def): New structure for use during block
2576         reordering.
2577         (REORDER_BLOCK_*): New macros to access members of above structure.
2578         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
2579         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
2580         functions for block reordering.
2581
2582 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
2583
2584         * gcc.texi (Passes): Fix typo.
2585         * md.texi (Standard Names): Ditto.
2586         * tm.texi (Storage Layout): Ditto.
2587
2588 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
2589
2590         * cpplib.c (do_define): Only free the old definition if it
2591         actually had one.
2592
2593 2000-02-13   Neil Booth  <NeilB@earthling.net>
2594
2595         * cppfiles.c (read_and_prescan): When emitting deferred
2596         newlines, test speccase[] again instead of checking each
2597         possible whitespace character in turn.  When we encounter \r,
2598         look behind for \n first, then ahead.
2599
2600 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
2601
2602         * cse.c (cse_altered): New internal flag.
2603         (cse_insn): Set it if we changed an insn.
2604         (cse_main): Clear cse_altered before each basic block.
2605         Only garbage collect if cse_altered is true afterward.
2606
2607 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2608
2609         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
2610
2611 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
2612
2613         * combine.c (simplify_comparison): Fix typo.
2614
2615 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
2616
2617         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
2618         consistently.
2619
2620 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2621
2622         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
2623         previously inserted node instead of root node.  Caller changed.
2624
2625 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2626
2627         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
2628
2629 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2630
2631         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
2632         __dereg_frame_dtor): Add prototype argument.
2633
2634         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
2635
2636         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
2637
2638         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
2639
2640         * gthr-vxworks.h (__gthread_once): Likewise.
2641
2642         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
2643
2644 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
2645
2646         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
2647         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
2648         stack pointer in functions w/o saved registers, output LEAVE more often
2649         on TARGET_USE_LEAVE machines.
2650
2651 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
2652
2653         * config/arm/arm.c (arm_init_cumulative_args); New function:
2654         Initlaise the CUMULATIE_ARGS strcuture for a function
2655         defintion. 
2656         (arm_function_arg): New function: Determine where to place a
2657         function's argument.  Also handles deciding the function's
2658         call cookie.
2659         (current_file_function_operand): New function: Return true if
2660         the symbol is a function which has already been compiled.
2661         (arm_is_long_call_p): New function: Return true if the
2662         indicated function should be called via a long call.
2663         (arm_valid_type_attribute_p): New function: Return true if the
2664         attribute is a valid, arm specific, attribute.
2665         (arm_comp_type_attribute): New function: Return true if the
2666         two types have compatable, arm specific, attributes.
2667
2668         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
2669         structure.
2670         (FUNCTION_ARG): Redefine to call arm_function_arg.
2671         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
2672         structure field.
2673         (INIT_CUMULATIVE_ARGS): Redefine to call
2674         arm_init_cumulative_args.
2675         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
2676         field. 
2677         (SETUP_INCOMING_VARARGS): Redefine to use correct structure 
2678         field. 
2679         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
2680         functions.
2681         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
2682         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
2683         (COMP_TYPE_ATTRIBUTES): Define.
2684
2685         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
2686         if a long call is needed.
2687         (call_value): Call arm_is_long_call_p to decide if a long call
2688         is needed.
2689         (call_symbol): Call arm_is_long_call_p to decide if a long call
2690         is needed.
2691
2692         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
2693
2694 2000-02-11  Denis Chertykov  <denisc@overta.ru>
2695
2696         * README.AVR: New file with information about the avr ports.
2697         * config/avr: New directory with avr port files.
2698
2699 2000-02-11  Andreas Jaeger  <aj@suse.de>
2700
2701         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
2702
2703 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
2704
2705         * cpphash.c: Fix formatting, update commentary.
2706         (dump_definition): Take three separate arguments instead of a
2707         MACRODEF structure argument.
2708         * cpphash.h: Update prototype of dump_definition.
2709         * cppinit.c (cpp_finish): Update call of dump_definition.
2710
2711         * cpplib.c (do_define): Always create new hash entry with
2712         T_MACRO type.  Remove redundant check for redefinition of
2713         poisoned identifier.  Update call of dump_definition.
2714         (do_undef): Don't call check_macro_name.  Rename sym_length to
2715         len.
2716         (do_error, do_warning): Don't use copy_rest_of_line or
2717         SKIP_WHITE_SPACE.
2718         (do_warning): Don't use pedwarn for the actual warning,
2719         only the notice about its not being in the standard.  (Fixes
2720         bug with #warning in system headers.)
2721         (do_ident): Stricter argument checking - accept only a single
2722         string after #ident.  Also, macro-expand the line.
2723         (do_xifdef): Use cpp_defined.  De-obfuscate.
2724
2725         (do_pragma): Split out specific pragma handling to separate
2726         functions.  Use get_directive_token.  Update commentary.  Do
2727         not pass on #pragma once or #pragma poison to the front end.
2728         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
2729         do_pragma_default): New.
2730
2731 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
2732
2733         * jump.c (jump_optimize_1): The first operand in a relational
2734         can be a CONST_INT.
2735         * optabs.c (emit_conditional_move): Handle relationals which
2736         have a known true/false result.
2737
2738 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
2739
2740         * function.c (thread_prologue_and_epilogue_insns): Don't insert
2741         a RETURN insn into a block which already ends with a jump.
2742
2743 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
2744
2745         * haifa-sched.c (BUF_LEN): Increase a lot.
2746
2747 2000-02-11  Nick Clifton  <nickc@cygnus.com>
2748
2749         * configure.in: Add tm_p_file specification for thumb targets.
2750         * configure: Regenerate.
2751
2752         * config/arm/thumb-protos.h: New file: Prototypes for exported
2753         functions defined in thumb.c.
2754
2755 2000-02-11  Robert Lipe  <robertl@sco.com>
2756
2757         * Makefile.in (bootstrap-lean): Remove additional files.
2758         (bootstrap2-lean): Likewise.
2759         (VOL_FILES): List of files for above.
2760
2761 2000-02-11  Nathan Sidwell  <nathan@acm.org>
2762
2763         * cpphash.c (special_symbol): Remove spurious argument to
2764         cpp_lookup.
2765
2766 2000-02-11  Joel Sherrill (joel@OARcorp.com>
2767
2768         * configure.in: (i*86-*-rtems*): Swapped elf and coff
2769         stanzas.
2770         * configure: Rebuilt.
2771
2772 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
2773         
2774         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
2775
2776 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
2777
2778         * pa.c, pa.h: Remove trigraph sequences within comments.
2779
2780 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
2781
2782         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
2783
2784 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
2785
2786         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
2787
2788 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2789         
2790         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
2791
2792 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2793
2794         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
2795         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
2796         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
2797         (ASM_FILE_END): Use c4x_file_end.
2798         * config/c4x/c4x.c (c4x_global_label): New function.
2799         (c4x_external_ref, c4x_file_end): Likewise.
2800
2801         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
2802         (c4x_external_ref, c4x_end_file): Likewise.
2803
2804 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
2805
2806         * cppexp.c: Don't include cpphash.h.
2807         (parse_charconst, cpp_lex): Use cpp_defined.
2808         (cpp_lex): Use get_directive_token throughout.  Remove
2809         unnecessary cases from switch.  Move assertion-handling code
2810         down to OTHER case.
2811         (cpp_parse_expr): If we see '+' or '-', check the context to
2812         determine if they are unary or binary operators.  Streamline
2813         the jumps a bit.  Do not call skip_rest_of_line.
2814
2815         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
2816         static.  Export get_directive_token.  Update commentary.
2817         (cpp_defined): New function.
2818         (do_define): Remove reference to T_PCSTRING.  Call
2819         free_definition to release memory for old definition, when
2820         redefining a macro.
2821         (eval_if_expression): Set only_seen_white to 0 before calling
2822         cpp_parse_expr.  Call skip_rest_of_line after it returns.
2823         (cpp_read_check_assertion): Don't preserve a pointer into the
2824         token buffer across a call to cpp_get_token.
2825
2826         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
2827         * cppfiles.c (redundant_include_p): Use cpp_defined.
2828         * cpphash.c (free_definition): New function.
2829         (delete_macro): Use it.  Update commentary.
2830         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
2831         free_definition.
2832         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
2833         from enum node_type.  Prototype cpp_defined and get_directive_token.
2834         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
2835
2836         * fix-header.c (check_macro_names): Use cpp_defined.
2837         (read_scan_file): Set inhibit_warnings and inhibit_errors in
2838         the options structure.
2839
2840 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2841
2842         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
2843
2844 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
2845
2846         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
2847         rather than die->die_tag.
2848
2849 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2850
2851         * combine.c (make_extraction, force_to_mode): Avoid warning on
2852         mixed-signedness conditionals.
2853         (make_field_assignment, nonzero_bits): Likewise.
2854         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
2855         (store_split_bit_field, extract_split_bit_field): Likewise.
2856         (extract_fixed_bit_field, store_bit_field, 
2857         * expr.c: Change alignment to be unsigned everywhere.
2858         (move_by_pieces, store_constructor_field, store_constructor): 
2859         Alignment parm is unsigned.
2860         (emit_block_move, emit_group_load, emit_group_store): Likewise.
2861         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
2862         (do_compare_rtx_and_jump): Likewise.
2863         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
2864         Compare align with GET_MODE_ALIGNMENT.
2865         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
2866         (get_inner_reference): Likewise.
2867         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
2868         (expand_assignment): Local vars for alignment now unsigned.
2869         (store_constructor, store_field, expand_expr, do_jump): Likewise.
2870         (do_compare_and_jump): Likewise.
2871         (store_field): Call new function expr_align.
2872         * expr.h (emit_block_move, emit_group_load, emit_group_store):
2873         Alignment arg now unsigned.
2874         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
2875         (do_compare_rtx_and_jump, store_bit_field): Likewise.
2876         (extract_bit_field): Likewise.
2877         * fold-const.c (add_double): Add cast to eliminate signedness warning.
2878         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
2879         (get_best_mode): Alignment arg is unsigned.
2880         * rtl.h (move_by_pieces): Likewise.
2881         * store-layout.c (maximum_field_alignment, set_alignment):
2882         Now unsigned.
2883         (layout_decl): Alignment arg is now unsigned.
2884         Remove unneeded casts.
2885         (layout_record, layout_union, layout_type): Remove unneeded casts.
2886         Local alignment variables now unsigned.
2887         (get_best_mode): Alignment arg now unsigned.
2888         * tree.c (expr_align): New function.
2889         * tree.h (expr_align): Likewise.
2890         (maximum_field_alignment, set_alignment): Now unsigned.
2891         (get_inner_reference): Alignment argument is now pointer to unsigned.
2892         * varasm.c (assemble_variable): Add cast to eliminate warning.
2893
2894 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
2895
2896         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
2897         then store directly into op0.
2898
2899         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
2900         the CALL_INSN, and emit the note immediately after it.
2901
2902 2000-02-10  Nick Clifton  <nickc@cygnus.com>
2903
2904         * config/arm/thumb.md (epilogue): Include a (return) in the
2905         generated insn, and emit it using emit_jump_insn not
2906         emit_insn. 
2907
2908 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
2909
2910         * function.c (assign_temp): Change zero-sized arrays to size 1.
2911         * integrate.c (expand_inline_function): Do not update
2912         stack_alignment_needed
2913         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
2914         add some sanity checking, remove optimization for function with
2915         zero frame size.
2916
2917 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2918
2919         * flow.c (mark_regs_live_at_end): Delete unused variables.
2920
2921         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
2922
2923         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
2924         in macro FRAME_GROWS_DOWNWARD.
2925
2926         * stmt.c (expand_end_bindings): Delete unused variable.
2927
2928         * unroll.c (iteration_info): Mark parameter `loop' with
2929         ATTRIBUTE_UNUSED.
2930
2931 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2932
2933         * fixinc/server.c (load_data): Return NULL if the marker line is
2934         not found.
2935         (run_shell): If load_data returns NULL, retry the command once, in
2936         a new shell.
2937
2938         * configure: Rebuilt.
2939
2940 2000-02-09  Bruce Korb  <bkorb@gnu.org>
2941
2942         * gcc/fixincludes:  ** DELETED **
2943         * gcc/fixcpp:  ** DELETED **
2944         * gcc/fixinc-nt.sed:  ** DELETED **
2945         * gcc/just-fixinc:  ** DELETED **
2946         * gcc/Makefile.in:  Removed out-dated commentary
2947         * gcc/configure.in: Removed fast-fixincludes disablement.
2948         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
2949
2950 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
2951         * function.c (thread_prologue_and_epilogue_insns): Uncomment
2952         last change.
2953
2954 2000-02-09  Richard Henderson  <rth@cygnus.com>
2955
2956         * jump.c (delete_insn): Don't delete user labels at -O0.
2957
2958 2000-02-09  Robert Lipe  <robertl@sco.com>
2959
2960         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
2961         Don't link with HOST_LIBS. 
2962
2963 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
2964
2965         * configure.in: Correct --help text for --with-dwarf2.
2966         Put tm-dwarf2.h after other tm files, if it's requested.
2967         * configure: Regenerate.
2968         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
2969         defining it.
2970
2971 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
2972
2973         * cpplib.h: Provide HASHNODE typedef and forward decl of
2974         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
2975         DEFINITION, struct hashnode, struct macrodef, struct
2976         definition, scan_decls prototype, default defn of
2977         INCLUDE_LEN_FUDGE moved elsewhere.
2978
2979         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
2980         definition, and struct hashnode moved here. Remove the unused
2981         'predefined' field from struct definition.  Replace the 'args'
2982         union with its sole member.  All users updated (cpphash.c).
2983         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
2984         multiple include guard.
2985
2986         * cpphash.c (hashf): Make static; use better algorithm; drop
2987         HASHSIZE parameter; return an unsigned int.
2988         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
2989         used. Calculate HASHSIZE modulus here.
2990         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
2991         here.
2992         (create_definition): Drop PREDEFINITION parameter.
2993         * cpplib.c (do_define): Don't calculate a hash value here.
2994         Don't pass (keyword == NULL) to create_definition.
2995
2996         * scan.h: Prototype scan_decls here.
2997         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
2998         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
2999         callers of cpp_lookup and cpp_install updated.
3000         
3001         * cpphash.c (macarg): Hoist all the flag diddling out of the
3002         function...
3003         (macroexpand): ... and out of the loop that calls macarg.
3004         Skip over the initial paren before macro arguments with
3005         cpp_get_non_space_token; point may be some distance before
3006         that paren.  Abort if it's not there.
3007
3008         * cpplib.c (parse_clear_mark): Delete function.
3009         (parse_set_mark, parse_goto_mark): Make static.
3010         (ACTIVE_MARK_P): New macro.
3011         (skip_block_comment, skip_line_comment): Do not bump the line
3012         if ACTIVE_MARK_P is true.
3013         (cpp_pop_buffer): The buffer to be popped may not have an
3014         active mark.
3015         (cpp_get_token): When looking for the initial paren before
3016         macro arguments, only set a mark in a file buffer, Always
3017         return to that mark before proceeding to call macroexpand or
3018         return a NAME token.
3019
3020         * cpplib.h: Remove prototypes of parse_set_mark,
3021         parse_clear_mark, parse_goto_mark.
3022         (struct cpp_options): Rename 'put_out_comments' to
3023         'discard_comments' and invert its sense.
3024         * cppinit.c, cpphash.c, cpplib.c: All users of
3025         put_out_comments changed to use discard_comments, with
3026         opposite sense.
3027
3028 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
3029
3030         * function.c (thread_prologue_and_epilogue_insns): Don't delete
3031         the edge from a block that both jumps and falls through to the
3032         fallthru block.
3033
3034 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
3035
3036         * config/arm/arm.md (movsi): In PIC mode, make sure that a
3037         constant source address is legitimate.
3038
3039 2000-02-09  Philip Blundell  <pb@futuretv.com>
3040
3041         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
3042         correctly.
3043
3044         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
3045         generating PIC.
3046         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
3047
3048 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
3049
3050         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
3051         ends with a newline and a NUL.  Don't be so clever manipulating
3052         strings.
3053
3054 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
3055
3056         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
3057         not to BIGGEST_ALIGNMENT.
3058
3059 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
3060
3061         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
3062         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
3063         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
3064         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
3065         * frame.c (execute_cfa_insn): Handle 
3066         DW_CFA_GNU_negative_offset_extended.
3067
3068 2000-02-08  Richard Henderson  <rth@cygnus.com>
3069
3070         * flow.c (tidy_fallthru_edges): Split out from ...
3071         (delete_unreachable_blocks): ... here.
3072         (find_basic_blocks): Use it.
3073
3074 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3075
3076         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
3077
3078 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
3079
3080         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
3081         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
3082         (fix-header.o): Don't depend on cpphash.h.
3083
3084         * scan.c (hashstr): New function. 
3085         * scan.h: Prototype it.
3086         * fix-header.c: Don't include cpphash.h.  Use hashstr.  
3087         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
3088         hashstr.  Report hash table statistics.  Add private     
3089         definition of xrealloc.
3090
3091 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3092
3093         * i386.h (TARGET_SWITCHES): Fix typo in option name.
3094
3095 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
3096
3097         * function.c (thread_prologue_and_epilogue_insns): Don't replace
3098         jumps with returns unless they are jumps to the fallthru block.
3099
3100 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
3101
3102         * i386.md (addqi3_cc): Fix contraints.
3103
3104 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
3105
3106         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
3107
3108 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
3109
3110         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
3111         carriage return after a macro name.
3112
3113 2000-02-07  Fred Fish  <fnf@be.com>
3114
3115         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
3116         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
3117
3118 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
3119
3120         * cppfiles.c (deps_output): Count spacers in deps_column.
3121
3122 2000-02-07  Neil Booth  <NeilB@earthling.net>
3123
3124         * cppinit.c (initialize_dependency_output): If there is no
3125         suffix, don't try to look for known suffixes.  Use strrchr.
3126         (cpp_start_read): Remove duplicate initialization.
3127
3128 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
3129
3130         * calls.c (compute_argument_block_size): New argument
3131         preferred_stack_boundary.
3132         (expand_call): update cfun->preferred_stack_boundary, update call of
3133         compute_argument_block_size
3134         (emit_library_call): Increate cfun->preferred_stack_boundary
3135         to PREFERRED_STACK_BOUNDARY
3136         (emit_library_call_value): Likewise.
3137         * explow.c (allocate_dynamic_stack_spave): Likewise.
3138         * function.c (prepare_function_start): Set
3139         cfun->preferred_stack_boundary
3140         * function.h (struct function): Add preferred_stack_boundary field.
3141         * integrate.c (expand_inline_function): Update
3142         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
3143         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
3144         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
3145
3146 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
3147
3148         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
3149         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
3150         cpp_pedwarn, cpp_pedwarn_with_line,
3151         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
3152         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
3153         v_cpp_error_with_line, v_cpp_warning_with_line,
3154         cpp_message_from_errno, cpp_perror_with_name): Delete.
3155
3156         * cpperror.c (cpp_print_containing_files): Take starting
3157         buffer as argument.
3158         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
3159         (v_cpp_message): Now called directly by all entry points.
3160         Remove -1 case.
3161         (cpp_pfatal_with_name, cpp_message): Delete.
3162         (cpp_notice_from_errno, cpp_ice): New functions.
3163         (cpp_notice): Is now for reporting error conditions, just
3164         without an associated file.
3165         (cpp_error, cpp_error_with_line): Don't do anything if
3166         opts->inhibit_errors is on.
3167         (cpp_pedwarn_with_file_and_line): Take column argument also.
3168
3169         * cpplib.h: Update prototypes of exported functions.
3170         (struct cpp_options): Add inhibit_errors.
3171
3172         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
3173         non-error messages.  Include intl.h.
3174
3175         * cppinit.c, cppmain.c: Likewise.  Also, use
3176         cpp_notice_from_errno instead of cpp_perror_with_name or
3177         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
3178
3179         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
3180         report internal errors.
3181
3182         * cpplib.c (do_define): Switch bcopy to memcpy.
3183         Give cpp_pedwarn_with_file_and_line a dummy column argument.
3184
3185         * cpplib.c (copy_rest_of_line): Revert previous change: don't
3186         bail out early if we hit a line comment.
3187
3188 2000-02-06  Richard Henderson  <rth@cygnus.com>
3189
3190         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
3191         * basic-block.h: Declare them.
3192         * emit-rtl.h (active_insn_p): New.
3193         (next_active_insn, prev_active_insn): Use it.
3194         * rtl.h: Declare it.
3195         * function.c (emit_return_into_block): New.
3196         (thread_prologue_and_epilogue_insns): Insert return insns instead
3197         of epilogues when possible.
3198         * jump.c (jump_optimize_1): Remove code to insert a return insn
3199         on the fallthru to the exit block.
3200
3201         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
3202         and for non-empty stack frames.
3203         * i386.md (return): Expand to return-pop as needed.
3204
3205 2000-02-06  Richard Henderson  <rth@cygnus.com>
3206
3207         * simplify-rtx.c (simplify_relational_operation): Canonicalize
3208         constant to op1 for testing.
3209
3210 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3211
3212         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
3213         (fixuns_truncqfqi2): Use it.
3214
3215 2000-02-06  Richard Henderson  <rth@cygnus.com>
3216
3217         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
3218         as a TYPE_LEA insn.
3219
3220         * i386.md (widening and peepholes): Mask the constant instead of
3221         using gen_lowpart.
3222
3223 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
3224
3225         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
3226         input pointer before possibly branching off to the backslash
3227         code.
3228         * cpphash.c (macroexpand): Correctly delete \r escapes when
3229         stringifying parameters.
3230         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
3231         if we can; bail out early if we hit a line comment.
3232         (handle_directive): Treat '# 123' in an .S file just like
3233         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
3234         Return 1 for '# not_a_directive'.
3235         (get_directive_token): Pop macro buffers here, so that
3236         cpp_get_token can't sneakily move past a newline.
3237         Add sanity checks. 
3238         (cpp_get_token): goto randomchar if handle_directive returns 0.
3239
3240         * cppalloc.c: Update copyright.
3241         * cpplib.c: Merge all the static function prototypes into one
3242         block.
3243         * cpplib.h: Remove #if 0 block.
3244
3245         * cpperror.c: Remove #ifdef EMACS block.
3246         * cppmain.c: Likewise.
3247         * cpphash.c: Remove #if 0 blocks.
3248         * cppinit.c: Remove #if 0 blocks, and the -lint option.
3249         * cpplib.c: Remove #if 0 blocks and code referencing
3250         pcp_inside_if or for_lint.  Remove duplicate error message.
3251         Fix error messages for #else after #else or #elif.  Reformat.
3252         Remove archaic TODO list.
3253         * cpplib.h: Remove pcp_inside_if and for_lint flags.
3254
3255 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
3256
3257         * i386/osf1elf.h: Add missing backslash to multiline string.
3258
3259 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3260
3261         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
3262
3263 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3264
3265         * Makefile.in (c-common.o): Depend on $(EXPR_H).
3266
3267         * c-common.c: Include expr.h.
3268
3269         * c-pragma.c (mark_align_stack): Add prototype.
3270
3271         * caller-save.c (add_stored_regs): Likewise.
3272
3273         * combine.c (record_promoted_value): Likewise.
3274
3275         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
3276         Likewise.
3277
3278         * cppinit.c (new_pending_define): Likewise.
3279
3280         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
3281
3282         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
3283         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
3284         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
3285         class_scope_p): Likewise.
3286
3287         * dwarf2out.h (dwarf2out_set_demangle_name_func,
3288         dwarf2out_add_library_unit_info): Likewise.
3289
3290         * ggc.h (ggc_page_print_statistics): Likewise.
3291
3292         * haifa-sched.c (propagate_deps): Likewise.
3293
3294         * reg-stack.c (next_flags_user, record_label_references): Likewise.
3295
3296         * rtl.h (set_stack_check_libfunc): Likewise.
3297
3298         * toplev.h (set_fatal_function): Likewise.
3299
3300         * toplev.c (set_fatal_function): Delete prototype.
3301         
3302         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
3303         
3304 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
3305
3306         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
3307         (FUNC_END): Likewise.
3308
3309 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3310
3311         * caller-save.c: Include tm_p.h.
3312
3313 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3314
3315         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
3316
3317 2000-02-04  Neil Booth  <NeilB@earthling.net>
3318
3319         * cccp.c (main): Check 'dir' for a NULL pointer before passing
3320         it to strcmp.
3321
3322 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
3323
3324         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
3325         * genflags.c: Use the max_operand_1 logic from genemit.c to
3326         calculate how many arguments gen_insn prototypes have.  Remove
3327         NO_MD_PROTOTYPES ifdefs from the generated file.
3328         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
3329         file.  Cast gen_insn initializers to insn_gen_fn.
3330         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
3331         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
3332
3333 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3334
3335         * fixinc/Makefile.in (HDR): Add machname.h.
3336         (clean): Likewise.
3337
3338 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3339
3340         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
3341         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
3342         (c4x_cpu_version): Ditto.
3343         * config/c4x/c4x-protos.h: ... here.
3344
3345 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
3346
3347         * dwarf2out.c (add_abstract_origin_attribute): Don't call
3348         gen_abstract_function on our context if we're a nested function.
3349
3350 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3351
3352         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
3353         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
3354
3355 2000-02-04  Bruce Korb  <bkorb@gnu.org>
3356
3357         * fixinc/genfixes(machname.h):
3358         Move the functionality from gen-machine.h into this file.
3359         UNdef MN_NAME_PAT if there are no names to change.
3360         Also, be a little kinder when AutoGen is not present.
3361
3362         * fixinc/Makefile.in(machname.h):
3363         Change the generation rule to use genfixes.
3364
3365         * fixinc/fixfixes.c(machine_name):
3366         machine_name_fix's functionality now dependent upon whether
3367         MN_NAME_PAT is defined.
3368
3369         * fixinc/fixtests.c(machine_name):
3370         ditto.
3371
3372         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
3373         of MN_NAME_PAT.
3374
3375         * fixinc/fixlib.h(mn_get_regexps):
3376         ditto
3377
3378         * fixinc/gen-machine.h: DELETED
3379
3380 2000-02-04  Jan Hubicka  <jh@suse.cz>
3381             Richard Henderson  <rth@cygnus.com>
3382
3383         * i386.c (SAVE_REGS_FIRST): Remove.
3384         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
3385         (ix86_compute_frame_size): Likewise.
3386         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
3387         (ix86_emit_restore_regs): Remove.
3388         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
3389         when a frame pointer is in use.
3390         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
3391         instead of pop to restore a register when profitable; emit leave
3392         when profitable.
3393         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
3394         as a TYPE_LEA insn.
3395         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
3396         * i386.md (prologue_allocate_stack): Remove.
3397         (epilogue_deallocate_stack): Remove.
3398         (pro_epilogue_adjust_stack): New.
3399
3400 2000-02-04  Richard Henderson  <rth@cygnus.com>
3401
3402         * function.c (diddle_return_value): Rework to use a callback function.
3403         Use current_function_return_rtx if it's been set up.
3404         (do_clobber_return_reg, clobber_return_register): New.
3405         (do_use_return_reg, use_return_register): New.
3406         (expand_function_end): Use them.
3407         * stmt.c (expand_null_return): Likewise.
3408         * function.h: Declare them.
3409         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
3410         (mark_reg): Change arguments as appropriate for callback.
3411         * integrate.c (expand_inline_function): Revert 19 Jan change.
3412
3413 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
3414
3415         * tm.texi (Values in Registers): Fix typo: "fo" "for".
3416         (Misc): Say the scheduler, not the Haifa scheduler.
3417
3418 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
3419
3420         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
3421         when in_mem is set.  Update all callers.
3422
3423 2000-02-04  Richard Henderson  <rth@cygnus.com>
3424
3425         * i386/openbsd.h (INT_ASM_OP): Define.
3426
3427 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
3428
3429         * tm.texi: Fix various typos.
3430
3431 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
3432
3433         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
3434         (MD_STARTFILE_PREFIX_1): New macro.
3435
3436 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
3437
3438         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
3439         destination when needed.
3440         (strmovsi, strsetsi): New expander.
3441         (strmovsi_1, strsetsi_1): New pattern.
3442         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
3443         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
3444         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
3445         * invoke.texi (align-stringops, inline-all-stringops): Document.
3446
3447 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
3448
3449         * i386/netbsd.h (INT_ASM_OP): Define.
3450
3451 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
3452
3453         * cpplib.h (cpp_reader): Add new flag, no_directives.
3454         * cpphash.c (macarg): Set it.
3455         * cpplib.c (handle_directive): If no_directives is on and we
3456         find a directive, issue an error and discard the line.
3457
3458 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
3459
3460         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
3461         FP constants.  Add ! TARGET_FPU check for FP constants.
3462
3463 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
3464         
3465         * flow.c (find_basic_blocks): Don't kill label_value_list
3466         here.
3467         (cleanup_cfg): Kill it here.
3468
3469 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3470
3471         * expr.c (store_field): Ensure ALIGN is no stricter than the
3472         alignment of EXP.
3473
3474 2000-02-02  Richard Henderson  <rth@cygnus.com>
3475
3476         * jump.c (delete_insn): Partially revert 19 Jan change; 
3477         don't convert unused code labels to notes at -O0.
3478
3479 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3480
3481         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
3482         split_all_insns to recreate REG_LABEL notes for flow2 pass.
3483
3484 2000-02-01  Richard Henderson  <rth@cygnus.com>
3485
3486         * i386.c (general_no_elim_operand): New.
3487         (nonmemory_no_elim_operand): New.
3488         (ix86_expand_move): Copy eliminable operands before a push.
3489         * i386-protos.h: Declare new functions.
3490         * i386.h (CAN_ELIMINATE): Simplify.
3491         (PREDICATE_CODES): Update.
3492         * i386.md (push insns): Don't allow eliminable register operands.
3493
3494 2000-02-01  Richard Henderson  <rth@cygnus.com>
3495
3496         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
3497         replace BLKmode with DECL_RTL's mode.
3498
3499 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
3500
3501         * frame.c (find_fde): Convert for loop to do-while so compiler
3502         sees it's always executed at least once.
3503         * libgcc2.c (BBINBUFSIZE): Kill.
3504         (__bb_init_prg): Use fgets.
3505         (__bb_exit_trace_func): Don't paste strings.
3506         * unroll.c (unroll_loop): Initialize unroll_type, not
3507         unroll_number, and tweak logic to match.
3508
3509         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
3510         all failure paths.
3511         (ix86_flags_dependant): Likewise.  Disentangle control flow.
3512         (ix86_sched_reorder): Break guts out to
3513         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
3514         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
3515         any possible use.
3516
3517         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
3518         use string concatenation.  Don't save and restore esi.
3519
3520         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
3521         (machname.h): Remove script to separate file.  Use two-step
3522         sequence so target is not created if script fails.
3523         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
3524         identifiers are defined.
3525         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
3526         an empty string, machine_name doesn't need to do anything at
3527         all.
3528         (is_cxx_header): Add more cases to regexp.
3529         * fixinc/fixlib.h: Update prototype.
3530         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
3531         mn_get_regexps.
3532         * fixinc/fixincl.c: Define NO_BOGOSITY.
3533
3534         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
3535         (hp_sysfile): Add missing comma.
3536         (math_exception): Put the wrapper ifdefs at the beginning and
3537         the end of the file.
3538         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
3539
3540 2000-02-01  Richard Henderson  <rth@cygnus.com>
3541
3542         * sparc.c (fp_zero_operand): Turn into a normal predicate.
3543         Use CONST0_RTX.  Update all callers.
3544         * sparc.h, sparc-protos.h: Update accordingly.
3545         * sparc.md (fp mov insns): Use fp_zero_operand directly
3546         where applicable.
3547
3548 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
3549
3550         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
3551         example.
3552
3553 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3554
3555         * Makefile.in (specs.ready): New target.
3556         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
3557
3558 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3559
3560         * fixinc.irix: Use unique filenames for writing into /tmp,
3561         * fixinc.ptx: Likewise.
3562         * fixinc.sco: Likewise.
3563         * fixinc.svr4: Likewise.
3564         * fixinc.winnt: Likewise.
3565
3566 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3567
3568         * tsystem.h: New file.
3569
3570         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
3571         s-crtS): Depend on tsystem.h.
3572
3573         * crtstuff.c: Include tsystem.h.
3574         * frame.c: Likewise.
3575         * libgcc2.c: Likewise.
3576
3577 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
3578
3579         * builtins.c (expand_builtin_memset): Expand for variable sized
3580         lengths too.
3581
3582 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au> 
3583
3584         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
3585         on ABI.
3586
3587 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
3588
3589         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
3590
3591         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
3592
3593 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
3594
3595         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
3596         case 3->2 combining (combining with splitting) in which 2 is CC0
3597         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are 
3598         checked at the begining of the function with the aid of calling 
3599         function 'can_combine_p'. 
3600
3601 2000-01-31  Dave Brolley  <brolley@redhat.com>
3602
3603         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
3604
3605 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
3606
3607         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
3608         new label.
3609
3610 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3611
3612         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
3613         
3614         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
3615         PROTO -> PARAMS.
3616
3617 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
3618
3619         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
3620         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
3621         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
3622         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
3623         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
3624         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
3625         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
3626         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
3627         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
3628         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
3629         
3630         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
3631         Add %(cpp_cpu) to CPP_SPEC.
3632
3633         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
3634         Add %(cc1_cpu) to CC1_SPEC.
3635
3636 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
3637
3638         * c-decl.c (c_decode_option): Accept optional numeric argument to
3639         -Wformat and set warn_format.
3640         * c-common.c: Don't emit warning about non-constant printf format
3641         string unless warn_format > 1.
3642
3643 2000-01-30  Richard Henderson  <rth@cygnus.com>
3644
3645         * alpha.md (return_internal): Allow after reload only.
3646
3647 2000-01-30  Richard Henderson  <rth@cygnus.com>
3648
3649         * i386.c (ix86_compute_frame_size): Omit padding1 if the
3650         local frame size is zero.
3651
3652 2000-01-30  Richard Henderson  <rth@cygnus.com>
3653
3654         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
3655         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
3656         * alpha.md (return): Turn into an expander.
3657         (return_internal): Don't use $26.
3658         (epilogue): Emit the return insn.
3659
3660 2000-01-30  Richard Henderson  <rth@cygnus.com>
3661
3662         * alpha.md (negtf2, abstf2): Fix word order thinko.
3663         (extendsftf2): New.
3664         (trunctfsf2): Avoid intermediate rounding errors.
3665
3666 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
3667
3668         * cppfiles.c (find_position): Drop 'colp' argument, return the
3669         new line base.
3670         (read_and_prescan): Adjust to match.  Don't ever manipulate
3671         line or line_base except via find_position.
3672
3673 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
3674
3675         * c-parse.in: Apply Ulrich's changes from c-parse.y.
3676         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
3677         Regenerate.
3678
3679 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
3680
3681         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
3682         just print "<command line>".  If 'filename' is null or an
3683         empty string, print "<stdin>" for the filename.
3684         * cpplib.c (do_define): Don't print the 'location of the
3685         previous definition' message if we're still parsing the
3686         command line.
3687         (cpp_pedwarn_with_file_and_line): Always call
3688         cpp_file_line_for_message.
3689
3690 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
3691
3692         * flow.c (mark_regs_live_at_end): Fix typo.
3693
3694 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
3695
3696         * c-common.c: Adjust variable names, comments, help strings to c99.
3697         * c-lex.c: Likewise.
3698         * c-parse.y: Likewise.
3699         * c-tree.h: Likewise.
3700         * cccp.c: Likewise.
3701         * cpplib.h: Likewise.
3702         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
3703         * cppinit.c: Likewise.
3704
3705 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3706
3707         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
3708         * c4x.c: Define the optab rtx values.
3709         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
3710         (c4x_emit_libcall): Use new optab rtx values.
3711         (c4x_emit_libcall3): Likewise.
3712         (c4x_emit_libcall_mulhi): Likewise.
3713         * c4x-protos.h: Add prototypes for optab rtx values and change
3714         prototypes for above c4x_emit_libcall functions.
3715
3716 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3717
3718         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
3719         syntax is used.
3720         (c4x_function_prologue): Use regnames intead of float_reg_names when
3721         TI syntax is used.
3722         (c4x_function_epilogue): Likewise.
3723         (c4x_print_operand): Likewise.
3724         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
3725         * c4x.md (set_high): Disable for TARGET_TI.
3726
3727 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3728
3729         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
3730         of framepointer + constant to ADDR_REGS class.
3731         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
3732         * c4x.c (std_or_reg_operand): New function.
3733         * c4x-protos.h (std_or_reg_operand): Prototype it.
3734
3735 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3736
3737         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
3738                 object names as libgcc2.c.
3739         * libgcc.S: Use newly defined names.
3740
3741 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
3742         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
3743         function.
3744         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
3745         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
3746         (FLOW_LOOP_LAST_BLOCK): Likewise.
3747
3748 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3749
3750         * basic-block.h (struct loop): New fields 'first' and 'last'.
3751         * flow.c (flow_loops_find): Compute loop->first and loop->last.
3752         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
3753         and loop->last to check for NOTE_INSN_LOOP_END.
3754
3755 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
3756
3757         * predict.c (estimate_probability): Use the new FIRST and LAST fields
3758         of the loop descriptor rather than HEADER and LATCH. Also added
3759         missing break statements as well making some coding style modifications
3760         as suggested by Michael Hayes.
3761
3762 2000-01-28  Richard Henderson  <rth@cygnus.com>
3763
3764         * flow.c (find_basic_blocks): Remove do_cleanup argument.
3765         Break out that code ...
3766         (cleanup_cfg): ... here.
3767         (commit_one_edge_insertion): Detect a return instruction being
3768         emitted to an edge.  Emit a barrier following; clear fallthru.
3769         (commit_edge_insertions): Verify CFG consistency.
3770         * function.c (expand_function_start): Kill unused variable.
3771         (expand_function_end): Likewise.
3772         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
3773         to insert the epilogue.
3774
3775         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
3776         (delete_null_pointer_checks): Likewise.
3777         * output.h: Likewise.
3778         * reg-stack.c (reg_to_stack): Likewise.
3779         * toplev.c (rest_of_compilation): Likewise.  Run
3780         thread_prologue_and_epilogue_insns after rebuilding the CFG.
3781
3782 2000-01-28  Richard Henderson  <rth@cygnus.com>
3783
3784         * Makefile.in (flow.o): Revert 24 Jan change.
3785         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
3786         FUNCTION_VALUE result to DECL_RESULT's mode.
3787
3788         * haifa-sched.c (schedule_insns): Don't recompute reg info
3789         after reload.
3790
3791 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
3792
3793         * configure.in: Make --enable-cpplib the default.
3794         * configure: Regenerate.
3795         * gcc.dg/990119-1.c: No longer expected to fail.
3796
3797 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
3798
3799         * jump.c (jump_optimize_1): Delete an optimization that is also done
3800         by merge_blocks in flow.
3801
3802 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3803
3804         * diagnostic.c (build_message_string, output_printf,
3805         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
3806         (build_location_prefix): Fix non-literal format string.
3807
3808 2000-01-27  Richard Henderson  <rth@cygnus.com>
3809
3810         * alpha.md (trunctfsf2): New.
3811
3812 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
3813
3814         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
3815
3816 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
3817
3818         * cppinit.c (cpp_handle_option): Recognize C++ comments under
3819         -std=gnu89.
3820         * cpplib.c (skip_block_comment, skip_line_comment): Split code
3821         out of...
3822         (skip_comment) ... here.  Permit C++ comments in system
3823         headers always.  Warn about C++ comments in user code under
3824         -std=gnu89 -pedantic.
3825         (copy_comment): Use skip_comment.
3826         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
3827         return EOF.
3828         (consider_directive_while_skipping, do_else, do_endif): Call
3829         validate_else unconditionally.
3830         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
3831         text after the conditional in a system header.
3832         * cpplib.h (struct cpp_buffer): Add flag
3833         warned_cplusplus_comments.
3834
3835 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
3836
3837         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
3838         Use unshare_all_rtl_1.
3839         (unshare_all_rtl_again): New function.
3840         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
3841
3842         * function.c (purge_addressof_1): Use unshare_all_rtl_again
3843         rather than resetting the 'used' flags ourself.
3844
3845         * toplev.c (rest_of_compilation): Add current_function_decl
3846         to the unshare_all_rtl call.
3847         * tree.h: Prototype unshare_all_rtl.
3848         * rtl.h: Prototype unshare_all_rtl_again here.
3849
3850 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
3851
3852         * genoutput.c (output_prologue): Include ggc.h in generated
3853         files.
3854         * Makefile.in (insn-output.o): Depends on ggc.h.
3855
3856 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
3857             Hans-Peter Nilsson  <hp@bitrange.com>
3858
3859         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
3860         Remove redundant include of xm-ns32k.h.
3861         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
3862         Remove redundant include of xm-ns32k.h.
3863         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
3864         Remove redundant include of xm-ns32k.h.
3865         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
3866
3867         * ns32k/ns32k.h: Update comment on multiply-add instructions.
3868         (TARGET_SWITCHES): Add documentation strings.
3869         (DWARF_FRAME_REGNUM): Override default definition.
3870         (REG_CLASS_CONTENTS): Add comments.
3871         (SUBSET_P): Format to reduce line length.
3872         (SMALL_REGISTER_CLASSES): Make a run time option.
3873         (GO_IF_NONINDEXED_ADDRESS): Reformat.
3874         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
3875         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
3876         (regclass_map): fix typo in comment.
3877         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
3878         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
3879         (trace, reg_or_mem_operand): Delete, unused function.
3880         (calc_address_cost): Small offsets are cheaper than large ones.
3881         (expand_block_move): Generate more efficient code when bytes is a
3882         known at compile time.
3883         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
3884         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
3885         instead of reg_or_mem_operand.
3886
3887         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
3888         not general_operand.  Similarly use "=rm" or stricter, not "=g".
3889         For input operands, use stricter constraints than "g" if not
3890         general_operand.  Similarly use stricter predicate than
3891         "general_operand" when stricter constraints than "g" are present,
3892         except for matching constraints.
3893         (movstrsi): Use "memory_operand" for operands 0 and 1.
3894         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
3895         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
3896         not reg_or_mem_operand.
3897         (udivmoddisi4): Ditto.
3898         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
3899         Use nonimmediate_operand for operand 3, not register_operand.
3900         (udivmoddiqi4_internal): Use register_operand for operand 1, not
3901         reg_or_mem_operand.
3902
3903 2000-01-27  Fred Fish  <fnf@be.com>
3904
3905         * gthr-posix.h: Fix typo; compatibily -> compatibility.
3906         * gthr-single.h: Likewise.
3907         * gthr-solaris.h: Likewise.
3908         * gthr-vxworks.h: Likewise.
3909         * gthr-win32.h: Likewise.
3910         * gthr.h: Likewise.
3911
3912 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
3913
3914         * cppinit.c: Add " (cpplib)" to end of string printed by
3915         -v / --version.
3916
3917 2000-01-27  Richard Henderson  <rth@cygnus.com>
3918
3919         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
3920         testing for a signed comparison.
3921         (alpha_emit_floatuns): New.
3922         * alpha-protos.h: Declare it.
3923         * alpha.md (floatunsdisf2, floatunsdidf2): New.
3924         (extendsfdf2): Tidy.
3925
3926 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
3927
3928         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
3929         no -g option specifying debugging format, default to -gstabs+.
3930
3931 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3932
3933         * calls.c (special_function_p): New argument fork_or_exec.
3934         (expand_call): When profile_arc_flag is set and the function
3935         is in the fork_or_exec group, call __bb_fork_func first.
3936         * libgcc2.c, _bb module (__bb_fork_func): New function.
3937         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
3938         output file.
3939         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
3940         * tree.h (special_function_p): Update prototype.
3941
3942 2000-01-26  Richard Henderson  <rth@cygnus.com>
3943
3944         * alpha.c (alpha_split_tfmode_pair): New.
3945         * alpha-protos.h: Declare it.
3946         * alpha.md (abstf2, negtf2): New.
3947         (movtf insn): Add input G constraint.
3948         (movtf splitter): Use alpha_split_tfmode_pair.
3949
3950 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3951
3952         * i386/cygwin.h: PROTO -> PARAMS.
3953
3954 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
3955
3956         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
3957         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
3958         using _Qp_cmp/_Q_cmp and testing the return value.
3959         (print_operand): Call reverse_condition_maybe_unordered if
3960         we are handling CCFPmode or CCFPEmode.
3961         Handle ORDERED, UN* and LTGT comparisons.
3962         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
3963         if not TARGET_HARD_QUAD.
3964         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
3965         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
3966         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
3967         Adjust gen_b* calls so that they reflect return comparison of
3968         sparc_emit_float_lib_cmp.
3969
3970 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3971
3972         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
3973         incoming operands array is large enough for one more operand.
3974         (alpha_emit_xfloating_arith): Likewise.
3975
3976 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
3977
3978         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
3979         file with one line and no trailing newline.
3980         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
3981         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
3982         checking if the match is on the line.
3983         * fixinc/gnu-regex.c: Provide regerror not __regerror.
3984
3985 2000-01-25  Richard Henderson  <rth@cygnus.com>
3986
3987         * sparc.c (output_cbranch): Fix accidental squashing of the
3988         fp branch pre-delay nop.
3989
3990 2000-01-25  Richard Henderson  <rth@cygnus.com>
3991
3992         * tree.def (UNNE_EXPR): Remove.
3993         * c-typeck.c (build_binary_op): Don't handle it.
3994         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
3995
3996         * rtl.def (UNNE): Remove.
3997         (LTGT): Add.
3998         * jump.c (reverse_condition): Update accordingly.
3999         (swap_condition): Likewise.
4000         (comparison_dominates_p): Handle unordered comparisons.
4001         (reverse_condition_maybe_unordered): New.
4002         * rtl.h (reverse_condition_maybe_unordered): Declare.
4003
4004         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
4005         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
4006         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
4007         * sparc.md (bltgt): New.
4008
4009 2000-01-25  Nick Clifton  <nickc@redhat.com>
4010
4011         * emit-rtl.c (emit_insn): Only check machine class insns for
4012         improper emission of a RETURN.
4013
4014 2000-01-25  Richard Henderson  <rth@cygnus.com>
4015
4016         * Makefile.in (flow.o): Depend on $(EXPR_H).
4017         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
4018         duplicate the structure of diddle_return_value for keeping regs live.
4019
4020 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4021
4022         * loop.c (current_loop_info): Delete.
4023         (consec_sets_invariant_p): Add loop argument, update callers.
4024         (get_condition_for_loop): Likewise.
4025         (count_nonfixed_reads, update_giv_derive): Likewise.
4026         (simplify_giv_expr, general_induction_var): Likewise.
4027         (consec_sets_giv, recombine_givs): Likewise.
4028         (move_movables): Delete loop_start and loop_end arguments,
4029         add loop argument, and update callers.
4030         (find_mem_givs, check_final_value): Likewise.
4031         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
4032         (loop_invariant_p): Rename from invariant_p, add loop argument, and
4033         update callers.
4034         (basic_induction_var): Add loop argument, delete loop_level argument,
4035         and update callers.
4036         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
4037         add loop argument, and update callers.
4038         (find_splittable_regs, find_splittable_givs): Likewise.
4039         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
4040         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
4041         (biv_total_increment): Delete loop_start and loop_end arguments;
4042         update callers.
4043         (precondition_loop_p): Delete loop_start and loop_info arguments;
4044         update callers.
4045         * loop.h (get_condition_for_loop): Add loop argument.
4046         (biv_total_increment): Delete loop_start and loop_end arguments.
4047         (precondition_loop_p): Delete loop_start and loop_info arguments;
4048         add loop argument.
4049         (final_biv_value): Delete loop_start and loop_end arguments;
4050         add loop argument.
4051         (final_giv_value, back_branch_in_range_p): Likewise.
4052
4053 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
4054
4055         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
4056
4057 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
4058
4059         * Makefile.in (c-gperf.h) : Change the "See" pointer to
4060         point to the new "generated_files" doc.
4061
4062 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
4063
4064         * config/fp-bit.c (_unord_f2): Fix typo.
4065
4066 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
4067
4068         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
4069         c-typeck.c, objc/objc-act.c: Remove all references to obstack
4070         functions obsoleted by GC, such as push_obstacks_nochange,
4071         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
4072         and code which existed only to decide whether or not to call
4073         them.  Remove now-unused NESTED argument from start_function;
4074         all callers changed.  Do not change behavior based on ggc_p.
4075         The use of the ixp_obstack in c-iterate.c and the util_obstack
4076         in objc/objc-act.c remain; these are not obsoleted by garbage
4077         collection.
4078         * c-tree.h: Update prototype for start_function.
4079
4080         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
4081
4082 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
4083
4084         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
4085         mips16.
4086
4087 2000-01-25  Richard Henderson  <rth@cygnus.com>
4088
4089         * sparc-protos.h (select_cc_mode): Declare.
4090         * sparc.c (select_cc_mode): New.  Handle unordered compares.
4091         (output_cbranch): Always reverse via code change.  Handle
4092         unordered compares.  Factor tests and string updates.
4093         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
4094         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
4095         * sparc.md (bunordered, bordered): New.
4096         (bungt, bunlt, buneq, bunge, bunle): New.
4097
4098 2000-01-25  Richard Henderson  <rth@cygnus.com>
4099
4100         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
4101         * ggc-common.c (ggc_add_rtx_varray_root): New.
4102         (ggc_mark_rtx_varray): New.
4103         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
4104         functions down below ggc_mark_foo.
4105         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
4106
4107 2000-01-25  Richard Henderson  <rth@cygnus.com>
4108
4109         * alpha.c (secondary_reload_class): Don't allocate a secondary
4110         for integral mode memories into FLOAT_REGS.  Rearrange the more
4111         complicated memory expression inward.
4112
4113 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
4114
4115         * inclhack.def: Fixes to play nicer with FreeBSD, and
4116         corrections to comments.
4117         (cxx_unready): Add select expression.
4118         (irix_sockaddr): Add bypass expression.
4119         (machine_ansi_h_va_list): New fix.
4120         (stdio_va_list): No need to edit _BSD_VA_LIST_.
4121         Split out addition of "#include <stdarg.h>" to...
4122         (stdio_stdarg_h): ... here.
4123         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
4124         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
4125         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
4126         size_t.
4127         (ultrix_ifdef): Tighten up select expression.
4128
4129         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
4130         re_ct and max_mach to avoid use of shell.  Make printed names
4131         match names in inclhack.def.  Use static copyright date.
4132         Don't count c_test and test expressions as requiring regex_t
4133         slots.  Add some commentary.
4134         * inclhack.tpl: Do not include the 'This script contains N
4135         fixup scripts' line if PROGRAM is defined.  Use static
4136         copyright date.
4137
4138 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
4139
4140         * dwarf2out.c: include "varray.h", not dyn-string.h.
4141         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
4142         (addr_const_to_string, addr_to_string): Lose.
4143         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
4144         (struct dw_val_struct): val_addr is now an rtx.
4145         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
4146         (used_rtx_varray): New varray.
4147         (dwarf2out_init): Initialize it.
4148         (save_rtx): New fn.
4149         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
4150         addr_to_string.
4151         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
4152         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
4153         * Makefile.in (dwarf2out.o): Update dependencies.
4154
4155 2000-01-24  Richard Henderson  <rth@cygnus.com>
4156
4157         * i386.c (i386_dwarf_output_addr_const): New.
4158         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
4159
4160         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
4161         if defined.
4162         * dwarfout.c (output_mem_loc_descriptor): Likewise.
4163         * i386.c (i386_simplify_dwarf_addr): New.
4164         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
4165
4166 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
4167
4168         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
4169         TYPE_STUB_DECL is NULL.
4170
4171 2000-01-24  Richard Henderson  <rth@cygnus.com>
4172
4173         * builtins.c (expand_tree_builtin): Move ...
4174         * c-common.c (expand_tree_builtin): ... here.
4175
4176 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4177
4178         * loop.h (LOOP_INFO): New accessor macro.
4179         * basic-block.h (struct loop): Rename field `info' to `aux'.
4180         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
4181         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
4182         * unroll.c (loop_iterations, unroll_loop): Likewise.
4183
4184 2000-01-24  Christopher Faylor <cgf@cygnus.com>
4185
4186         * config/i386/t-cygwin: Accomodate new winsup directory layout
4187         when searching for include files.
4188
4189 2000-01-24  Richard Henderson  <rth@cygnus.com>
4190
4191         * rtl.def: Add unordered fp comparisions.
4192         * tree.def: Likewise.
4193         * tree.h: Add ISO C 9x unordered fp comparision builtins.
4194
4195         * builtins.c (expand_tree_builtin): New function.
4196         * c-typeck.c (build_function_call): Use it.
4197         (build_binary_op): Support unordered compares.
4198         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
4199
4200         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
4201         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
4202         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
4203         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
4204         * jump.c (reverse_condition): Don't abort for UNLE etc, but
4205         return UNKNOWN.
4206         (swap_condition): Handle unordered compares.
4207         (thread_jumps): Check can_reverse before reversing.
4208         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
4209         reversed for FP.
4210
4211         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
4212         setcc is present before acking for cmp_optab.  Update all callers.
4213         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
4214         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
4215         * expr.c (expand_expr): Likewise.  Support unordered compares.
4216         (do_jump, do_store_flag): Likewise.
4217         * expr.h (enum libfunc_index): Add unordered compares.
4218
4219         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
4220         (DPBIT_FUNCS): Add _unord_df.
4221         * config/fp-bit.c (_unord_f2): New.
4222         * fp-test.c (main): Try unordered compare builtins.
4223
4224         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
4225         * alpha.c (alpha_comparison_operator): Check mode properly.
4226         (alpha_swapped_comparison_operator): Likewise.
4227         (signed_comparison_operator): Likewise.
4228         (alpha_fp_comparison_operator): New.
4229         (alpha_emit_conditional_branch): Handle unordered compares.
4230         * alpha.h (PREDICATE_CODES): Update.
4231         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
4232         (bunordered, bordered): New.
4233
4234 2000-01-24  Richard Henderson  <rth@cygnus.com>
4235
4236         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
4237         * alpha.md (movtf): New expander, insn, and splitter.
4238
4239 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
4240
4241         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
4242         dead registers.
4243
4244 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
4245
4246         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
4247         (FIXED_REGISTERS, CALL_USED_REGISTERS,
4248          REG_ALLOC_ORDER): Add frame pointer
4249         (FRAME_POINTER_REGNUM): Set to 20
4250         (HARD_FRAME_POINTER_REGNUM): New macro.
4251         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
4252         to HARD_FRAME_POINTER.
4253         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
4254         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
4255         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
4256         (HI_REGISTER_NAMES): Add "frame".
4257         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
4258         (debug_reg): Handle FRAME_POINTER_REGNUM.
4259         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
4260         GENERAL_REGS and INDEX_REGS.
4261         * i386.c (SAVED_REGS_FIRST): new macro.
4262         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
4263         (ix86_decompose_address, memory_address_length): Likewise.
4264         (regclass_map): Add frame pointer.
4265         (call_insn_operand): Handle frame_pointer_rtx.
4266         (reg_no_sp_operand): Likewise.
4267         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
4268         (print_operand, legitimize_pic_address): Fix formating.
4269         (ix86_compute_frame_size): Make static, update prototype, new
4270         parameters padding1, padding2, use ix86_nsaved_regs, use
4271         stack_alignment_needed.
4272         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
4273         to HARD_FRAME_POINTER_REGNUM conversions.
4274         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
4275         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
4276         (print_reg): Abort on FRAME_POINTER_REGNUM
4277
4278 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
4279
4280         * i386.h (PREDICATE_CODES): Add aligned_operand.
4281         * i386.c (aligned_operand): New function.
4282         (ix86_aligned_p): Kill.
4283         * i386.md (movhi_1): Emit mov for aligned operands.
4284         (promoting peep2s): Use aligned_operand.
4285
4286 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
4287
4288         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
4289         expression to allow underscores in macro names.
4290         (fix_char_macro_defines): Increment scanning pointer.
4291
4292 2000-01-23  Richard Henderson  <rth@cygnus.com>
4293
4294         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
4295         * alpha/osf5.h: New file.
4296         * configure.in (alpha-*-osf5): Add it to tm_file.
4297
4298         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
4299
4300         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
4301         (alpha_emit_xfloating_cvt, function_arg): Declare.
4302         * alpha.c (alpha_emit_conditional_branch): Call
4303         alpha_emit_xfloating_compare for TFmode compares.
4304         (alpha_lookup_xfloating_lib_func): New.
4305         (alpha_compute_xfloating_mode_arg): New.
4306         (alpha_emit_xfloating_libcall): New.
4307         (alpha_emit_xfloating_arith): New.
4308         (alpha_emit_xfloating_compare): New.
4309         (alpha_emit_xfloating_cvt): New.
4310         (print_operand): Add default abort case.
4311         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
4312         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
4313         (BIGGEST_ALIGNMENT): Increase to 128 bits.
4314         (RETURN_IN_MEMORY): True for TF/TCmode.
4315         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
4316         (FUNCTION_ARG): Move to function_arg.
4317         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
4318         (ASM_OUTPUT_LONG_DOUBLE): New.
4319         (ASM_OUTPUT_DOUBLE): Always output bits.
4320         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
4321         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
4322         (extenddftf2, trunctfdf2): New.
4323
4324 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4325
4326         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
4327         * config/sparc/sol2.h: ... here.
4328
4329 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4330
4331         * basic-block.h (struct loops): New field `levels'.
4332         * flow.c (flow_loops_level_compute): Traverse all outer loops.
4333         (flow_loop_level_compute): Initialise level to 1.
4334         (flow_loops_find): Set loops->levels.
4335         (flow_loops_dump): Print loops->levels.
4336
4337 2000-01-23  Richard Henderson  <rth@cygnus.com>
4338
4339         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
4340         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
4341
4342 2000-01-23  Richard Henderson  <rth@cygnus.com>
4343
4344         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
4345         * i386.h (DBX_REGISTER_NUMBER): Use them.
4346         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
4347         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
4348         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
4349         * i386/sequent.h: Kill incorrect comment.
4350
4351 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
4352
4353         * ggc-page.c (struct page_entry): Make `context_depth' an
4354         `unsigned short'.
4355         (struct globals): Likewise.
4356
4357 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
4358
4359         * loop.c (check_dbra_loop): When checking a loop for
4360         reversability, check the source of any stores to ensure
4361         they don't depend on an initial value.
4362
4363 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4364
4365         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
4366
4367 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
4368
4369         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
4370         'pz_scan' into scope of entire function.  Only affects
4371         compiles with -DDEBUG.
4372
4373 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
4374
4375         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
4376         section naming to that prior to 2000-01-07 patch.
4377         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
4378         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
4379         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
4380         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
4381         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
4382
4383 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
4384
4385         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
4386         constant.
4387
4388 2000-01-21  Jim Wilson  <wilson@cygnus.com>
4389
4390         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
4391         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
4392
4393 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
4394
4395         * cpphash.c (change_newlines): Delete function.
4396         (struct argdata): Delete 'newlines' and 'use_count' fields.
4397         (macroexpand): Remove code referencing those fields.
4398
4399 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4400
4401         * loop.c (loops_info): New variable.
4402         (loop_optimize): Allocate loops->array and free it on exit.
4403         Allocate memory for loops_info and assign to each loop,
4404         replacing alloca.
4405         (find_and_verify_loops): Do not allocate loops->array.
4406
4407 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
4408
4409         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
4410
4411 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
4412
4413         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
4414         pseudos if expanded after first flow.
4415         (movdi_pic_label_ref): Likewise.
4416
4417 2000-01-20  Richard Henderson  <rth@cygnus.com>
4418
4419         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
4420
4421 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
4422
4423         * Makefile.in (fixinc.sh): Depend on specs.
4424         * fixinc/Makefile.in: Add rule to create machname.h.
4425         (fixlib.o): Depend on machname.h.
4426         * fixinc/fixtests.c (machine_name): New test.
4427         * fixinc/fixfixes.c (machine_name): New fix.
4428         * fixinc/fixlib.c (mn_get_regexps): New helper function for
4429         the machine_name test and fix.
4430         * fixinc/fixlib.h: Prototype it.
4431         * fixinc/inclhack.def (machine_name): Use the C test and fix.
4432         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
4433
4434         * gcc.c (do_spec_1) [case P]: Take care not to create
4435         identifiers with three leading or trailing underscores.
4436
4437         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
4438         (fixincl): Don't specify libraries twice on link line.
4439         (gnu-regex.o): Remove special rule.
4440         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
4441         defined by config.h.  Do not define _REGEX_RE_COMP.
4442         (regcomp): Allocate and initialize a fastmap.
4443         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
4444
4445 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
4446
4447         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
4448
4449 2000-01-19  Richard Henderson  <rth@cygnus.com>
4450
4451         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
4452         arguments with BB.  Update all callers.  Tidy line wrapping.
4453
4454 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
4455
4456         * emit-rtl.c (try_split): Return last_insn if we split the
4457         last_insn.
4458
4459 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
4460
4461         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
4462         (ix86_initial_elimination_offset): Declare.
4463         * i386.c (ix86_nsaved_regs): Break out from ...
4464         (ix86_can_use_return_insn_p): ... here.
4465         (ix86_emit_save_regs): Break out from ...
4466         (ix86_expand_prologue): ... here.
4467         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
4468         out from ...
4469         (ix86_expand_epilogue): ... here.
4470         (ix86_compute_frame_size): Make static, add prototype.
4471         (ix86_initial_elimination_offset): Break out from ...
4472         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
4473
4474 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4475
4476         * recog.h (OUT_FCN): Delete.
4477
4478         * vax.md: Call `get_insn_template' instead of OUT_FCN.
4479
4480 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4481
4482         * cppalloc.c: PROTO -> PARAMS.
4483         * cpperror.c: Likewise.
4484         * cppfiles.c: Likewise.
4485         * cpplib.c: Likewise.
4486         * cpplib.h: Likewise.
4487
4488         * config/arm/arm-protos.h: PROTO -> PARAMS.
4489         * config/arm/arm.c: Likewise.
4490         * config/c4x/c4x.c: Likewise.
4491         * config/fr30/fr30-protos.h: Likewise.
4492         * config/nextstep.c: Likewise.
4493         * config/pa/pa.c: Likewise.
4494         * config/pj/pj.c: Likewise.
4495         * config/rs6000/rs6000.c: Likewise.
4496         * config/v850/v850-protos.h: Likewise.
4497         * config/v850/v850.c: Likewise.
4498
4499 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4500
4501         * i370-protos.h: New file.
4502
4503         * i370.c: Include tm_p.h.  Fix compile time warnings.
4504
4505         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
4506         warnings.
4507
4508         * i370.md: Likewise.
4509
4510 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4511
4512         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
4513         (target_isinf, target_isnan, eisnan): Mark parameter with
4514         ATTRIBUTE_UNUSED.
4515         (eiisinf): Wrap in INFINITY.
4516         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
4517         (ibmtoe): Remove unused variable `rndsav'.
4518
4519 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4520
4521         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
4522         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
4523
4524 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
4525
4526         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
4527         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
4528         (fix_char_macro_defines, fix_char_macro_uses): New functions.
4529
4530         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
4531         Recognize Emacs mode markers also.
4532         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
4533         C++ comments in C++ headers.  Call is_cxx_header only if
4534         necessary.
4535
4536         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
4537         bypass for ncurses.
4538         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
4539         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
4540         ... these, which use the new C fixes.
4541         (math_exception): Escape literal '+' in bypass expression.
4542
4543         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
4544         Regenerate.
4545
4546 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
4547
4548         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
4549         inside the MEM.
4550
4551 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4552
4553         * loop.c (loop_optimize): Allocate loop_info structure for each loop
4554         prior to calling scan_loop.
4555
4556 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4557
4558         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
4559         (split_branches, calc_live_regs): Likewise.
4560
4561 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4562
4563         * sh.md (fpu_single, fp_mode): New attributes.
4564
4565 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4566
4567         * loop.c (current_loop_info): Renamed from loop_info_data
4568         and changed to a pointer.
4569         (loop_optimize): Allocate loop_info structure for each loop
4570         and initialise to zero.
4571         (scan_loop): Set current_loop_info.
4572
4573         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
4574         on iteration_var.
4575
4576 2000-01-19  Richard Henderson  <rth@cygnus.com>
4577
4578         * stupid.c: Die die die.
4579         * Makefile.in (OBJS): Remove stupid.o.
4580         (stupid.o): Likewise.
4581
4582         * except.c (emit_eh_context): Don't emit USEs for stupid.
4583         * explow.c (probe_stack_range): Likewise.
4584         * flags.h (obey_regdecls): Remove.
4585         * flow.c (find_basic_blocks): Don't run try_merge_blocks
4586         when not optimizing.
4587         (life_analysis): Limit data collection when not optimizing.
4588         (mark_regs_live_at_end): Always mark the return value registers.
4589         (mark_used_regs): Remove dummy RETURN case.
4590         (print_rtl_with_bb): Don't consult obey_regdecls.
4591         * function.c (use_variable, use_variable_after): Remove.
4592         (assign_parms): Consult optimize not obey_regdecls.
4593         (expand_function_start): Don't emit USEs for stupid.
4594         (expand_function_end): Likewise.
4595         * global.c (build_insn_chain): Export.
4596         * integrate.c (expand_inline_function): Kill return-value USE
4597         handling code.
4598         * jump.c (jump_optimize_1): Do simple jump optimizations and
4599         dead code elimination.
4600         (calculate_can_reach_end): Remove check_deleted argument.
4601         (delete_insn): Patch out insns even when not optimizing.
4602         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
4603         * rtl.h (use_variable, use_variable_after): Remove declarations.
4604         (build_insn_chain): Declare.
4605         * stmt.c (expand_value_return): Don't emit USEs for stupid.
4606         (expand_end_bindings): Likewise.
4607         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
4608         * toplev.c (obey_regdecls): Remove.
4609         (rest_of_compilation): Don't set it.  Kill stupid in favour of
4610         flow1, local-alloc, and reload.
4611         (main): Don't set obey_regdecls.
4612
4613         * config/nextstep.c (handle_pragma): Likewise.
4614
4615         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
4616
4617         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
4618
4619 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4620
4621         * alpha-protos.h: PROTO -> PARAMS.
4622         * alpha.c: Likewise.
4623         * elf.h: Likewise.
4624         * h8300.c: Likewise.
4625         * i386-protos.h: Likewise.
4626         * i386.c: Likewise.
4627         * m32r-protos.h: Likewise.
4628         * m32r.c: Likewise.
4629         * mips.c: Likewise.
4630         * mips.md: Likewise.
4631         * gmon-sol2.c: Likewise.
4632         * sparc.c: Likewise.
4633
4634 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4635
4636         * ns32k-protos.h: New file.
4637
4638         * ns32k.c: Fix compile time warnings.
4639
4640         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
4641         warnings.
4642
4643         * ns32k.md: Likewise.
4644
4645 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4646
4647         * vax-protos.h: New file.
4648
4649         * vax.c: Fix compile time warnings.
4650
4651         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
4652         warnings.
4653
4654         * vax.md: Likewise.
4655
4656         * vaxv.md: Likewise.
4657
4658 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4659
4660         * romp-protos.h: New file.
4661
4662         * romp.c: Fix compile time warnings.
4663
4664         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
4665         warnings.
4666
4667         * romp.md: Likewise.
4668
4669 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4670
4671         * we32k-protos.h: New file.
4672
4673         * we32k.c: Fix compile time warnings.
4674
4675         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
4676         warnings.
4677
4678 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4679
4680         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
4681
4682         * except.c (eh_regs): Likewise.
4683
4684         * final.c (output_operand): Likewise.
4685
4686         * fold-const.c (target_isinf, target_isnan): Likewise.
4687
4688 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
4689
4690         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
4691         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
4692
4693         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
4694         when optimize_size.
4695         (clrstrsi): Rewrite.
4696         (strsethi, strsetqi): New expanders.
4697         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
4698         (cmpstrsi): Emit compare insn before cmpstrsi_1
4699         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
4700         (strlensi_1): Likewise.
4701         (cmpstrsi_1): Likewise; do not output compare.
4702         (strlen expander): Do not unroll when optimizing for size.
4703         (*subsi3_carry): Rename to subsi3_carry
4704         (addqi3_cc): New pattern.
4705         * i386.h (processor_costs): Add move_ratio field.
4706         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
4707         * i386.c (*_cost): Set move_ratio.
4708         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
4709         (x86_expand_strlensi_1): Rewrite the main loop.
4710
4711 2000-01-17  Richard Henderson  <rth@cygnus.com>
4712
4713         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
4714         * cse.c (find_comparison_args, fold_rtx): Likewise.
4715         * integrate.c (subst_constants): Likewise.
4716         * loop.c (get_condition): Likewise.
4717
4718         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
4719
4720         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
4721
4722 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4723
4724         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
4725         (RESTORE_WARN_FLAGS): Unpack it.
4726         Change semantic type of extension to ttype.
4727         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
4728         * c-parse.y, c-parse.c, objc/objc-parse.y,
4729         objc/objc-parse.c: Regenerate.
4730
4731 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
4732
4733         * fixinc/fixlib.c: Add copyright notice.
4734         (compile_re): New function.
4735         * fixinc/fixlib.h: Prototype compile_re.
4736
4737         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
4738         Use compile_re to compile regular expressions.
4739
4740         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
4741         where the pattern matched.
4742
4743         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
4744         use 'replace'.
4745         (ultrix_ansi_compat): Likewise.
4746         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
4747         add egrep test.
4748         (interactv_add2, interactv_add3): Delete.
4749         (x11_sprintf): Don't use filename glob.
4750         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
4751         Regenerate.
4752
4753 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4754
4755         * print-rtl.c: PROTO -> PARAMS.
4756         * real.c: Likewise.
4757         * reg-stack.c: Likewise.
4758         * resource.c: Likewise.
4759         * sdbout.h: Likewise.
4760         * simplify-rtx.c: Likewise.
4761         * stor-layout.c: Likewise.
4762         * stupid.c: Likewise.
4763         * xcoffout.c: Likewise.
4764         * xcoffout.h: Likewise.
4765
4766 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4767
4768         * toplev.c: PROTO -> PARAMS.
4769         * toplev.h: Likewise.
4770         * tree.c: Likewise.
4771         * tree.h: Likewise.
4772         * unroll.c: Likewise.
4773         * varasm.c: Likewise.
4774         * varray.c: Likewise.
4775         * varray.h: Likewise.
4776
4777 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4778
4779         * reload.c: PROTO -> PARAMS.
4780         * reload.h: Likewise.
4781         * reload1.c: Likewise.
4782         * reorg.c: Likewise.
4783         * resource.h: Likewise.
4784         * rtl.c: Likewise.
4785         * rtl.h: Likewise.
4786         * rtlanal.c: Likewise.
4787         * sbitmap.h: Likewise.
4788         * sdbout.c: Likewise.
4789         * stack.h: Likewise.
4790         * stmt.c: Likewise.
4791         * system.h: Likewise.
4792
4793 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4794
4795         * machmode.h: PROTO -> PARAMS.
4796         * mbchar.h: Likewise.
4797         * mips-tdump.c: Likewise.
4798         * mips-tfile.c: Likewise.
4799         * optabs.c: Likewise.
4800         * output.h: Likewise.
4801         * prefix.c: Likewise.
4802         * profile.c: Likewise.
4803         * protoize.c: Likewise.
4804         * real.h: Likewise.
4805         * recog.c: Likewise.
4806         * recog.h: Likewise.
4807         * regclass.c: Likewise.
4808         * regmove.c: Likewise.
4809         * regs.h: Likewise.
4810
4811 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4812
4813         * ggc-common.c: PROTO -> PARAMS.
4814         * ggc-page.c: Likewise.
4815         * ggc-simple.c: Likewise.
4816         * ggc.h: Likewise.
4817         * global.c: Likewise.
4818         * graph.c: Likewise.
4819         * gthr-win32.h: Likewise.
4820         * haifa-sched.c: Likewise.
4821         * halfpic.h: Likewise.
4822         * integrate.c: Likewise.
4823         * integrate.h: Likewise.
4824         * jump.c: Likewise.
4825         * lcm.c: Likewise.
4826         * local-alloc.c: Likewise.
4827         * loop.c: Likewise.
4828         * loop.h: Likewise.
4829
4830 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4831
4832         * genattr.c: PROTO -> PARAMS.
4833         * genattrtab.c: Likewise.
4834         * gencheck.c: Likewise.
4835         * gencodes.c: Likewise.
4836         * genconfig.c: Likewise.
4837         * genemit.c: Likewise.
4838         * genextract.c: Likewise.
4839         * genflags.c: Likewise.
4840         * gengenrtl.c: Likewise.
4841         * genopinit.c: Likewise.
4842         * genoutput.c: Likewise.
4843         * genpeep.c: Likewise.
4844         * genrecog.c: Likewise.
4845
4846 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
4847
4848         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
4849
4850 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4851
4852         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
4853         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
4854         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
4855         * configure, config.in: Rebuilt.
4856
4857 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
4858
4859         * config/i386/i386.md: Add peephole to merge successive stack
4860         adjusts.
4861
4862 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
4863
4864         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
4865         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
4866         when walking backwards to find all the parameter loads when
4867         the basic block ends in a call.
4868
4869 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4870
4871         * loop.c (this_loop_info): Delete.
4872         (uid_loop): Add in place of uid_loop_num.  All uses updated.
4873         (loop_number_exit_count): Delete and replace with entry in loop
4874         structure.  All uses updated.
4875         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
4876         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
4877         (loop_outer_loop): Likewise.
4878         (loop_invalid, loop_number_exit_labels): Likewise.
4879         (loop_used_count_register): Delete and replace with entry in
4880         loop_info structure.
4881         (find_and_verify_loops): Add loops argument.
4882         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
4883         loop_end, etc. arguments with loop structure pointer.  All callers
4884         changed.
4885         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
4886         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
4887         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
4888         (insert_bct): Likewise.
4889         (basic_induction_var): New argument level.
4890         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
4891         vtop, and cont.  Add used_count_register.
4892         (uid_loop): Delete declaration.
4893         (loop_number_exit_count): Likewise.
4894         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
4895         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
4896         (loop_outer_loop, loop_used_count_register): Likewise.
4897         (loop_invalid, loop_number_exit_labels): Likewise.
4898         (unroll_loop): Replace loop_start and loop_end arguments
4899         with loop structure pointer.
4900         (loop_precondition_p, loop_iterations): Likewise.
4901         Include basic-block.h.
4902         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
4903         with loop structure pointer.
4904         (loop_precondition_p, loop_iterations): Likewise.
4905         * basic-block.h (struct loop): New entries vtop, cont,
4906         cont_dominator, start, end, top, scan_start, exit_labels,
4907         exit_count.
4908         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
4909
4910 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4911
4912         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
4913
4914 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
4915
4916         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
4917
4918 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4919
4920         * pdp11-protos.h: New file.
4921
4922         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
4923         time warnings.
4924
4925         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
4926         warnings.
4927
4928         * pdp11.md: Likewise.
4929
4930         * 2bsd.h: Likewise.
4931
4932 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4933
4934         * mn10300-protos.h: New file.
4935
4936         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
4937         time warnings.
4938
4939         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
4940         warnings.
4941
4942         * mn10300.md: Likewise.
4943
4944 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4945
4946         * mn10200-protos.h: New file.
4947
4948         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
4949         time warnings.
4950
4951         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
4952         warnings.
4953
4954         * mn10200.md: Likewise.
4955
4956 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4957
4958         * h8300-protos.h: New file.
4959
4960         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
4961         time warnings.
4962
4963         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
4964         warnings.
4965
4966         * h8300.md: Likewise.
4967
4968 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4969
4970         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
4971         (asm_emit_uninitialised): Likewise.
4972
4973 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
4974
4975         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
4976         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
4977
4978 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
4979
4980         * config/mips/mips.c (override_options): Don't turn on extra
4981         alignment for mips16.
4982
4983 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
4984
4985         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
4986         eabi, and make sure queued POSTINCREMENT rtl is emitted at
4987         the right point.
4988
4989 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
4990
4991         * builtins.c (PAD_VARARGS_DOWN): Define.
4992         (std_expand_builtin_va_arg): Use the above macro.
4993         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
4994         * tm.texi (Register Arguments): Document the above macro.
4995
4996 2000-01-14  Nick Clifton  <nickc@cygnus.com>
4997
4998         * emit-rtl.c (emit_insn): If checking is enabled, make sure
4999         that this function has not been used to emit a jump
5000         instruction.
5001
5002         * jump.c (return_jump_1): Cope with being passed a null rtx.
5003
5004 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5005
5006         * eh-common.h: PROTO -> PARAMS.
5007         * emit-rtl.c: Likewise.
5008         * errors.c: Likewise.
5009         * errors.h: Likewise.
5010         * except.c: Likewise.
5011         * except.h: Likewise.
5012         * explow.c: Likewise.
5013         * expmed.c: Likewise.
5014         * expr.c: Likewise.
5015         * expr.h: Likewise.
5016         * final.c: Likewise.
5017         * fix-header.c: Likewise.
5018         * flow.c: Likewise.
5019         * fold-const.c: Likewise.
5020         * function.c: Likewise.
5021         * function.h: Likewise.
5022         * gcc.c: Likewise.
5023         * gcov-io.h: Likewise.
5024         * gcov.c: Likewise.
5025         * gcse.c: Likewise.
5026
5027 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5028
5029         * sh-protos.h: New file.
5030
5031         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
5032         Add static prototypes.  Fix compile time warnings.
5033
5034         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
5035         * sh.md: Likewise.
5036         * elf.h: Likewise.
5037
5038 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5039
5040         * arc-protos.h: New file.
5041
5042         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
5043         time warnings.
5044
5045         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
5046         warnings.
5047
5048         * arc.md: Likewise.
5049
5050 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5051
5052         * dsp16xx-protos.h: New file.
5053
5054         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
5055         time warnings.
5056
5057         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
5058         warnings.
5059
5060         * dsp16xx.md: Likewise.
5061
5062 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5063
5064         * convex-protos.h: New file.
5065
5066         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
5067         time warnings.
5068
5069         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
5070         warnings.
5071
5072 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5073
5074         * elxsi-protos.h: New file.
5075
5076         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
5077         time warnings.
5078
5079         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
5080         warnings.
5081
5082         * elxsi.md: Likewise.
5083
5084 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
5085
5086         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
5087         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
5088         match the comment for MIPS16.
5089
5090 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
5091
5092         * flow.c (split_edge): Do not call set_block_for_insn if we
5093         do not have a basic_block_for_insn structure.
5094
5095         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
5096         and destination functions are 32bit aligned within the trampoline.
5097         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
5098         (TRAMPOLINE_ALIGNMENT): Define.
5099
5100         * cse.c (cse_insn): When changing (set (pc) (reg)) to
5101         (set (pc) (label_ref)), verify the change creates a valid insn.
5102
5103         * fr30.c (call_operand): Tighten and rework to match rules for
5104         call RTL expressions.
5105         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
5106         * fr30.md (call patterns): Improve constraints.
5107
5108 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
5109
5110         * fr30.c (fr30_expand_epilogue): Revert last change.
5111         Use emit_jump_insn for the return insn.
5112
5113 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
5114                           Stan Cox  <scox@cygnus.com>
5115
5116         * predict.c: New file. Preliminary infrastructure work for static
5117         branch prediction and basic block reordering.
5118         * basic-block.h: Add prototype for estimate_probability.
5119         * Makefile.in: Add rules for predict.o.
5120
5121 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
5122
5123         * fixincludes (va_list): Use __not_va_list__ for the dummy.
5124         * fixinc/*: Likewise.
5125
5126 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5127
5128         * cccp.c: PROTO -> PARAMS.
5129         * cexp.y: Likewise.
5130         * collect2.c: Likewise.
5131         * combine.c: Likewise.
5132         * convert.h: Likewise.
5133         * cse.c: Likewise.
5134         * dbxout.c: Likewise.
5135         * dbxout.h: Likewise.
5136         * diagnostic.c: Likewise.
5137         * doprint.c: Likewise.
5138         * dwarf2out.c: Likewise.
5139         * dwarf2out.h: Likewise.
5140         * dwarfout.c: Likewise.
5141         * dwarfout.h: Likewise.
5142         * dyn-string.h: Likewise.
5143
5144 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5145
5146         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
5147         macro conditionals guarding use.
5148
5149         * dwarf2out.c: Include "tm_p.h".
5150
5151         * function.c (locate_and_pad_parm): Mark parameter with
5152         ATTRIBUTE_UNUSED.
5153         (expand_function_end): Likewise for variable `context'.
5154
5155         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
5156
5157 2000-01-13  Nick Clifton  <nickc@cygnus.com>
5158
5159         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
5160         register to prevent compile time warnings.
5161
5162 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
5163
5164         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
5165         to avoid -Wtraditional warning.
5166
5167 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5168
5169         * 1750a-protos.h: New file.
5170
5171         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
5172         time warnings.
5173
5174         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
5175         warnings.
5176
5177         * 1750a.md: Likewise.
5178
5179 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5180
5181         * a29k-protos.h: New file.
5182
5183         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
5184         time warnings.
5185
5186         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
5187         warnings.
5188
5189 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5190
5191         * clipper-protos.h: New file.
5192
5193         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
5194         time warnings.
5195
5196         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
5197         warnings.
5198
5199 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5200
5201         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
5202
5203 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
5204
5205         * configure.in (--enable-new-gxx-abi): New option.
5206         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
5207         * Makefile.in (GXX_ABI_FLAG): New variable.
5208         * configure: Regenerate.
5209
5210 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5211
5212         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
5213         * tm.texi (FORCE_STRUCT_BLK): Document.
5214         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
5215
5216 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
5217
5218         * config/ns32k/ns32k.md: Revert Jan 9 change.
5219
5220         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
5221         to a mode-test, if the predicate is address_operand.
5222
5223 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
5224
5225         * combine.c (if_then_else_cond): Be careful about what kinds
5226         of RTL expressions are passed to operand_subword.
5227
5228         * flow.c (split_edge): If we have to insert a new jump, make
5229         sure to associate it with a basic block.
5230
5231         * flow.c (commit_one_edge_insertion): A block with one successor
5232         can end in a JUMP_INSN that is not a simplejump.
5233
5234 2000-01-12  Robert Lipe  <robertl@sco.com>
5235
5236         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
5237         (BUILD_VA_LIST_TYPE): Define.
5238         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
5239         with crtstuff.c.
5240
5241 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
5242
5243         * cccp.c (do_pragma): Add cast to (char *).
5244
5245 2000-01-12  Richard Henderson  <rth@cygnus.com>
5246             Fred Fish  <fnf@be.com>
5247             Jason Merrill  <jason@cygnus.com>
5248
5249         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
5250         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
5251         * i386/beos-elf.h, i386/beos-pe.h: New files.
5252
5253         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
5254         * cross-make (SYSTEM_HEADER_DIR): Define using
5255         CROSS_SYSTEM_HEADER_DIR.
5256
5257         * gcc.c (LIBRARY_PATH_ENV): Provide default.
5258         (process_command): Use it.
5259         (main): Likewise.  Kill trailing = from env vars.
5260         (build_search_list): Put it back.
5261         * collect2.c (main): Use LIBRARY_PATH_ENV.
5262
5263         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
5264         * toplev.c: Use NEED_DECLARATION_ENVIRON.
5265
5266         * tm.texi (Frame Layout): Document SMALL_STACK.
5267         * c-common.c (c_common_nodes_and_builtins): Check it.
5268
5269         * system.h: Undef alloca after including glibc's <stdlib.h>,
5270         if USE_C_ALLOCA is defined.
5271
5272         * gcc.c (set_input): New fn.
5273         (main): After all input files are compiled, reset the input file
5274         info to the first.
5275
5276         * aclocal.m4 (rindex, index): If already defined, don't attempt
5277         to redefine.
5278
5279         * ginclude/varargs.h: (__va_list__): Define ifndef.
5280         * ginclude/stdarg.h: Likewise.
5281
5282         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
5283         instead of unsigned char.
5284
5285         * hash.h (true, false, boolean): Undef before enum.
5286
5287         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
5288         proper type of "HOST_WIDE_INT *", rather than their natural type of
5289         "unsigned HOST_WIDE_INT *".
5290
5291 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5292
5293         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
5294
5295         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
5296
5297         * regclass.c (choose_hard_reg_mode): Likewise.
5298
5299         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
5300
5301         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
5302
5303 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5304
5305         * c-common.c: PROTO -> PARAMS.
5306         * c-common.h: Likewise.
5307         * c-decl.c: Likewise.
5308         * c-iterate.c: Likewise.
5309         * c-lang.c: Likewise.
5310         * c-lex.c: Likewise.
5311         * c-lex.h: Likewise.
5312         * c-parse.in: Likewise.
5313         * c-pragma.c: Likewise.
5314         * c-pragma.h: Likewise.
5315         * c-tree.h: Likewise.
5316         * c-typeck.c: Likewise.
5317         * objc/objc-act.c: Likewise.
5318         * objc/objc-act.h: Likewise.
5319
5320 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5321
5322         * m88k-protos.h: New file.
5323
5324         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
5325         time warnings.
5326
5327         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
5328
5329         * m88k.md: Likewise.
5330
5331         * tekXD88.h: Likewise.
5332
5333 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5334
5335         * m68k-protos.h: New file.
5336
5337         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
5338         time warnings.
5339
5340         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
5341
5342         * mot3300.h: Likewise.
5343
5344 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
5345
5346         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
5347         extract_bitlst.
5348         (extract_bitlist): Declare bitlen.
5349
5350 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
5351
5352         * cccp.c: Accept and ignore -lang-fortran.
5353
5354         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
5355         qualifiers don't match at any level of pointerness.
5356
5357 2000-01-12  Robert Lipe  <robertl@sco.com>
5358
5359         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
5360
5361 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
5362
5363         * reload1.c (reload_reg_unavailable): New static variable.
5364         (reload_reg_free_p): Test it.
5365         (reload_reg_free_for_value_p): Test it instead of
5366         reload_reg_used.
5367         (choose_reload_regs_init): Compute it.
5368
5369 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
5370
5371         * reorg.c (fill_slots_from_thread): Check modified_in_p
5372         before replacing.
5373
5374 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
5375
5376         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
5377         these nodes even if INTERNALS is not set.
5378
5379 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
5380
5381         * gcse.c (delete_null_pointer_checks_1): Cope when
5382         get_condition cannot determine the condition.
5383
5384 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
5385
5386         * toplev.h (set_message_length): Declare.
5387
5388         * diagnostic.c (obstack_chunk_alloc): Define macro.
5389         (obstack_chunk_free): Likewise.
5390         (struct output_buffer): New data structure.
5391         (vmessage): Remove.
5392         (output_maximum_width): New variable.
5393         (doing_line_wrapping, set_message_length, init_output_buffer,
5394         get_output_prefix, output_space_left, emit_output_prefix,
5395         output_newline, output_append, output_puts, dump_output,
5396         vbuild_message_string, build_message_string, build_location_prefix,
5397         voutput_notice, output_printf, line_wrapper_printf,
5398         vline_wrapper_message_with_location):  New functions. Implement
5399         automatic line wrapping.
5400         (v_message_with_decl): Make it handle automatic line wrapping.
5401         (v_error_with_file_and_line): Likewise.
5402         (v_warning_with_file_and_line): Likewise.
5403         (announce_function): Likewise.
5404         (default_print_error_function): Likewise.
5405
5406 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
5407
5408         * cpplib.h (struct cpp_options): Change lang_asm to char.
5409         Add lang_fortran.
5410         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
5411         done in cpp_handle_option now.
5412         (initialize_builtins): Take out special case code used only by
5413         __STDC_VERSION__.
5414         (cpp_handle_option): Turn off trigraphs and trigraph warnings
5415         if -traditional.  Recognize -lang-fortran and set
5416         lang_fortran, also turn off cplusplus_comments.
5417         (print_help): Document -lang-fortran.
5418         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
5419         lang_asm. Ignore all directives other than `# 123 "file"' if
5420         CPP_PREPROCESSED.
5421         (cpp_get_token): If -traditional, don't recognize directives
5422         unless the # is in column 1.
5423         (parse_string): If lang_fortran or lang_asm, silently
5424         terminate strings ('' or "") at end of line.
5425         Remove unnecessary braces.
5426
5427 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5428             Richard Henderson  <rth@cygnus.com>
5429
5430         * resource.c (mark_referenced_resources): Mark a set strict_low_part
5431         as used.
5432         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
5433         strict_low_part when possible.
5434
5435 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5436
5437         * alias.c: PROTO -> PARAMS.
5438         * basic-block.h: Likewise.
5439         * bitmap.c: Likewise.
5440         * bitmap.h: Likewise.
5441         * builtins.c: Likewise.
5442         * c-aux-info.c: Likewise.
5443         * caller-save.c: Likewise.
5444         * calls.c: Likewise.
5445
5446 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5447
5448         * Makefile.in (toplev.o): Depend on regs.h.
5449
5450         * output.h (tdesc_section): Prototype.
5451
5452         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
5453
5454         * sdbout.c: Include "tm_p.h".
5455
5456         * toplev.c: Include "regs.h".
5457
5458 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
5459
5460         * unroll.c (unroll_loop): Add EH support.
5461
5462 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5463
5464         * pa-protos.h: New file.
5465
5466         * pa.c: Include recog.h and tm_p.h.
5467         (compute_zdepwi_operands, compute_movstrsi_length,
5468         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
5469         find_addr_reg, import_milli): Add static prototypes.
5470         (pa_cpu_string, pa_arch_string): Constify a char*.
5471         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
5472         (read_only_operand): Add argument `mode'.
5473         (singlemove_string, output_move_double, output_fp_move_double,
5474         output_block_move, output_and, output_ior, output_ascii,
5475         remove_useless_addtr_insns, milli_names, output_mul_insn,
5476         output_div_insn, output_mod_insn, output_arg_descriptor,
5477         output_cbranch, output_bb, output_bvb, output_dbra, ,
5478         output_millicode_call, output_call, hppa_encode_label,
5479         output_parallel_movb, output_parallel_addb): Constify a char*.
5480         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
5481         (output_parallel_addb): Remove extra arg to `constrain_operands'
5482
5483         * pa.h:  Move all prototypes to pa-protos.h.
5484         (pa_cpu_string, pa_arch_string): Constify a char*.
5485         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
5486
5487         * pa.md: Call `function_label_operand' with mode argument.
5488         Likewise for `read_only_operand'.
5489         Fix nesting of parens in call to `symbolic_operand'.
5490
5491 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5492
5493         * i860-protos.h: New file.
5494
5495         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
5496         time warnings.
5497
5498         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
5499
5500         * i860.md: Likewise.
5501
5502 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
5503
5504         * i386.md (movstrsi expander): Rewrite.
5505         (movstrsi_1 insn): Deleted.
5506         (strmovhi, strmovqi expander): New expanders.
5507         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
5508         * i386.c (x86_single_stringop): New global variable.
5509         * i386.h (x86_single_stringop): Declare.
5510         (TARGET_SINGLE_STRINGOP): New macro.
5511
5512 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
5513
5514         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
5515         integer vararg POSTINCREMENT before the destination of the jump
5516         for the hard fp case.
5517         (function_arg_pass_by_reference): Pass a copy of CUM to
5518         FUNCTION_ARG.
5519
5520         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
5521         for CONSTANT_ADDRESS_P above while loop for subreg.
5522
5523 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
5524
5525         * flow.c (propagate_block): When a prologue/epilogue insn
5526         is marked dead, unconditionally clear libcall_is_dead and
5527         insn_is_dead, and only dump rtl if warnings aren't being
5528         suppressed.
5529
5530 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
5531
5532         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
5533         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
5534         (FIXED_REGISTERS): Set dirflag as fixed.
5535         (CALL_USED_REGISTERS): Set dirflag as used.
5536         (REG_ALLOC_ORDER): Set dirflag as last one.
5537         (DIRFLAG_REG): New macro.
5538         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
5539         (HI_REGISTER_NAMES): Add dirflag.
5540         (DEBUF_PRINT_REG): Handle dirflag.
5541         * i386.md (type attribute): New cld and str types.
5542         (length_opcode attribute): Set cld and str to 1.
5543         (memory attribute): Set str to unknown - it is not clear from the
5544         patterns.
5545         (pent_np function unit): Prefixed string operations takes 12 cycles
5546         minimally; cld takes 2 cycles.
5547         (ppro_uops attribute): Str is "many" and cld is "few".
5548         (ppro_p0 unit): Handle cld here.
5549         (k6_alux unit): Handle cld and str types.
5550         (k6_load unit): It is ocupied by str opcodes.
5551         (k6_store unit): It is ocupied by str opcodes.
5552         (athlon_decode): Str is vector decoded.
5553         (athlon_ieu): Handle str and cld.
5554         (cld pattern): New.
5555         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
5556         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
5557         cmpstrsi_nz_1 insn): Do not output cld instruction
5558
5559 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
5560
5561         * gcc.texi (G++ and GCC): Add Java and Chill.
5562         (Bug Critera): Don't list languages.
5563
5564         * gcc.texi (Incompatibilities): No longer claim most C compilers
5565         are K&R.
5566
5567         * gcc.texi (G++ and GCC): Update other front-ends list.
5568
5569 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
5570
5571         * i386.c (ix86_expand_setcc): Fix typo.
5572         (ix86_expand_movcc): Similarly.
5573
5574         * Band-aid until haifa's bitset implementation is nuked.
5575         * haifa-sched.c (extract_bitlst): New parameter for size of the
5576         bitset in bits.  All callers changed.  Avoid looking at undefined
5577         bits in the bitset.
5578         (edgeset_bitsize): New variable.
5579         (schedule_region): Initialize edgeset_bitsize.
5580
5581 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5582
5583         * Makefile.in (optabs.o): Depend on real.h
5584         (resource.o): Depend on insn-attr.h
5585
5586         * builtins.c (result_vector): Wrap prototype in macro conditions
5587         governing definition and use.
5588
5589         * c-common.c: Include tm_p.h.
5590
5591         * c-lex.c: Likewise.
5592
5593         * elfos.h: Constify a char*.
5594
5595         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
5596         (get_attr_length, shorten_branches, profile_after_prologue): Mark
5597         parameter with ATTRIBUTE_UNUSED.
5598
5599         * fold-const.c (exact_real_inverse): Wrap variable `i' in
5600         CHECK_FLOAT_VALUE.
5601
5602         * haifa-sched.c (schedule_insns): Mark parameter with
5603         ATTRIBUTE_UNUSED.
5604
5605         * optabs.c: Include real.h.
5606
5607         * real.h (ereal_atof): Add prototype arguments.
5608
5609         * resource.c: Include insn-attr.h.
5610
5611         * sdbout.c (sdbout_queue_anonymous_type,
5612         sdbout_dequeue_anonymous_types): Wrap in macro
5613         SDB_ALLOW_FORWARD_REFERENCES.
5614         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
5615         ATTRIBUTE_UNUSED.
5616
5617         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
5618
5619         * stupid.c: Include tm_p.h.
5620
5621         * tree.c (real_value_from_int_cst): Mark parameter with
5622         ATTRIBUTE_UNUSED.
5623
5624 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5625
5626         * i960-protos.h: New file.
5627
5628         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
5629         time warnings.
5630
5631         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
5632
5633 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5634
5635         * combine.c (expand_field_assignment): Do not discard SUBREGs
5636         while computing nonzero_bits.
5637
5638 2000-01-09  Nick Clifton  <nickc@cygnus.com>
5639
5640         * config/arm/arm.c: Fix compile time warnings about signed vs
5641         unsigned constants.
5642         * config/arm/arm.h: Fix compile time warnings about signed vs
5643         unsigned constants.
5644
5645 2000-01-09  Philip Blundell  <philb@gnu.org>
5646
5647         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
5648         than `ldm' with only one register.
5649         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
5650         only one register.
5651
5652         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
5653         clobbered.
5654
5655 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
5656
5657         * config/ns32k/ns32k.md (load or push effective address): Operand 1
5658         must have SImode.
5659
5660 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5661
5662         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
5663         assignment used as truth value.
5664
5665         * function.c (assign_temp): Mark parameter `dont_promote' with
5666         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
5667         PROMOTE_FOR_CALL_ONLY.
5668
5669         * genrecog.c (write_subroutine): Mark variable `operands' with
5670         ATTRIBUTE_UNUSED.
5671
5672         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
5673         ATTRIBUTE_UNUSED.
5674
5675         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
5676         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
5677
5678         * toplev.c (note_deferral_of_defined_inline_function): Likewise
5679         for `decl'.
5680
5681 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5682
5683         * config/c4x.h: Tidy up comments.
5684         * config/c4x.c: Likewise.
5685
5686 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
5687
5688         * fold-const.c (lshift_double, rshift_double): Handle
5689         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
5690
5691 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5692
5693         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
5694         in prepare_function_start().
5695
5696 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
5697
5698         * config/v850/v850.c (expand_epilogue): Interrupt functions no
5699         longer allocate extra stack for function calls.
5700
5701 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5702
5703         * config/c4x/c4x.md (*subqf3_set): Fix typo.
5704
5705 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5706
5707         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
5708
5709 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
5710
5711         * rs6000.c (processor_target_table): Add power3 as alias for 630.
5712         * aix43.h: Revert Aug 2 change.
5713         (HAS_INIT_SECTION): Define, not visible yet.
5714         (LD_INIT_SWITCH): Define, not visible yet.
5715         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
5716
5717         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
5718
5719         * collect2.c (main): Expand ld2 size further.
5720         (export_object_lst): Cast assignment to avoid warning.
5721         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
5722         (scan_prog_file, COFF): Do not collect initialization or
5723         finalization functions generated for entire shared object if
5724         init/fini support present.
5725
5726 2000-01-07  Nick Clifton  <nickc@cygnus.com>
5727
5728         * config/elfos.h: Tidy up formatting of marcos.  Make sure
5729         that .section directives are always prefixed by a tab.
5730
5731         * config/svr4.h: Add #include "elfos.h" and remove duplicate
5732         definitions.
5733
5734 2000-01-07  Matt Austern  <austern@sgi.com>
5735
5736         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
5737         expon.
5738
5739 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
5740
5741         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
5742         crtstuff.c.
5743         (crtbegin.o, s-crtS): Likewise.
5744
5745 2000-01-06  Richard Henderson  <rth@cygnus.com>
5746
5747         * alpha.md (adddi_2+1): Limit offset such that it will be
5748         loadable with a single ldah+lda pair.
5749         (adddi_2+2): Explicitly fail split if we can't make it work.
5750
5751 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
5752
5753         * protoize.c: Conditionally include unistd.h.
5754         (IS_SAME_PATH_CHAR): New macro.
5755         (IS_SAME_PATH): New macro.
5756         (CPLUS_FILE_SUFFIX): New macro.
5757         (cplus_suffix): New static variable.
5758         (is_abspath): New static function.
5759         (in_system_include_dir): Handle DOS style pathnames.
5760         (file_could_be_converted): Likewise.
5761         (file_normally_convertible): Likewise.
5762         (directory_specified_p): Likewise.
5763         (file_excluded_p): Likewise.
5764         (abspath): Likewise.
5765         (shortpath): Likewise.
5766         (referenced_file_is_newer): Likewise.
5767         (save_def_or_dec): Likewise.
5768         (do_processing): Likewise.
5769         (main): Likewise.
5770         (edit_file): Likewise. Use rename instead of link.
5771         (rename_c_file): Likewise. Don't rename syscalls file.
5772         (munge_compile_params): Define null device for DOS based systems.
5773         (process_aux_info_file): Use binary mode if appliable.
5774         (edit_file): Likewise.
5775         * invoke.texi (Running Protoize): Document C++ suffixes used.
5776
5777         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
5778         IS_DIR_SEPARATOR macros.
5779         * collect2.c: Likewise.
5780         * cppinit.c: Likewise.
5781         * dwarf2out.c: Likewise.
5782         * gcc.c: Likewise.
5783         * gcov.c: Likewise.
5784         * prefix.c: Likewise.
5785         * rtl.c: Likewise.
5786         * toplev.c: Likewise.
5787         * system.h: And move to here.
5788
5789         * prefix.c (update_path): Fix typo in variable name.
5790
5791 2000-01-06  Richard Henderson  <rth@cygnus.com>
5792
5793         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
5794         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
5795         (count_reg_sets_1, count_reg_references): Likewise.
5796         (flow_loops_level_compute): Start counting actual loop depth at 1.
5797         (flow_loops_find): Likewise.
5798         * local-alloc.c (update_equiv_regs): Likewise.
5799         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
5800
5801 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
5802
5803         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
5804         FIRST_PSEUDO_REGISTER
5805         * dwarf2out.c: Don't include frame.h
5806         * dwarfout.c: Likewise
5807         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
5808         frame.h
5809
5810 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
5811
5812         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
5813         dead registers.
5814
5815         * i386.c (movsf splitter): Fix typo in my last checkin.
5816
5817 2000-01-05  Nick Clifton  <nickc@cygnus.com>
5818
5819         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
5820         own definition of this macro.
5821         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
5822         flag_data_sections or UNIQUE_SECTION_P are true.
5823
5824         * tm.texi (UNIQUE_SECTION): Document that it can be called for
5825         unitialised data decls.
5826
5827         * config/i386/winnt.c (i386_pe_unique_section): Cope with
5828         being called for uninitialised data.
5829
5830         * config/i386/interix.c (i386_pe_unique_section): Cope with
5831         being called for uninitialised data.
5832
5833         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
5834         for uninitialised data.
5835
5836         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
5837         for uninitialised data.
5838
5839         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
5840         for uninitialised data.
5841
5842         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
5843         (UNIQUE_SECTION_P): Always generate a unique section if
5844         flag_data_sections is true.
5845         (UNIQUE_SECTION): Also generate unique sections for
5846         uninitialised data.
5847         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
5848         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
5849         named_section().
5850
5851 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5852
5853         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
5854         SI, or DI.
5855
5856 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5857
5858         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
5859         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
5860         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
5861         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
5862         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
5863
5864         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
5865
5866 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
5867
5868         * c-decl.c (finish_enum): Simplify code to determine minimum and
5869         maximum values of the enum, and calculate the type.  Remove check
5870         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
5871         the DECL_INITIAL of each enumeration constant with a copy converted
5872         to the enumeration type.  When updating variant types, don't bother
5873         updating the type itself.
5874
5875         * c-typeck.c (build_binary_op): Simplify conditional expressions
5876         when weeding out spurious signed-unsigned warnings.  Add new
5877         spurious warning category: if the unsigned quantity is an enum
5878         and its maximum value fits in signed_type(result_type).  Update
5879         commentary.
5880         (build_conditional_expr): Warn here if one alternative is signed
5881         and the other is unsigned.
5882
5883 2000-01-05  Nick Clifton  <nickc@cygnus.com>
5884
5885         * config/fr30/fr30.h: Remove extraneous comments.
5886
5887 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
5888
5889         * reload1.c (choose_reload_regs): When disabling a reload, also
5890         set reload_spill_index to -1.
5891
5892 2000-01-04  Joel Sherrill (joel@OARcorp.com>
5893
5894         * configure.in (m68*-*-rtemscoff*): New target, formal name for
5895         old m68*-*-rtems*.
5896         (m68*-*-rtemself*): New target.
5897         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
5898         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
5899         (sparc*-*-rtemself*): New target.
5900         (sparc*-*-rtems*): Now elf not a.out.
5901         * config/i386/rtems.h: Include config/rtems.h.
5902         * config/i386/rtemself.h: Include config/rtems.h.
5903         * config/i960/rtems.h: Include config/rtems.h.
5904         * config/m68k/rtems.h: Include config/rtems.h.
5905         * config/m68k/rtemself.h: Include config/rtems.h.
5906         * config/mips/rtems64.h: Include config/rtems.h.
5907         * config/pa/rtems.h: Include config/rtems.h.
5908         * config/rs6000/rtems.h: Include config/rtems.h.
5909         * config/sh/rtems.h: Include config/rtems.h.
5910         * config/sh/rtemself.h: Include config/rtems.h.
5911         * config/sparc/rtems.h: Include config/rtems.h.
5912         * config/sparc/rtemself.h: Include config/rtems.h
5913
5914 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
5915
5916         * final.c (shorten_branches): Correctly compute length of
5917         asms without operands.
5918
5919 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
5920
5921         * configure.in: Add pj target.
5922         * configure: Regenerate.
5923         * config/pj: New directory.
5924         * config/pj/lib1funcs.S: New file.
5925         * config/pj/linux.h: New file.
5926         * config/pj/pj.c: New file.
5927         * config/pj/pj.md: New file.
5928         * config/pj/pjl.h: New file.
5929         * config/pj/t-pj: New file.
5930         * config/pj/xm-pj.h: New file
5931
5932 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
5933
5934         * toplev.c (rest_of_compilation): Run shorten-branches before
5935         reg-stack for now.
5936
5937 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5938
5939         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
5940         macros so that they're consistent with their names.
5941         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
5942         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
5943
5944 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5945
5946         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
5947         modified inadvertently.
5948
5949 2000-01-04  Joel Sherrill <joel@OARcorp.com>
5950
5951         * configure.in (v850*-*-rtems*): New target.
5952         * configure: Regenerate.
5953         * config/v850/rtems.h: New file.
5954
5955 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
5956
5957         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
5958         (__gthread_key_create): Likewise.
5959         (__gthread_key_dtor):  Likewise.
5960         (__gthread_once): Fix logic.
5961         (__gthread_key_delete): Cast away constness.
5962
5963         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
5964         * invoke.texi: Document.
5965         * i386/mingw32.h (CPP_SPEC): Use.
5966         (LIBGCC_SPEC): Likewise.
5967         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
5968
5969 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
5970
5971         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
5972         (HANDLE_PRAGMA_PACK): Undefine.
5973         (SLOW_UNALIGNED_ACCESS): Define.
5974
5975 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
5976
5977         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
5978         to default definition.
5979         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
5980         (store_fixed_bit_field): Call macro with word_mode and alignment.
5981         (extract_bit_field): Call macro with relevant mode and alignment.
5982         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
5983         to default definition.
5984         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
5985         and alignment.
5986         (move_by_pieces_ninsns): Likewise.
5987         (clear_by_pieces): Likewise.
5988         (emit_push_insn): Likewise.
5989         (store_field): Call macro with relevant mode and alignment.
5990         (expand_expr): Likewise.
5991         (expand_expr_unaligned): Likewise.
5992
5993         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
5994         (SLOW_UNALIGNED_ACCESS): Define.
5995         (CASE_VECTOR_MODE): Always use 32-bit offsets.
5996         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
5997         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
5998         (toc_section): Likewise and .toc pseudo-op.
5999         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
6000         64-bit mode.
6001         (TEXT_SECTION_ASM_OP): Likewise.
6002         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
6003         32-bit offsets.
6004
6005         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
6006         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
6007         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
6008         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
6009         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
6010
6011 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
6012
6013         * regclass.c: Revert my Jan 4 change to loop cost computation.
6014
6015 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
6016
6017         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
6018         compilation.
6019
6020 2000-01-04  Stan Cox  <scox@cygnus.com>
6021
6022         * haifa-sched.c (build_control_flow): Change unreachable simple
6023         loop test to check if current block has only one predecessor.
6024         (find_rgns): Initialize degree.  Use dest as degree index, not src.
6025
6026 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6027
6028         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
6029
6030         * calls.c (expand_call): Likewise for
6031         `old_stack_arg_under_construction'.
6032
6033         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
6034
6035         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
6036         `save_constant'.
6037
6038         * gcc.c (execute): Likewise for `ut' and `st'.
6039
6040         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
6041
6042         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
6043
6044         * jump.c (jump_optimize_1): Likewise for `temp2'.
6045
6046         * local-alloc.c (block_alloc): Likewise for `r1'.
6047
6048         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
6049
6050         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
6051         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
6052
6053         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
6054         and `set2'.
6055
6056         * reload.c (find_reloads): Likewise for `goal_alternative_number'
6057         and `goal_earlyclobber'.
6058
6059         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
6060
6061         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
6062
6063         * stupid.c (stupid_life_analysis): Likewise for `chain'.
6064
6065         * unroll.c (copy_loop_body): Likewise for `copy'.
6066
6067         * varasm.c (output_constructor): Likewise for `byte'.
6068
6069 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
6070
6071         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
6072         all FP constants for constant->reg moves.
6073         (ix86_split_to_parts): Try to convert memory address into immediate
6074         when available in the constant pool.
6075         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
6076         moves.
6077         (LEGITIMATE_CONSTANT_P): Return 1.
6078         * i386.md (pushsf): New splitter to convert constant pool memory
6079         reference to immediate.
6080         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
6081         reload.
6082
6083 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
6084
6085         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
6086         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
6087         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
6088         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
6089         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
6090
6091 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
6092
6093         * ginclude/stdbool.h:  Support compilation as C++.
6094
6095 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6096
6097         * fold-const.c (make_range): Don't try to reverse an unbounded range.
6098
6099 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
6100
6101         * regclass.c (regclass): Properly compute loop_cost.  Adjust
6102         comments.
6103
6104         * regclass.c: Fix minor whitespace problems.
6105
6106 2000-01-03  Anthony Green  <green@cygnus.com>
6107
6108         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
6109         Restore the pic register if required.
6110
6111 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
6112
6113         * c-common.c (format_char_info): Update comment.
6114         (check_format_info): Recognize 'z' modifier in the same way 'Z'
6115         was recognized.  Emit warning for formats new in ISO C99 only
6116         if flag_isoc9x is not set.
6117
6118 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
6119
6120         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
6121
6122 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
6123
6124         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
6125         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
6126         (make_compound_operation): Choose cheaper alternative between
6127         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
6128
6129         * regclass.c (op_costs): Remove global variable.
6130         (record_reg_classes): New parameter "op_costs" and "reg_pref".
6131         (record_operand_costs): Break out from ...
6132         (scan_one_insn): ... here.
6133         (dump_regclass): Make dumps nicer.
6134         (regclass): Dump preferrences choosed and changes done during passes.
6135
6136 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
6137
6138         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
6139
6140 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
6141
6142         * config/sparc/sparc.c (gen_df_reg): New function.
6143         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
6144         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
6145         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
6146         movtf_cc_reg_sp64+1): Use it.
6147
6148 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
6149
6150         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
6151         copied LABEL_DECLs.
6152
6153 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6154
6155         * config/i386/i386.c (ix86_expand_unary_operator): Function
6156         definition made void.
6157         (ix86_expand_binary_operator): Update outdated preceding comment.
6158         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
6159         prototype.
6160
6161         * config/i386/i386.c (override_options): Fix option-name typo.
6162
6163 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
6164
6165         * system.h (CEIL): Define.
6166         * builtins.c (CEIL): Remove.
6167         * expmed.c (CEIL): Likewise.
6168         * expr.c (CEIL): Likewise.
6169         * stor-layout.c (CEIL): Likewise.
6170
6171 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
6172
6173         * expr.c (store_constructor_field): Fix typo introduced with last
6174         gcc2 merge.
6175
6176 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
6177
6178         * tree.h (BINFO_N_BASETYPES): New macro.
6179
6180 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
6181
6182         * expmed.c (emit_store_flag): Prevent losing a pending stack
6183         adjust the same way we prevent losing queued increments.
6184
6185 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6186
6187         * function.c (update_temp_slot_address): Handle case where sum of
6188         temporary address plus offset in register is a valid address.
6189
6190 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
6191
6192         * genrecog.c (change_state) Corrected typo.
6193
6194 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6195
6196         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
6197         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
6198         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
6199
6200 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
6201
6202         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
6203         case, expand GT comparisons correctly.  Fix a comment before this
6204         part of the code.
6205
6206 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
6207
6208         * dwarfout.c: Include "frame.h"
6209         * dwarf2out.c: Likewise.
6210         * Makefile.in (dwarfout.o): Depend on frame.h
6211         (dwarf2out.o): Likewise.
6212
6213 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
6214
6215         Restore i386 binary compatibility in Dwarf EH info.
6216         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
6217         value of FIRST_PSEUDO_REGISTER.
6218         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
6219         (struct frame_state): Use DWARF_FRAME_REGISTERS.
6220         * dwarfout.c (output_reg_number): Ditto.
6221         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
6222         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
6223
6224 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
6225
6226         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
6227         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
6228         (<hack>_RE_CT): not needed
6229         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
6230         rewritten to scan the file text once only
6231         "template<..." test added
6232         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
6233         (is_cxx_header): declaration added
6234         * fixinc/fixtests.c(is_cxx_header): removed
6235         (apply_fix_p_t): removed
6236         (double_slash_test): is_cxx_header is only called once now
6237         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
6238         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
6239         within the templates.
6240         The borken spelling of "broken" was fixed.
6241         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
6242         The default level depends on FIXINC_DEBUG.
6243
6244 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6245
6246         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
6247         Otherwise provide a declaration for atexit.
6248         (init_dummy): Make sure dummy call to atexit is nevertheless
6249         called with correct number of args.
6250
6251         * frame.c: Update comments referring to other files.
6252
6253         * libgcc2.c: Likewise.
6254
6255 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6256
6257         * cse.c (free_element, get_element): Remove unused prototypes.
6258
6259         * fold-const.c (extract_muldiv): Initialize variables `op0' and
6260         `op1'.
6261
6262         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
6263         `else' clauses.
6264
6265 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
6266
6267         * configure.in,configure: case arm for mn10200-*-* now sets
6268         float_format=i32 so that float.h will correctly claim "double"
6269         to be 32 bits. Ran autoconf to generate configure from .in file.
6270
6271 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
6272
6273         * pa.md (conditional zero): If op1 is a register, force it into
6274         the same register as op0.
6275
6276 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
6277
6278         * tree.h (BINFO_BASETYPES): Improve documentation.
6279
6280 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6281
6282         * configure.in (--enable-checking): Use a more portable `for'
6283         loop syntax.
6284
6285 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6286
6287         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
6288         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
6289
6290         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
6291         Delete files.
6292
6293         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
6294         Delete descriptions.
6295
6296         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
6297         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
6298         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
6299         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
6300         xm-svr4.h: Remove all instances of sys_siglist handling.
6301
6302 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
6303
6304         * config/sparc/sparc.md (cmp_zero_qi,
6305         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
6306         cmp_zero_extendqidi2_andcc_set): New patterns.
6307
6308 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
6309
6310         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
6311         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
6312         (fpgnulib.c, xfgnulib.c): Add rules.
6313         * m68k/t-mot3300-gas: Likewise.
6314
6315 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
6316
6317         * configure.in: Avoid [[ by using test and changequote.  Add
6318         changequote required by 1999-12-14 change.
6319         * configure: Rebuild.
6320
6321 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
6322
6323         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
6324
6325 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
6326
6327         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
6328         * flow.c (find_use_as_address): Likewise.
6329         * function.c (fixup_var_refs_1): Likewise.
6330         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
6331         * jump.c (invert_exp, redirect_exp): Likewise.
6332         * loop.c (replace_call_address): Likewise.
6333         (count_nonfixed_reads): Likewise.
6334         * rtlanal.c (modified_between_p): Likewise.
6335         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
6336         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
6337         * unroll.c (remap_split_bivs): Likewise.
6338
6339 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6340
6341         * diagnostic.c (v_message_with_decl): Use .* format specifier
6342         instead of building the format specifier width manually.
6343
6344         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
6345         determining whether to provide a prototype.  Remove the
6346         sys_siglist clause in the conditional.
6347
6348 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6349
6350         * fold-const.c (operand_equal_p): Use memcmp to compare string
6351         constants.
6352         Suggested by D. J. Bernstein
6353
6354 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
6355
6356         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
6357         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
6358         compiling libgcc2.
6359         * config/mips/mips.h (TARGET_64BIT): Likewise.
6360         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
6361         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
6362         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
6363         dsps.  Give routines proper names if SI/DI modes are not used.
6364         * longlong.h: Use DWunion instead of DIunion.
6365
6366 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
6367
6368         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
6369         GC_CHECKING, GC_ALWAYS_COLLECT.
6370         * configure.in: Allow --enable-checking with an argument
6371         listing check modes to enable.
6372         * config.in, configure: Rebuilt.
6373         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
6374         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
6375         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
6376         ENABLE_GC_ALWAYS_COLLECT.
6377         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
6378         throughout.
6379         * tree.h, tree.c: Change ENABLE_CHECKING to
6380         ENABLE_TREE_CHECKING throughout.
6381
6382 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6383
6384         * fold-const.c (fold_truthop): Properly check for FP RHS.
6385
6386 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
6387
6388         * toplev.h (note_deferall_of_defined_inline_function): Declare.
6389         * toplev.c (note_deferral_of_defined_inline_function): New
6390         function, split out from ...
6391         (rest_of_compilation): ... here.  Use it.
6392
6393 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6394
6395         * expr.c (store_constructor): Don't call clear_storage if size is
6396         variable.
6397
6398 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6399
6400         * Makefile.in (toplev.o): Depend on loop.h.
6401
6402         * dwarfout.c: Include tm_p.h.
6403
6404         * emit-rtl.c (restore_emit_status): Mark parameter with
6405         ATTRIBUTE_UNUSED.
6406
6407         * final.c (final_scan_insn): Likewise.
6408
6409         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
6410         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
6411         flow_depth_first_order_compute, flow_loop_pre_header_find,
6412         flow_loop_tree_node_add, flow_loops_tree_build,
6413         flow_loop_level_compute, flow_loops_level_compute,
6414         flow_loop_outside_edge_p): Add prototypes.
6415         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
6416
6417         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
6418         Mark with ATTRIBUTE_NORETURN.
6419
6420         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
6421
6422         * local-alloc.c (no_conflict_p): Likewise.
6423
6424         * loop.c (insert_bct): Hide definitions of variables with hidden
6425         usage.
6426         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
6427
6428         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
6429         with ATTRIBUTE_UNUSED.
6430         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
6431         (reg_scan): Likewise.
6432
6433         * reload.c (find_reloads): Remove unused variables `changed'.
6434
6435         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
6436         away const-ness.
6437         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
6438         Remove unused variable `insn'.
6439
6440         * toplev.c: Include loop.h.
6441         (report_file_and_line): Remove unnecessary prototype.
6442
6443         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
6444
6445         * unroll.c (biv_total_increment): Likewise.
6446
6447 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6448
6449         * reload1.c (emit_input_reload_insns): Restore old behaviour
6450         wrt. 'special' reloads.
6451
6452 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
6453
6454         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
6455         hash.h.  (cse.c): Don't depend on hashtab.h.
6456
6457         * cse.c: Don't include hashtab.h.
6458         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
6459         of dead functions.
6460         * ggc-simple.c: Don't include hash.h.
6461
6462 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
6463
6464         * dwarf2out.c (add_abstract_origin_attribute): Call
6465         gen_abstract_function on our function context.
6466
6467 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
6468
6469         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
6470
6471 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6472
6473         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
6474         case in switch.
6475
6476 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6477
6478         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
6479         constraints to "a!r".
6480
6481 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
6482
6483         * Makefile.in (calls.o): Depend on function.h.
6484         (alias.o): Likewise.
6485
6486 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
6487
6488         * reload1.c (emit_reload_insns): Break out code and variables into...
6489         (input_reload_insns, other_input_address_reload_insns,
6490         other_input_reload_insns, input_address_reload_insns,
6491         inpaddr_address_reload_insns, output_reload_insns,
6492         output_address_reload_insns, outaddr_address_reload_insns,
6493         operand_reload_insns, other_operand_reload_insns,
6494         other_output_reload_insns): ... new static variables, and...
6495         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
6496         do_output_reload): ... new functions.
6497
6498 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6499
6500         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
6501
6502 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6503
6504         * md.texi: Add c4x constraints documentation.
6505
6506 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6507
6508         * config/i386/dgux.c (struct option): Rename to
6509         lang_independent_option.
6510         (struct m_options): Add description field.
6511         (output_options): Rename option type, add sep declaration, output
6512         ix86_cpu_string and ix86_arch_string only if set.
6513         (output_file_start): Rename option type.
6514
6515 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
6516
6517         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
6518         stmp-int-hdrs.
6519         (libgcc2.a): Similarly.
6520
6521 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
6522
6523         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
6524         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
6525         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
6526
6527 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
6528
6529         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
6530         Remove redundant initialization of "frexpon" and "expon".
6531
6532 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6533
6534         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
6535
6536         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
6537         (store_constructor_field, expand_expr): Pass new arg.
6538
6539 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
6540
6541         * Makefile.in (explow.o): Depend on function.h.
6542
6543         * stor-layout.c (set_sizetype): Fix typo.
6544
6545 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
6546
6547         * function.c (cfun): Renamed from current_function.  All users
6548         changed.
6549         * function.h (cfun): Rename declaration as well.
6550
6551         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
6552         to be of type regset_head, not regset.  All users changed by adding
6553         address operator.
6554         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
6555
6556 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6557
6558         * config/c4x/rtems.h: New file.
6559
6560 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
6561
6562         * reload1.c (spill_failure): Take class of failed reload as argument
6563         and print it.  Caller changed.
6564
6565 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6566
6567         * rs6000.h (SUBTARGET_DEFAULT): New macro.
6568         (TARGET_SWITCHES): Allow subtargets to default switches.
6569         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
6570
6571 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
6572
6573         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
6574         in a main program.
6575
6576 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
6577
6578         * cccp.c (main): Define __STDC_VERSION__ as necessary.
6579         * cppinit.c (cpp_handle_option): Likewise.
6580
6581         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
6582         determine when to define.
6583
6584 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
6585
6586         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
6587         cmove with mismatched test and data modes.
6588
6589 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
6590
6591         * c-typeck.c (c_expand_start_case): Don't warn for long switch
6592         in system headers.
6593
6594 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6595
6596         * alias.c: Minor reformatting.
6597         * flow.c: Likewise.
6598         * regs.h: Likewise.
6599         * stor-layout.c: Likewise.
6600         * fold-const.c: Likewise.
6601         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
6602         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
6603         not arg itself.
6604         (size_int_wide): Cache nodes even if garbage collecting.
6605         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
6606         of SAVE_EXPR has no side effects.
6607         * cse.c: Move a comment.
6608         * tree.c: Minor reformatting.
6609         (int_size_in_bytes): Return -1 if constant overflows.
6610
6611 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6612
6613         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
6614
6615 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
6616
6617         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
6618         after any change to c-parse.in, even if objc-parse.y didn't
6619         change.  Oops.
6620
6621 1999-12-18  David S. Miller  <davem@redhat.com>
6622
6623         * toplev.c (rest_of_compilation): Restore BLOCK tree
6624         reconstruction and branch shortening changes lost in
6625         December 18th change.
6626
6627 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
6628
6629         * config/arm/linux-elf.h: Change all instances of
6630         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
6631         * config/arm/uclinux-elf.h: Likewise.
6632
6633 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
6634
6635         * toplev.c (notice, vmessage, v_message_with_file_and_line,
6636         v_message_with_decl, file_and_line_for_asm,
6637         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
6638         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
6639         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
6640         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
6641         pfatal_with_name, fatal_io_error, need_error_newline,
6642         last_error_function, last_error_tick, announce_function,
6643         default_print_error_function, print_error_function,
6644         report_error_function, fnotice, error_with_file_and_line,
6645         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
6646         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
6647         warning_with_decl, warning_for_asm, warning, pedwarn,
6648         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
6649         diagnostic.c
6650         (compile_file): Use fnotice instead of notice.  Adjust call.
6651
6652         * diagnostic.c: New file.
6653
6654         * Makefile.in (OBJS): Include diagnostic.o
6655         (diagnostic.o): Define dependence.
6656
6657 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6658
6659         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
6660         Tweak formatting.
6661
6662 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6663
6664         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
6665
6666 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
6667
6668         * fixtests.c (is_cxx_header): New fn, split out of
6669         double_slash_test.
6670         (else_endif_label): Allow "#endif // comment" in C++ headers,
6671         as determined by is_cxx_header.
6672         * fixfixes.c (else_endif_label_fix): Update comment.
6673         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
6674         a tty.
6675         * genfixes: Correct double thinko in commandline parsing.
6676         * hackshell.tpl: Generate correct sh syntax for bypass
6677         entries.
6678
6679         * inclhack.def (all): Whenever an inserted preprocessor
6680         conditional is split over multiple lines, use double
6681         backslashes in this file so the fixed header will be readable.
6682
6683         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
6684         and add bypass entry for correct version of this header.
6685         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
6686         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
6687
6688         (hpux8_bogus_inlines): New fix, split from...
6689         (ultrix_atof_param) ... here.
6690         (math_expression): Add bypass entry keyed to glibc comment
6691         indicating the problem has been dealt with; disable
6692         unnecessary sed operations; update commentary.
6693         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
6694         add select and bypass entries, simplify shell operation.
6695         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
6696
6697         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
6698          ultrix_atof_param): Add select entry.
6699         (stdio_va_list, sunos_mather_decl): Add bypass entry.
6700         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
6701         comments with the fixes they describe.
6702
6703         * c-parse.in (string action): Do not warn about ANSI string
6704         concatenation in system headers.  Affects C parser only.
6705         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
6706
6707 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
6708
6709         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
6710         compiling libgcc2 the macro depends always on arch cpp defines.
6711
6712 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
6713
6714         * loop.c (insert_loop_mem): Don't record MEMs from inside
6715         EXPR_LISTs.
6716
6717 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
6718
6719         * regclass.c (regclass): Do not use flowgraph when not optimizing.
6720
6721         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
6722         notes too, create one when replacement failed, attempt to simplify
6723         resulting notes.
6724         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
6725         or REG_EQUIV notes.
6726
6727 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
6728
6729         * crtstuff.c (__dso_handle): Declare.
6730         (__cxa_finalize): Likewise.
6731         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
6732         non-NULL.
6733
6734         * invoke.texi: Document -fuse-cxa-atexit.
6735
6736         * tree.h (ptr_type_node): Document.
6737         (const_ptr_type_node): Likewise.
6738
6739 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
6740
6741         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
6742         (optimize_reg_copy_2): Likewise.
6743         (optimize_reg_copy_3): Likewise.
6744         (fixup_match_2): Likewise.
6745         (regmove_optimize): Likewise.
6746         (fixup_match_1): Liekwise.
6747
6748         * i386.md (HI to SImode promoting splitters): Rewrite.
6749         (pushsf mem peep2): New.
6750         (testhi to andhi peep2): Remove.
6751         * i386.h (x86_promote_QImode): New.
6752         (TARGET_PROMOTE_QImode): New.
6753         (PREDICATE_CODES): Add promotable_binary_operator.
6754         * i386.c (x86_promote_QImode0: New.
6755         (promotable_binary_operator): New.
6756         * i386-protos.h (promotable_binary_operator): New.
6757
6758         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
6759         condition.
6760         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
6761
6762 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
6763
6764         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
6765         * function.c (insert_block_after_note): Remove.
6766         (retrofit_block): Likewise.
6767         (identify_blocks): Fix indentation.
6768         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
6769         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
6770         * function.h (insert_block_after_note): Remove prototype.
6771         (retrofit_block): Likewise.
6772         * integrate.c (expand_inline_function): Don't call
6773         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
6774         just expand_start_bindings.  Use the block_map to remap old
6775         NOTE_BLOCKs to new ones.
6776         (integrate_decl_tree): Keep track of remapped blocks.
6777         * integrate.h (struct inline_remap): Add block_map.
6778         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
6779         NOTE_BLOCK on the notes.
6780         (expand_start_bindings): Rename to ...
6781         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
6782         (expand_end_bindings): Set NOTE_BLOCK.
6783         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
6784         reconstruct the BLOCK tree.
6785         * tree.h (expand_start_bindings): Macroize.  Call ...
6786         (expand_start_bindings_and_block): New function.
6787
6788 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
6789
6790         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
6791         to match the format.
6792
6793 1999-12-16  David S. Miller  <davem@redhat.com>
6794
6795         * expr.c (emit_move_insn_1): Only emit clobbers if one of
6796         the outputs is a SUBREG.
6797         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
6798         change.
6799
6800         * config/sparc/sparc.c (epilogue_renumber): Add default case
6801         to switch stmt.
6802
6803 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
6804
6805         * toplev.c (rest_of_compilation): Run branch shortening after
6806         reg-stack.
6807
6808         * regclass.c (loop_depth): Remove
6809         (scan_one_insn): Do not handle LOOP_NOTE insns.
6810         (regclass): Go through basic blocks and set loop_cost
6811
6812 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
6813
6814         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
6815
6816 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
6817
6818         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
6819         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
6820         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
6821
6822 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
6823
6824         * loop.c (insert_loop_mem): Ignore memory clobbers.
6825
6826         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
6827         to (OP A B).
6828
6829 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
6830
6831         * profile.c: Remove redundant #include "output.h".
6832
6833         * h8300.md (HImode preinc peephole): Fix typo.
6834
6835 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
6836
6837         * function.c (retrofit_block): Abort if we don't find a suitable insn.
6838         (insert_block_after_note): Abort if we don't have a previous block.
6839         Remove FN parameter.
6840         * function.h: Adjust.
6841
6842 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
6843
6844         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
6845         argument more than once.
6846
6847 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
6848
6849         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
6850
6851 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
6852
6853         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
6854
6855 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
6856
6857         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
6858         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
6859         update stack_alignment_needed.
6860         (prepare_function_start): Initialize stack_alignment_needed
6861         * function.h (struct function): Add field stack_alignment_needed.
6862
6863 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6864
6865         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
6866         Handle live_throughout / dead_or_set instead of live_before /
6867         live_after.
6868         (save_call_clobbered_regs): Get register livenessinformation from
6869         chain->live_throughout.
6870         (add_stored_regs): New function.
6871         (insert_restore, insert_save): Add restored / saved registers to
6872         dead_or_set.
6873         * global.c (reg_dies): New parameter chain.
6874         (reg_becomes_live): Third parameter is regs_set now.
6875         Changed all callers.
6876         (reg_dies): New parameter chain.  Changed all callers.
6877         (build_insn_chain): Set live_throughout instead of
6878         live_before / live_after.
6879         * reload.h (struct insn_chain): Replace members live_before /
6880         live_after with live_throughout / dead_or_set.
6881         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
6882         instead of live_before / live_after.
6883         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
6884         (order_regs_for_reload, find_reg, finish_spills): Likewise.
6885         (choose_reload_regs_init): Likewise.
6886         * stupid.c (current_chain, find_clobbered_regs): Delete.
6887         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
6888         instead of chain->live_before / chain->live_after.
6889         (mark_hard_ref): New function.
6890         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
6891
6892 1999-12-15  David S. Miller  <davem@redhat.com>
6893
6894         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
6895
6896 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
6897
6898         * flow.c (calculate_loop_depth): Make global, remove prototype,
6899         rewrite to use new loop infrastructure.
6900         (find_basic_block): Remove calculate_loop_depth call.
6901         * toplev.c (rest_of_compilation): Call find_basic_block.
6902         * output.h (calculate_loop_depth): Declare.
6903
6904         * flow.c (dump_flow_info): Dump loop_depth.
6905         (flow_loops_nodes_find): Increase loop_depth for basic block in the
6906         body.
6907         (flow_loops_find): Initialize the loop_depth for each basic block.
6908
6909 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
6910
6911         * tree.c (decl_function_context): Handle virtual functions.
6912
6913         * tlink.c (scan_linker_output): Don't look in demangled name when
6914         looking for linker output keywords.
6915
6916         * dwarfout.c (output_type): We can defer namespace-scope classes.
6917
6918 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
6919
6920         * regclass.c (record_reg_classes): Update comment for merging
6921         register class preferences in reg->reg copies.  Tighten conditions
6922         for merging register class preferences in reg->reg copies.
6923
6924 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
6925
6926         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
6927
6928 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
6929
6930         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
6931         (INIT_SECTION_ASM_OP): Delete.
6932         (FINI_SECTION_ASM_OP): Delete.
6933         (STARTFILE_SPEC): Define to hold just crtbegin.o.
6934
6935 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
6936
6937         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
6938         the abstract origin wasn't emitted.
6939
6940         * dwarf2out.c (class_scope_p): New fn.
6941         (gen_subprogram_die): Use it.
6942         (gen_variable_die): Use it.  Tweak logic.
6943         (gen_struct_or_union_type_die): Check context_die to determine
6944         if we're function-local.
6945         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
6946
6947 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
6948
6949         * loop.c (check_dbra_loop): Can't reverse a biv that has
6950         maybe_multiple set.
6951
6952 1999-12-14  Nick Clifton  <nickc@cygnus.com>
6953
6954         * config/arm/arm.c: Add support for -mcpu=arm720 command line
6955         switch.
6956
6957 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6958
6959         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
6960         for givs made from biv increments.
6961
6962 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
6963
6964         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
6965         * alpha.c (override_options): Recognize -mcpu=ev67.
6966         * alpha.h (CPP_CPU_EV67_SPEC): New.
6967         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
6968         (EXTRA_SPECS): Update.
6969
6970 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
6971
6972         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
6973         appropriate for -lang-c89 and -std=*.
6974         * cppinit.c (cpp_handle_option): Likewise.
6975         (new_pending_define): New, split out from cpp_handle_option.
6976         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
6977         or enable trigraphs for -ansi/-std=*.
6978
6979         * ginclude/stdarg.h (__va_copy): New.
6980         (va_copy): Don't define for C89.
6981
6982 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
6983
6984         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
6985         for long long multiply-accumulate.
6986
6987 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
6988
6989         * regclass.c (scan_one_insn): Set loop_cost to 1 when
6990         optimizing for size.
6991
6992 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
6993
6994         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
6995         if something changed.  Back out that part of yesterday's changes.
6996
6997         * loop.c (loop_max_reg): New static variable.
6998         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
6999         max_reg_num.
7000         (scan_loop): Call reg_scan_update whenever we may have added new
7001         registers, and update loop_max_reg.
7002
7003 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
7004
7005         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
7006         when source does not die.
7007
7008         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
7009
7010 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
7011
7012         * config/sparc/linux64.h (TARGET_LIVE_G0,
7013         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
7014         variants on Linux.
7015         * config/sparc/linux.h (TARGET_LIVE_G0,
7016         TARGET_BROKEN_SAVERESTORE): Likewise.
7017         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
7018         TARGET_BROKEN_SAVERESTORE): Likewise.
7019
7020         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
7021         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
7022         not %g2.
7023         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
7024         as sparc64 block profiling register.
7025         * config/sparc/sparc.c (sparc_override_options): Allow block
7026         profiling with -m32.
7027         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
7028         profiling register.
7029         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
7030         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
7031         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
7032
7033         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
7034         for sparc64.
7035         * config/sparc/sparc.h: Likewise.
7036         * config/sparc/xm-sysv4-64.h: Likewise.
7037         * config/float-sparc.h: Likewise.
7038         * glimits.h: Likewise.
7039         * longlong.h: Likewise.
7040
7041         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
7042         (ASM_IDENTIFY_GCC): Remove.
7043
7044 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
7045
7046         * combine.c (combine_simplify_rtx): Don't make shared rtl.
7047         (simplify_logical): Likewise.
7048
7049 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
7050
7051         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
7052         * cppfiles.c (INO_T_EQ): Likewise.
7053
7054 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
7055
7056         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
7057         * i386/mingw32.h (LIB_SPEC): Likewise.
7058         (STARTFILE_SPEC): Likewise.
7059         * i386/uwin.h (LIB_SPEC): Likewise.
7060         (STARTFILE_SPEC): Likewise.
7061
7062         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
7063         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
7064
7065 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
7066
7067         * combine.c (combine_simplify_rtx): Fix order of checks for
7068         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
7069
7070 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
7071
7072         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
7073         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
7074
7075 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
7076
7077         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
7078         defined.
7079         * regclass.c (inv_reg_alloc_order): New array.
7080         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
7081
7082         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
7083         counted_for_groups, counted_for_nongroups.  Add fields rld and
7084         n_reloads.
7085         * reload.c (push_secondary_reload): Don't set nongroup field of
7086         new reloads.
7087         (push_reload): Likewise.
7088         (find_reloads): Delete code to compute nongroup fields.
7089         * reload1.c (reload_insn_firstobj): New static variable.
7090         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
7091         users changed.
7092         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
7093         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
7094         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
7095         functions.
7096         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
7097         functions.
7098         (struct hard_reg_n_uses): Deleted.
7099         (potential_reload_regs): Deleted.
7100         (init_reload): Initialize spilled_pseudos and pseudos_counted.
7101         (reload): Don't try to allocate reload registers if we already know
7102         we have to make another pass.  Call select_reload_regs.  Free memory
7103         starting with reload_firstobj when starting another pass.
7104         Don't allocate spilled_pseudos.
7105         (calculate_needs_all_insns): Call copy_reloads for an insn that
7106         needs reloads; don't call calculate_needs.
7107         (spill_cost): New static array.
7108         (used_spill_regs_local): New static variable.
7109         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
7110         to compute potential_reload_regs.
7111         (find_reload_regs): Completely rewritten to use find_reg.
7112         (allocate_reload_reg): Don't test counted_for_groups or
7113         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
7114         all cllers changed.
7115         (choose_reload_regs): Add fallback code that uses the existing
7116         register allocation from find_reload_regs.
7117
7118 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
7119
7120         * flow.c (create_edge_list): Cast xmalloc return value.
7121
7122 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
7123
7124         * doprnt.c: Remove incorrect comment closure.
7125
7126         * cse.c: Fix a few minor whitespace goofs.
7127
7128 1999-12-13  Don Bowman  <don@pixstream.com>
7129
7130         * mips/vxworks.h: Fix problem with comment termination.
7131         (EXTRA_SECTIONS): Add in_sbss.
7132         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
7133
7134 1999-12-12  David S. Miller  <davem@redhat.com>
7135
7136         * cse.c (struct cse_reg_info): Add hash_next member,
7137         reorder rest of struct for better packing on 64-bit
7138         hosts.
7139         (cse_reg_info_tree): Kill.
7140         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
7141         REGHASH_FN): New custom pow2 hash mechanism.
7142         (NBUCKETS): Kill.
7143         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
7144         use a pow2 hash table.
7145         (get_cse_reg_info): Rework to use new REGHASH.
7146         (new_basic_block): Likewise, use HASH_SIZE, and inline
7147         free_element call.
7148         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
7149         and inline free_element call.
7150         (lookup_as_function, insert, flush_hash_table, invalidate,
7151         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
7152         invalidate_for_call, use_related_value, find_comparison_args,
7153         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
7154         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
7155         get_element): Kill.
7156
7157 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
7158
7159         * cse.c (cse_basic_block): Free qty_table consistently.
7160
7161 1999-12-12  David S. Miller  <davem@redhat.com>
7162             Jakub Jelinek    <jakub@redhat.com>
7163
7164         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
7165         SUBREGs by hand, gen the appropriate hard reg directly.
7166         (movtf reg/mem split): Likewise and alter_subreg on destination
7167         if necessary.
7168         (movtf mem/reg split): Similarly.
7169         (movdf_cc_sp64): Rename from hidden pattern.
7170         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
7171         (movtf_cc_sp64, following split): New pattern and splitter.
7172         (movdf_cc_reg_sp64): Rename from hidden pattern.
7173         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
7174         TARGET_HARD_QUAD.
7175         (movtf_cc_reg_sp64, following split): New pattern and splitter.
7176
7177 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
7178
7179         * loop.c (load_mems): Don't hoist written floating point mem
7180         if -ffloat-store.
7181
7182 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
7183
7184         * except.h (struct eh_queue): Add `next' pointer.
7185         (struct eh_status): Make x_ehqueue a pointer.
7186         (push_ehqueue):  Declare.
7187         (pop_ehqueue): Likewise.
7188         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
7189         pointer.
7190         (expand_fixup_region_end): Likewise.
7191         (expand_leftover_cleanups): Likewise.
7192         (push_ehqueue): Define.
7193         (pop_ehqueue): Likewise.
7194         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
7195         than doing it inline.
7196         (expand_start_all_catch):  Adjust now that ehqueue is a
7197         pointer.
7198         (mark_eh_queue): Mark all level of the queue.
7199         (mark_eh_status):  Adjust now that ehqueue is a
7200         pointer.
7201         (init_eh_for_function): Allocate ehqueue.
7202         (free_eh_status): Free it.
7203         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
7204         expansion for a fixup.
7205
7206 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7207
7208         * gthr-single.h (__gthread_active_p): Add prototype arguments.
7209
7210         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
7211         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
7212         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
7213         function_ptr, getpagesize, __enable_execute_stack,
7214         __enable_execute_stack, __clear_insn_cache,
7215         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
7216         _cleanup, _exit, __default_terminate, __terminate_func,
7217         __terminate, __empty, __throw, new_eh_context,
7218         eh_context_initialize, eh_context_static, eh_context_specific,
7219         get_eh_context, __get_eh_context, __get_eh_info,
7220         init_reg_size_table, eh_threads_initialize,
7221         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
7222         __unwinding_cleanup, throw_helper, __throw, __rethrow,
7223         __pure_virtual): Add prototype arguments.
7224         (__bb_exit_func): Cast a sizeof to long when comparing against one.
7225         Cast a signed value to unsigned long when comparing against one.
7226         (new_eh_context): Wrap in _GTHREADS macro.
7227         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
7228         declaration.
7229         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
7230         (throw_helper): Initialize variables `handler_p' and `pc_p'.
7231
7232 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7233
7234         * combine.c (record_promoted_value): Remove unused variable
7235         `links2'.
7236
7237         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
7238
7239         * global.c (record_conflicts): Likewise for `j'.
7240
7241         * genoutput.c (output_insn_data): Don't unnecessarily cast away
7242         const-ness.
7243
7244 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7245
7246         * i386-protos.h (output_387_binary_op, output_fix_trunc,
7247         output_fp_compare): Constify a char*.
7248
7249         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
7250         static prototypes.
7251         (override_options, ix86_comp_type_attributes, print_operand,
7252         output_387_binary_op, output_fix_trunc, output_fp_compare):
7253         Constify a char*.
7254         (ix86_sched_reorder): Mark parameter `clock_var' with
7255         ATTRIBUTE_UNUSED.
7256
7257         * i386.h (DEBUG_PRINT_REG): Constify a char*.
7258
7259 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
7260
7261         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
7262         operand, for use in the Java front-end.
7263
7264 1999-12-10  Ben Collins  <bcollins@debian.org>
7265
7266         * configure.in: Fix typo for "-64" in 64bit as check.
7267         * configure: Rebuilt.
7268
7269 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
7270
7271         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
7272         appropriate.
7273
7274 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7275
7276         * c-parse.in (string): With -Wtraditional, warn if ANSI string
7277         concatenation is utilized.
7278
7279         * invoke.texi (-Wtraditional): Document it.
7280
7281 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7282
7283         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
7284         Cast a ptrdiff_t to long and pass it to printf with %ld.
7285
7286 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
7287
7288         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
7289         68881, we have no 68881 registers at all.
7290         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
7291         value in a 68881 register if it is available.
7292
7293 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
7294
7295         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
7296         for long long multiply-accumulate.
7297
7298 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
7299
7300         * loop.c (insert_loop_mem): Undo last change.
7301
7302 1999-12-10  David S. Miller  <davem@redhat.com>
7303
7304         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
7305         New functions.
7306         * config/sparc/sparc-protos.h: Add them.
7307         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
7308         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
7309         constraints which use those helpers.
7310         (EXTRA_CONSTRAINT): Use this new macro.
7311         * md.texi: Update sparc target constraints documentation.
7312         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
7313         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
7314         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
7315         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
7316         (movsf high/lo_sum split): Rework for new patterns.
7317         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
7318
7319 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
7320
7321         * c-common.c (c_common_nodes_and_builtins):
7322         Create __builtin_ptrdiff_t and __builtin_size_t.
7323
7324 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
7325
7326         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
7327
7328 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7329
7330         * regclass.c (globalize_reg): Re-instate test that allows
7331         fixed registers to be declared as a variable even after functions
7332         are defined.
7333
7334 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
7335
7336         * i386.md (cpu attribute): Add "athlon".
7337         (athlon_decode): New attribute.
7338         (Athlon scheduling units definitions): New.
7339         (fcmp and shld patterns): Set athlon_decode to "vector".
7340         * i386.c (athlon_cost): New.
7341         (m_ATHLON): New.
7342         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7343         x86_use_sahf): Set for Athlon.
7344         (x86_use_fiop): Unset for Athlon.
7345         (override_options): Define Athlon alignments and "athlon" name.
7346         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
7347         * i386.h (TARGET_ATHLON): New.
7348         (enum processor_type): Add PROCESSOR_ATHLON.
7349         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
7350         for CPU_DEFAULT==5
7351         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
7352
7353 1999-12-09  Andreas Jaeger  <aj@suse.de>
7354
7355         * loop.c (record_biv): Declare parameter as int.
7356
7357         * config/i386/i386-protos.h: Declare long_memory_operand.
7358
7359 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
7360
7361         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
7362         EXPR_WITH_FILE_LOCATION.
7363
7364 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
7365
7366         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
7367         in expander.
7368
7369         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
7370
7371         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
7372         updating code.
7373
7374 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
7375
7376         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
7377         default on linux64 again.
7378         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
7379         models for multilibing.
7380         * genmultilib: Accept | as alternative separator within a set in
7381         MULTILIB_OPTIONS.
7382
7383         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
7384
7385         * calls.c (precompute_arguments): Make sure initial_value contains
7386         value pseudo which CSE expects.
7387         * cse.c (struct set): New entry orig_src.
7388         (cse_insn): Set it early on entry, use it for libcall EQUIV note
7389         replacement.
7390
7391 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
7392
7393         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
7394
7395 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
7396
7397         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
7398
7399 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
7400
7401         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
7402         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
7403
7404         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
7405         if TARGET_ARCH32.
7406
7407         * longlong.h: Merge in changes from glibc.
7408         Also don't clobber %g2 register in 32bit SPARC assembly, so that
7409         -mno-app-regs libgcc can be compiled.
7410         * libgcc2.c: Add defines so that the updated longlong.h
7411         can be used in libgcc2.a. Also, make sure on most architectures
7412         (at least on all which have optimized code in longlong.h defined
7413         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
7414
7415 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7416
7417         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
7418         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
7419         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
7420         is GNU ld.
7421         * configure: Rebuilt.
7422
7423 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
7424
7425         * alpha.c (secondary_reload_class): For !BWX, sub-simode
7426         outputs require a register.
7427
7428 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
7429
7430         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
7431         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
7432         functions like dptoul will be resolved.
7433         (libgcc2.a): Make sure that the object files from DPBIT are named
7434         differently (prefix `_dp') from those that would be coming from
7435         FPBIT.
7436
7437 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
7438
7439         * configure.in: When target is sparc* and tm_file contains 64,
7440         test for 64bit support in assembler.  If not supported, remove
7441         sparc/t-sol2-64 from target-dependent Makefile fragments.
7442         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
7443         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
7444         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
7445         * acconfig.h (AS_SPARC64_FLAG): Added.
7446         * configure, config.in: Rebuilt.
7447         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
7448         support.  Use AS_SPARC64_FLAG.
7449
7450 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
7451
7452         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
7453         suitable for holding OFmode values so that gcc works with complex
7454         quad long doubles.
7455         (hard_64bit_mode_classes): Likewise.
7456
7457         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
7458         so that it is actually matched.
7459         (sethi_di_medlow): Likewise.
7460
7461         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
7462         as legitimate constant if -mvis.
7463         * config/sparc/sparc.md (movtf): Likewise.
7464         (clear_sf): Use const_double_operand.
7465         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
7466
7467         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
7468         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
7469         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
7470         routines, _Qp_* cannot be handled like that now.
7471         (INIT_TARGET_OPTABS): Likewise.
7472         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
7473         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
7474         sparc_emit_float_lib_cmp if ARCH64 and soft float.
7475         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
7476         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
7477         divtf3, sqrttf3): New expanders.
7478         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
7479         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
7480         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
7481         non-_hq patterns.
7482
7483         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
7484         * configure: Rebuilt.
7485         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
7486         -mcpu is given and we're doing 64bit compiles.
7487
7488 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
7489
7490         * loop.h (struct induction): Add multi_insn_incr.
7491         * loop.c (basic_induction_var): New multi_insn_incr argument.
7492         Set it if we search back through previous insns for the biv.
7493         (record_biv): New multi_insn_incr argument; fill in struct induction.
7494         (strength_reduce): Discard an iv with multiple bivs, any of
7495         which require multiple insns to increment.
7496
7497 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7498
7499         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
7500         documentation.
7501
7502 1999-12-06  David S. Miller  <davem@redhat.com>
7503
7504         * combine.c (check_promoted_subreg): Do not conditionalize this upon
7505         PROMOTE_FUNCTION_RETURN.
7506
7507 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
7508
7509         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
7510         and handle REG_UNUSED note on insn.
7511
7512         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
7513         inner_mask instead of mask.
7514
7515 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
7516
7517         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
7518         zero if there was an error.
7519
7520 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
7521
7522         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
7523         output string.
7524
7525         * longlong.h: Fix clobbers in SPARC asm statements.
7526
7527         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
7528         valid sethi operations when TARGET_ARCH64.
7529
7530         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
7531         always use move_by_pieces to avoid infinite recursion.
7532         (restore_fixed_argument_area): Likewise.
7533
7534         * combine.c (check_promoted_subreg, record_promoted_value): New
7535         functions.
7536         (combine_instructions): Use them to retain nonzero and sign bit
7537         information after SUBREGs are eliminated by optimizations in
7538         this pass if PROMOTE_FUNCTION_RETURN.
7539
7540         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
7541         .register declaration. Don't use variables with __ prefixes.
7542
7543 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7544
7545         * fold-const.c (optimize_bit_field_compare): Only use one mode
7546         for both RHS and LHS in non-constant case.
7547
7548 1999-12-06  Nathan Sidwell  <nathan@acm.org>
7549
7550         * frame.c (start_fde_sort): Only allocate erratic array, if
7551         linear one was allocated. Return allocated flag.
7552         (fde_insert): Only insert, if there's a valid array.
7553         (fde_end_sort): Split, sort and merge if linear and erratic
7554         arrays exist, else just sort linear one.
7555         (search_fdes): New function. Linear search through original fde
7556         structure.
7557         (frame_init): Permit multiple initializations. Cope with
7558         memory shortages.
7559         (find_fde): Fallback on linear search, if failed to sort array.
7560         (__deregister_frame_info): Only free sorted array, if we
7561         allocated it.
7562
7563 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
7564
7565         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
7566
7567 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
7568
7569         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
7570
7571 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
7572
7573         * tree.h (special_function_p): Declare.
7574         * calls.c (special_function_p): Make it global.  Don't take `name'
7575         as a parameter.  Fix typo in 1999-11-28 change.
7576         (expand_cal): Adjust.
7577
7578 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
7579
7580         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
7581         * tree.h (EXPR_WFL_FILENAME): Define in terms of
7582         EXPR_WFL_FILENAME_NODE.
7583         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
7584         the TREE_CHAIN.
7585         * print-tree.c (print_note): Print TREE_PRIVATE and
7586         TREE_PROTECTED.
7587
7588         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
7589         the original die cannot be found.
7590
7591         * varray.h (varray_head_tag): Add elements_used.
7592         (VARRAY_PUSH): New macro.
7593         (VARRAY_POP): Likewise.
7594         (VARRAY_TOP): Likewise.
7595         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
7596         types.
7597         * varray.c (varray_init): Initialize elements_used.
7598         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
7599         (INTEGRATE_H): New variable.
7600         (integrate.o): Depend on INTEGRATE_H.
7601         (unroll.o): Likewise.
7602
7603         * function.h (insert_block_after_note): Declare.
7604         * function.c (insert_block_after_note): Split out from ...
7605         (retrofit_block): ... here.
7606
7607         * stmt.c (expand_fixup): Fix typo in comment.
7608
7609 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
7610
7611         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
7612         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
7613         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
7614         (regmove_optimize, fixup_match_1): Likewise.
7615
7616 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7617
7618         * flow.c (flow_loops_dump): Add missing argument when calling
7619         flow_loop_nested_p.
7620
7621 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
7622             Greg McGary  <gkm@gnu.org>
7623
7624         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
7625         (init_attributes): Add A_NO_LIMIT_STACK.
7626         (decl_attributes): Handle A_NO_LIMIT_STACK.
7627         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
7628         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
7629         Handle stack bounds checking.
7630         * flags.h (flag_stack_check): Use the word 'probe' rather than
7631         'check', because the flag doesn't actually cause any checking to
7632         be done.
7633         * function.c (expand_function_start): Set
7634         current_function_limit_stack.
7635         * function.h (struct function): Add limit_stack.
7636         (current_function_limit_stack): Define.
7637         * invoke.texi (Code Gen Options): Document new options.
7638         * rtl.h: Declare stack_limit_rtx.
7639         * toplev.c (stack_limit_rtx): New variable.
7640         (decode_f_option): Handle new options -fstack-limit-register=REG,
7641         -fstack-limit-symbol=IDENT, -fno-stack-limit.
7642         (main): Add stack_limit_rtx as GC root.
7643         * tree.h (DECL_NO_LIMIT_STACK): New macro.
7644         (struct tree_decl): New member no_limit_stack.
7645
7646         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
7647         stack_limit_rtx.
7648         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
7649         (conditional_trap+1): Get new mnemonic correct.
7650         (conditional_trap+2): New pattern for DImode traps.
7651
7652         * config/m68k/m68k.c (output_function_prologue): Handle
7653         stack_limit_rtx.
7654         * config/m68k/m68k.md (trap): New insn.
7655         (conditional_trap): New insn.
7656         * md.texi (Standard Names): Document `trap' and
7657         `conditional_trap'.
7658         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
7659         so a cc0 setter doesn't get emitted at some random place in the
7660         function.
7661
7662         * config/i960/i960.md (trap): New insn.
7663         (conditional_trap): New expander.
7664         (conditional_trap+1, conditional_trap+2): New insns for signed
7665         and unsigned cases.
7666         * config/i960/i960.c (i960_function_prologue): Use
7667         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
7668
7669 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
7670                           Geoffrey Keating  <geoffk@cygnus.com>
7671
7672         * flags.h (warn_padded, warn_packed): Add global var decls.
7673         * toplev.c (warn_padded, warn_packed): Add global var defns.
7674         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
7675         * stor-layout.c (layout_record): Add local variable `type'
7676         to hold often-used TREE_TYPE (field).  Add local variable
7677         `unpacked_align' to hold alignment that would be in force
7678         if no `packed' attribute were present.  Warn if `packed' attribute
7679         is unnecessary, or even harmful.  Warn when gcc inserts padding
7680         to satisfy alignment requirements of members.  Use NULL_TREE
7681         when checking whether var_size is set.
7682         * invoke.texi: Document new flags.
7683
7684 1999-12-03  Nathan Sidwell  <nathan@acm.org>
7685
7686         * frame.c (fde_split): Reimplement to avoid variable sized array.
7687
7688 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7689
7690         * combine.c (try_combine): Before fixing up LOG_LINKS for the
7691         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
7692
7693 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
7694
7695         * invoke.texi: Document the mips option -mno-crt0
7696
7697 1999-12-02  Mike Karr  <mkarr@mathworks.com>
7698
7699         * cccp.c (argdata): Added free_ptr member.
7700         (macroexpand): Initialize free_ptr of each argument. When an
7701         argument's buffers are freed, if the argument's free_ptr corresponds
7702         to a buffer on the input stack, then return the free_ptr to that stack
7703         frame, otherwise, free it.
7704         (macarg): If an argument begins and ends on the same input stack level,
7705         then transfer the free_ptr of that buffer to the argument in case
7706         the stack is popped during the processing of a subsequent argument.
7707
7708 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
7709
7710         * loop.c (note_reg_stored): New function.
7711         (struct note_reg_stored_arg): New structure.
7712         (try_copy_prop): Change to be more conservative; only replace within
7713         one extended basic block and stop replacing if a store to the
7714         replacement reg is seen.
7715
7716 1999-12-02  Nick Clifton  <nickc@cygnus.com>
7717
7718         * config/fp-bit.c: Initialise all fields of the NAN
7719         constants.
7720
7721         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
7722         to HANDLE_PRAGMA.
7723
7724 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
7725
7726         * i386.md (extend?f?f2): Force the input into a register, not
7727         the output.
7728
7729 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
7730
7731         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
7732         regclass' sake.
7733         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
7734         alternative because setting up 64bit constant is usually costly,
7735         especially when reload is in progress or completed.
7736         (movdf_const_intreg_sp64): Likewise.
7737         (movdf_const_intreg split): Fix building up constants when
7738         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
7739
7740 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
7741
7742         * combine.c (if_then_else_cond): Use const_true_rtx instead of
7743         const1_rtx for return values in EQ/NE comparison against (const_int 0)
7744         case.
7745
7746         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
7747         (asm_file_start): Emit .am33 into assembly file when compiling for
7748         the AM33.
7749         (print_operand_address): Handle POST_INC addresses.
7750         (can_use_return_insn, initial_offset): Check AM33 registers too.
7751         (expand_prologue): Check & save AM33 registers too.
7752         (expand_epilogue): Similarly.
7753         (secondary_reload_class): Handle AM33 specific secondary reloads.
7754         (output_tst): Emit efficient code for the AM33 too.
7755         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
7756         (TARGET_SWITCHES): Add -mam33 switch.
7757         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
7758         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
7759         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
7760         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
7761         (enum reg_class, REG_CLASS_NAMES): Likewise.
7762         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
7763         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
7764         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
7765         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
7766         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
7767         (HAVE_POST_INCREMENT): Define.
7768         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
7769         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
7770         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
7771         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
7772         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
7773         (zero_extend to SI from QI/HI): Likewise.
7774         (sign_extend to SI from QI/HI): Likewise.
7775         (mulsidi3, umulsidi3): New patterns for the AM33.
7776         (tstsi with zero extension from QI/HI): Add AM33 variants.
7777         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
7778         (return_internal_regs, store_movm): Handle new AM33 registers.
7779         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
7780         (LIBGCC, INSTALL_LIBGCC): Likewise.
7781         * invoke.texi: Document new flags.
7782
7783 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
7784
7785         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
7786         (addsi3_carry): Likewise.
7787         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
7788         (sbbsi3_carry): Likewise.
7789         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
7790         (mulhi3): Likewise.
7791         (test?i_1): Ensure that only one operand is memory.
7792         (conditional move patterns): likewise.
7793         (shift and rotate patterns): Rewrite to expander, add
7794         "binary_operator_ok" to the condition.
7795
7796         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
7797         * i386.h (procesor_costs): Add movzbl_load field.
7798         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
7799         non-Q registers, accept DImode registers anywhere.
7800         (Q_CLASS_P): New.
7801         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
7802         * i386.c (*_cost): Set value for movxbl_load field.
7803
7804         * (addsi): New add to lea splitter.
7805         (ashlsi): Likewise.
7806         (lea to add/shift peep2): New.
7807
7808 1999-12-01  Mark Salter <msalter@cygnus.com>
7809
7810         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
7811         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
7812         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
7813
7814 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
7815
7816         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
7817         * i386.md (movsi_xor): New.
7818         (movsi_or): New.
7819         (movsi_1, movhi_1, movqi_1): Remove.
7820         (movsi_2): Rename to movsi_1.
7821         (movhi_2): Rename to movhi_1.
7822         (movqi_2): Rename to movqi_1.
7823         (movdi_1): Remove; remove splitter.
7824         (movdi_2): Rename to movdi_1.
7825         (divmodsi4 splitter): Do not emit clobbers for move patterns.
7826         (long move peep2): Do not create QI or HI mode mov0s
7827         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
7828
7829         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
7830         rewrite splitters.
7831
7832         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
7833         (abs?f2_if): Likewise.
7834
7835 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
7836
7837         * ggc.h (ggc_test_and_set_mark): New macro.
7838         (ggc_mark_rtx): Use ggc_test_and_set_mark.
7839         (ggc_mark_tree): Likewise.
7840         (ggc_mark_rtvec): Likewise.
7841         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
7842
7843 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
7844
7845         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
7846         containing types.
7847         (decl_scope_table): Just an array of trees now.
7848         (push_decl_scope): Simplify.
7849         (dwarf2out_init): Adjust.
7850         (local_scope_p): New fn.
7851         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
7852         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
7853         (gen_typedef_die): Likewise.
7854         (gen_lexical_block_die): Don't call push/pop_decl_scope.
7855         (gen_inlined_subroutine_die): Likewise.
7856         (gen_abstract_function): Set current_function_decl temporarily.
7857         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
7858         Handle block extern declarations.  Don't call push/pop_decl_scope.
7859         (gen_decl_die): Fix logic for block externs.
7860
7861 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7862
7863         * calls.c (special_function_p): Remove `realloc' and add `strdup'
7864         to the list of functions which have attribute malloc by default.
7865
7866 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7867
7868         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
7869         integer constant does not match the traditional type, limit the
7870         warnings to cases where the base of the type is ten.
7871
7872         * invoke.texi (-Wtraditional): Document it.
7873
7874 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7875
7876         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
7877         * rs6000.md: Only access a CONST_INT with INTVAL
7878
7879 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
7880
7881         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
7882         (compute_nearerout): Likewise.
7883         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
7884         size_t to unsigned long for formatting.
7885
7886 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
7887
7888         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
7889         Allow the user to override call-used/fixed state of %g2-5
7890         registers from the command line (with the exception of %g4 for
7891         embedded model).
7892         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
7893         there is a higher chance of having a leaf function.
7894         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
7895         for ARCH64 which has %ccr register.
7896         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
7897         patterns.
7898         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
7899         insn accept into delay slot any insn which does not use %[ol]
7900         registers.  Accept some LO_SUM and shift left by 1 for the normal
7901         restore case.
7902         (output_function_epilogue): Likewise.
7903         (epilogue_renumber): Added argument which inhibits any renumbering
7904         and just tests if the rtx does not use any %[ol] registers.
7905         (output_return): Reflect above change.
7906
7907 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
7908
7909         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
7910         aggregate passing for sizes <= 16 bytes.
7911
7912 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
7913
7914         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
7915         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
7916         * reload.c (find_dummy_reload): Likewise.
7917         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
7918         * reload1.c (reload_as_needed): Likewise.
7919         * stupid.c (stupid_find_reg): Likewise.
7920         * tm.texi (Obsolete Register Macros): Delete section.
7921         * gmicro.h: Remove all traces of the two macros.
7922         * i386.h: Likewise.
7923         * m88k.h: Likewise.
7924         * mips.h: Likewise.
7925
7926 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
7927
7928         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
7929         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
7930         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
7931         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
7932         units for the sparclite86x chip.
7933         (flush): Revert October 14th change; add SImode specifically.
7934         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
7935         * invoke.texi: Document it.
7936
7937 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
7938
7939         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
7940         psimode_truncation_operand.
7941
7942         * config/mn10200/mn10200.c (psimode_truncation_operand): New
7943         function.  Return true if the operand is either a MEM valid
7944         for a PSImode address or not a MEM at all.
7945
7946         * config/mn10200/mn10200.md (truncsipsi2): Use
7947         psimode_truncation_operand.
7948
7949 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7950
7951         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
7952         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
7953         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
7954         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
7955         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
7956         (flow_loop_level_compute, low_loops_level_compute): Likewise.
7957         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
7958         * basic-block.h: Protect from multiple inclusion.
7959         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
7960         (struct loops, struct loop): Define structures.
7961         * sbitmap.c (sbitmap_a_subset_b_p): New function.
7962         * sbitmap.h: Protect from multiple inclusion.
7963         (sbitmap_a_subset_b_p): Add prototype.
7964         * Makefile.in (LOOP_H): New macro.
7965         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
7966
7967 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
7968
7969         * cppinit.c (CAT): The argument list of this macro may not contain
7970         spaces !
7971
7972 1999-11-29  David S. Miller  <davem@redhat.com>
7973
7974         Move quantity tables and register equivalence chains into
7975         per-qty and per-register structure arrays respectively.
7976         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
7977         qty_const_insn, qty_comparison_code, qty_comparison_const,
7978         qty_comparison_qty): Delete, replace with...
7979         (qty_table): this structure table.
7980         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
7981         (reg_eqv_table): this structure table.
7982         (make_new_qty): Add argument MODE.  Caller updated.
7983         Update to use qty_table and reg_eqv_table.
7984         (make_regs_eqv, delete_reg_equiv, insert_regs,
7985         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
7986         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
7987         cse_process_notes, cse_main, cse_basic_block): Likewise.
7988
7989 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7990
7991         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
7992         operation if C is negative.
7993         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
7994         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
7995         law for some divisions if constant is negative and change other
7996         divisions to the opposite rounding.
7997
7998         * expr.c (store_constructor_field): If bit position is not multiple
7999         of alignment of TARGET's mode, use BLKmode.
8000
8001         * expr.c (expand_expr_unaligned): Add more code from full case
8002         that is needed when OP0 is in a register.
8003
8004 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8005
8006         * dwarfout.c (field_byte_offset): Size can be zero if there was
8007         an error.
8008
8009 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
8010
8011         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
8012         (associate_trees): Delete unused var TEM.
8013         (extract_muldiv): Delete unused var CANCEL_P.
8014
8015         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
8016         (target_isinf, target_isnan, target_negative): Add return types to
8017         function definitions.
8018
8019 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
8020
8021         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
8022         * fixinc/hackshell.tpl: ditto
8023         * fixinc/fixtests.c(double_slash_test): more C++ header testing
8024         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
8025
8026 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
8027
8028         * reload.c (push_reload): When looking for a register to put into
8029         reg_rtx, make sure all hard regs in a multi-reg register are in the
8030         right class and nonfixed.
8031
8032         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
8033         pending_read_insns, pending_write_insns, pending_read_mems,
8034         pending_write_mems, pending_list_length, last_pending_memory_flush,
8035         last_function_call, sched_before_next_call): Move static variables
8036         into a structure.
8037         (bb_ prefixed versions): Replace with single array bb_deps.
8038         (struct deps): New structure.
8039         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
8040         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
8041         argument of type "struct deps *"; use that instead of global
8042         variables.  All callers changed.
8043         (init_rgn_data_dependencies): Delete function.
8044         (init_rtx_vector): Delete function.
8045         (init_deps): New function.
8046
8047         (free_pending_lists): Simplify, we always use the bb_deps array even
8048         if only one basic block.
8049         (compute_block_backward_dependences): Likewise.
8050         (schedule_region): Likewise.
8051
8052         (propagate_deps): New function, broken out of
8053         compute_block_backward_dependences.
8054         (compute_block_backward_dependences): Use it.
8055
8056         * alpha.md: Delete useless patterns that tried to work around
8057         register elimination problems.
8058
8059         * unroll.c (loop_iterations): Don't abort if iteration variable
8060         was made by loop.
8061
8062         From Joern Rennecke:
8063         * reload1.c (reloads_conflict): Reverse test comparing operand
8064         numbers when testing for conflict between output/outaddr reloads.
8065
8066 1999-11-29  David S. Miller  <davem@redhat.com>
8067
8068         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
8069         arg.
8070         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
8071
8072 1999-11-28  Robert Lipe  <robertl@cygnus.com>
8073
8074         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
8075         table from .fini into .dtor.
8076
8077 1999-11-28  Anthony Green  <green@cygnus.com>
8078
8079         * tree.h (struct tree_decl): Add malloc_flag.
8080         (DECL_IS_MALLOC): Define.
8081         * c-common.c (attrs): Add A_MALLOC attribute.
8082         (init_attributes): Add this attribute to the table.
8083         (decl_attributes): Handle malloc attribute.
8084         * calls.c (special_function_p): Check for the malloc attribute.
8085         * extend.texi (Function Attributes): Document malloc attribute.
8086
8087 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
8088
8089         * pa.md (reload shift-add patterns): Remove.
8090
8091 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8092
8093         * reorg.c (dbr_schedule) Print more statistics. Corrected
8094         problem when printing info when 3 delay slots are filled.
8095
8096 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
8097
8098         * combine.c (setup_incoming_promotions): Pass an outgoing
8099         regno to FUNCTION_ARG_REGNO_P which it expects.
8100
8101 1999-11-28  Andreas Jaeger  <aj@suse.de>
8102
8103         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
8104
8105 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
8106
8107         * cccp.c (do_include): Avoid initialization of automatic variable.
8108
8109         * integrate.c (mark_stores): Function definition made void, to match
8110         previous declaration.
8111         * regclass.c (dump_regclass): Ditto.
8112         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
8113
8114 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8115
8116         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
8117         known to be multiple of divisor.
8118
8119         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
8120
8121         * combine.c (try_combine): Add code to try to merge a set of a
8122         two-word pseudo to a constant with a setting of one of those words
8123         to a constant.
8124
8125         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
8126         (split_tree): Completely rework to make more general.
8127         (make_range, fold): Call negate_expr.
8128         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
8129         (fold, associate): Call new split_tree and associate_trees.
8130         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
8131
8132 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
8133
8134         * loop.c (try_copy_prop): Avoid GNU C extension.
8135
8136 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
8137
8138         * except.c (init_eh_for_function): Still zero eh_return_context,
8139         eh_return_stack_adjust, and eh_return_handler.
8140
8141         * except.h (eh_status): Adjust documentation for x_protect_list.
8142         (begin_protect_partials): New function.
8143         * except.c (enqueue_eh_entry): Fix formatting.
8144         (get_first_handler): Add consistency check.
8145         (add_partial_entry): Adjust usage of protect_list.
8146         (emit_cleanup_handler): Save and restore ehqueue.
8147         (expand_start_all_catch): Add comment.
8148         (begin_protect_partials): New function.
8149         (end_protect_partials): Adjust usage of protect_list.
8150         (init_eh_for_function): Use xcalloc.
8151
8152 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8153
8154         * c-common.c (check_format_info): Don't call a variadic function
8155         with a non-literal format string.
8156
8157         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
8158
8159         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
8160         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
8161         Likewise.
8162
8163         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
8164         Likewise.
8165
8166         * collect2.c (collect_wait): Likewise.
8167
8168         * dbxout.c (dbxout_type): Likewise.
8169
8170         * gcc.c (do_spec_1): Likewise.
8171
8172         * genemit.c (gen_insn, gen_expand): Likewise.
8173
8174         * genrecog.c (write_switch, write_subroutine): Likewise.
8175
8176         * mips-tfile.c (catch_signal, botch): Likewise.
8177
8178         * print-rtl.c (print_rtx): Likewise.
8179
8180         * toplev.c (default_print_error_function, report_error_function,
8181         _fatal_insn): Likewise.
8182
8183 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
8184
8185         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
8186
8187 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8188
8189         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
8190         operations when needed.
8191         * i386.md (fop_?f_comm): New.
8192         (fop_?f_1): Do not accept commutative operands.
8193
8194 1999-11-25  Andreas Jaeger  <aj@suse.de>
8195
8196         * config/mips/mips.md (casesi_internal): Add missing brace.
8197
8198 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
8199
8200         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
8201         (splice_child_die): Handle moving a child DIE from the declaration
8202         DIE of a class to its specification.
8203         (gen_struct_or_union_type_die): Use 'complete' consistently.
8204         (gen_decl_die): Generate the virtual context DIE first.
8205         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
8206
8207 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
8208
8209         * config/mips/mips.md (call_value_multiple_interanal1): New.
8210
8211 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
8212
8213         * dwarf2out.c (free_AT, free_die): New fns.
8214         (remove_children): Call them.
8215         (output_line_info): Disable removal of duplicate notes.
8216
8217         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
8218         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
8219         means pretend the type isn't defined.
8220         Don't defer emitting types.
8221         (gen_type_die_for_member): New fn.
8222         (gen_decl_die): Call it.
8223         (splice_child_die): New fn.
8224         (gen_member_die): Call it rather than generate duplicate dies.
8225
8226         Defer emitting information for the abstract instance of an inline
8227         until we either inline it or emit an out-of-line copy.
8228         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
8229         from output_inline_function if DECL_ABSTRACT is also set.
8230         (block_ultimate_origin): Likewise.
8231         (gen_abstract_function): New fn.
8232         (gen_decl_die, gen_inlined_subroutine_die): Call it.
8233         (gen_subprogram_die):  An abstract instance is not a declaration
8234         just because it doesn't match current_function_decl.  Don't abort
8235         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
8236         has an abstract origin.
8237         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
8238         abstract instance here.
8239
8240 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
8241
8242         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
8243         where we need to reload fpul from a system register.
8244
8245 1999-11-24  Andreas Jaeger  <aj@suse.de>
8246
8247         * config/mips/linux.h (CPP_PREDEFINES): Added.
8248         (LINK_SPEC): Remove -Y since this is only needed on sparc.
8249
8250 1999-11-24  Andreas Jaeger  <aj@suse.de>
8251
8252         * config/mips/linux.h (TARGET_VERSION): Added.
8253         (HANDLE_SYSV_PRAGMA): Added.
8254         (DEFAULT_VTABLE_THUNKS): Added.
8255
8256 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8257
8258         * local-alloc.c (qty): New structure and static variable.
8259         (qty_phys_reg): Remove, all references changed to qty.
8260         (qty_n_refs): Likewise.
8261         (qty_min_class): Likewise.
8262         (qty_birth): Likewise.
8263         (qty_death): Likewise.
8264         (qty_size): Likewise.
8265         (qty_mode): Likewise.
8266         (qty_n_calls_crossed): Likewise.
8267         (qty_alternate_class): Likewise.
8268         (qty_changes_size): Likewise.
8269         (qty_first_reg): Likewise.
8270         (alloc_qty): Rename variable QTY to QTYNO.
8271         (finf_free_reg): Likewise.
8272         (local_alloc): Allocate qty, do not allocate the removed variables.
8273
8274 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
8275
8276         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
8277         when -membedded-pic is passed.
8278
8279         * config/mips/mips.md (casesi): Handle 64-bit case too.
8280         (casesi_internal_di): New insn.
8281
8282         * config/mips/mips.c (embedded_pic_offset): Always make the
8283         embedded-pic subtractions relative to the name of the current
8284         function by use of the magic string "..CURRENT_FUNCTION".
8285         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
8286
8287 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
8288
8289         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
8290         of (const_int 0), when what we really care about is
8291         whether it's a zero constant anyway.
8292         (div_trap_mips16): Likewise.
8293
8294 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
8295
8296         * loop.c (loop_optimize): Always find_loop_tree_blocks and
8297         unroll_block_trees when generating debuggable code.
8298
8299         * tree.h (unsave_expr_1): New function.
8300         (lang_unsave): New variable.
8301         (get_callee_fndecl): New function.
8302         * tree.c (unsave_expr_now_r): New function.
8303         (lang_unsave): Define.
8304         (unsave_expr_1): Likewise.
8305         (unsave_expr_now_r): Split out from unsave_expr_now.
8306         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
8307         call unsave_expr_now_r.
8308         (get_callee_fndecl): Define.
8309
8310         * Makefile.in (gencheck): Don't depend on lang_tree_files.
8311         (gencheck.o): Do depend on lang_tree_files.
8312
8313         * integrate.h (copy_decl_for_inlining): New declaration.
8314         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
8315         (copy_decl_for_inlining): New function.
8316         (integrate_parm_decls): Use it.
8317         (integrate_decl_tree): Likewise.
8318
8319 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
8320
8321         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
8322         the second two from the first.
8323         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
8324         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
8325         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
8326         ISA_HAS_FP4.
8327         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
8328         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
8329         ISA_HAS_FP4.
8330
8331 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
8332
8333         * pa.md (call_internal_symref, call_value_internal_symref): No mode
8334         needed on the address operand.
8335         * pa.c (call_operand_address): Check for the correct mode.
8336
8337 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
8338
8339         * loop.c: Include "basic-block.h".
8340         (try_copy_prop, replace_loop_reg): New functions.
8341         (load_mems): Detect registers that just hold copies of the hoisted
8342         mem, and call try_copy_prop to eliminate them.
8343         * Makefile.in (loop.o): Update dependencies.
8344
8345 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
8346
8347         * Makefile.in (gencheck.o): Depend on gencheck.h.
8348         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
8349         (insn-peep.o): Depend on except.h and function.h.
8350         (insn-attrtab.o): Depend on RECOG_H.
8351         (insn-output.o): Depend on toplev.h and flags.h.
8352         (gengenrtl.o): Depend on real.h.
8353         (gen-protos.o): Depend on cpplib.h and cpphash.h.
8354         Unify all dependencies to be on RECOG_H rather than recog.h.
8355
8356 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8357
8358         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
8359         * configure.in: Try building a bi-arch 32/64-bit compiler on
8360         sparc-*-solaris2.7 and higher.
8361         * configure: Rebuild.
8362
8363 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
8364
8365         * config/freebsd.h: New, FreeBSD architecture independent file.
8366         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
8367         independent pieces.
8368         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
8369         directly by i386/freebsd.h.
8370         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
8371         independent configuration file.
8372         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
8373         directly by i386/freebsd.h.
8374         * configure: Rebuilt.
8375
8376         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
8377         which is in the user's namespace.
8378         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
8379         `i386' which is not in our namespace.
8380
8381 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
8382
8383         * invoke.texi (ARM Options): Add in -mno-alignment-traps
8384
8385 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
8386
8387         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
8388         (add_dwarf_attr, add_child_die): Just push onto the front.
8389         (reverse_die_lists): New fn.
8390         (add_sibling_attributes): Use it.
8391         (push_decl_scope): Reorganize.
8392         (add_name_and_src_coords_attributes): Don't set file and line for
8393         an artificial decl.
8394         (gen_subprogram_die): An artificial function doesn't need to match
8395         file and line.
8396         (gen_compile_unit_die): Return the generated die.  Only add
8397         AT_comp_dir if the filename is relative.
8398         (remove_AT): Simplify loop.  Also free string values.
8399         (output_die): A DIE ref can't be null.
8400         (output_value_format, value_format): Take a dw_attr_ref.
8401         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
8402         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
8403         AT_addr, AT_lbl): New fns.
8404         (various): Use them.
8405         (various): Constify.
8406
8407 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8408
8409         * combine.c (combine_simplify_rtx): When handling a SUBREG,
8410         take SUBREG_WORD into account.
8411         (if_then_else_cond): Likewise.
8412
8413 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
8414
8415         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
8416         clause from BSD license, pursuant with
8417
8418           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
8419
8420 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
8421
8422         * loop.c (load_mems): Reformat slightly.
8423         * basic-block.h (regset_head): New typedef.
8424         (INIT_REG_SET): New macro.
8425
8426 1999-11-22  Bruce Korb  <autogen@linuxbox.com
8427
8428         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
8429         (mips-dec-bsd*): non-functional code
8430         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
8431
8432         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
8433         added three replacement fixes
8434         (no_double_slash): removed comments that are not (any longer) pertinent
8435         (bad_lval): this fix currently runs against many files.
8436         The comment seems to indicate that we should select for files
8437         containing 'pragma extern_prefix'.
8438
8439         * fixinc/fixinc.x86-linux-gnu: deleted
8440         * fixinc/inclhack.sh:  regen
8441         * fixinc/fixincl.x:  regen
8442         * fixinc/fixincl.sh:  regen
8443
8444 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
8445
8446         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
8447         its code is INSN and it has no notes.
8448
8449 1999-11-22  Andrew Haley  <aph@cygnus.com>
8450
8451         * varasm.c (function_defined): Remove.
8452         (make_function_rtl): Don't set function_defined.
8453         (make_decl_rtl): Remove global register warning.
8454         * regclass.c (no_global_reg_vars): New variable.
8455         (globalize_reg): Warn if function has already been defined.
8456         (regclass_init): Set no_global_reg_vars.
8457
8458 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8459
8460         * regclass.c (reg_pref): New structure and static variable
8461         (prefclass): Delete.
8462         (altclass): Delete.
8463         (all uses of prefclass and altclass): Use reg_pref instead.
8464
8465 1999-11-21  Nick Clifton  <nickc@cygnus.com>
8466
8467         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
8468         -malignment-traps.
8469         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
8470         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
8471         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
8472
8473 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
8474
8475         * varasm.c (output_constructor): Solve problem with long long
8476         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
8477
8478 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8479
8480         * global.c (allocno): New structure and static variable.
8481         (allocno_reg): Remove, all references replaced by allocno.
8482         (allocno_size): Likewise.
8483         (hard_reg_conflicts): Likewise.
8484         (hard_reg_preferences): Likewise.
8485         (hard_reg_copy_preferences): Likewise.
8486         (hard_reg_full_preferences): Likewise.
8487         (regs_someone_prefers): Likewise.
8488         (allocno_calls_crossed): Likewise.
8489         (allocno_n_refs): Likewise.
8490         (allocno_live_length): Likewise.
8491         (find_reg): Rename ALLOCNO to NUM.
8492
8493         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
8494         references updated.
8495         (may_move_out_cost): New variable.
8496         (init_reg_sets_1): Initialize may_move_out_cost.
8497         (record_reg_classes): Use may_move_out_cost.
8498
8499         * regclass.c (dump_regclass): New function.
8500         (regclass): New parameter DUMP, call DUMP_REGCLASS.
8501         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
8502         pass rtl_dump_file to regclass.
8503         * rtl.h (regclass): Update prototype.
8504
8505 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8506
8507         * i386.md (neg, not and abs patterns): Revmap to use
8508         ix86_expand_unary_operator and ix86_unary_operator_ok.
8509         (add?f and sub?f expanders): Force operand 1 to register.
8510         * i386.c (ix86_expand_unary_operator): Rewrite.
8511         (ix86_unary_operator_ok): Ensure that memory operands
8512         match real opcode.
8513         (ix86_binary_operator_ok): Do not allow operand 1 to
8514         come into memory and operand 0 not.
8515         (ix86_expand_binary_operator): Ensure that
8516         src1 is not non-matching memory.
8517
8518         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
8519         to support integer registers and memory.
8520         (abss?2_integer): Likewise.
8521
8522         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
8523         (REG_CLASS_NAMES): Likewise.
8524         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
8525         and GENERAL_REGS.
8526         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
8527         (movsf): Likewise; unify 4th and 5th alternative.
8528         (pushdf): Likewise.
8529         (movdf_1): Likewise; rename to movdf_integer.
8530         (pushxf): Likewise; rename to pushxf_integer; fix output template;
8531         remove redundant splitter.
8532         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
8533         (movdf_nointeger): New.
8534         (movxf_nointeger): New.
8535         (pushxf_nointeger): New.
8536
8537         * i386.md (extend?f?f): Split to expander and pattern, refuse two
8538         memory operands in patterns.
8539         (fop*): Refuse two memory operands.
8540
8541         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
8542         on !TARGET_USE_CLTD CPUs.
8543
8544 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
8545
8546         * extend.texi: Document C++ restricted pointers and references.
8547
8548 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
8549
8550         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
8551         (invalidate_skipped_set): Call it unconditionally.
8552         (cse_set_around_loop): Likewise.
8553
8554 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
8555
8556         * rtl.texi (mem): Add documentation for alias-set argument
8557         to RTX `mem'.
8558
8559 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8560
8561         * i386.h (struct_processor_costs): New fields int_load, int_store,
8562         fp_move, fp_load and fp_store
8563         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
8564         fp->int moves
8565         (MEMORY_MOVE_COST): New macro.
8566         * i386.c (386_cost): Define new fields.
8567         (i486_cost): Likewise.
8568         (pentium_cost): Likewise.
8569         (pentiumpro_cost): Likewise.
8570         (k6_cost): Likewise.
8571
8572 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
8573                           Geoffrey Keating  <geoffk@cygnus.com>
8574
8575         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
8576
8577         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
8578         MASK_ALIGN_INT.
8579
8580         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
8581         (TARGET_STRICT_ALIGNMENT): New macro.
8582         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
8583         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
8584         * invoke.texi (M680x0 Options): Document -mstrict-align.
8585
8586 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
8587                           Richard Henderson  <rth@cygnus.com>
8588
8589         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
8590         (ix86_split_long_move): Declare.
8591         * i386.c (split_xf, ix86_split_movdi): Remove.
8592         (ix86_split_to_parts, ix86_split_long_move): New.
8593         * i386.md (dimode move splitters): Use ix86_split_long_move.
8594         (dfmode move splitters): Likewise.
8595         (xfmode move splitters): Likewise.
8596         (movsf_1): Allow F->r.
8597         (movdf_1, movxf_1): Allow F->ro.
8598
8599 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
8600
8601         * except.h (struct eh_entry): Add goto_entry_p.
8602         (eh_region_from_symbol): Remove prototype.
8603         * except.c (find_func_region_from_symbol): New function.
8604         (emit_cleanup_handler): Likewise.
8605         (eh_region_from_symbol): Make it static.
8606         (add_new_handler): Verify the argument.
8607         (find_func_region): Update comment.
8608         (expand_eh_region_end): Expand handlers here, rater than waiting
8609         until expand_leftover_cleanups or start_all_catch.
8610         (expand_leftover_cleanups): Don't expand here.
8611         (expand_start_all_catch): Or here.
8612         (expand_rethrow): Check the return value from find_func_region.
8613         * function.c (expand_function_end): Emit the catch_clauses.
8614
8615 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
8616
8617         * integrate.c (expand_inline_function): Add necessary check for NULL.
8618
8619 1999-11-18  Nick Clifton  <nickc@cygnus.com>
8620
8621         * toplev.c (main): Correctly detect an unrecognised option.
8622
8623         * cppinit.c (cpp_handle_option): Do not claim to have consumed
8624         a -f option if it has not been recognised.
8625
8626 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
8627
8628         * basic-block.h (update_life_extent): Remove trailing comma on
8629         enumeration type list.
8630
8631 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8632
8633         * varasm.c (output_constructor) Solved problem with long long
8634         bitfields. Corrected calculating this_time and shift. Also
8635         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
8636
8637 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
8638
8639         * flow.c (split_edge): Take looping structure into account when
8640         determining where to put the new block note.
8641
8642 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
8643
8644         * Makefile.in (ggc-none.o): Provide host specific version if
8645         needed.
8646
8647 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
8648
8649         * cse.c (delete_trivially_dead_insns): Identify no-op insns
8650         containing subregs too.
8651
8652 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
8653
8654         * invoke.texi: Add documentation for -muninit-const-in-rodata.
8655         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
8656         (TARGET_UNINIT_CONST_IN_RODATA): Define.
8657         (text_section): Add switches -munint-const-in-rodata and
8658         -mno-uninit-const-in-rodata.
8659         (ASM_OUTPUT_COMMON): Remove.
8660         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
8661         const objects should be placed in read-only data. Otherwise declare
8662         them in common.
8663
8664 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
8665
8666         * jump.c (jump_optimize_1): Revert last change.
8667
8668 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
8669
8670         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
8671         test if optimizing for size.
8672
8673 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
8674
8675         * Makefile.in (toplev.o): Depend on except.h.
8676         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
8677
8678 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8679
8680         * i386.md (divmodsi4): Rewrite to expander.
8681         (*divmodsi4_nocltd): New.
8682         (*divmodsi4_cltd): New.
8683         (divmodsi4 splitter): Handle the case when input comes in edx.
8684         (udivmodhi4): Do not use constraints in exander.
8685         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
8686
8687 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
8688
8689         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
8690         for the common case.
8691
8692 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
8693
8694         * explow.c (hard_function_value): Add outgoing argument.
8695         * expr.h (hard_function_value): Declare it.
8696         * calls.c (expand_call, emit_library_call_value): Update callers.
8697         * function.c (aggregate_value_p): Ditto.
8698         (diddle_return_value): Must look at the outgoing registers
8699         on archs with register windows.
8700
8701 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
8702
8703         * alpha.c (alpha_build_va_list): Use make_lang_type and
8704         initialize TYPE_NAME for the va_list record.
8705
8706         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
8707
8708         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
8709         for printing.
8710         * ggc.h (struct ggc_statistics): Rearrange elements for better
8711         packing on 64-bit hosts.
8712         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
8713         (compute_nearerout): Likewise.
8714
8715 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
8716
8717         * config/rs6000/rs6000.c (first_reg_to_save): Save
8718         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
8719
8720 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
8721
8722         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
8723         notion of nesting to find the DIE for a type or function.
8724         DIEs can go in limbo even if we got a context_die.
8725         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
8726         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
8727         for local type.
8728         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
8729         (gen_type_die): Writing out the context doesn't cause member class
8730         template instantiations to be written out as well.
8731
8732 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
8733
8734         * rs6000.h (ASM_OUTPUT_DEF): New.
8735         Based on proposed addition from David Edelsohn.
8736
8737 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
8738             Bruce Korb  <autogen@linuxbox.com>
8739
8740         * fixinc/inclhack.def
8741         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
8742         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
8743                 in net/inet.h.
8744         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
8745         (svr4_endian): enabled with SVR5
8746         (svr4_mkdev): simplified syntax and enabled with SVR5
8747
8748 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
8749
8750         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
8751         * configure: Rebuilt.
8752         * config/t-freebsd-thread: New file.
8753
8754 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
8755
8756         * i386.c (ix86_decompose_address): Verify the base is a REG
8757         before trying to examine its register number.
8758
8759         * basic-block.h: Remove all #defines and prototypes related to
8760         integer lists.
8761         (free_bb_mem, compute_preds_succs): Remove prototype.
8762         * rtl.h (free_bb_mem): Remove prototype.
8763         * flow.c (alloc_int_list_node); Remove function.
8764         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
8765         (compute_preds_succs, free_bb_mem): Likewise.
8766         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
8767         * toplev.c (rest_of_compilation): Likewise.
8768         * haifa-sched.c (build_control_flow): Use flow generated edge
8769         list to build the haifa specific edge list.
8770         (find_rgns): Use new CFG data structures instead of pred/succ lists.
8771         (schedule_insns): Do not build pred/succ lists anymore.  Instead
8772         build the edge table.
8773
8774         * basic-block.h (dump_bb_data): Remove declaration.
8775         * flow.c (dump_bb_data): Remove function.
8776         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
8777         (sbitmap_union_of_predsucc): Likewise.
8778
8779         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
8780         argument.  All callers changed.
8781         (delete_null_pointer_checks_1): No longer need to compute the
8782         pred/succ lists.
8783
8784         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
8785         All callers changed.
8786         (pre_expr_reaches_here_p_work): Likewise.
8787         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
8788         * lcm.c (compute_laterin): Fix initialization of LATER.
8789         (compute_nearerout): Similarly for NEARER.
8790
8791 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8792
8793         * cse.c (set_nonvarying_address_components): Delete unused function.
8794         (refers_to_p): Likewise.
8795
8796 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
8797
8798         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
8799         needed.
8800
8801 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8802
8803         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
8804         definition in do while (0).
8805
8806 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
8807
8808         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
8809
8810 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
8811
8812         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
8813
8814 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
8815
8816         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
8817         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
8818         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
8819         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
8820
8821         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
8822         saved on the stack.  Output more accurate stack frame statistics
8823         into assembler file.
8824
8825 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
8826
8827         * genextract.c (record_insn_name): New function.
8828         (get_insn_name): No longer a stub.
8829         (main): Call record_insn_name for each insn.  After each label
8830         written, print the insn name in a comment.
8831
8832 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8833
8834         * output.h (const_section, init_section, fini_section): Add
8835         prototypes.
8836
8837         * alpha/elf.h (const_section): Delete declaration.
8838
8839         * svr4.h (const_section): Likewise.
8840
8841 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
8842
8843         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
8844         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
8845         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
8846         expressions.
8847         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
8848         variable-sized array bounds.
8849
8850 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
8851
8852         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
8853         ASM_OUTPUT_LABEL.
8854
8855 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8856
8857         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
8858         addresses the same way GO_IF_LEGITIMATE_INDEX does.
8859
8860 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8861
8862         * cse.c (hash_arg_in_struct): Delete.
8863         (struct table_elt): Delete elt in_struct.
8864         (struct set): Delete elt src_in_struct.
8865         (merge_equiv_classes): Don't set either hash_arg_in_struct or
8866         the corresponding in_struct elts.
8867         (canon_hash): Likewise.
8868         (safe_hash): Likewise.
8869         (find_best_addr): Likewise.
8870         (record_jump_cond): Likewise.
8871         (cse_insn): Likewise.
8872
8873 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
8874
8875         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
8876
8877         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
8878         unsigned types.
8879
8880 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
8881
8882         * function.c (diddle_return_value): Put back check that the DECL_RTL
8883         for the function is a register.
8884
8885         * function.c (diddle_return_value): Use hard_function_value to
8886         get an rtx suitable for use in the USE/CLOBBER insn.
8887
8888         * global.c (global_conflicts): Update comments.
8889         (record_conflicts): No need to record conflicts between pseudos here.
8890
8891 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
8892
8893         * fixinc/fixincl.c: Added verbose levels for status messages
8894
8895 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8896
8897         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
8898         operand as argument to expand_and or expand_binop.
8899
8900 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
8901
8902         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
8903         gcc_add_string_root.
8904
8905 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
8906
8907         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
8908
8909 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
8910
8911         * flow.c (compute_flow_dominators): Initially put all blocks on
8912         the worklist.
8913         * lcm.c (compute_antinout_edge, compute_available): Similarly.
8914         * gcse.c (compute_cprop_avinout): Remove.
8915         (compute_cprop_data): Use compute_available.
8916         (delete_null_pointer_checks_1): Use compute_available.
8917
8918         * basic-block.h (compute_available): Returns a void now.
8919         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
8920         to return a value anymore.
8921         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
8922         worklists.  Fix boundary cases. Compute maximal solutions.
8923         (compute_laterin, compute_nearerout): Similarly.
8924
8925         * dwarf2out.c (add_AT_location_description): Allow
8926         (mem (plus (pseudo) (...)) too.
8927
8928 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
8929
8930         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
8931
8932 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
8933                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8934
8935         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
8936
8937         * gansidecl.h: Likewise.
8938
8939         * rtl.c: Likewise.
8940
8941         * rtl.h: Likewise.
8942
8943         * toplev.h: Likewise.
8944
8945         * tree.c: Likewise.
8946
8947         * tree.h: Likewise.
8948
8949         * varray.c: Likewise.
8950
8951         * varray.h: Likewise.
8952
8953 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
8954
8955         * gcov.c (struct arcdata): Add hits and total, remove prob.
8956         (output_branch_counts): New.
8957         (process_args): Set output_branch_counts if -c.
8958         (calculate_branch_probs): Store hits and total instead of
8959         percentage.
8960         (output_data): Emit counts if output_branch_counts is true.
8961         * gcov.texi (Invoking Gcov): Document -c switch..
8962
8963 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
8964
8965         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
8966         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
8967
8968 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
8969
8970         * invoke.texi (C Dialect Options): Add missing builtins from
8971         c-common.c to list.
8972         * extend.texi (Other Builtins): Copy to this list.
8973
8974 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8975
8976         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
8977         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
8978         redundant bitmap.h.
8979
8980 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
8981
8982         * flow.c (compute_flow_dominators): No longer treat basic block 0
8983         or (n_basic_blocks - 1) specially.  Clear the AUX field before
8984         starting computation of doms/pdoms.  Fix initial state for pdoms.
8985
8986 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8987
8988         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
8989         match rtl.o's: added ggc.h and toplev.h
8990         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
8991         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
8992         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
8993
8994 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
8995
8996         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
8997         from HAVE_DOS_BASED_FILESYSTEM.
8998         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
8999         HAVE_DOS_BASED_FILESYSTEM.
9000         (main): Likewise.
9001         (split_directories): Only special-case DOS file names if
9002         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
9003         instead of explicit tests.  Conditionalize on !VMS.
9004         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
9005         tests.  Conditionalize on !VMS.
9006         (process_command): Only use make_relative_prefix if !VMS.
9007         (free_split_directories): Conditionalize on !VMS.
9008         (DIR_UP): Conditionalize on !VMS.
9009
9010 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9011
9012         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
9013
9014 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9015
9016         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
9017         case.
9018
9019 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
9020
9021         * invoke.texi (Environment Variables): Document relative path
9022         lookup.
9023         * gcc.c (DIR_UP): If not defined, define as "..".
9024         (standard_bindir_prefix): New static, holds target location to
9025         install binaries.
9026         (split_directories): New function to split a filename into
9027         component directories.
9028         (free_split_directories): New function, release memory allocated
9029         by split_directories.
9030         (make_relative_prefix): New function, make a relative pathname if
9031         the compiler is not in the expected location.
9032         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
9033         can figure out an appropriate prefix from argv[0].
9034         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
9035         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
9036         STANDARD_BINDIR_PREFIX.
9037
9038 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9039
9040         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
9041         in c4x.c.
9042         * config/c4x/c4x.h: Moved prototypes to c4x.h.
9043         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
9044         c4x_secondary_memory_needed) Delete.
9045         (fp_zero_operand): Add mode argument.
9046
9047 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
9048
9049         * reload1.c (reload_reg_free_for_value_p): Don't use a register
9050         that is in reload_reg_used.
9051
9052 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
9053
9054         * config/arm/arm-protos.h: New file: Prototypes for functions
9055         defined in arm.c and pe.c.
9056         * config/arm/arm.h: Fix compile time warnings.
9057         * config/arm/arm.c: Fix compile time warnings.
9058         * config/arm/pe.h: Fix compile time warnings.
9059         * config/arm/aout.h: Fix compile time warnings.
9060
9061 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
9062
9063         * config/m32r/m32r-protos.h: New file: Prototypes for functions
9064         defined in m32r.c
9065
9066         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
9067         Add support for subtargets.
9068         Add prototypes for new predicates.
9069         Add scheduling macros.
9070
9071         * config/m32r/m32r.c: Fix compile time warnings.
9072         (int8_operand): New predicate function.
9073         (reg_or_cmp_int16_operand): New predicate function.
9074         (extend_operand): New predicate function.
9075         (m32r_adjust_code): New scheduling function.
9076         (m32r_adjust_priorty): New scheduling function.
9077         (m32r_sched_init): New scheduling function.
9078         (m32r_sched_reorder): New scheduling function.
9079         (m32r_sched_variable_issue): New scheduling function.
9080         (direct_return): New codegen function.
9081         (m32r_not_same_reg): New rtl testsing function.
9082
9083         * config/m32r/m32r.md: Fix compile time warnings.
9084         Add support for pre decrement and post increment memory
9085         references.
9086         Add S<cc> patterns.
9087         Add fabs patterns.
9088
9089 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9090
9091         * global.c (EXECUTE_IF_CONFLICT): Don't define.
9092         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
9093         (find_reg): Likewise.
9094
9095 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
9096
9097         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
9098         to avoid assembler errors.
9099
9100 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
9101
9102         * config/v850/v850-protos.h: New file: Prototypes for functions
9103         defined in v850.c
9104         * config/v850/v850.h: Move prototypes to v850-protos.h
9105         * config/v850/v850.c: Move prototypes to v850-protos.h
9106         * config/v850/v850.md: Fix compile time warnings.
9107
9108         * config/fr30/fr30-protos.h: New file: Prototypes for functions
9109         defined in fr30.c
9110         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
9111         * config/fr30/fr30.c: Fix compile time warnings.
9112         * config/fr30/fr30.md: Fix compile time warnings.
9113
9114 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
9115
9116         * tree.h (get_containing_scope): Declare it.
9117         * tree.c (get_containing_scope): New fucntion.
9118         (decl_function_context): Use it.
9119         * toplev.c (rest_of_compilation): Use get_containing_scope.
9120
9121 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9122
9123         * Makefile.in (rtl.o): Depend on toplev.h.
9124
9125 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
9126
9127         * cse.c (delete_trivially_dead_insns): Replace alloca with
9128         xmalloc/xcalloc.
9129         * except.c (update_rethrow_references): Likewise.
9130         (init_eh_nesting_info): Likewise.
9131         * function.c (identify_blocks): Likewise.
9132         * gcse.c (dump_hash_table): Likewise.
9133         * graph.c (print_rtl_graph_with_bb): Likewise.
9134         * loop.c (combine_movables): Likewise.
9135         (move_movables): Likewise.
9136         (count_loop_regs_set): Likewise.
9137         (strength_reduce): Likewise.
9138         * profile.c (compute_branch_probabilities): New function, split
9139         out from ...
9140         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
9141         * regclass.c (regclass): Likewise.
9142         * regmove.c (regmove_optimize): Likewise.
9143         * toplev.c (compile_file): Likewise.
9144         (main): Don't mess with the stack rlimit.
9145
9146 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
9147
9148         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
9149         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
9150
9151 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
9152
9153         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
9154
9155 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
9156
9157         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
9158         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
9159         macro expansion.
9160
9161 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
9162
9163         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
9164
9165 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
9166
9167         * gcse.c (post_dominators): Kill.
9168         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
9169         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
9170         pass in a pdom array since we do not need pdoms.
9171         * haifa-sched.c (schedule_insns): Similarly.
9172         * flow.c (compute_dominators): Remove dead function.
9173         (compute_flow_dominators): Do not compute doms or pdoms if the
9174         caller does not request them.  Split up loop to build doms and
9175         pdoms.  Use a worklist to compute doms and pdoms.
9176         * basic-block.h (compute_dominators): Remove prototype.
9177
9178 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
9179
9180         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
9181         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
9182         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
9183         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
9184         (cant_move, fed_by_spec_load, is_load_insn): Remove.
9185         (schedule_region): Remove unused variable.
9186         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
9187
9188 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
9189
9190         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
9191         (update_equiv_regs): Likewise.
9192         (block_alloc): Likewise.
9193         * reg-stack.c (reg_to_stack): Likewise.
9194         (convert_regs_2): Likewise.
9195         * reload1.c (reload_as_needed): Likewise.
9196
9197 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
9198
9199         * Makefile.in (dbxout.o): Depend on ggc.h.
9200         (dwarf2out.o): Likewise.
9201         (xcoffout.o): Likewise.
9202         * dbxout.c: Include ggc.h.
9203         (dbxout_init): Register lastfile as a root.
9204         * dwarf2out.c: Include ggc.h.
9205         (dwarf2out_line): Register lastfile as a root.
9206         * xcoffout.c: Include ggc.h.
9207         (xcoffout_source_line): Register xcoff_lastfile as a root.
9208
9209 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
9210
9211         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
9212
9213 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
9214
9215         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
9216         defined.
9217         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
9218
9219 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9220
9221         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
9222         (EXECUTE_IF_CONFLICT): Likewise.
9223         (ALLOCNO_LIVE_P): Avoid signed division.
9224         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
9225         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
9226         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
9227
9228 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
9229
9230         * haifa-sched.c (schedule_block): Don't crash if there's no
9231         next insn for an interblock movement.
9232         (add_branch_dependences): Don't allow clobber insns to move either.
9233
9234 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
9235
9236         * i386.c (split_xf): New.
9237         * i386-protos.h: Declare it.
9238         * i386.md (movxf_1): Add general regs alternatives.
9239         (movxf_1+1): New splitter for same.
9240
9241 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
9242
9243         * function.c (purge_addressof_1): Add missing return values.
9244
9245 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
9246
9247         * function.c (is_addressof): New function.  Returns true if
9248         the given piece of RTL is an ADDRESSOF.
9249         (purge_addressof_1): Make boolean.  Return false if the
9250         ADDRESSOFs could not be purged.
9251         (purge_addressof): If ADDRESSOFs could not be purged from the
9252         notes attached to an insn, remove the offending note(s),
9253         unless they are attached to a libcall.
9254
9255 1999-11-05  Andreas Jaeger  <aj@suse.de>
9256
9257         * genoutput.c (null_operand =): Initialize all fields.
9258
9259         * errors.h: Add extern to prototypes.
9260
9261 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
9262
9263         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
9264         * configure: Rebuilt.
9265
9266 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9267
9268         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
9269         (mirror_conflicts): New function.
9270         (global_alloc): Call it.
9271         (expand_preferences): Remove redundant CONFLICTP test.
9272         (find_reg, dump_conflicts): Likewise.
9273         (prune_preferences): Process conflicts one word at a time.
9274
9275 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
9276
9277         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
9278         instead of an explicit loop.
9279
9280 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
9281
9282         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
9283         if REG_RETVAL check succeeds, then put classp in src_elt.
9284
9285 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
9286
9287         * function.c (pad_to_arg_alignment): Only update argument_pad
9288         if the argument's alignment is greater than STACK_BOUNDARY.
9289
9290 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
9291
9292         * bitmap.h (BITMAP_XFREE): New.
9293         * flow.c (life_analysis): Use it.
9294         (life_analysis_1): Free blocks.
9295
9296         * combine.c (undo_commit): New.
9297         (try_combine): Use it.  Don't zap undobuf.undos.
9298         (combine_instructions): Don't zap undobuf.undos; free the
9299         undobuf.frees list.
9300
9301         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
9302
9303         * stmt.c (cost_table_): New.
9304         (estimate_case_costs): Use it instead of xmalloc.
9305
9306         * toplev.c (compile_file): Reuse dumpname memory instead
9307         of strdup'ing it.
9308
9309 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
9310
9311         * reg-stack.c (convert_regs_1): Initialize target_stack->top
9312         after verifying an EH edge.
9313
9314         * haifa-sched.c (init_rgn_data_dependences): Correctly
9315         size bb_pending_lists_length when zeroing.
9316
9317 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
9318
9319         * function.c (diddle_return_value): New.
9320         (expand_function_end): Use it.
9321         * stmt.c (expand_null_return): Likewise.
9322         (expand_value_return): Likewise.
9323
9324         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
9325
9326         * reload1.c (reload): Don't remove return value clobbers.
9327
9328 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
9329
9330         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
9331
9332 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
9333
9334         * cse.c (cse_main): Use xmalloc, not alloca.
9335         (cse_basic_block): Likewise.
9336         * local-alloc.c (local_alloc): Likewise.
9337
9338 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
9339                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9340
9341         * rtl.c: Include toplev.h.
9342         (fatal): Remove declaration.
9343
9344 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
9345
9346         * haifa-sched.c (schedule_block): Fix thinko.
9347
9348 1999-11-03  James McKelvey <mckelvey@fafnir.com>
9349
9350         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
9351         S_IR* defined values
9352
9353 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
9354
9355         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
9356         call `malloc' instead.
9357
9358 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
9359
9360         * flags.h (flag_renumber_insns): Declare.
9361         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
9362         renumbering table.
9363         * rtl.h (renumber_insns): Change prototype.
9364         * toplev.c (flag_renumber_insns): Define.
9365         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
9366
9367 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
9368
9369         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
9370         and fpsqrtd.  Use them and create fdiv function unit to more
9371         accurately represent fpu sqrt pipeline semantics on UltraSparc.
9372         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
9373
9374 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
9375
9376         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
9377         3 on UltraSparc.
9378         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
9379         insn into ready list, do not use just a raw swap.
9380
9381 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
9382
9383         * rtl.h (renumber_insns): New function.
9384         (remove_unnecessary_notes): Likewise.
9385         * emit-rtl.c (renumber_insns): Define.
9386         (remove_unncessary_notes): Likewise.
9387         * toplev.c (rest_of_compilation): Remove dead code.
9388         Use renumber_insns and remove_unncessary_notes.
9389
9390         * gcse.c (struct null_pointer_info): New type.
9391         (get_bitmap_width): New function.
9392         (current_block): Remove.
9393         (nonnull_local): Likewise.
9394         (nonnull_killed): Likewise.
9395         (invalidate_nonnull_info): Take a null_pointer_info as input.
9396         (delete_null_pointer_checks_1): New function.
9397         (delete_null_pointer_checks): Use it.
9398
9399         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
9400         (split_edges): Likewise.
9401         (schedule_block): Likewise.
9402         (compute_block_backward_dependencies): Likewise.
9403         (schedule_region): Likewise.
9404         (schedule_insns): Likewise.
9405
9406 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
9407
9408         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
9409         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
9410         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
9411         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
9412         * jump.c (delete_unreferenced_labels): Don't delete if
9413         LABEL_ALTERNATE_NAME is set.
9414         * print-rtl.c (print_rtx): Dump alternate name.
9415         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
9416         * rtl.h (LABEL_ALTERNATE_NAME): Define.
9417         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
9418         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
9419
9420 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9421
9422         * fix-header.c (recognized_extern, recognized_function): Constify
9423         a char*.
9424
9425         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
9426         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
9427         (compute_available): Remove unused variable `last'.
9428         (compute_nearerout): Remove unused variable `temp_bitmap'.
9429         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
9430         Remove unused variable `x'.
9431
9432         * scan.h (recognized_function, recognized_extern): Constify a
9433         char*.
9434
9435         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
9436
9437 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9438
9439         * varasm.c (decode_rtx_const): Use XSTR to access the string
9440         of a SYMBOL_REF.
9441
9442 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
9443
9444         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
9445
9446 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9447
9448         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
9449
9450 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
9451
9452         * pa.c (ireg_operand): New function.
9453         * pa.h (PREDICATE_CODES): Handle ireg_operand.
9454         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
9455         Fix out of date comment.
9456
9457         * pa.md (negdi2): Turn into expander + anonymous pattern.
9458
9459         * reload.c (find_reloads): Fix typos in recent change.
9460
9461         * dwarf2out.c: Do not include ctype.h.
9462
9463 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9464
9465         * regclass.c (record_reg_classes): Always use may_move_cost when
9466         seeing how operand fits with various register classes.
9467
9468 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
9469
9470         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
9471         * toplev.c: Revert Nov 1 13:22 change.
9472
9473 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
9474
9475         * config/pa/pa.md (height reduction patterns): Add checks for
9476         overlapping operands to avoid semantic-destroying splits for
9477         height reduction patterns.
9478
9479 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9480
9481         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
9482         have been an hyphen, fixed.
9483         * configure: Rebuilt.
9484
9485 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
9486
9487         * config/arm/tpe.h: Add prototypes for exported functions.
9488         * config/arm/pe.c: Fix compile time warnings.
9489         * config/arm/semi.h: Fix compile time warnings.
9490         * config/arm/arm.c: Fix compile time warnings.
9491         * config/arm/arm.h: Fix compile time warnings.
9492         * config/arm/arm.md: Fix compile time warnings.
9493         * config/arm/thumb.c: Fix compile time warnings.
9494         * config/arm/thumb.h: Fix compile time warnings.
9495         * config/arm/thumb.md: Fix compile time warnings.
9496
9497 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
9498
9499         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
9500         detection code
9501
9502         * unroll.c (unroll_loop): Remove LOOP notes when loop is
9503         completely unrolled.
9504
9505 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9506
9507         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
9508
9509 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
9510
9511         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
9512         * rtl.h (rtx_equal_p): Move prototype.
9513         * rtl.c (rtx_equal_function_value_matters): Move from
9514         rtlanal.c
9515         (rtx_equal_p): Likewise.
9516         * rtlanal.c (rtx_equal_function_value_matters): Delete.
9517         (rtx_equal_p): Likewise.
9518
9519 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
9520
9521         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
9522         ! HAS_INIT_SECTION.
9523
9524 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
9525
9526         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
9527
9528         * pa.h (ADDR_VEC_ALIGN): Define.
9529
9530         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
9531         notes when presented with "if (foo) break; end_of_loop" and
9532         the break sequence gets moved out of the loop.
9533
9534         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
9535         Remove explicit zero initializations of entries within MAP.
9536
9537 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
9538
9539         * reg-stack.c (convert_regs_1): Handle EH edges specially.
9540
9541 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
9542
9543         * bitmap.h (BITMAP_XMALLOC): New macro.
9544         * flow.c (CLEAN_ALLOCA): Remove.
9545         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
9546         (life_analysis): Likewise.
9547         (update_life_info): Don't use CLEAN_ALLOCA.
9548         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
9549         (calculate_global_regs_live): Likewise.
9550         (print_rtl_with_bb): Likewise.
9551         (verify_flow_info): Likewise.
9552         * global.c (global_alloc): Likewise.
9553         (global_conflicts): Likewise.
9554         * integrate.c (save_for_inline_nocopy): Likewise.
9555         (expand_inline_function): Likewise.
9556         * jump.c (jump_optimize_1): Likewise.
9557         (duplicate_loop_exit_test): Likewise.
9558         (thread_jumps): Likewise.
9559         * loop.c (loop_optimize): Likewise.
9560         (combine_givs): Likewise.
9561         (recombine_givs): Likewise.
9562         * reorg.c (dbr_schedule): Likewise.
9563         * unroll.c (unroll_loop): Likewise.
9564
9565         * combine.c (combine_instructions): Use xmalloc instead of alloca.
9566
9567 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
9568
9569         * toplev.c (rest_of_compilation): Don't optimize the CFG
9570         when rebuilding, just before dbr.
9571
9572 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9573
9574         * output.h (assemble_end_function, assemble_destructor,
9575         assemble_constructor, assemble_gc_entry, assemble_global,
9576         assemble_label, output_constant_pool) Constify a char*.
9577
9578         * varasm.c (assemble_destructor, assemble_constructor,
9579         assemble_gc_entry, assemble_end_function, assemble_global,
9580         assemble_label, output_constant_pool): Likewise.
9581
9582 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
9583
9584         * config/arm/thumb.c (thumb_expand_prologue): Add comments
9585         explaining what is goin on in this function.
9586
9587 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9588
9589         * regclass.c (record_reg_classes): In matching case, recompute
9590         costs since the direction of movement is different.
9591
9592 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
9593
9594         * resource.c (mark_target_live_regs): For unconditional branches,
9595         the resources found at the branch target should be added to the
9596         resources found so far, not intersected.
9597
9598 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
9599
9600         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
9601         old cpp's.
9602         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
9603         (sys/mman.h): Include this file only if #HAVE_MMAP.
9604         (run_compiles): Initialize `esac_fmt' with one old KR string, not
9605         with automatically concatenated ANSI strings.
9606
9607 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
9608
9609         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
9610         (DIV_ROUND_UP): Robustify.
9611         (ggc_recalculate_in_use_p): New function.
9612         (release_pages): Don't inline it.
9613         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
9614         outer contexts.
9615         (ggc_pop_context): Use ggc_recalculate_in_use_p.
9616         (clear_marks): Always save in_use_p.
9617         (sweep_pages): Use ggc_recalculate_in_use_p.
9618         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
9619         Release pages before counting statistics.
9620
9621 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
9622
9623         * toplev.c (rest_of_compilation): Fix thinko in this change:
9624
9625         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
9626
9627         (rest_of_compilation): If inside an inlined external function,
9628         pretend we are just being declared.
9629
9630 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
9631
9632         * flow.c (calculate_global_regs_live): Fix thinko.
9633
9634         * integrate.c (expand_inline_function): Fix bugs in previous
9635         change from Oct 28, 1999.
9636
9637 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
9638
9639         * stmt.c (expand_value_return): Fix typo in this change:
9640
9641         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9642         (expand_value_return): Correctly convert VAL when promoting function
9643         return; support RETURN_REG being a PARALLEL.
9644
9645 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
9646
9647         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
9648
9649 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9650
9651         * hard-reg-set.h (reg_names): Constify a char*.
9652
9653         * regclass.c  (reg_names): Likewise.
9654
9655         * regs.h (reg_names): Likewise
9656
9657         * a29k/a29k.c (reg_names): Delete declaration.
9658
9659         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
9660
9661         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
9662         arc_output_function_epilogue): Likewise.
9663
9664         * elxsi/elxsi.c (reg_names): Likewise.
9665
9666         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
9667
9668         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
9669         Likewise.
9670
9671         * m88k/m88k.c (output_function_profiler): Likewise.
9672
9673         * sparc/sparc.c (sparc_flat_output_function_prologue,
9674         sparc_flat_output_function_epilogue): Likewise.
9675
9676 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
9677
9678         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
9679         warning from -Wuninitialized and put it under -W.
9680         * function.c (uninitialized_vars_warning): Warn only when the
9681         corresponding flag is set.
9682
9683 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
9684
9685         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
9686         is nonzero and the single set does not have an elt, then assign
9687         it an elt.
9688
9689         * simplify-rtx.c: New file.
9690         * Makefile.in (OBJS): Add simplify-rtx.o
9691         (simplify-rtx.o): Add dependencies.
9692         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
9693         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
9694         (cse_gen_binary, simplify_unary_operation): Delete.
9695         (simplify_binary_operation, simplify_plus_minus): Likewise.
9696         (check_fold_consts, simplify_relation_operation): Likewise.
9697         (simplify_ternary_operation): Likewise.
9698         (delete_trivially_dead_insns): Simplify the contents of the
9699         REG_EQUAL note before trying to substitute it into the source
9700         of the reg-reg copy at the end of a libcall sequence.
9701
9702         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
9703         references/callers changed.
9704
9705         * mn10200.c (mn10200_va_arg): Force the return value into a
9706         register.
9707
9708         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
9709
9710         * cccp.c (macroexpand): Avoid out of range accesses for omitted
9711         arguments.
9712
9713 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
9714
9715         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
9716
9717 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
9718
9719         * fold-const.c (fold): Fix thinko when optimizing comparisons
9720         against -0.0.
9721
9722 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
9723
9724         * gcc.texi (Passes): Update front-end files to their current
9725         location.
9726
9727 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
9728
9729         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
9730         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
9731         (PREDICATE_CODES): Add addition_operation.
9732         * alpha-protos.h (addition_operation): Declare.
9733         (secondary_reload_class): Likewise.
9734         * alpha.c (addition_operation): New.
9735         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
9736         * alpha.md (adddi3): Turn into expander.
9737         (*lda, *adddi_2): New.
9738         (movsf, movdf patterns): Don't preference integer regs.
9739         (movsi, movdi patterns): Don't preference fp regs.
9740
9741 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
9742
9743         * genrecog.c (write_switch): Check for duplicate CODE cases.
9744
9745 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
9746
9747         * ggc-common.c: Update pre-function commentary.
9748         * ggc-page.c: Likewise.
9749         (poison): Remove.
9750         (poison_pages): Use memset directly.
9751         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
9752         (ggc_collect): Poison before sweeping.
9753         * ggc-simple.c: Update pre-function commentary.
9754         (ggc_alloc_obj): Poison non-zeroed memory.
9755
9756 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
9757
9758         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
9759         match format string, even on 64-bit hosts.
9760         * gcc-page.c (ggc_page_print_statistics): Likewise.
9761
9762 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
9763
9764         * config/i386/i386.c (ix86_cpu): Revert last patch.
9765         * config/i386/i386.h (ix86_cpu): Ditto.
9766
9767 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
9768
9769         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
9770         TYPE_SIZE, convert type of result to sizetype.
9771
9772 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
9773
9774         * flow.c (count_or_remove_death_notes): Equate NULL with the
9775         universal set.
9776
9777         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
9778         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
9779         dbr_schedule.
9780
9781         * i386.c (pic_label_no): Delete.
9782         (ix86_attr_length_default): Don't use single_set to peek
9783         inside a parallel.
9784
9785         * recog.c (peephole2_optimize): Allow recog_next_insn to index
9786         the first insn after bb->end.
9787         * i386.md (push mem peeps): Scratch is live after evaluation
9788         of the memory.
9789         (cmp mem peep): Similarly.
9790
9791 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
9792
9793         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
9794         * function.c (pad_to_arg_alignment): Add missing braces.
9795
9796 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9797
9798         * alpha/alpha-protos.h (literal_section): Add prototype.
9799         (alpha_need_linkage, alpha_start_function,alpha_end_function):
9800         Constify a char*.
9801
9802         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
9803         prototype.
9804         (alpha_start_function, alpha_end_function, float_strings,
9805         alpha_need_linkage): Constify a char*
9806
9807         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
9808
9809         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
9810
9811         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9812
9813         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
9814
9815 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9816
9817         * flow.c (debug_flow_info): Add prototype.
9818
9819         * gcc.c (main): Likewise.
9820
9821         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
9822         Likewise.
9823
9824         * reload1.c (failed_reload, set_reload_reg): Likewise.
9825
9826         * mips-tfile.c (main): Likewise.
9827         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
9828         with ATTRIBUTE_NORETURN.
9829
9830 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
9831
9832         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
9833         DECL is not a memory ref.
9834
9835 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
9836
9837         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
9838         * config/i386/i386.c (ix86_cpu): Add extern attribute.
9839
9840 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
9841
9842         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
9843         * config/mips/elf64.h: ditto.
9844
9845 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
9846
9847         * expr.c (emit_push_insn): New argument alignment_pad.
9848         Update all callers.  Adjust stack pointer based on alignment pad.
9849         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
9850         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
9851         (locate_and_pad_parm): New argument alignment_pad.  Update all
9852         callers.
9853         * expr.h (emit_push_insn): Update prototype.
9854         (locate_and_pad_parm): Update prototype.
9855         * calls.c (arg_data):  Add new field alignment_pad.
9856         (initialize_argument_information): Initialize alignment_pad.
9857
9858 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
9859
9860         * except.c (free_eh_nesting_info): Free the info itself.
9861         * function.c (free_after_compilation): Don't free NULL.
9862         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
9863         (pre_edge_insert): Free inserted.
9864         * stmt.c (free_stmt_status): Don't free NULL.
9865
9866 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
9867
9868         * gcov.c (DIR_SEPARATOR): Provide default.
9869         (output_data): Add test for MS-DOS format absolute filename.
9870         (fancy_abort): Correct program name.
9871         (open_files): Open all files in binary mode.
9872         * libgcc2.c (__bb_exit_func): Likewise.
9873
9874         * profile.c (init_branch_prob): Specify binary when opening files.
9875
9876         * flags.h (flag_unwind_tables): New decl.
9877         * toplev.c (flag_unwind_table): New definition.
9878         (f_options): Add -funwind-tables.
9879         (decode_g_option): Clarify warning when unknown -g option is given.
9880         (rest_of_compilation): If inside an inlined external function,
9881         pretend we are just being declared.
9882
9883         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
9884         (dwarf2out_frame_finish): Likewise.
9885
9886 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
9887
9888         * fold-const.c (merge_ranges): If not in0, but in1, handle
9889         upper bounds equal like subset case.
9890
9891 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
9892
9893         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
9894         passed in a register but moved to the stack.
9895
9896 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
9897
9898         * gcc.c (pass_exit_codes, greatest_status): New variables.
9899         (struct option_map): Add entry for "--pass-exit-codes".
9900         (execute): Update greatest_status if error.
9901         (display_help): Add documentation for -pass-exit-codes.
9902         (process_command): Handle -pass-exit-codes.
9903         (main): Look at pass_exit_codes and greatest_status on call to exit.
9904
9905 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9906
9907         * reload.c (find_reloads): Refine test for no input reload
9908         case to not includes reloads emitted after insn.
9909
9910         * function.c (find_temp_slots_from_address): Handle sum involving
9911         a register that points to a temp slot.
9912         (update_temp_slot_address): Make recursive call if both old and
9913         new are PLUS with a common operand.
9914         * calls.c (expand_call): Mark temp slot for result as having
9915         address taken.
9916
9917         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
9918
9919         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
9920         component as well as "BINUTILS".
9921
9922         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
9923         * integrate.c (copy_rtx_and_substitute): Likewise.
9924         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
9925         All callers changed.
9926         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
9927
9928         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
9929         gdb extensions, write size of type; also be more consistent
9930         in using references when this is a subtype.
9931
9932         * pa.md (extv, extzv, insv): Use define_expand to reject constant
9933         that is out of range.
9934
9935         * loop.c (unknown_constant_address_altered): New variable.
9936         (prescan_loop): Initialize it.
9937         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
9938         (invariant_p, case MEM): Remove handling for volatile and readonly;
9939         check new variable if readonly.
9940         (check_dbra_loop): Chdeck unknown_constant_address_altered.
9941
9942         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
9943         (addr_affects_sp_p): Removed from note_mem_written and only
9944         define #ifdef AUTO_INC_DEC.
9945
9946         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
9947
9948         * regclass.c (record_reg_classes): Properly handle register move
9949         directions.
9950
9951         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
9952         Don't think valid if both operands are invalid.
9953         (struct constant_descriptor): New field RTL.
9954         (mark_const_hash_entry): Mark it.
9955         (record_constant{,_rtx}): Initialize it.
9956         (output_constant_def): Allocate RTL in permanent obstack and
9957         save in table.
9958         ({record,compare}_constant_1): Modes must match for
9959         CONSTRUCTOR of ARRAY_TYPE.
9960
9961         * c-common.h (initializer_constant_valid_p): Delete decl from here.
9962         * output.h (initializer_constant_valid_p): Move decl to here.
9963         * c-common.c (initializer_constant_valid_p): Delete function from here.
9964         * varasm.c (initializer_constant_valid_p): Move function to here.
9965
9966         * tree.h (STRIP_SIGN_NOPS): New macro.
9967         * fold-const.c (optimize_minmax_comparison): New function.
9968         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
9969         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
9970         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
9971         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
9972         widening conversions.
9973         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
9974         to look at size of mode, not precision of type; also add missing cases.
9975         (optimize_bit_field_compare, decode_field_reference): Don't try to
9976         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
9977
9978         * dwarf2out.c (ctype.h): Include.
9979         (dwarf2out_set_demangle_name_func): New function.
9980         (size_of_line_info): Deleted.
9981         (output_line_info): Compute size of line info table from difference
9982         of labels.
9983         (base_type_die, add_name_attribute): Call demangle function, if any.
9984         (field_byte_offset): Use bits per word for variable length fields.
9985         (gen_array_type_die): Add array name.
9986         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
9987         (dwarf2out_add_library_unit_info): New function.
9988
9989         * explow.c (set_stack_check_libfunc): New function.
9990         (stack_check_libfunc): New static variable.
9991         (probe_stack_range): Allow front-end to set up a libfunc to call.
9992
9993         * combine.c (simplify_comparison): When making comparison in wider
9994         mode, check for having commuted an AND and a SUBREG.
9995         (contains_muldiv): New function.
9996         (try_combine): Call it when dividing a PARALLEL.
9997         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
9998         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
9999         a PLUS.
10000         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
10001         use one of the CLOBBERs instead.
10002         (if_then_else_cond): If comparing against zero, just return thing
10003         being compared.
10004
10005         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
10006         Don't generate shifts and subtract if have conditional arithmetic.
10007
10008         * rtl.h (delete_barrier): New declaration.
10009         * jump.c (jump_optimize): Set up to handle conditional call.
10010         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
10011         (delete_barrier): New function.
10012
10013         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
10014
10015         * recog.c (nonmemory_operand): Accept ADDRESSOF.
10016
10017         * tree.c (build_type_attribute_variant): Push to obstack of
10018         ttype around type_hash_canon call.
10019
10020         * expr.c (placeholder_list): Move decl to file scope.
10021         (expand_expr): Don't force access to volatile just because its
10022         address is taken.
10023         If ignoring reference operations, just expand the operands.
10024         (expand_expr, case COMPONENT_REF): Propagate
10025         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
10026         Refine test for using bitfield operations vs pointer punning.
10027         (expand_expr, case CONVERT_EXPR): If converting to
10028         BLKmode UNION_TYPE from BLKmode, just return inner object.
10029         Use proper mode in store_field call.
10030         Properly set sizes of object to store and total size in store_field
10031         call for convert to union.
10032         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
10033         memory (like for ADDR_EXPR).  Also, don't put constant in register if
10034         we'll want it in memory.
10035         (readonly_fields_p): New function.
10036         (expand_expr, case INDIRECT_REF): Call it if LHS.
10037         (expand_assignment): Handle a RESULT_DECL where
10038         DECL_RTL is a PARALLEL.
10039         (do_jump, case WITH_RECORD_EXPR): New case.
10040         (get_inner_reference): Always go inside a CONVERT_EXPR
10041         and NOP_EXPR if both modes are the same.
10042         (store_field): Use bitfield operations if size of bitsize is not same
10043         as size of RHS's type.
10044         Check for bitpos not a multiple of alignment in BLKmode case.
10045         Do block move in largest possible alignment.
10046         (store_constructor): Set BITSIZE to -1 for variable size and properly
10047         in case of array of BLKmode.
10048         (expand_expr_unaligned): New function.
10049         (do_compare_and_jump): Call it.
10050
10051         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
10052         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
10053         does not include 'o'.
10054
10055         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
10056         both SET_DEST and SET_SRC reference a virtual register.
10057         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
10058
10059         * integrate.c (expand_inline_function): Handle case of setting
10060         virtual stack vars register (from built in setjmp); when parameter
10061         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
10062         (subst_constant): Add new parm, MEMONLY.
10063         (expand_inline_function, integrate_parm_decls): Pass new parm.
10064         (integrate_decl_tree): Likewise.
10065         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
10066         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
10067         (copy_rtx_and_substitute, case SET): Add explicit calls to
10068         copy_rtx_and_substitute for both sides.
10069
10070         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
10071         constraints.
10072         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
10073         within INDEX_TYPE, instead of before.
10074         (fixup_gotos): Use f->target_rtl, not the next insn,
10075         since latter may be from a later fixup.
10076         (expand_value_return): Correctly convert VAL when promoting function
10077         return; support RETURN_REG being a PARALLEL.
10078         (expand_return): When checking for result in regs and having
10079         cleanup, consider PARALLEL in DECL_RTL as being in regs.
10080
10081 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
10082
10083         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
10084         last_nominal_fname): Mark const.
10085         (struct include_hash: name, nshort, control_macro): Mark
10086         const.
10087         (struct macrodef: symnam): Mark const.
10088         (struct if_stack: fname): Mark const.
10089         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
10090         (IStable): New character-syntax array which encompasses all
10091         the old is_foo arrays.
10092         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
10093         is_space): New macros for interrogating IStable.
10094         (check_macro_name): Kill last argument.  All callers changed.
10095
10096         * cppinit.c (initialize_char_syntax): Delete.
10097         (is_idchar, is_idstart, is_hor_space, is_space,
10098         trigraph_table): Delete.
10099         (IStable): New.  Initialize with clever macros to avoid
10100         information duplication.
10101         (builtin_array): Table of builtins to get rid of explicit list
10102         in initialize_builtins.
10103         (initialize_builtins): Use builtins_array.
10104         (cpp_start_read): Call init_IStable, and set IStable['$'] if
10105         opts->dollars_in_ident.
10106
10107         * cppexp.c: Change all refs to is_xyz[] arrays to use new
10108         is_xyz() macros.
10109         (cpp_parse_expr): Avoid 'format string is not constant'
10110         warning. Use ISGRAPH to identify printable chars.
10111         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
10112         is_xyz() macros.
10113         (read_and_prescan): Map trigraphs to chars with open-coded
10114         if-else-if-... sequence, not a lookup table.
10115         * cpphash.c: Change all refs to is_xyz[] arrays to use new
10116         is_xyz() macros.
10117         * cpplib.c: Change all refs to is_xyz[] arrays to use new
10118         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
10119         (check_macro_name): Remove ability to report an invalid
10120         assertion name, which is never used.
10121         (do_line): Constify a couple of char *'s.
10122         * cppmain.c (main): Call cpp_cleanup before returning.
10123
10124 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
10125
10126         * ggc.h (struct ggc_statistics): New type.
10127         (ggc_get_size): New function.
10128         (ggc_print_statistics): Likewise.
10129         * ggc-common.c (ggc_stats): New variable.
10130         (ggc_mark_rtx_children): Keep statistics.
10131         (ggc_mark_tree_children): Likewise.
10132         (ggc_print_statistics): New function.
10133         * ggc-page.c (struct globals): Add bytes_mapped field.
10134         (alloc_anon): Update it.
10135         (release_pages): Likewise.
10136         (ggc_get_size): New function.
10137         (ggc_page_print_statistics): New function.
10138         * ggc-simple.c (ggc_get_size): New function.
10139
10140 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
10141
10142         * flow.c (propagate_block): When the last reference to a label
10143         before an ADDR_VEC is deleted because the reference is a dead
10144         store, delete the ADDR_VEC.
10145
10146 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
10147
10148         * resource.c (find_free_register): Don't use the frame pointer
10149         if frame_pointer_needed.
10150
10151 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
10152
10153         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
10154         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
10155
10156         * config/i960/i960.c (i960_va_start): New locals base, num.
10157         Use INDIRECT_REF instead of ARRAY_REF on valist.
10158         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
10159
10160 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
10161
10162         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
10163
10164 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
10165
10166         * tree.def (PLACEHOLDER_EXPR): Update comments.
10167
10168 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10169
10170         * c-common.c (check_format_info): Avoid non-literal format string
10171         warnings when `first_arg_num' is zero.
10172
10173 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10174
10175         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
10176
10177 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
10178
10179         * arm.md (casesi_insn): Add a clobber of the condition code
10180         register.
10181
10182 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
10183
10184         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
10185         used by both cc1 and cc1plus.
10186
10187 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
10188
10189         * config/arm/arm.c: Initialise arm_structure_size_boundary to
10190         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
10191         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
10192         to the value 32 if it has not already been defined.
10193         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
10194         Override definition in arm.h with a value of 8.
10195
10196 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
10197
10198         * c-pragma.c (push_alignment): Don't check the return value
10199         of xmalloc.
10200
10201 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
10202
10203         * sparc.h (ADJUST_COST): Fix thinko.
10204
10205 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
10206
10207         * cccp.c (rescan): Fixed obp pointer handling around call to
10208         check_expand subroutine.
10209
10210 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
10211
10212         * gcse.c (delete_null_pointer_checks): Only record non-null info
10213         for pseudos when examining stores.
10214
10215         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
10216         splitters for these patterns.  Use "#" for output templates.
10217         (addsi3_carryin_shift): New pattern.
10218
10219 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
10220
10221         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
10222         of the function return register into a plain REG until
10223         after function inlining is done.
10224
10225 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
10226
10227         * jump.c (jump_optimize_1): If we did cross-jumping, and
10228         the data will matter, rebuild the CFG.
10229         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
10230         not optimizing.  Don't run shorten_branches.
10231         * toplev.c (rest_of_compilation): Run shorten_branches after
10232         reg_to_stack.
10233
10234 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
10235
10236         * rtl.h (note_stores): Add additional paramter.
10237         * rtlanal.c (reg_set_p_1): Take additional paramter.
10238         (reg_set_last_1): Likewise.
10239         (reg_set_p): Adjust call to note_stores.
10240         (reg_set_last): Likewise.
10241         (note_stores): Pass data parameter to worker function.
10242         * alias.c (record_set): Take additional parameter.
10243         (init_alias_analysis): Pass it.
10244         * caller-save.c (mark_set_regs): Take additional parameter.
10245         (save_call_clobbered_regs): Pass NULL to note_stores.
10246         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
10247         parameter.
10248         (record_dead_and_set_regs_1): Likewise.
10249         (reg_dead_at_p_1): Likewise.
10250         (combine_instructions): Adjust calls to note_stores.
10251         (try_combine): Likewise.
10252         (record_dead_insn): Remove.
10253         (record_dead_and_set_regs): Adjust calls to note_stores.
10254         (reg_dead_at_p): Likewise.
10255         * cse.c (invalidate_skipped_set): Take additional parameter.
10256         (cse_check_loop_start): Likewise.
10257         (cse_check_loop_start_value): Remove.
10258         (cse_set_around_loop): Adjust calls to note_stores.
10259         * flow.c (notice_stack_pointer_modification): Take additional
10260         parameter.  Remove duplicate declaration.
10261         (record_volatile_insns): Adjust calls to note_stores.
10262         * gcse.c (record_set_info): Take additional parameter.
10263         (record_last_set_info): Likewise.
10264         (invalidate_nonnull_info): Likewise.
10265         (record_set_insn): Remove.
10266         (compute_sets): Adjust calls to note_stores.
10267         (last_set_insn): Remove.
10268         (compute_hash_table): Adjust calls to note_stores.
10269         (insert_insn_end_bb): Likewise.
10270         (delete_null_pointer_checks): Likewise.
10271         * global.c (mark_reg_store): Take additional parameter.
10272         (mark_reg_clobber): Likewise.
10273         (reg_becomes_live): Likewise.
10274         (global_conflicts): Adjust calls to note_stores.
10275         (build_insn_chain): Likewise.
10276         * integrate.c (note_modified_parmregs): Take additional parameter.
10277         (mark_stores): Likewise.  Make it static.
10278         (save_for_inline_nocopy): Adjust calls to note_stores.
10279         (try_constants): Likewise.
10280         * integrate.h (mark_stores): Remove declaration.
10281         * jump.c (mark_modified_reg): Take additional parameter.
10282         (thread_jumps): Adjust calls to note_stores.
10283         * local-alloc.c (validate_equiv_mem_from_store): Take additional
10284         parameter.
10285         (no_equiv): Likewise.
10286         (reg_is_set): Likewise.
10287         (validate_equiv_mem): Adjust calls to note_stores.
10288         (update_equiv_regs): Likewise.
10289         (block_alloc): Likewise.
10290         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
10291         (note_addr_stored): Take additional parameter.
10292         (note_set_pseudo_multiple_uses): Likewise.
10293         (record_initial): Likewise.
10294         (prescan_loop): Adjust calls to note_stores.
10295         (strength_reduce): Likewise.
10296         (check_dbra_loop): Likewise.
10297         * regmove.c (flags_set_1): Take additional paramter.
10298         (mark_flags_life_zones): Adjust calls to note_stores.
10299         * reload1.c (mark_not_eliminable): Take additional parameter.
10300         (forget_old_reloads_1): Likewise.
10301         (reload_cse_invalidate_rtx): Likewise.
10302         (reload_cse_check_clobber): Likewise.
10303         (reload_combine_note_store): Likewise.
10304         (move2add_note_store): Likewise.
10305         (reload): Adjust calls to note_stores.
10306         (reload_as_needed): Likewise.
10307         (emit_reload_insns): Likewise.
10308         (reload_cse_regs_1): Likewise.
10309         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
10310         (reload_combine): Adjust calls to note_stores.
10311         * resource.c (update_live_status): Take additional paramter.
10312         (mark_target_live_regs): Adjust calls to note_stores.
10313         * stupid.c (find_clobbered_regs): Take additional parameter.
10314         (stupid_life_analysis): Adjust calls to note_stores.
10315
10316 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
10317
10318         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
10319         definition.
10320
10321         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
10322         definition.
10323
10324         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
10325         of the variable arm_structure_size_boundary.
10326
10327 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
10328
10329         * alias.c (init_alias_analysis): Allocate reg_known_value and
10330         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
10331         and reg_seen.
10332         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
10333         * cse.c (cse_main): Call end_alias_analysis.
10334         * haifa-sched.c (schedule_insns): Likewise.
10335         * local-alloc. (update_equiv_regs): Likewise.
10336         * reload1.c (reload_cse_regs): Likewise.
10337
10338 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10339
10340         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
10341         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
10342         mapping from MASK_FPU.
10343
10344 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
10345
10346         * sparc.md (call): Don't bound structure return size to 0xfff.
10347
10348 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
10349
10350         * resource.c (mark_target_live_regs): Check that the target
10351         insn wasn't created after compute_bb_for_insn.
10352
10353 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
10354
10355         * ggc-page.c (poison_pages): Don't be overzealous.
10356
10357 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
10358
10359         * alias.c: Update comments for ADDRESS.
10360         (nonlocal_reference_p): Look inside the ADDRESS to determine if
10361         it is a local memory reference.
10362
10363         * c-typeck.c (build_function_call): Check that the built-in
10364         function is of class BUILT_IN_NORMAL before trying to recongize
10365         it as BUILT_IN_ABS.
10366         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
10367         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
10368
10369 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
10370
10371         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
10372         of alloca.
10373         (pre_gcse): Likewise.
10374         (hoist_expr_reaches_here_p): Likewise.
10375         (hoist_code): Likewise.
10376         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
10377         code to ...
10378         (pre_expr_reaches_here_p_work): ... here.
10379         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
10380         code to ...
10381         (expr_reaches_here_p_work): ... here.
10382
10383 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
10384
10385         * resource.c (find_basic_block): Delete.
10386         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
10387         (init_resource_info): Call compute_bb_for_insn.
10388
10389 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
10390
10391         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
10392         with already adjacent blocks, but no fallthru.
10393         (merge_blocks_move_successor_nojumps): Simplify.
10394         (debug_flow_info): New.
10395
10396         * toplev.c (rest_of_compilation): Open jump1 dump file before
10397         jump and close after, as opposed to just using dump_rtl.
10398
10399 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10400
10401         * reload.h (earlyclobber_operand_p): Declare.
10402         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
10403         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
10404         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
10405         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
10406
10407 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
10408                           Richard Henderson  <rth@cygnus.com>
10409
10410         * emit-rtl.c (emit_block_insn_before): New.
10411         (emit_block_insn_after): New.
10412         * basic-block.h: Declare them.
10413
10414         * bitmap.h: Protect from multiple inclusion.
10415
10416         * recog.c (scratch_operand): Handle VOIDmode correctly.
10417
10418         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
10419
10420         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
10421         * function.c (assign_parms): Likewise.
10422         * global.c (global_conflicts): Clarify STACK_REGS commentary.
10423
10424         * reg-stack.c (max_uid): Remove.
10425         (blocks, block_begin, block_end, block_drops_in): Remove.
10426         (block_stack_in, block_out_reg_set, block_number): Remove.
10427         (struct block_info_def, BLOCK_INFO): New.
10428         (enum emit_where): New.
10429         (current_block): New.
10430         (BLOCK_NUM): Remove.
10431         (mark_regs_pat, record_label_references): Remove.
10432         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
10433         (nan): New.
10434         (goto_block_pat, print_blocks, dump_stack_info): Remove.
10435         (reg_to_stack): Simplified test for existance of fp code.  Use
10436         flow.c code.  Call shorten_branches after cross-jump opt.
10437         (check_asm_stack_operands): Renamed from record_asm_reg_life.
10438         Return false if the asm doesn't use stack regs.  Don't do life
10439         analysis on the asm.
10440         (emit_pop_insn): Replace function pointer arg `when' with
10441         enum `where'.  Update all callers.
10442         (change_stack): Likewise.  Update basic block end.
10443         (emit_swap_insn): Use current_block->head to limit reverse search
10444         for start of block.  Use emit_block_insn_after.
10445         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
10446         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
10447         structure assignment instead of bcopy.
10448         (print_stack): New.
10449         (convert_regs_entry, convert_regs_exit): New.
10450         (convert_regs_1, convert_regs_2): Split out from convert_regs.
10451         Work on basic blocks and the CFG.
10452         (convert_regs): Use them.
10453
10454         * i386.c (output_fix_trunc): Remove code for DImode input operand
10455         not at top-of-stack.
10456         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
10457         appropriate mode.
10458         (fix_truncdi_1): Allow any mode scratch.
10459
10460 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
10461
10462         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
10463         * linux.h, netbsd.h, vms.h: Not here.
10464
10465 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
10466
10467         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
10468         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
10469         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
10470         CONDITIONAL_REGISTER_USEAGE): Use them.
10471         * config/mips/mips.c (mips_move_1word,mips_move_2words,
10472         gen_conditional_branch,override_options) : Use them.
10473         * config/mips/mips.md : Use them.
10474
10475 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
10476
10477         * i386.md (zero_extendqihi2): Use SImode register name with andl.
10478
10479 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
10480
10481         * integrate.c (function_cannot_inline_p): Don't allow inlining
10482         if setjmp is used.
10483
10484 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10485
10486         * c-parse.in (cast_expr): Constify.
10487
10488         * cccp.c (special_symbol): Likewise.
10489
10490         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
10491
10492         * dwarf2out.c (base_type_die): Likewise.
10493
10494         * global.c (allocno_compare): Likewise.
10495
10496         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
10497
10498         * regclass.c (fix_register): Likewise.
10499
10500         * rtl.h (fix_register): Likewise.
10501
10502         * stupid.c (stupid_reg_compare): Likewise.
10503
10504         * toplev.c (decode_f_option): Likewise.
10505
10506         * tree.c (build_complex_type): Likewise.
10507
10508 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
10509
10510         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
10511
10512 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10513
10514         * reload.c (find_reloads): Compute mode and nregs fields of all
10515         reloads.
10516         * reload1.c (calculate_needs_all_insns): Simplify a bit.
10517         (calculate_needs): Use precomputed mode/nregs values.
10518         (allocate_reload_reg): Likewise.
10519         Break out two...
10520         (failed_reload, set_reload_reg): ... new functions.
10521         (choose_reload_regs_init): New function, mostly broken out from...
10522         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
10523         Also lose one #if 0 block.
10524
10525 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
10526
10527         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
10528         substitution.
10529
10530 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
10531
10532         * tree.h (BLOCK_TYPE_TAGS): Remove.
10533         (BLOCK_END_NOTE): Likewise.
10534         (BLOCK_LIVE_RANGE_FLAG): Likewise.
10535         (BLOCK_LIVE_RANGE_START): Likewise.
10536         (BLOCK_LIVE_RANGE_END): Likewise.
10537         (tree_block): Remove live_range_flag, live_range_var_flag, and
10538         type_tags.  Remove end_note, live_range_start, and live_range_end.
10539         (remember_end_note): Remove prototype.
10540         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
10541         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
10542         remember_end_note.
10543         * ggc-common.c (ggc_mark_tree_children): Don't mark
10544         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
10545         * integrate.c (adjust_copied_decl_tree): Remove.
10546         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
10547         * stmt.c (last_block_end_note): Remove.
10548         (init_stmt): Don't add a GC root for it.
10549         (expand_fixup): Don't set it.
10550         (remember_end_note): Remove.
10551         (expand_end_bindings): Don't set last_block_end_note.
10552
10553 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10554
10555         * reload1.c (reload_reg_free_for_value_p): Show
10556         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
10557         reloads.
10558
10559 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
10560
10561         * expmed.c (extract_bit_field): Allow for the case of non-integer
10562         objects that are smaller than a word (like SFmode on a 64-bit
10563         machine).
10564
10565         * loop.c (basic_induction_var): A non-integer variable which is
10566         being set by a paradoxical subreg is probably not a biv.
10567
10568 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10569
10570         * prefix.c (translate_name) Check for empty prefix string.
10571
10572 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
10573
10574         * Makefile.in (CPP_CROSS_NAME): New variable.
10575         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
10576         xcpp.
10577         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
10578         names of the files to be uninstalled.
10579
10580 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
10581
10582         * collect2.c (IS_DIR_SEPARATOR): Define.
10583         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
10584
10585         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
10586         functions too.
10587
10588         * haifa-sched.c (add_dependence): Update the true dependency
10589         cache the first time we add a true dependence to the LOG_LINKS chain.
10590
10591 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
10592
10593         * fold-const.c (fold): Fix comment.
10594
10595 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10596
10597         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
10598         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
10599         dbxout_start_new_source_file, dbxout_source_file,
10600         dbxout_source_line, dbxout_finish, dbxout_type_fields,
10601         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
10602         Constify a char*.
10603         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
10604         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
10605         (dbxout_block): Initialize variable `blocknum'.
10606
10607         * dbxout.h (dbxout_init, dbxout_finish,
10608         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
10609         dbxout_args, dbxout_source_line): Constify a char*.
10610
10611         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
10612         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
10613         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
10614         low_pc_attribute, high_pc_attribute, body_begin_attribute,
10615         body_end_attribute, comp_dir_attribute, sf_names_attribute,
10616         src_info_attribute, mac_info_attribute, producer_attribute,
10617         lookup_filename, generate_macinfo_entry, fundamental_type_code,
10618         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
10619         dwarfout_undef): Constify a char*.
10620         (add_incomplete_type, retry_incomplete_types): Add prototypes.
10621
10622         * dwarfout.h (dwarfout_define, dwarfout_undef,
10623         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
10624
10625 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
10626
10627         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
10628         (MULTILIB_ISA_DEFAULT): New.
10629         (MULTILIB_DEFAULTS): Use it.
10630         * config/mips/mips.c (): Remove the now unnecessary definition
10631         of MIPS_ISA_DEFAULT.
10632         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
10633         unnecessary definition.
10634
10635 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
10636
10637         * arm.md (pic_load_addr): Add constraints to operand 1.
10638
10639 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
10640
10641         * fixinc/genfixes:  Provide a means for specifying -D options to
10642         AutoGen
10643
10644 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
10645
10646         * arm.c (arm_override_options): Correct initialization of
10647         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
10648         arm_is_strong, and arm_is_6_or_7.
10649
10650         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
10651         (note_set_pseudo_multiple_uses): New function.
10652         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
10653         if a pseudo set in the loop exit is used elsewhere.
10654
10655 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
10656
10657         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
10658
10659 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
10660
10661         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
10662         a single load-address pattern.
10663
10664 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
10665
10666         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
10667         depending on whether or not line-number notes are present.
10668
10669 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10670
10671         * cccp.c (progname, file_buf, default_include, include_file,
10672         macrodef, definition, hashval, wchar_type, user_label_prefix,
10673         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
10674         expand_to_temp_buffer, is_system_include, base_name,
10675         absolute_filename, read_name_map, open_include_file,
10676         record_control_macro, check_precompiled, check_preconditions,
10677         pcfinclude, pass_thru_directive, create_definition,
10678         check_macro_name, comp_def_part, collect_expansion,
10679         check_assertion, read_token_list, assertion_install,
10680         assertion_lookup, eval_if_expression, conditional_skip,
10681         validate_else, skip_quoted_string, quote_string, macarg1,
10682         error_from_errno, install, lookup, hashf, dump_defn_1,
10683         perror_with_name, pfatal_with_name, main, trigraph_pcp,
10684         check_white_space, rescan, handle_directive, monthnames,
10685         special_symbol, do_include, remap_include_file, write_output,
10686         arglist, do_assert, do_unassert, do_line, do_error, do_once,
10687         do_ident, do_sccs, do_xifdef, skip_if_group,
10688         output_line_directive, macroexpand, macarg, change_newlines,
10689         initialize_builtins, make_definition): Constify a char*.
10690
10691         * pcp.h (stringdef): Likewise.
10692
10693 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
10694
10695         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
10696         not of pattern.
10697
10698 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
10699                           Richard Henderson  <rth@cygnus.com>
10700
10701         * alias.c: Include ggc.h.
10702         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
10703         (record_set): Verify enough room in reg_base_value.
10704         (init_alias_analysis): Allocate reg_base_value with xcalloc.
10705         Register it as a GC root.
10706         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
10707         * Makefile.in (alias.o): Depend on ggc.h.
10708
10709         * unroll.c (unroll_loop): Verify the insn before a barrier
10710         is a JUMP_INSN before checking JUMP_LABEL.
10711
10712 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10713
10714         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
10715         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
10716         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
10717         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
10718         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
10719         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
10720
10721 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10722
10723         * output.h (ctors_section, dtors_section, bss_section): Prototype.
10724
10725         * alpha/alpha-interix.h (text_section): Delete prototype.
10726         * alpha/elf.h (text_section): Likewise.
10727         * arm/linux-elf.h (text_section): Likewise.
10728         * arm/linux-telf.h (text_section): Likewise.
10729         * c4x/c4x.h (text_section): Likewise.
10730         * dsp16xx/dsp16xx.h (bss_section): Likewise.
10731         * elfos.h (text_section): Likewise.
10732         * i386/aix386ng.h (text_section): Likewise.
10733         * i386/i386-interix.h (text_section): Likewise.
10734         * i386/sco5.h (text_section): Likewise.
10735         * i386/svr3gas.h (text_section): Likewise.
10736         * nextstep.h (text_section): Likewise.
10737         * psos.h (text_section): Likewise.
10738         * ptx4.h (text_section): Likewise.
10739         * svr3.h (text_section): Likewise.
10740         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
10741
10742 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10743
10744         * final.c (peephole): Delete prototype.
10745
10746         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
10747         (pre_insert_copies): Remove unused variable `bb'.
10748
10749         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
10750         prototypes.
10751
10752         * output.h (peephole): Add prototype.
10753
10754 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
10755
10756         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
10757         -O0.
10758
10759 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
10760
10761         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
10762         for inlined declarations.
10763
10764 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
10765
10766         * arm.c (logical_binary_operator): New fucntion.
10767         * arm.h (logical_binary_operator): Declare it.
10768         (PREDICATE_CODES): Handle logical_binary_operator.
10769         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
10770         output constraints.  Add appropriate splitters.
10771         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
10772         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
10773         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
10774
10775 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10776
10777         * genoutput.c (struct operand_data): New elt eliminable.
10778         (output_operand_data): Write it.
10779         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
10780         (compare_operands): Take it into account.
10781         * recog.h (struct insn_operand_data): New elt eliminable.
10782         * reload1.c (check_eliminable_occurrences, elimination_effects): New
10783         functions.
10784         (old_asm_operands_vec, new_asm_operands_vec): Delete.
10785         (eliminate_regs): Move code that detects changes to elimination
10786         target regs into new function elimination_effects.
10787         Delete one #if 0 block.
10788         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
10789         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
10790         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
10791         Only call eliminate_regs for real operands of the insn, not for parts
10792         of its structure or parts matched by things like match_operator.
10793         Use elimination_effects and check_eliminable_occurrences.  Use
10794         copy_insn to duplicate the pattern when not in the final pass.
10795
10796 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
10797
10798         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
10799         and fld.
10800
10801 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
10802
10803         * fixinc/README: document the "mach" machine matching test
10804         * fixinc/fixfixes.c: Implement the #else/#endif label fix
10805         * fixinc/fixtests.c: Implement the #else/#endif label test
10806         * fixinc/inclhack.def: utilize these tests and fixes
10807         * fixinc/inclhack.sh:  regen
10808         * fixinc/fixincl.x:  regen
10809         * fixinc/fixincl.sh:  regen
10810
10811 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
10812
10813         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
10814         depend on ggc.h.
10815
10816 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
10817
10818         * gcc.1: Document exit codes.
10819
10820 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10821
10822         * calls.c: Include tm_p.h later, so everything we need is defined.
10823         * expr.c: Likewise.
10824         * function.c: Likewise.
10825
10826         * except.c: Include tm_p.h.
10827
10828         * sparc.c: Likewise.
10829         (dwarf2out_cfi_label): Don't prototype.
10830         (check_return_regs, epilogue_renumber,
10831         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
10832         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
10833         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
10834         ultra_schedule_insn): Add static prototype.
10835         (data_segment_operand, text_segment_operand): Call itself with the
10836         proper number of arguments.
10837         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
10838
10839         * sparc.h: Move all declarations to sparc-protos.h.
10840         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
10841         symbolic_operand.
10842
10843         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
10844
10845         * config/svr4.h (text_section, ctors_section, dtors_section): Add
10846         Prototypes.
10847         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
10848         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
10849         ASM_OUTPUT_ASCII): Constify a char*.
10850
10851         * sparc-protos.h: New file for sparc prototypes.
10852
10853 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10854
10855         * function.c (record_insns, contains): Always declare and define.
10856         (record_insns): Mark with ATTRIBUTE_UNUSED.
10857
10858 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
10859
10860         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
10861         to .section when outputting a .bss section to deal with multiple
10862         .bss input sections (as happens with -fdata-sections)
10863         Also output %progbits, not @progbits so the assembler doesn't treat as
10864         a comment.
10865         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
10866
10867         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
10868         thumb parts even when building with non-thumb CPUs, by forcing
10869         thumb mode.
10870
10871 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
10872
10873         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
10874         (movdf_const_intreg_sp64): Similarly.
10875
10876         * local-alloc.c (update_equiv_regs): Check the correct insn
10877         for pre-existing REG_EQUIV notes.
10878
10879 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
10880
10881         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
10882         block reached by a branch if we're not going to actually process
10883         this block.
10884
10885 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
10886
10887         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
10888         a local extern function declaration.
10889
10890 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
10891
10892         * i386.c (ix86_expand_prologue): Properly wrap USE around
10893         reg for CALL_INSN_FUNCTION_USAGE.
10894
10895 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
10896
10897         * config/mips/mips.md (movdf_internal1a): Allow floating-point
10898         move between GP_REGs.
10899
10900 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
10901
10902         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
10903         the mode size when finding out if an offset is legal.
10904
10905 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
10906
10907         * basic-block.h (PROP_*): Move constants from ...
10908         * flow.c: ... here.
10909         (compute_bb_for_insn): Free the array before reallocating.
10910         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
10911         (allocate_reg_life_data): Reset all reg variables collected by
10912         propagate_block.
10913         (get_block_head_tail): Don't convert from bb to block.
10914         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
10915         (find_insn_reg_weight): Take block not bb.
10916         (schedule_block): Don't set block num for moved insns.
10917         (schedule_region): Don't update_life_info or find_insn_reg_weight.
10918         (schedule_insns): Do it here instead.
10919         * combine.c (combine_instructions): Invoke compute_bb_for_insn
10920         before update_life_info.
10921         * recog.c (split_all_insns, peephole2_optimize): Update for
10922         new arg to update_life_info.
10923         * rtlanal.c (remove_note): Cope with NULL note.
10924         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
10925         if we did sched1.
10926
10927 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
10928
10929         * jump.c (jump_optimize_1): More accurately detect casesi insns.
10930
10931         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
10932         block records so that merge_blocks_nomove will clean up correctly.
10933         (split_edge): Handle casesi insns.
10934
10935         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
10936
10937 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
10938
10939         * pa.md (call, call_value): Do not emit a blockage after restoring
10940         the PIC register.
10941
10942 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
10943
10944         * c-typeck.c (c_expand_asm_operands): Fix typo.
10945
10946 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10947
10948         * arm.c (fpu_rhs_operand): Verify modes.
10949         (fpu_add_operand): Likewise.
10950         (di_operand): Likewise.
10951         (soft_df_operand): Likewise.
10952
10953 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
10954
10955         * arm.c (arm_return_in_memory): APCS rules state that the elements
10956         of a structure returned in a register must be 'integer-like'.
10957
10958 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
10959
10960         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
10961         in the source tree when the generated targets are out of date
10962         * fixinc/genfixes: Alter it to run individual fixes for make.
10963         * fixinc/README: rewrite
10964         * fixinc/inclhack.def: moved initial comments to README
10965
10966 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
10967
10968         * toplev.c (main): Do not generate an error message if an
10969         unrecognised command line switch is recognisable by another
10970         language.  If extra_warnings are enabled, then generate a
10971         warning message instead.
10972
10973 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
10974
10975         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
10976         (insert_pack_attributes): Delete prototype.
10977
10978         * c-pragma.c (default_alignment): New static variable.
10979         (push_alignment): Initialize to current effective alignment.
10980         (pop_alignment): Use to set new alignment.
10981         (insert_pack_attributes): Delete function.
10982         (handle_pragma_token): Set default_alignment as well each time
10983         a #pragma pack(<n>) is encountered.
10984
10985 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
10986
10987         * reg-stack.c (stack_result): Aggregates are not returned in
10988         stack registers.
10989
10990 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
10991
10992         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
10993
10994 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
10995
10996         * basic-block.h (set_block_num): Declare.
10997         * flow.c (update_life_info): Don't call compute_bb_for_insn
10998         or free_basic_block_vars.
10999         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
11000         (insn_orig_block): Remove.
11001         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
11002         (schedule_block): Keep BLOCK_NUM up-to-date.
11003         (schedule_insns): Use compute_bb_for_insn.
11004         * recog.c (split_all_insns): Likewise.
11005         (peephole2_optimize): Likewise.
11006
11007 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
11008
11009         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
11010         if the pic register is used.
11011
11012 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11013
11014         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
11015         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
11016         if that tests TREE_PERMANENT.
11017
11018 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
11019
11020         * cse.c (invalidate_for_call): Do not remove memory references from
11021         the table here.  It's handled elsewhere.
11022
11023         * haifa-sched.c (add_dependence): Protect references to the
11024         true dependency cache with #ifdef INSN_SCHEDULING.
11025         (remove_dependence): Similarly.
11026
11027         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
11028         to the cfg code that this is a return instruction.
11029         * mn10300.md (return_internal): Similarly.
11030
11031         * combine.c (get_last_value): If the last set of a register
11032         is after subst_low_cuid, then we can not use it to determine
11033         the register's last value.
11034
11035 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
11036
11037         * Makefile.in: Back out previous change.
11038
11039 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
11040
11041         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
11042
11043         * haifa-sched.c (add_dependence): Only check/update the cache
11044         if it exists.
11045         (remove_dependence): Likewise.
11046         (schedule_insns): Only create the true_dependency_cache if the
11047         average number of instructions in a basic block is very large.
11048
11049 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
11050
11051         * Makefile.in (ggc-common.o): Depend on genrtl.h.
11052         (ggc-simple.o): Likewise.
11053         (ggc-page.o): Likewise.
11054
11055 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
11056
11057         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
11058         Prototype for exported functions.
11059         (pre_lcm, pre_rev_lcm): Remove prototypes.
11060         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
11061         (compute_available): Move to lcm.c, and change parameter order.
11062         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
11063         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
11064         (gcse_main): No longer call compute_preds_succs.  Rebuild the
11065         set table after reach pre pass.
11066         (pre_insert_map, pre_delete_map, edge_list): New.
11067         (alloc_pre_mem): Allocate edge vectors.
11068         (free_pre_mem): Delete edge vectors.
11069         (compute_pre_data): Call new edge based lcm routines.
11070         (process_insert_insn): New function.
11071         (insert_insn_end_bb): Use it.
11072         (pre_edge_insert): New function.
11073         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
11074         needed.
11075         (pre_insert_copies): Revamp using new edge based lcm outputs.
11076         (pre_delete): Likewise.
11077         (one_pre_gcse_pass): Insert & remove fake edges to the exit
11078         block.
11079         (compute_code_hoist_vbeinout): New new edge based routines.
11080         * lcm.c: Remove all the old LCM functions.  Replace with new ones
11081         that work with the new cfg datastructures and work with edges
11082         instead of blocks.
11083
11084 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11085
11086         * reload.h (struct reload): Add new fields "mode" and "nregs".
11087         * reload1.c: Change all occurrences of reload_mode and reload_nregs
11088         to reference the "mode" and "nregs" field within struct reload.
11089
11090 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
11091
11092         * haifa-sched.c (true_dependency_cache): New.
11093         (add_dependence): Use the true dependency cache to avoid expensive
11094         walks down the LOG_LINKS dependency list.  Add entries to the
11095         cache as necessary.
11096         (remove_dependence): Remove entries from the true dependency cache
11097         as needed.
11098         (schedule_insns): Allocate and initialize and free the true
11099         dependency cache.
11100
11101         * haifa-sched.c (schedule_insns): Do not remove inter-block
11102         dependencies anymore.
11103
11104 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
11105
11106         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
11107         * i386/t-winnt: Likewise.
11108
11109 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
11110
11111         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
11112
11113 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
11114
11115         * Makefile.in (LANGUAGES): Omit "proto".
11116         (clean): Remove stale comment about removing unprotoize.c.
11117
11118 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11119
11120         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
11121         using arithmetic on void pointers.
11122
11123 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
11124
11125         * haifa-sched.c (compute_block_forward_dependencies): Only check
11126         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
11127
11128 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
11129
11130         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
11131         (expr_equiv_p): Reject memories with different alias sets.
11132
11133 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
11134
11135         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
11136         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
11137         (f_options): Add "bounded-pointers" and "bounds-check" entries.
11138         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
11139         (lang_init): Set default for flag_bounds_check if still "unspecified".
11140
11141 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11142
11143         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
11144
11145 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11146
11147         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
11148         instructions.
11149
11150 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11151
11152         * config/c4x/c4x.md (*db_noclobber,
11153         *decrement_and_branch_until_zero_noclobber): New patterns and
11154         associated splitters.
11155
11156 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11157
11158         * config/c4x/c4x.md (parallel instruction patterns): Rework
11159         constraints to keep reload happy.
11160
11161 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11162
11163         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
11164         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
11165         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
11166         Add new patterns and associated post-reload splitters.
11167
11168 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11169
11170         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
11171
11172 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11173
11174         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
11175         if appropriate.
11176         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
11177
11178 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11179
11180         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
11181         memory mode.
11182
11183 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
11184
11185         * pa.c (move_operand): Rely on memory_address_p to determine the
11186         validity of non-indexed memory addresses.
11187         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
11188         operand in DFmode and SFmode when generating PA2.0 code.
11189
11190 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
11191
11192         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
11193
11194 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
11195
11196         * mips.c (function_prologue): Fix argument types.
11197         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
11198         (casesi_internal): Write to the scratch register.
11199
11200 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
11201
11202         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
11203         to U_CHAR **.
11204         (parse_charconst): Delete unnecessary cast when calling
11205         cpp_parse_escape.
11206         (cpplib.h): Kill prototype of cpp_parse_escape.
11207
11208 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
11209
11210         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
11211         * unroll.c (unroll_loop): Cast return value of alloca.
11212         * i370/i370.c: Include function.h and toplev.h.
11213         (i370_label_scan): Remove c++ commented abort.
11214         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
11215         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
11216         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
11217         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
11218
11219 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
11220
11221         * config/t-freebsd: Do not override USER_H.
11222         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
11223
11224 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
11225                           Mumit Khan  <khan@xraylith.wisc.edu>
11226
11227         * c-parse.in (component_decl): Support anonymous struct/union.
11228         (%expect): Update.
11229         * c-parse.y: Regenerate.
11230         * c-parse.c: Likewise.
11231         * objc/objc-parse.y: Likewise.
11232         * objc/objc-parse.c: Likewise.
11233         * c-decl.c (finish_struct): Don't sort the fields.
11234         (field_decl_cmp): Delete unused function.
11235
11236 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
11237
11238         * sparc.md (movsf_const_intreg): Revert last constraint change.
11239         (movdf_const_intreg_sp32): Likewise.
11240
11241 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
11242
11243         * cse.c: Include hashtab.h instead of splay-tree.h
11244         (struct cse_reg_info): No longer use variant union.  Add new
11245         field "regno".  All references changed to avoid union.
11246         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
11247         (free_cse_reg_info): Remove.
11248         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
11249         (get_cse_reg_info): Revamp to use expandable hash tables instead
11250         of splay trees.  Initialize new fields in cse_reg_info structure.
11251         (new_basic_block): Similarly.
11252
11253 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
11254
11255         * genrecog.c (message_with_line): Prototype.
11256         (validate_pattern): Pass along the set for the dest, not a flag.
11257         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
11258         Check for PC/CC0 as sources.
11259         (nodes_identical): Check for children position match before
11260         allowing the combination.
11261
11262         * rtl.c (read_rtx): Track line number across \\\n.
11263
11264 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
11265
11266         * mips.h (SPECIAL_MODE_PREDICATES): New.
11267         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
11268         (movdi+1, movsi+1): Add output reload constraint.
11269         (casesi_internal): Likewise.  Fix commentary.
11270         (return_internal): Use pmode_register_operand.
11271
11272 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
11273
11274         * 1750a.md (movstrqi): Add missing output reload constraint.
11275         (call_value): Likewise.
11276         * a29k.md (cpxxx patterns): Add missing match_operator mode.
11277         (jmpfdec): Add missing inout reload constraint.
11278         * elxsi.md (addsi patterns): Add missing output reload constraint.
11279         (move from sp): Use @ alternates.
11280         (call_value): No constraint on output.
11281         * fr30.md (movsi_pop): Add missing output reload constraint.
11282         (movsf_constant_store): Likewise.
11283         (splits): Remove constraints.
11284         (subsi3): Add missing mode.
11285         * i370.md (cmpstrsi+1): Add missing output reload constraint.
11286         (call_value): Likewise.
11287         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
11288         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
11289         * m32r.md (movsicc_internal): Add output reload constraint.
11290         (movstrsi_internal): Add inout reload constraints.
11291         * m88k.h (reg_names): Don't declare.
11292         (SPECIAL_MODE_PREDICATES): New.
11293         * m88k.md (*): Use register_operand not reg_or_0_operand
11294         on destinations.
11295         * mn10200.h (PREDICATE_CODES): New.
11296         * ns32k.md (ffs pattern): Add output reload constraint.
11297         * pdp11.md (sob pattern): Add inout reload constraint.
11298         * sh.md (splits): Remove constraints.
11299         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
11300         * v850.md (pattern_is_ok_for_epilogue): Likewise.
11301         * vax.md (jgequ pattern): Add inout reload constraint.
11302
11303 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
11304
11305         * configure.in (djgpp): Revert previous patch.
11306         * configure: Rebuit.
11307         * config/i386/djgpp.h: Revert previous patch.
11308
11309 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
11310
11311         * fixinc/inclhack.def: Restore patch lost during last merge of
11312         "no_bogosity" branch.
11313         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
11314
11315 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11316
11317         * fixincludes: Add a HPUX 11 fix for inttypes.h.
11318         * fixinc/inclhack.def: Same.
11319         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
11320
11321 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
11322
11323         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
11324         as the base of a PLUS.
11325
11326 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11327
11328         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
11329         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
11330
11331 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
11332
11333         * pa.md (post_stw+1): Use pmode_register_operand.
11334         (dcacheflush, icacheflush): Likewise.
11335
11336         * i386.md (movstricthi_1): Allow r/r.
11337
11338 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
11339
11340         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
11341         to (not (and (arg0) (arg1))). Similary for and.
11342
11343         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
11344         fallthrough to associate code.
11345         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
11346         bits in common.
11347
11348         * combine.c (simplify_logical): Convert XOR to IOR if operands have
11349         no bits in common; remove XOR to ROTATE conversion.
11350
11351 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11352
11353         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
11354
11355 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11356
11357         * config/c4x/c4x.c (dst_operand): New.
11358         (PREDICATE_CODES): Update.
11359         * config/c4x/c4x.h (dst_operand): Declare it.
11360         * config/c4x/c4x.md:  Define mode for each unspec usage.
11361         (move patterns):  Use dst_operand predicate instead of src_operand.
11362         (movqi_update, movqf_update): Delete.
11363
11364 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
11365
11366         * recog.c (pmode_register_operand): New.
11367         * recog.h: Declare it.
11368         * genrecog.c (pred_codes): Likewise.
11369         (special_mode_pred_table): Likewise.
11370         (validate_pattern): Don't warn no mode for address_operand.
11371
11372         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
11373         if the operand is not insn-like.
11374
11375 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
11376                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
11377
11378         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
11379
11380 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
11381
11382         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
11383         instead of general_operand in a SET_DEST.  Use const_double_operand
11384         instead of an explicit test against CONST_DOUBLE.
11385         (movsf_const_lo): Add missing register mode.
11386         (goto_handler_and_restore): Add auxiliary test for Pmode.
11387         (flush): Adjust to use address_operand.
11388         (return_sf_no_fpu): Add missing output constraint.
11389
11390 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
11391
11392         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
11393         for call return value.
11394         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
11395
11396 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
11397
11398         * toplev.c (main): Only warn about options for other languages.
11399         * collect2.c (main): Pass -w to sub-gcc.
11400
11401 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
11402
11403         * flow.c (propagate_block): Add call-clobbered registers to
11404         significant too.
11405
11406         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
11407         zapping mem_set_list.
11408         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
11409         (mark_set_1, mark_used_regs): Likewise.
11410
11411 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
11412
11413         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
11414
11415 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11416
11417         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
11418         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
11419         options. Also add a new item "C-only Warning Options" to the
11420         option summary.
11421
11422 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
11423
11424         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
11425         from multiple calls.
11426
11427 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
11428
11429         * i386.md (call value patterns): Move to the end of the file.
11430         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
11431
11432 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
11433
11434         * configure.in (djgpp configuration): Define extra_objects..
11435         * configure: Rebuilt.
11436         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
11437         (DTORS_SECTION_ASM_OP): Define.
11438         (INIT_SECTION_ASM_OP): Define.
11439         (FINI_SECTION_ASM_OP): Define.
11440         (DATA_SECTION_ASM_OP): Define.
11441         (TEXT_SECTION_ASM_OP): Define.
11442         (EH_FRAME_SECTION_ASM_OP): Define.
11443         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
11444         (STARTFILE_SPEC): Add crtbegin.o.
11445         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
11446         to here from LINK_COMMAND_SPEC.
11447         (DO_GLOBAL_CTORS_BODY): Define.
11448         (CRTSTUFF_USE_FINI_SECTION): Define
11449         (HAS_INIT_SECTION): Delete.
11450
11451 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
11452
11453         * Makefile.in (all.cross): Depend on xcpp$(exeext).
11454
11455 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
11456
11457         * pa.h (PREDICATE_CODES): New.
11458
11459         * genrecog.c (validate_pattern): Condense the destination
11460         non-lvalue message.
11461
11462 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
11463
11464         * alpha.md (call-1): Supply missing mode for operator.
11465         (*): Add missing output reload constraints.  Remove constraints
11466         from define_splits.
11467
11468         * i386.h (SPECIAL_MODE_PREDICATES): New.
11469         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
11470         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
11471         (addsi_lea_3): Add missing mode for op 3.
11472         (prologue_set_got, prologue_get_pc): Add missing modes.
11473         (*) Add missing output reload constraints.
11474
11475 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
11476
11477         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
11478         check for member bit-size overflow and use var_size if it occurs.
11479         (layout_record): Use bitsize_int() to define the type size in bits.
11480         Likewise for computation and assignment to DECL_FIELD_BITPOS.
11481         (layout_decl): Likewise when assigning to DECL_SIZE.
11482
11483 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
11484
11485         * genrecog.c (validate_pattern): Typo last change.  Verify
11486         that output operands have output reloads.
11487
11488 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
11489
11490         * genrecog.c (special_mode_pred_table): New.
11491         (NUM_SPECIAL_MODE_PREDS): New.
11492         (find_operand): New.
11493         (validate_pattern): New argument `insn'.  Warn for assignment to
11494         any predicate accepting non-lvalues.  Conditionaly warn for
11495         match_operand without a mode.  Try much harder to match source
11496         and destination modes on a set.
11497         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
11498
11499 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
11500
11501         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
11502
11503 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
11504
11505         * combine.c (simplify_logical): Recognize xor pattern that encodes
11506         rotation.
11507
11508 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11509
11510         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
11511         alignment.
11512
11513 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
11514
11515         * ggc-page.c (MAP_FAILED): Provide default.
11516
11517 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
11518
11519         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
11520         * sparc.h (PREDICATE_CODES): Update.
11521
11522 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
11523
11524         * alpha.c (some_ni_operand): New.
11525         * alpha-protos.h: Declare it.
11526         * alpha.h (PREDICATE_CODES): Update.
11527         * alpha.md (sXaddq reload insns): Use some_ni_operand
11528         for SET_DEST instead of some_operand.
11529
11530 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
11531                           Jim Wilson  <wilson@cygnus.com>
11532
11533         * genrecog.c (maybe_both_true_2): Don't compare modes of
11534         two DT_pred tests.
11535         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
11536         after find_afterward.
11537         (debug_decision_1): Dump next and afterward codes.
11538
11539 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
11540
11541         * rtl.c (dump_and_abort): Remove.
11542         (fatal_with_file_and_line): New.
11543         (fatal_expected_char): New.
11544         (read_rtx_lineno, read_rtx_filename): New.
11545         (read_skip_spaces): Track line number.
11546         (read_name): Use fatal_with_file_and_line.
11547         (read_rtx): Use fatal_expected_char.  Track line number.
11548         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
11549
11550         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
11551         if it isn't a CODE_LABEL.
11552
11553         * genattr.c (main): Set read_rtx_filename.
11554         * genattrtab.c (main): Likewise.
11555         * gencodes.c (main): Likewise.
11556         * genconfig.c (main): Likewise.
11557         * genemit.c (main): Likewise.
11558         * genextract.c (main): Likewise.
11559         * genflags.c (main): Likewise.
11560         * genopinit.c (main): Likewise.
11561         * genoutput.c (main): Likewise.
11562         * genpeep.c (main): Likewise.
11563
11564         * genrecog.c (decision_test.u.insn): Add `lineno'.
11565         (pattern_lineno, error_count): New variables.
11566         (message_with_line): New.
11567         (add_to_sequence): Break out checking code to ...
11568         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
11569         (merge_insn): Use message_with_line.
11570         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
11571         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
11572
11573 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11574
11575         * expr.c (store_constructor): Clear union if constructor is empty.
11576
11577 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
11578
11579         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
11580         Add !endian checks.  Change %{...} to %(...).
11581
11582 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
11583
11584         * i386.md (*addsi3_cc): Renamed from addcsi3.
11585         (*addsi3_carry): Renamed from addxsi3.
11586         (*subsi3_cc): Renamed from subcsi3.
11587         (*subsi3_carry): Renamed from subxsi3.
11588         (*xorqi_cc_1): Renamed from xorcqi_1.
11589         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
11590         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
11591
11592 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
11593
11594         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
11595         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
11596
11597 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
11598
11599         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
11600         climb up the chain of insns.
11601
11602 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
11603
11604         * genrecog.c (write_subroutine): Careful for null trees.
11605         (process_tree): Don't elide empty functions.
11606
11607 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
11608
11609         * Makefile.in (genrtl.o): Depend on ggc.h.
11610         * configure.in (valloc): Probe for it.
11611         (with-gc): Use ggc-page if valloc present.
11612         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
11613         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
11614         (ggc_alloc_string): Moved from ggc-page.c.
11615         * ggc-none.c (ggc_alloc_obj): New.
11616         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
11617         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
11618         (struct globals): Likewise for dev_zero_fd.
11619         (init_ggc): Likewise for it's initialization.
11620         (ggc_allocated_p): Move careful dereference from ...
11621         (ggc_lookup_page_table): ... here.  Delete.
11622         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
11623         (alloc_anon): Use valloc if no mmap.
11624         (release_pages): Use free if using valloc.
11625         (ggc_alloc_obj): Renamed from alloc_obj.
11626         (ggc_set_mark): Renamed from mark_obj.
11627         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
11628         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
11629         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
11630         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
11631         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
11632         (ggc_collect): Use fp printing instead of our own rounding.
11633         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
11634         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
11635         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
11636         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
11637         (struct ggc_string, struct ggc_any): Delete.
11638         (offsetof): Provide default definition.
11639         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
11640         (PTR_KEY): New.
11641         (struct ggc_mem): New, from corpse of ggc_any.
11642         (struct ggc_status): Delete.
11643         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
11644         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
11645         (n_strings_collected, n_anys_collected): Delete.
11646         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
11647         (ggc_alloc_string, ggc_alloc): Delete.
11648         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
11649         (ggc_free_string, ggc_free_any): Delete.
11650         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
11651         (ggc_compare_addresses, ggc_mark_string): Delete.
11652         (ggc_mark_string_if_gcable, ggc_mark): Delete.
11653         (search_data): Delete.
11654         (struct globals): New.
11655         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
11656         (tree_insert, tree_lookup): New.
11657         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
11658         (clear_marks, sweep_objs): New.
11659         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
11660         (init_ggc): Set allocated_last_gc.
11661         (ggc_push_context): Gut.  Use G.context.
11662         (ggc_pop_context): Likewise.
11663         (ggc_pop_context_1): New.
11664         (debug_ggc_tree): New.
11665         (debug_ggc_balance, tally_leaves): New.
11666         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
11667         (ggc_mark_string_if_gcable): Remove decl.
11668         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
11669         (ggc_mark_rtvec_children): New.
11670         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
11671         (ggc_mark_if_gcable): New decl.
11672         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
11673         (ggc_alloc_tree, ggc_alloc): Likewise.
11674         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
11675         (ggc_alloc_obj): New decl.
11676         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
11677         (ggc_alloc_tree, ggc_alloc): Likewise.
11678         (ggc_set_mark): New decl.
11679         * rtl.h (struct rtx_def): Remove gc_mark.
11680         (struct rtvec_def): Likewise.
11681         * tree.h (struct tree_common): Likewise.
11682
11683 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
11684
11685         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
11686         float_format and thread_file definitions.
11687         * configure: Rebuilt.
11688
11689 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
11690
11691         * extend.texi (Function Names): Document types of function names.
11692
11693 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11694
11695         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
11696         an earlyclobbered output conflict with RELOAD_INPUT reloads.
11697
11698 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11699
11700         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
11701
11702 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11703
11704         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
11705
11706 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
11707
11708         * collect2.c (main): Do prelimnary link on AIX if rflag.
11709
11710 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
11711
11712         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
11713         __CTOR_LIST__ in opposite order, which is the correct order for sorted
11714         constructors.
11715         (__do_global_dtors): similarly for __DTOR_LIST__.
11716
11717 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11718                                 Diego Novillo <dnovillo@cygnus.com>
11719
11720         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
11721         FPUL_REGS.
11722
11723 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
11724
11725         * fixincl/*: Merged "no_bogosity" branch
11726         * fixincl/fixlib.h: protect against doubly defining t_bool
11727         * fixincl/server.h: protect against doubly defining t_bool
11728
11729 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
11730
11731         * genoutput.c: Include toplev.h.
11732
11733 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
11734
11735         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
11736         Undef.
11737         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
11738         * configure: Regenerate.
11739
11740 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
11741
11742         * gcse.c (delete_null_pointer_checks): Returns void.
11743
11744 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11745
11746         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
11747         * emit-rtl.c (copy_insn_1): Likewise.
11748
11749 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
11750
11751         * config/mips/mips.c (mips_build_va_list): Correct
11752         TREE_CHAIN setting when hard-float.
11753         (mips_va_start): Use corrected setting.
11754         (mips_va_arg): Likewise.  Also pass a tree to build of
11755         POSTINCREMENT_EXPR rather than a naked 'int'.
11756
11757 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
11758
11759         * ggc.h (ggc_push_context): Fix comment.
11760         (ggc_pop_context): Likewise.
11761         (mark_string_if_gcable): Likewise.
11762         * ggc-common.c (ggc_mark_rtx_children): Use
11763         ggc_mark_string_if_gcable.
11764         * ggc-page.c (ggc_lookup_page_table): New function.
11765         (ggc_allocated_p): Likewise.
11766         (mark_obj): Fix formatting.
11767         (ggc_mark_string_if_gcable): New function.
11768         * ggc-simple.c (ggc_allocated_strings): New variable.
11769         (ggc_strings_used): Likewise.
11770         (ggc_compare_addresses): New function.
11771         (ggc_pop_context): Pop the `any' memory too.
11772         (ggc_mark_string_if_gcable): New function.
11773         (ggc_collect): Initialize and tear down ggc_allocated_strings.
11774
11775 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
11776
11777         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
11778         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
11779         * rs6000.c (expand_block_move): Match movstrsi_?reg register
11780         changes.
11781
11782 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
11783
11784         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
11785         (sched_reg_live_length, sched_reg_basic_block): Delete.
11786         (current_block_num, bb_live_regs, old_live_regs): Delete.
11787         (dead_notes, struct sometimes): Delete.
11788         (sched_note_set, birthing_insn_p): Delete.
11789         (adjust_priority): Gut useless reg lifetime code.
11790         (create_reg_dead_note, attach_deaths): Delete.
11791         (attach_deaths_insn, new_sometimes_live): Delete.
11792         (finish_sometimes_live): Delete.
11793         (find_pre_sched_live, find_post_sched_live): Delete.
11794         (update_reg_usage): Delete.
11795         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
11796         (schedule_insns): Delete reg lifetime code.
11797         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
11798         (unlink_other_notes): Adjust REG_NOTE commentary.
11799         (reemit_notes): Use REG_SAVE_NOTE.
11800         (schedule_block): Likewise.
11801         (schedule_region): Allocate bitmap of blocks in region.  Use
11802         count_or_remove_death_notes.  Use update_life_info.
11803
11804         * rtl.h (REG_SAVE_NOTE): New.
11805         * rtl.c (reg_note_name): Update.
11806
11807 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
11808
11809         * combine.c (refresh_blocks, need_refresh): New.
11810         (combine_instructions): Allocate refresh_blocks.  Invoke
11811         update_life_info if needed.
11812         (distribute_notes): Mark refresh_blocks instead of installing
11813         USE insns.
11814         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
11815         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
11816
11817         * Makefile.in (recog.o): Depend on basic-block.h.
11818
11819 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
11820
11821         * genrecog.c (add_to_sequence): Thinko last change: delete
11822         shadowing allow_const_int variable.
11823
11824 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11825
11826         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
11827         __GNUC__ and __GNUC_MINOR__.
11828
11829         * gansidecl.h: Likewise.
11830
11831         * rtl.c: Likewise.
11832
11833         * rtl.h: Likewise.
11834
11835         * toplev.h: Likewise.
11836
11837         * tree.c: Likewise.
11838
11839         * tree.h: Likewise.
11840
11841         * varray.c: Likewise.
11842
11843         * varray.h: Likewise.
11844
11845 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11846
11847         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
11848         use one before a jump table.
11849
11850         * rtl.def (ADDRESS): Change documentation to match reality.
11851         * md.texi: Don't document it.
11852         * gmicro.md (load address pattern): Use 'p' constraint, delete use
11853         of ADDRESS rtx.
11854
11855         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
11856
11857 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
11858
11859         * genrecog.c (add_to_sequence): Move allow_const_int test outside
11860         known predicate block; default allow_const_int true.
11861         (debug_decision_list): New.
11862
11863 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
11864
11865         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
11866
11867 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
11868
11869         * gcse.c (gcse_main): Avoid global optimizations if we have a
11870         large number of basic blocks and the ratio of edges to blocks
11871         is high.
11872         (delete_null_pointer_checks): Likewise.
11873
11874 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
11875
11876         * c-common.c (check_format_info): Warn if format string isn't a
11877         string literal.
11878
11879 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
11880
11881         * configure.in (arm*-*-*): Don't let autoconf remove brackets
11882         * configure: regenerate
11883
11884 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
11885
11886         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
11887         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
11888         (peepholes): Re-enable.
11889
11890 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
11891
11892         * Makefile.in (flow.o): Depend on TREE_H.
11893         * basic-block.h (REG_SET_EQUAL_P): New.
11894         (XOR_REG_SET): New.
11895         (n_edges): Declare.
11896         (free_regset_vector): Remove declaration.
11897         (flow_delete_insn_chain): Declare.
11898         (enum update_life_extent): New.
11899         (update_life_info, count_or_remove_death_notes): Declare.
11900         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
11901         Verify register live at bb->global_live_at_start before adding USE.
11902         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
11903         (CLEAN_ALLOCA): New.
11904         (n_edges): New.
11905         (PROP_*): New flags.
11906         (find_basic_blocks_1): Use alloc_EXPR_LIST.
11907         (clear_edges): Zero n_edges.
11908         (make_edge): Increment n_edges.
11909         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
11910         (flow_delete_insn_chain): Export.
11911         (delete_block): Decrement n_edges.
11912         (merge_blocks_nomove): Likewise.
11913         (life_analysis): Give life_analysis_1 PROP flags.
11914         (verify_wide_reg_1, verify_wide_reg): New.
11915         (verify_local_live_at_start): New.
11916         (update_life_info): Rewrite to call into propogate_block.
11917         (mark_reg): New.
11918         (mark_regs_live_at_end): After reload, if epilogue as rtl,
11919         always mark stack pointer.  Conditionally mark PIC register.
11920         After reload, mark call-saved registers, return regsiters.
11921         (life_analysis_1): Accept PROP flags not remove_dead_code.
11922         Call mark_regs_live_at_end before zeroing regs_ever_live.
11923         Use calculate_global_regs_live.  Copy global_live_at_end before
11924         calling final propagate_block.  Zero reg_next_use on exit.
11925         (calculate_global_regs_live): New.
11926         (allocate_bb_life_data): Don't allocate bb->local_set.
11927         (init_regset_vector, free_regset_vector): Remove.
11928         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
11929         Test flags before every operation.  Warn if prologue/epilogue insn
11930         would have been deleted.
11931         (mark_set_regs, mark_set_1): Accept and use FLAGS.
11932         Use alloc_EXPR_LIST.
11933         (mark_used_regs): Accept and use FLAGS, not FINAL.
11934         Remove special handling for RETURN.
11935         (try_pre_increment): Use alloc_EXPR_LIST.
11936         (dump_flow_info): Dump n_edges.
11937         (unlink_insn_chain, split_hard_reg_notes): Remove.
11938         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
11939         (find_insn_with_note, new_insn_dead_notes): Remove.
11940         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
11941         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
11942         (replace_insns): Remove.
11943         (count_or_remove_death_notes): New.
11944         (verify_flow_info): Abort on error after all checks.
11945         (remove_edge): Decrement n_edges.
11946         (remove_fake_edges): Tweek format.
11947         * haifa-sched.c (schedule_insns): Use split_all_insns.
11948         * output.h (update_life_info): Remove declaration.
11949         * recog.c (split_all_insns): From the corpse of split_block_insns,
11950         do the whole function block by block.  Use update_life_info.
11951         (recog_last_allowed_insn): New.
11952         (recog_next_insn): Mind it.
11953         (peephole2_optimize): Set it.  Walk backwards through blocks.
11954         Use update_life_info.
11955         * rtl.h (update_flow_info, replace_insns): Remove declarations.
11956         (split_all_insns): Declare.
11957         * toplev.c (rest_of_compilation): Thread prologue before flow2.
11958         Use split_all_insns.
11959
11960         * i386.md (or -1 peep2s): Disable.
11961
11962 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
11963
11964         * config/mips/mips.md (movstrsi+[123]) : Combine these into
11965         a single pattern.  Scrap the 'd' versions as unnecessary.
11966
11967         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
11968         tablejump_mips162,tablejump_internal4): The operands to a
11969         label_ref must be VOIDmode.
11970
11971 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11972
11973         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
11974
11975 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
11976
11977         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
11978
11979 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
11980
11981         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
11982         cache every function if ggc_p.
11983
11984 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11985
11986         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
11987         instead of copy_rtx.  Accept sequences that contain asm statements.
11988         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
11989         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
11990         orig_asm_operands_vector, copy_asm_operands_vector,
11991         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
11992         variables.
11993         * rtl.h (copy_insn, copy_insn_1): Declare.
11994
11995 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11996
11997         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
11998
11999         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
12000         arguments to `current_file_function_operand'.
12001
12002         * genrecog.c: Include hard-reg-set.h and resource.h in the
12003         generated output file.
12004
12005         * real.c: Include tm_p.h.
12006
12007 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12008
12009         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
12010         output operand.
12011
12012 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
12013
12014         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
12015         before the fctiwz insn.
12016
12017 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12018                           Mark Mitchell  <mark@codesourcery.com>
12019
12020         * tree.c (make_lang_type_fn): New funtion pointer.
12021         (make_lang_type): Call it.
12022         * tree.h (make_lang_type): Declare.
12023         (make_lang_type_fn): Likewise.
12024         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
12025
12026 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
12027
12028         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
12029         make sure that HIGH instructions are copied into BASE_REGS.
12030
12031 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
12032
12033         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
12034
12035 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
12036
12037         * c-decl.c (finish_struct): Use simpler method of
12038         removing elements of a singly-linked list.
12039
12040 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
12041
12042         * alpha.md (peephole2's): Comment out peephole2's that generate
12043         buggy code.
12044
12045 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
12046
12047         * genrecog.c (add_to_sequence): Disable mode check for
12048         wildcard matches.
12049
12050 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12051
12052         * ggc-simple.c (init_ggc): Set empty_string.
12053
12054 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
12055
12056         * configure.in: Detect mmap.  Add --with-gc=foo to select
12057         garbage collector; default to page if mmap available.
12058         * Makefile.in (GGC): Substitute.
12059
12060 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
12061
12062         * c-decl.c (ggc_p): Enable.
12063
12064 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12065
12066         * flow.c (verify_flow_info): Make it extern & unconditionally define.
12067
12068 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
12069
12070         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
12071         string for little-endian-data.
12072
12073 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
12074
12075         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
12076         case somebody tries to compile --enable-checking code with gcc
12077         1.34 or such.
12078
12079 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
12080
12081         * genrecog.c (add_to_sequence): Verify operand to label_ref is
12082         VOIDmode.
12083
12084 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
12085
12086         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
12087         * jump.c (jump_optimize_1): Document why.
12088
12089 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12090
12091         * collect2.c (scan_prog_file, scan_libraries): Prototype function
12092         pointers and casts for `int_handler' and `quit_handler'.
12093
12094         * flow.c (verify_flow_info, split_hard_reg_notes,
12095         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
12096         remove_edge, remove_fake_successors): Add static prototypes.
12097         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
12098         (mark_set_1): Initialize variable `regno'.
12099         (unlink_insn_chain): Likewise for variable `curr'.
12100         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
12101
12102         * loop.c (strength_reduce): Initialize variable
12103         `unrolled_insn_copies'.
12104         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
12105         prototypes.  Change these functions to take const PTR parameters
12106         to avoid prototype conflict when used as the comparson argument
12107         for qsort.
12108         (check_dbra_loop): Initialize variable `comparison_val'.
12109
12110         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
12111         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
12112         (find_valid_class): Initialize variable `best_class'.
12113         (find_reloads): Call memcpy, not bcopy.
12114
12115         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
12116         (hard_reg_use_compare): Don't needlessly cast away const.
12117         (reload_reg_class_lower): Likewise.
12118         (choose_reload_regs): Initialize variable `regno'.
12119
12120 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
12121
12122         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
12123
12124 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
12125
12126         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
12127         ({,d}discard): Add forward declarations.  Declare parameter as
12128         unused.
12129         (main_without_main): Explicitly declare return type to be int.
12130         (memcpy): Properly declare.
12131
12132         * libgcc2.c (toplevel): If inhibit_libc is defined and not
12133         building the trampoline support, declare malloc, free, and
12134         atexit.
12135         (__clear_cache): Mark arguments as potentially unused.
12136
12137         * frame.c (toplevel): If inhibit_libc is defined, declare
12138         malloc and free.
12139
12140 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
12141
12142         * flow.c (make_edge): Accept an optional 2D bitmap in which
12143         to cache edge existence.  Update all callers.
12144         (make_label_edge, make_eh_edge): Pass through the edge cache.
12145         (make_edges): Provide the cache.
12146
12147 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12148
12149         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
12150         a char*.
12151         (local_mbtowc): Change the type of variable `i' from int to size_t.
12152
12153         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
12154         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
12155
12156 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
12157
12158         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
12159         after other includes that define the appropriate types.  Include
12160         tm_p.h for getting user prototypes.
12161         * ggc-callbacks.c (toplevel): Ditto.
12162         * ggc-none.c (toplevel): Ditto.
12163         * gcc-page.c (toplevel): Ditto.
12164         * ggc-simple.c (toplevel): Ditto.
12165
12166 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
12167                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
12168
12169         * config/mips/mips.c (mips_move_2words): Split doubles if
12170         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
12171
12172 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
12173
12174         * genrecog.c (struct decision_test): New.
12175         (struct decision): Remove test-related members, sort the rest by size.
12176         (IS_SPLIT): Simplify.
12177         (new_decision, new_decision_test): New.
12178         (add_to_sequence): Use them.  No special handling for args of
12179         non-MATCH codes.
12180         (maybe_both_true): Renamed from not_both_true; return sense changed.
12181         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
12182         of maybe_both_true and adjusted for decision_test.
12183         (position_merit): Remove.
12184         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
12185         (merge_accept_insn): New, broken out of merge_trees.
12186         (merge_trees): Use them.  No special case for c_test; no node
12187         splitting; use test type instead of position_merit.
12188         (factor_tests): New.
12189         (simplify_tests): New.
12190         (break_out_subroutines): Don't write code now.
12191         (find_afterward): New.
12192         (write_afterward, write_switch, write_cond): New.
12193         (write_action, is_unconditional): New.
12194         (write_node): New.  Use them.
12195         (write_tree_1): Rewrite.  Use the new functions above.
12196         (write_tree): Remove afterward processing.
12197         (write_subroutine): Simplify function variant emission.
12198         (write_subroutines): New.
12199         (same_codes, clear_codes): Remove.
12200         (same_modes, clear_modes): Remove.
12201         (write_header): New, broken out of main.
12202         (make_insn_sequence): Use new_decision and new_decision_test.
12203         (process_tree): New, broken out of main.
12204         (main): Adjust for merge_trees interface change.
12205         Don't #define operands in the output file.
12206         (record_insn_name): New, broken out of make_insn_sequence.
12207         (debug_decision_2, debug_decision_1, debug_decision_0): New.
12208         (debug_decision): New.
12209
12210 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
12211
12212         * resource.c (find_free_register): Mark class_str argument const.
12213         * resource.h: Update prototype to match.
12214
12215         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
12216         * i386.md: Give all anonymous insns names.
12217
12218 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
12219
12220         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
12221         blocks.
12222
12223 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
12224
12225         * toplev.c (dbr_sched_time): Unconditional.
12226         (peephole2_time): New.
12227         (compile_file): Add pass numbers to all of the dump file suffixes.
12228         Dump peephole2_time.  Don't dump times for non-applicable passes.
12229         (rest_of_compilation): Add pass numbers to dump file suffixes.
12230         Conditionalize calls to the scheduler.
12231         * invoke.texi: Update.
12232
12233 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
12234
12235         * flow.c (make_edges): Fix insn iteration.
12236         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
12237         (find_basic_blocks_1): Fix spelling mistake.
12238
12239 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
12240
12241         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
12242         always have side-effects.  Use memset not bzero.
12243         (make_node): Likewise.
12244
12245 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
12246
12247         * stmt.c (expand_anon_union_decl): When any of the elements of the
12248         union is addressable, so is the entire union.
12249
12250 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
12251
12252         * sbitmap.c (sbitmap_ones): Don't set too many bits.
12253
12254         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
12255         * bitmap.c (bitmap_operation): Return true iff TO changed.
12256         (bitmap_equal_p): New.
12257         (bitmap_bit_p): Tidy arithmetic.
12258         (debug_bitmap_file): Likewise.
12259
12260 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
12261
12262         * toplev.c (rest_of_compilation): Turn on cse_not_expected
12263         before cse2 instead of after.
12264
12265 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
12266
12267         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
12268         register offsets.
12269
12270 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12271
12272         * cppinit.c (is_idchar initializer): Loosen tests to accept
12273         gcc 2.>6 and >2.
12274
12275 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
12276
12277         * mips.md: Define conditional move patterns for floating point
12278         operands and DI mode conditions.
12279
12280 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
12281
12282         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
12283         always have side-effects.
12284
12285 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
12286
12287         * mn10200.c (asm_file_start): Fix typo.
12288
12289         * cppinit.c (is_idchar initializer): Tighten tests for when
12290         to put the table into initialized memory.
12291
12292         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
12293         not an array of rtunion.
12294         * gcc-page.c (ggc_alloc_rtvec): Similarly.
12295         * gcc-simple (ggc_free_rtvec): Similarly.
12296
12297         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
12298         of rtunions.
12299
12300         * mbchar.h: Add missing #endif.
12301
12302         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
12303         (FPBIT, DPBIT): Define.
12304
12305 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12306
12307         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
12308
12309         * profile.c (instrument_arcs, output_gcov_string,
12310         tablejump_entry_p): Add static prototypes.
12311         (output_gcov_string): Constify a char*.
12312
12313         * regmove.c (replacement_quality, fixup_match_2): Add static
12314         prototypes.
12315
12316         * resource.h (reg_dead_p): Add extern prototype.
12317
12318         * rtl.c (trim_filename): Add static prototype.
12319
12320         * scan-decls.c (skip_to_closing_brace): Likewise.
12321
12322         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
12323         (expand_end_case): Initialize variable `range'.
12324         (emit_case_nodes): Remove unused prototype `rtx_fn'.
12325
12326         * varasm.c (asm_emit_uninitialised): Add static prototype.
12327         (asm_emit_uninitialised, assemble_variable): Mark parameter with
12328         ATTRIBUTE_UNUSED.
12329
12330 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12331
12332         * cpplib.c (if_directive_nameo): Add static prototype.
12333
12334         * cse.c (cse_insn): Remove unused variable `p'.
12335
12336         * except.c (create_rethrow_ref, push_entry,
12337         receive_exception_label, new_eh_region_entry, find_func_region,
12338         clear_function_eh_region, process_nestinfo): Add static prototypes.
12339         (get_reg_for_handler): Hide definition.
12340         (process_nestinfo): Initialize variable `extra_handlers'.
12341
12342         * expr.h (expand_builtin_longjmp): Add extern prototype.
12343
12344         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
12345
12346         * function.c (prepare_function_start): Likewise.
12347         (pop_function_context_from): Mark parameter `context' with
12348         ATTRIBUTE_UNUSED.
12349         (push_temp_slots_for_block, flush_addressof): Hide definition.
12350
12351         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
12352         solve_program_flow_graph, calculate_branch_probs,
12353         function_summary, main, fancy_abort): Add prototypes.
12354
12355         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
12356         (add_hash): Constify a char*.
12357
12358         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
12359         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
12360         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
12361
12362         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
12363
12364         * lists.c (free_list, zap_lists): Likewise.
12365
12366 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12367
12368         * alias.c (nonlocal_reference_p): Add static prototype.
12369
12370         * bitmap.c (bitmap_element_allocate): Prototype args in function
12371         pointer cast.
12372
12373         * builtins.c (stabilize_va_list): Add static prototype.
12374         (expand_builtin_va_arg): Constify a char*.
12375
12376         * c-lex.c (getch, put_back, extend_token_buffer_to,
12377         read_line_number, token_getch, token_put_back): Add static
12378         prototypes.
12379
12380         * c-parse.gperf (hash, is_reserved_word): Likewise.
12381
12382         * cccp.c (is_dir_separator): Likewise.
12383
12384 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12385
12386         * graph.h: New file to prototype functions exported by graph.c.
12387
12388         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
12389
12390         * graph.c: Include graph.h.
12391
12392         * toplev.c: Likewise.  Remove redundant prototypes.
12393
12394 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
12395
12396         * invoke.texi: Removed duplicated description for -Q.
12397
12398 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
12399
12400         * extend.texi: Grammar fix in __extension__ text.
12401
12402 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
12403
12404         * md.texi (define_peephole2): New section.
12405
12406 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
12407
12408         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
12409         (mov $-1 to or peepholer): Enable for pentium when optimizing for
12410         speed.
12411
12412 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
12413
12414         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
12415
12416 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
12417
12418         * i386.md (ffs expander): Emit Pentium friendly code for
12419         TARGET_PENTIUM.
12420
12421 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
12422
12423         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
12424         for non-trees.
12425         (build1): Likewise.
12426
12427 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12428
12429         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
12430
12431 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
12432
12433         * config/m68k/m68k.c (use_return_insn): Return false if the pic
12434         register is in use.
12435
12436 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12437
12438         * md.texi (No Constraints): Delete section.
12439         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
12440         * final.c (final_scan_insn): We always have register constraints.
12441         * genattrtab.c: Don't include "insn-config.h".
12442         (write_attr_case): We always have register constraints.
12443         * genconfig.c (register_constraint_flag): Delete.
12444         (walk_insn_part): Don't check whether we have register constraints.
12445         (main): Don't write out "#define REGISTER_CONSTRAINTS".
12446         * genoutput.c (have_constraints): Delete.
12447         (main): Don't set it.
12448         (output_operand_data): We always have constraints.
12449         (scan_operands): Likewise.
12450         (compare_operands): Likewise.
12451         * local-alloc.c (block_alloc): We always have constraints.
12452         (requires_inout): Always compile this function.
12453         * recog.c (extract_insn): We always have constraints.
12454         (constrain_operands, reg_fits_class_p): Always compile these
12455         functions.
12456         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
12457         fields.
12458         (struct insn_operand_data): Likewise.
12459         * regclass.c (regclass): We always have constraints.
12460         (record_reg_classes, copy_cost, record_address_regs,
12461         auto_inc_dec_reg_p): Always compile these functions.
12462         * regmove.c (regmove_optimize): We always have constraints.
12463         * reload.c (find_reloads): Likewise.
12464         * reload1.c (reload): Likewise.
12465         (reload_cse_simplify_operands): Likewise.
12466         * i860.c (output_delay_insn): Likewise.
12467
12468 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
12469
12470         * iris6.h (BUILD_VA_LIST_TYPE): Define.
12471
12472 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12473
12474         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
12475         for the va_list record.
12476
12477 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
12478
12479         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
12480         prologues.
12481
12482 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
12483
12484         * alias.c: Include insn-flags.h.
12485         * Makefile.in (alias.o): Update.
12486
12487 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
12488
12489         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
12490         to LTU and GEU.  Handle more cases using sbb.
12491
12492 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
12493
12494         * i386.md (truncatexfdf splitters): Do not use subreg.
12495         (fop XFmode patterns): Fix mode in operand testing.
12496
12497 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
12498
12499         * jump.c (jump_optimize_1): Amend last change to test only the
12500         form of the operand, not the insn.
12501
12502         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
12503         not register_operand to determine when B may need preloading.
12504
12505 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
12506
12507         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
12508         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
12509         (call-value patterns): Move to end of file.
12510         (*): Remove mode from label_ref in (pc) context.
12511         (movstrqi): Use memory not general_operand for BLKmode operands.
12512         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
12513         to register_operand operands.
12514         (peep2 patterns): Convert from commented-out peephole patterns.
12515
12516 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12517
12518         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
12519         to BUILT_IN_INIT_DWARF_REG_SIZES.
12520         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
12521         Renamed from BUILT_IN_DWARF_REG_SIZE; call
12522         expand_builtin_init_dwarf_reg_sizes.
12523         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
12524         with __builtin_init_dwarf_reg_size_table.
12525         * dwarf2out.c (struct reg_size_range): Delete.
12526         (expand_builtin_init_dwarf_reg_sizes): New function.
12527         (expand_builtin_dwarf_reg_size): Delete.
12528         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
12529         (expand_builtin_dwarf_reg_size): Don't declare.
12530         * libgcc2.c (dwarf_reg_size_table_initialized): New.
12531         (dwarf_reg_size_table): New.
12532         (init_reg_size_table): New function.
12533         (copy_reg): Use dwarf_reg_size_table.
12534         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
12535         before use.
12536
12537 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
12538
12539         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
12540         Correctly build argument list to constructor and destructor functions.
12541
12542 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
12543
12544         * c-tree.h (warn_float_equal): Declare.
12545         * c-decl.c (warn_float_equal): Define.
12546         (c_decode_option): Recognize -W[no-]float-equal.
12547         * c-typeck.c (build_binary_op): Conditionally warn
12548         about equality tests of floating point types.
12549         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
12550         * invoke.texi: Add docs for -Wfloat-equal warning.
12551
12552 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
12553
12554         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
12555         generating RTL directly.
12556         * mips.h (INIT_TARGET_OPTABS): Likewise.
12557         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
12558
12559         * expr.h (init_mov_optab): Delete declaration
12560
12561         * h8300.c (WORD_REG_USED): Update to avoid useless register
12562         saves in interrupt functions and functions which never return.
12563
12564         * cse.c (struct set): Delete inner_dest_loc field.
12565         (cse_insn): Remove assignments to inner_dest_loc field.
12566
12567 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
12568
12569         * ggc-page.c: Don't include <unistd.h> etc taken care of
12570         by "system.h".  Include <sys/mman.h> afterward.
12571
12572 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
12573
12574         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
12575         ggc_alloc_string.
12576
12577 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
12578
12579         * xcoffout.c (xcoffout_declare_function): Add documentation.
12580         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
12581         TARGET_64BIT.  Compare constant to -1, not bit pattern.
12582         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
12583         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
12584         gen_movsi typos.
12585
12586 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
12587
12588         * dwarf2out.c (add_abstract_origin_attribute): Abort if
12589         origin_die is NULL.
12590         (gen_inlined_enumeration_type_die): Do not abort if the type has
12591         not been writeen out.
12592         (gen_inlined_structure_type_die): Do not abort if the type has
12593         not been writeen out.
12594         (gen_inlined_union_type_die): Do not abort if the type has
12595         not been writeen out.
12596         (gen_tagged_type_instantiation_die): Do not abort if the type
12597         has not been written out.
12598
12599 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12600
12601         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
12602         call it.
12603         * reg-stack.c (straighten_stack): Copy hard reg set with
12604         COPY_HARD_REG_SET.
12605
12606 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
12607
12608         * builtins.c (stabilize_va_list): Stabilize array type va_list
12609         to a pointer type, not the base record type.
12610         (expand_builtin_va_copy): Dereference the pointers explicitly;
12611         use the correct size for the copy.
12612
12613         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
12614         (rs6000_va_arg): Likewise.
12615
12616 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
12617
12618         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
12619
12620 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
12621
12622         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
12623         field.
12624         (DECL_BUILT_IN_CLASS): Adjust accordingly.
12625
12626 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
12627
12628         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
12629         (init_ggc): Use it instead of a constant.
12630         (ggc_collect): Bound allocated_last_gc by it.
12631
12632 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
12633
12634         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
12635         with va_list.
12636
12637 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
12638
12639         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
12640         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
12641         * configure:  Regen.
12642         * config/mips/openbsd.h:  New, OpenBSD little endian target.
12643         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
12644         * config/mips/xm-openbsd.h:  New, OpenBSD host.
12645
12646 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
12647
12648         * config/m68k/m68k.c (output_function_prologue,
12649         output_function_epilogue): Use
12650         current_function_uses_pic_offset_table instead of regs_ever_live
12651         to decide whether to save/restore pic register.
12652         (legitimize_pic_address): Don't modify regs_ever_live any more.
12653
12654 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
12655
12656         * function.h (struct function): Add x_dont_save_pending_sizes_p.
12657         * stor-layout.c (variable_size): Don't add sizes to the pending
12658         sizes list if x_dont_save_pending_sizes_p is set.
12659
12660 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
12661
12662         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
12663         for symbolic_operand().
12664         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
12665
12666 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12667
12668         * combine.c (gen_rtx_combine): Add missing call to va_end().
12669
12670         * final.c (asm_fprintf): Likewise.
12671
12672         * genattrtab.c (attr_rtx): Likewise.
12673
12674 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
12675
12676         * cse.c: Update comments.
12677         (cse_insn): When converting a conditional/computed jump into
12678         an unconditional jump, always make sure a BARRIER immediately
12679         follows the converted jump.  Do not delete unreachable code.
12680         (cse_basic_block): Do not delete unreachable code.
12681         * toplev.c (rest_of_compilation): Move call to
12682         delete_trivially_dead_insns after the conditional call to
12683         jump_optimize.
12684
12685 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12686
12687         * collect2.c (make_temp_file): Don't prototype.
12688
12689         * gcc.c (make_temp_file): Likewise.
12690
12691         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
12692
12693 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
12694
12695         * varasm.c (asm_emit_uninitialised): New function: Generate
12696         the assembler statements necessary to declare an uninitialised
12697         variable.
12698         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
12699         variable.
12700         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
12701         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
12702         section.
12703         (assemble_variable): Use asm_emit_uninitialised to emit an
12704         uninitialised variable.
12705
12706 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
12707
12708         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
12709         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
12710         <geoffk@cygnus.com>.
12711
12712 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12713
12714         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
12715         * c-common.h (builtin_function): Don't declare.
12716
12717         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
12718         DECL_BUILT_IN.
12719         (pushdecl): Likewise.
12720         (finish_decl): Likewise.
12721         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
12722         int.  All callers changed.
12723         Set the builtin's DECL_BUILT_IN_CLASS.
12724         * tree.h (enum built_in_class): New.
12725         (enum built_in_function): Delete NOT_BUILT_IN.
12726         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
12727         in a union.
12728         (DECL_SET_FUNCTION_CODE): Likewise.
12729         (DECL_BUILT_IN_CLASS): New macro.
12730         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
12731         (struct tree_decl): Split builtin function code field into a
12732         struct.
12733         (builtin_function): Declare.
12734
12735 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
12736
12737         * optabs.c (init_traps): Fix typo in last change.
12738
12739 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
12740
12741         * toplev.c (rest_of_decl_compilation): Update comment.
12742
12743 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
12744
12745         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
12746         in .sbss if appropriate.
12747         (EXTRA_SECTION_FUNCTIONS): Add sbss.
12748         (SBSS_SECTION_ASM_OP): New macro.
12749         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
12750         (EXTRA_SECTIONS): Add in_sbss.
12751         * config/mips/mips.h: Prototype sbss_section.
12752
12753 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
12754
12755         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
12756         to disappear.
12757
12758 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
12759
12760         * optabs.c (init_traps): Register trap_rtx as a GC root.
12761
12762 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12763
12764         * config/mips/mips.c (function_arg_pass_by_reference): Define
12765         unconditionally, since it's called unconditionally.
12766
12767 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
12768
12769         * toplev.c (documented_lang_options): Add -fshort-wchar.
12770         * c-decl.c (c_decode_option): Likewise.
12771         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
12772         for wchar_t.
12773         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
12774         * gcc.c (default_compilers): If -fshort-wchar,
12775         override __WCHAR_TYPE__.
12776         * tm.texi (C Dialect Options): Add -fshort-wchar.
12777
12778         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
12779         symbol for a variable.
12780
12781         * cpplib.h (CPP_PREPROCESSED): New macro.
12782         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
12783         we're seeing this input for a second time.
12784
12785 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
12786
12787         * emit-rtl.c (init_emit_once): Initialize modes first.
12788
12789 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
12790
12791         * config/i386/i386.c (pic_label_name): Change to char pointer.
12792         (global_offset_table): New variable.
12793         (load_pic_register): Fill global_offset_table if it hasn't
12794         already been done.  Allocate pic_label_name dynamically.
12795         * ggc.h (empty_string): New variable.
12796         * ggc-simple.c (empty_string): Likewise.
12797         (init_ggc): Allocate empty_string and add as root.
12798         * stmt.c (digit_strings): New variable.
12799         (init_stmt): Add last_block_end_note as root.  Allocate and
12800         initialize digit_strings.
12801         (expand_asm_operands): Use empty_string instead of string
12802         constant.  Use digit_strings instead of string constants.
12803         * profile.c (init_arc_profiler): Allocate string with
12804         ggc_alloc_string instead of xmalloc.
12805         (output_func_start_profiler): Likewise.
12806         * c-typeck.c (digest_init): Check if init is error_mark_node.
12807
12808 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
12809                           Richard Henderson  <rth@cygnus.com>
12810
12811         * ggc-page.c: New file.
12812         * Makefile.in (ggc-page.o): New.
12813
12814 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
12815
12816         * invoke.texi: Document -fdelete-null-pointer-checks
12817         * toplev.c (flag_delete_null_pointer_checks): New.
12818         (f_options): Add entry for -fdelete-null-pointer-checks.
12819         (rest_of_compilation): Conditionalize null pointer check
12820         elimination on flag_delete_null_pointer_checks.
12821         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
12822
12823 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
12824
12825         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
12826         copyright notice and special exception to GPL.
12827
12828 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12829
12830         * abi64.h (mips_function_value): Add prototype arguments.
12831
12832         * mips-protos.h: New file with mips prototypes.
12833
12834         * mips.c: Include "tm_p.h".
12835         (mktemp, lookup_name): Add prototype arguments.
12836         (extern_list, string_constant, mips_fill_delay_slot,
12837         mips_output_external, mips_output_external_libcall,
12838         mips_output_filename, mips_declare_object, function_prologue,
12839         mips_expand_prologue, function_epilogue, mips16_constant,
12840         build_mips16_function_stub, mips_output_conditional_branch):
12841         Constify a char*.
12842         (mips_va_start): Remove unused variable `u'.
12843         (mips_va_arg): Cast value to unsigned when comparing against one.
12844         (trace): Delete.
12845         (save_restore_insns, mips_expand_prologue): Add missing arg in
12846         call to `large_int'.
12847
12848         * mips.h: Move prototypes to mips-protos.h.
12849         (data_section, memory_address_p, rdata_section,
12850         readonly_data_section, simple_epilogue_p, text_section): Delete
12851         prototypes delcared elsewhere.
12852         (mips_epilogue_delay_slots, print_options): Delete unused decls.
12853         (trace): Delete.
12854         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
12855
12856         * mips.md: Delete extra args in call to `mips_move_2words'.
12857
12858         * xm-iris6.h (alloca): Add prototype argument.
12859
12860         * genpeep.c: Include "tm_p.h" in generated output file.
12861
12862 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
12863
12864         * basic-block.h (find_edge_index): Change parameters.
12865         * flow.c (verify_edge_list): Pass basic_block parameters to
12866         find_edge_index instead of integers.
12867
12868 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
12869
12870         * combine.c (simplify_comparison): Use an unsigned shift to adjust
12871         the constant.
12872
12873 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
12874
12875         * gcc.1: Fix a formatting error.
12876
12877 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12878
12879         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
12880         i786, mn10200, mn10300, pdp11, v850.
12881
12882 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
12883
12884         * libgcc2.c (num_digits): Add prototype with
12885         __attribute__((const)).
12886         (__terminate): Add prototype.
12887
12888 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
12889
12890         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
12891
12892         * alpha/alpha.c (print_operand): Fix type of `code'.
12893         (alpha_output_filename): Constify.
12894         * alpha/alpha.h: Move all function declarations ...
12895         * alpha/alpha-protos.h: ... here.  New file.
12896         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
12897         (SECTION_FUNCTION_TEMPLATE): Likewise.
12898
12899 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12900
12901         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
12902         * expr.c (expand_expr): Likewise.
12903         (do_jump): Likewise.
12904         (do_store_flag): Pass ccp_store_flag to can_compare_p.
12905         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
12906         accessor macros.
12907         (enum can_compare_purpose): New.
12908         (can_compare_p): Adjust prototype.
12909         (prepare_cmp_insn, prepare_operand): Declare.
12910         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
12911         * optabs.c (cmp_available_p): Deleted.
12912         (expand_abs): Pass ccp_jump to can_compare_p.
12913         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
12914         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
12915         Call can_compare_p rather than cmp_available_p.
12916         (prepare_operand): No longer static.
12917         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
12918         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
12919         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
12920         sequence to use emit_cmp_and_jump_insns.
12921         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
12922
12923 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
12924
12925         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
12926         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
12927         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
12928         (plus (reg) (const_int 0))
12929         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
12930
12931 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
12932
12933         * rs6000.c (expand_block_move): DImode loads and stores require
12934         word-aligned displacements.  Increment address registers with
12935         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
12936
12937 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
12938
12939         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
12940         is no name for the base type, rather than segfault.  If we are
12941         writing out a complex integer type, use DW_ATE_lo_user.
12942
12943         * expr.c (emit_move_insn_1): If we are copying a complex that fits
12944         in one word or less (complex char, complex short, or on 64 bit
12945         systems complex float) to/from a hard register, copy it through
12946         memory instead of dying in gen_{real,imag}part.  If we have a
12947         short complex type, prevent inlining since it allocates stack
12948         memory.
12949
12950         * tree.c (build_complex_type): If we are writing dwarf2 output,
12951         generate a name for complex integer types.
12952
12953 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
12954
12955         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
12956         * flow.c (remove_edge): Remove extra whitespace.
12957         (remove_fake_edges): Fix comment.
12958         (add_noreturn_fake_exit_edges): Use the correct name.
12959
12960 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
12961
12962         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
12963         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
12964         (clean): Depend on INTL_CLEAN.
12965         (maintainer-clean): Adjust.
12966
12967 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12968
12969         * configure.in (AC_PREREQ): Bump to 2.13.
12970         (AC_C_STRINGIZE): Call this instead of using a custom macro.
12971
12972         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
12973
12974         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
12975
12976         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
12977
12978         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
12979         (HAVE_STRINGIZE): Define.
12980
12981 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
12982
12983         * c-parse.in: save and restore warn_pointer_arith on __extension__
12984         along with pedantic.
12985         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
12986         Set the type of extension to itype rather than $<itype>1 kludge.
12987         * extend.texi (Alternate Keywords): Adjust documentation.
12988         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
12989
12990 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
12991
12992         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
12993         most assembler templates.
12994
12995         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
12996         FP loads and stores.
12997         (following_call): Always return zero for the PA8000.
12998         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
12999         FP loads and stores.
13000         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
13001
13002         * pa.h (BRANCH_COST): Define.
13003
13004         * pa.md (return, return_internal): Use bve for PA2.0.
13005
13006         * pa.md (fused multiply): Add variants which reduce height for the
13007         fused multiply, but which still generate 2 insns.
13008         (fnegabs): Similarly.
13009
13010         * pa.md (subsi3): Turn into an expander.  Create two anonymous
13011         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
13012         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
13013
13014         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
13015         for TARGET_PA_20.
13016         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
13017         code generation.
13018         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
13019         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
13020
13021         * regclass.c (init_regs): Add "top_of_stack" as a garbage
13022         collection root.
13023
13024         * flow.c (record_active_eh_regions): Terminate loop after finding
13025         the last insn in the last basic block.
13026
13027 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13028
13029         * config/c4x/c4x.md: Delete parallel instruction peepholes.
13030
13031 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13032
13033         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
13034
13035 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13036
13037         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
13038         splitting to not use output template.
13039
13040 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13041
13042         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
13043         * config/c4x/c4x.c (c4x_va_start): New function.
13044
13045 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
13046
13047         * genrecog.c (not_both_true): Handle correctly cases when called for
13048         tests with different positions in the insn.
13049
13050 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13051
13052         * machmode.h (HOST_PTR_PRINTF): Move from here ...
13053
13054         * system.h (HOST_PTR_PRINTF): ... to here.
13055
13056         * mips-tfile.c: Don't include machmode.h.
13057
13058         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
13059         (mips-tfile.o): Don't depend on machmode.h.
13060
13061 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13062
13063         * haifa-sched.c (sched_analyze): Rename local variable `region' to
13064         avoid conflicts with typedef struct `region' at the top level scope.
13065
13066 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
13067
13068         * basic-block.h (basic_block): Add eh_beg, eh_end.
13069         * flow.c (entry_exit_blocks): Update.
13070         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
13071         Call new functions.
13072         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
13073         lists.c functions to allocate insn lists.
13074         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
13075         edge creation ...
13076         (make_eh_edge): ... here.  New.
13077         (move_stray_eh_region_notes): New.
13078         (record_active_eh_regions): New.
13079         (delete_unreachable_blocks): Split out block merging ...
13080         (try_merge_blocks): ... here.  New.
13081         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
13082         Dump debugging data.
13083         (merge_blocks_move_successor_nojumps): Likewise.
13084         (merge_blocks): Use eh_beg+eh_end to validate block movement.
13085
13086 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13087
13088         * extend.texi (Bound member functions): Document unbound pmf
13089         conversion.
13090
13091 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
13092
13093         * flow.c (split_edge): Handle insertion on a fallthrough edge which
13094         has the EXIT_BLOCK as a dest.
13095
13096 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
13097
13098         * flow.c (remove_edge): New function to remove an edge from the
13099         flow graph.
13100         (remove_fake_successors): New function to remove fake successor edges.
13101         (remove_fake_edges): New function to remove all fake edges from the
13102         flow graph.
13103         (add_fake_exit_edges): New function to add fake edges from all blocks
13104         with no successors to the exit block.
13105         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
13106         prototypes for new functions.
13107
13108 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
13109
13110         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
13111         Use Pmode to determine whether to output .dword or .word.
13112
13113 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
13114
13115         * tree.c (built_in_filename): New variable.
13116         (BUILT_IN_FILENAME): New macro.
13117         (init_tree_codes): Allocate built_in_filename.
13118         (make_node): Use built_in_filename instead of string constant.
13119
13120 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
13121
13122         * configure.in: Add fr30 target.
13123         * configure: Regenerate.
13124         * config/fr30: New directory.
13125         * config/fr30/crti.asm: New file.
13126         * config/fr30/fr30.c: New file.
13127         * config/fr30/crtn.asm: New file.
13128         * config/fr30/fr30.h: New file.
13129         * config/fr30/fr30.md: New file.
13130         * config/fr30/lib1funcs.asm: New file.
13131         * config/fr30/t-fr30: New file.
13132         * config/fr30/xm-fr30.h: New file.
13133
13134 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
13135
13136         * flow.c (merge_blocks_move_successor_nojumps): Delete the
13137         BARRIER at the end of the successor, not the BARRIER before
13138         the successor.
13139
13140         * pa.c (pa_add_gc_roots): Fix thinko in last change.
13141
13142 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
13143
13144         * stmt.c (any_pending_cleanups): Don't crash when
13145         current_function->stmt is unset.
13146
13147 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13148
13149         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
13150         other initializations that may use it for relative offsets.
13151
13152 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13153
13154         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
13155         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
13156         * config/i386/sol2dbg.h: Removed.
13157         * config/i386/sol2gas.h: New file, to enable gas work-around.
13158         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
13159         Don't use sol2dbg.h.
13160         * configure: Rebuilt.
13161
13162 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
13163
13164         * invoke.texi (-fthis-is-variable): Remove documentation.
13165
13166 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
13167
13168         * basic-block.h (compute_bb_for_insn): Declare.
13169         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
13170         to use; set size of basic_block_for_insn directly.
13171         (find_basic_blocks): Update.
13172
13173 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13174
13175         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
13176
13177 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13178
13179         * crtstuff.c (ON_EXIT): Delete empty macro definition.
13180         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
13181
13182 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
13183
13184         * c-decl.c (c_decode_option): Extend comment.
13185
13186 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
13187
13188         * toplev.c (progname): Make 'const char *'
13189         (flag_print_mem): Move out of main.
13190         (version_flag): Move out of main.
13191         (filename): Move out of main.
13192         (debug_args): Remove g prefix from options.
13193         (documented_lang_options): Remove cpplib specific options.
13194         (display_help): Add g prefix to debug options.
13195         (check_lang_option): Delete this function.
13196         (decode_d_option): New function: Decode -d... option.
13197         (decode_f_option): New function: Decode -f... option.
13198         (decode_W_option): New function: Decode -W... option.
13199         (decode_g_option): New function: Decode -g... option.
13200         (independent_decode_option): New function: Decode a language
13201         independent command line option.
13202         (main): Invoke lang_decode_option and then
13203         independent_decode_option on each command line option in
13204         turn.
13205
13206 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
13207
13208         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
13209          * fold-const.c (fold_range_test): Do not try to fold the range
13210          test if the rhs or lhs has side effects.
13211
13212         * basic-block.h (compute_flow_dominators): Declare.
13213
13214         * gcse.c (alloc_code_hoist_mem): New function.
13215         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
13216         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
13217         (hoist_code, one_code_hoisting_pass): Likewise.
13218         (gcse_main): If optimizing for size, then hoist expressions
13219         computed in multiple dominated basic blocks.
13220
13221         * gcse.c (invalid_nonnull_info): New function.
13222         (delete_null_pointer_checks): Likewise.
13223         * rtl.h (delete_null_pointer_checks): Declare.
13224         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
13225
13226         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
13227         (merge-blocks_move_successor_nojumps): Likewise.
13228         (merge_blocks): Allow merging of some blocks, even if it requires
13229         physical movement of the blocks, but not if it requires new jumps.
13230
13231         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
13232         Callers and prototype changed.
13233         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
13234
13235 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13236
13237         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
13238         -YP when both -p and -pg are present.  From i386/sol2.h.
13239
13240 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13241
13242         * Makefile.in (distclean): Delete tm_p.h.
13243         * configure.in: Create a new file, "tm_p.h", from a list in
13244         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
13245         "i386/i386-protos.h".
13246
13247         * alias.c: Include "tm_p.h".
13248         * c-typeck.c: Likewise.
13249         * calls.c: Likewise.
13250         * cse.c: Likewise.
13251         * emit-rtl.c: Likewise.
13252         * explow.c: Likewise.
13253         * expmed.c: Likewise.
13254         * expr.c: Likewise.
13255         * final.c: Likewise.
13256         * flow.c: Likewise.
13257         * fold-const.c: Likewise.
13258         * function.c: Likewise.
13259         * gcse.c: Likewise.
13260         * global.c: Likewise.
13261         * haifa-sched.c: Likewise.
13262         * integrate.c: Likewise.
13263         * jump.c: Likewise.
13264         * local-alloc.c: Likewise.
13265         * loop.c: Likewise.
13266         * optabs.c: Likewise.
13267         * recog.c: Likewise.
13268         * reg-stack.c: Likewise.
13269         * regclass.c: Likewise.
13270         * regmove.c: Likewise.
13271         * reload.c: Likewise.
13272         * reload1.c: Likewise.
13273         * reorg.c: Likewise.
13274         * resource.c: Likewise.
13275         * stmt.c: Likewise.
13276         * stor-layout.c: Likewise.
13277         * toplev.c: Likewise.
13278         * tree.c: Likewise.
13279         * unroll.c: Likewise.
13280         * genattrtab.c (main): Make generated file include "tm_p.h".
13281         * genemit.c (main): Likewise.
13282         * genoutput.c (main): Likewise.
13283         * genrecog.c (main): Likewise.
13284
13285         * i386.h: Delete all prototypes.
13286         * i386.c: Include "tm_p.h".
13287         (ix86_attr_length_default): Call constant_call_address_operand
13288         with correct number of arguments.
13289         * i386-protos.h: New file.
13290         * i386.md (unnamed patterns): Call constant_call_address_operand
13291         with correct number of arguments.
13292         (exception_receiver): Call load_pic_register with correct number
13293         of arguments.
13294
13295 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
13296
13297         * c-pragma.c (mark_align_stack): Dereference the void* properly.
13298
13299 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
13300
13301         * rtl.h (insns_safe_to_move_p): New function.
13302         * loop.c (find_and_verify_loops): Use it.
13303         * rtlanal.c (insns_safe_to_move_p): Define it.
13304
13305 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
13306
13307         * c-pragma.c: Include ggc.h.
13308         * Makefile.in (c-pragma.o): Update.
13309
13310 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13311
13312         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
13313         (LIB_SPEC): Likewise.
13314         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
13315         Reindent -YP/-p/-pg.
13316         Copied from config/sparc/sol2.h.
13317
13318 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
13319
13320         * c-pragma.c (mark_align_stack): New.
13321         (init_pragma): New.
13322         * c-pragma.h (init_pragma): Declare it.
13323         * c-lex.c (init_parse): Call it.
13324
13325 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13326
13327         * configure.in: Pick up thread library on Solaris/x86 just
13328         like on Solaris/sparc.
13329         * configure: Rebuilt.
13330
13331 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
13332
13333         * rtl.h (global_rtx_index): New enum.
13334         (global_rtl): Change to array of rtx.
13335         (pc_rtx, cc0_rtx): Redefine accordingly.
13336         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
13337         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
13338         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
13339         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
13340         (const_int_rtx): Change to array of rtx.
13341         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
13342         accordingly.
13343         * emit-rtl.c (global_rtl): Change to array of rtx.
13344         (const_int_rtx): Change to aray of rtx.
13345         (gen_rtx_CONST_INT): Redefine accordingly.
13346         (init_emit_once): Allocate and initialize global_rtl.  Likewise
13347         for const_int_rtx.  Add both as GC roots.
13348         * genattrtab.c (global_rtl): Update declaration.
13349
13350 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
13351
13352         * Makefile (USER_H): Add iso646.h back.
13353
13354 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
13355
13356         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
13357         zapping the LOG_LINKS of sched_before_next_call.
13358
13359         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
13360         * pa.c (insn_refs_are_delayed): Renamed from
13361         insn_sets_and_refs_are_delayed.
13362
13363 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
13364
13365         * functiion.h (struct function): Add x_whole_function_mode_p.
13366         (retrofit_block): Declare.
13367         * function.c (retrofit_block): New function.
13368         (identify_blocks): Add assertions.  Allow an incomplete set of
13369         block notes if we're still generating code for the function.
13370         * integrate.c: Include loop.h.
13371         (expand_inline_function): Call find_loop_tree_blocks to map block
13372         notes to blocks when in whole-function mode.  Use retrofit_block
13373         to insert new BLOCKs for the inlined function, rather than
13374         insert_block.
13375         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
13376         * Makefile.in (integrate.o): Depend on loop.h.
13377
13378 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
13379
13380         * tree.h (warn_about_unused_variables): Declare.
13381         * stmt.c (warn_about_unused_variables): New function, split out
13382         from ...
13383         (expand_end_bindings): Here.
13384
13385 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
13386
13387         * stmt.c (preserve_subexpressions_p): Don't crash when
13388         current_function->stmt is unset.
13389
13390 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
13391
13392         * stmt.c (expand_start_bindings): Allow callers to pass a flag
13393         indicating that no NOTE_INSN_BLOCK_BEG note is required.
13394         (expand_start_target_temps): Use it.
13395         * except.c (expand_eh_region_start_for_decl): Likewise.
13396         * expr.c (expand_expr): Likewise.
13397
13398 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
13399
13400         * fold-const.c (operand_equal_p): Pay attention to side effects.
13401
13402 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
13403
13404         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
13405         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
13406
13407         * tlink.c (scan_linker_output): Look for keywords before accepting
13408         a mangled name in quotes.
13409
13410 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
13411
13412         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
13413         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
13414
13415 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
13416
13417         * alpha.md: Revert Thu Nov 26 change that came in through the
13418         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
13419         Avoid earlyclobber when possible.
13420
13421 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13422
13423         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
13424
13425         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
13426         Define HAVE_ON_EXIT.
13427
13428 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13429
13430         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
13431         CTYPE_CONV in all ctype macros.
13432
13433         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
13434         from system.h.
13435
13436         * cexp.y (initialize_random_junk): Likewise.
13437
13438         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
13439
13440         * i370.c (handle_pragma): Likewise.
13441
13442         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
13443
13444         * v850.c (override_options): Likewise.
13445
13446         * doprint.c (_doprnt): Likewise.
13447
13448         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
13449         Likewise.
13450
13451         * fixinc/server.c (load_data): Likewise.
13452
13453         * fold-const.c (real_hex_to_f): Likewise.
13454
13455         * genattr.c (write_upcase, gen_attr): Likewise.
13456
13457         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
13458         write_upcase): Likewise.
13459
13460         * genemit.c (print_code): Likewise.
13461
13462         * genopinit.c (gen_insn): Likewise.
13463
13464         * genpeep.c (print_code): Likewise.
13465
13466         * genrecog.c (print_code): Likewise.
13467
13468         * optabs.c (init_libfuncs): Likewise.
13469
13470 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
13471
13472         * haifa-sched.c (sched_analyze): Keep the list of notes organized
13473         in pairs.
13474         (reemit_notes): Likewise.
13475
13476 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
13477
13478         * ggc.h (ggc_root): Move to ggc-common.c.
13479         (roots): Remove.
13480         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
13481         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
13482         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
13483         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
13484         * ggc-common.c (ggc_root): Move from ggc.h.
13485         (roots): Declare, static.
13486         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
13487         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
13488         null or check/set mark bit.
13489         (ggc_mark_roots): New.
13490         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
13491
13492 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
13493
13494         * m32r.c: Include toplev.h.
13495         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
13496         (gen_compare): Rename swap_p to must_swap to match uses.
13497         Add default abort case.
13498         (m32r_output_function_epilogue): Remove unused variables.
13499         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
13500         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
13501         define to empty parameter list.  Update all uses.
13502         (predicate decls): Use enum machine_mode not int.
13503         * m32r.md (movsi): Call abort, not fatal_insn.
13504         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
13505
13506 1999-09-14  Andrew Haley  <aph@cygnus.com>
13507
13508         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
13509         use $0 instead of 0.
13510
13511 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13512
13513         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
13514         computation out of loop over hard regs.
13515
13516 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
13517
13518         * function.c (identify_blocks): Don't shadow a variable in an
13519         outer scope.
13520         * integrate.c (integrate_decl_tree): Don't use pushlevel,
13521         pushdecl, or poplevel to build up the new BLOCK tree.
13522         (expand_inline_function): Likewise.
13523         (integrate_parm_decls): Likewise.
13524
13525 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
13526
13527         * c-typeck.c (qualify_type): Merge qualifiers from both types.
13528
13529 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
13530
13531         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
13532         * invoke.texi: Document this change.
13533
13534 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
13535
13536         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
13537         Free the struct.
13538         (mark_emit_status): Renamed from mark_emit_state.
13539         * except.c (mark_eh_status): Renamed from mark_eh_state.
13540         Check not null before marking.
13541         (free_eh_status): New.
13542         * expr.c (mark_expr_status, free_expr_status): New.
13543         * function.c (free_machine_status): New.
13544         (free_after_parsing): New.
13545         (free_after_compilation): Move bits to free_after_parsing; call
13546         free_eh_status, free_expr_status; zero the marked members of the
13547         function state.
13548         (prepare_function_start): No can_garbage_collect.
13549         Call init_eh_for_function.
13550         (expand_dummy_function_end): Free up current_function state.
13551         (mark_function_status): Renamed from mark_function_state.
13552         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
13553         * function.h (struct function): No can_garbage_collect.
13554         (free_machine_status, free_after_parsing): Declare.
13555         (free_eh_status, free_expr_status): Declare.
13556         * ggc.h (mark_expr_status): Declare.
13557         * stmt.c (free_stmt_status): Free the struct.
13558         (mark_stmt_status): Renamed from mark_stmt_state.
13559         (init_stmt): Don't call init_eh.
13560         (init_stmt_for_function): Don't call init_eh_for_function.
13561         * toplev.c (compile_file): Call init_eh.
13562         (rest_of_compilation): Free basic block info before ggc_collect.
13563         Call free_after_parsing; conditionally call free_after_compilation.
13564         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
13565         Check not null before marking.
13566         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
13567
13568 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
13569
13570         * c-lex.c (yylex): Initialize warn.
13571
13572 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
13573
13574         * pa.c (emit_move_sequence): Properly set the mode of the scratch
13575         register when performing secondary reloads for the SAR register.
13576
13577 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
13578
13579         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
13580         (NOTE_BLOCK): New macro.
13581         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
13582         * function.h (identify_blocks): Change prototype.
13583         * function.c (identify_blocks): Simplify.
13584         (reorder_blocks): Likewise.
13585         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
13586         NOTE_INSN_BLOCK_{BEG,END}.
13587         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
13588         the list of saved notes if the note isn't a
13589         NOTE_INSN_BLOCK_{BEG,END}.
13590         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
13591         NOTE_BLOCK_NUMBER.
13592         (reemit_notes): Adjust recreation of notes to reflect new saved
13593         note structure.
13594         * print-rtl.c (print_rtx): Print the address of the BLOCK when
13595         printing a block note.
13596         * stmt.c (block_vector): Remove.
13597         (find_loop_tree_blocks): Simplify.
13598         (unroll_block_trees): Likewise.
13599         * tree.h (reorder_block): Change prototype.
13600
13601 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
13602
13603         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
13604         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
13605         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
13606         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
13607         (atexit, exit): Simplify.
13608         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
13609         * config/lots: Remove defns of HAVE_ATEXIT.
13610
13611 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
13612
13613         * calls.c (precompute_arguments): Fix typo in comment.
13614         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
13615         TARGET_EXPR.
13616
13617 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
13618
13619         * dsp16xx.c (override_options): Fix typos in GC root registration.
13620
13621 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
13622
13623         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
13624         from config/svr4.h.
13625         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
13626         (FUNCTION_PROFILER): Redefine appropriately for Linux.
13627         (CC1_SPEC): Likewise.
13628
13629 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13630
13631         * genattr.c (main): Add extern prototype.  Call return, not exit.
13632         * genattrtab.c (main): Likewise.
13633         * gencheck.c (main): Likewise.
13634         * gencodes.c (main): Likewise.
13635         * genconfig.c (main): Likewise.
13636         * genemit.c (main): Likewise.
13637         * genextract.c (main): Likewise.
13638         * genflags.c (main): Likewise.
13639         * gengenrtl.c (main): Likewise.
13640         * genopinit.c (main): Likewise.
13641         * genoutput.c (main): Likewise.
13642         * genpeep.c (main): Likewise.
13643         * genrecog.c (main): Likewise.
13644
13645         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
13646         * genattrtab.c (get_insn_name): Likewise.
13647         * gencodes.c (get_insn_name): Likewise.
13648         * genconfig.c (get_insn_name): Likewise.
13649         * genemit.c (get_insn_name): Likewise.
13650         * genextract.c (get_insn_name): Likewise.
13651         * genflags.c (get_insn_name): Likewise.
13652         * genopinit.c (get_insn_name): Likewise.
13653         * genpeep.c (get_insn_name): Likewise.
13654
13655         * gencheck.c (usage): Add static prototype.
13656         * genextract.c (print_path): Constify a char*.
13657         * genopinit.c (optabs): Likewise.
13658         * genoutput.c (operand_data, data, output_predicate_decls,
13659         compare_operands): Likewise.
13660         * genrecog.c (write_tree): Add default case in switch.
13661
13662 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13663
13664         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
13665
13666         * print-rtl.c (get_insn_name): Remove prototype.
13667
13668         * toplev.h (progname): Declare const.
13669
13670         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
13671         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
13672         dump_sched_info, dump_local_alloc, regset_release_memory,
13673         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
13674         error_with_file_and_line, error_with_decl, error_for_asm, error,
13675         fatal, warning_with_file_and_line, warning_with_decl, warning,
13676         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
13677         Remove redundant prototypes.
13678
13679         (notice, check_lang_option, report_file_and_line, vnotice,
13680         mark_file_stack): Add static prototype.
13681         (set_fatal_function): Add prototype.
13682         (vnotice, report_file_and_line, set_fatal_function,
13683         check_lang_option): Constify a char*.
13684         (main): Prototype.  Call return, not exit.
13685
13686 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13687
13688         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
13689
13690         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
13691
13692         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
13693
13694         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
13695
13696 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13697
13698         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
13699         behave as if it's zero in all cases.
13700         (expand_function_start): Adjust call to assign_parms.
13701         * tree.h (assign_parms): Adjust prototype.
13702         * objc/objc-act.c (hack_method_prototype): Adjust call to
13703         assign_parms.
13704
13705 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
13706
13707         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
13708         arg_pointer_rtx fixed if the argument pointer register is
13709         not fixed.
13710         (NONZERO_BASE_PLUS_P): Likewise.
13711
13712 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
13713
13714         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
13715         match_insn2 to match_insn.
13716         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
13717
13718 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
13719
13720         * Makefile.in (USER_H): Remove va-foo.h.
13721
13722         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
13723         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
13724         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
13725         va-spur.h,va-v850.h}: Remove.
13726
13727 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
13728
13729         * sparc/sparc.md (eligible_for_return_delay): New attribute.
13730         (in_return_delay): Use it instead of match_insn.
13731
13732 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13733
13734         * config/alpha/va_list.h (va-alpha.h): Do not include.
13735         (__gnuc_va_list): Typedef as in varargs.h.
13736
13737 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
13738
13739         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
13740         DECL_LIVE_RANGE_RTL.
13741
13742 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
13743
13744         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
13745         not NOTE_BLOCK_NUMBER.
13746         (expand_eh_region_end): Likewise.
13747         (find_exception_handler_labels): Likewise.
13748         (scan_region): Likewise.
13749         (exception_optimize): Likewise.
13750         (update_rethrow_references): Likewise.
13751         (set_insn_eh_region): Likewise.
13752         * final.c (final_scan_insn): Likewise.
13753         * flow.c (make_edges): Likewise.
13754         * integrate.c (expand_inline_function): Likewise.
13755         * print-rtl.c (print_rtx): Likewise.
13756
13757 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
13758
13759         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
13760         terms of builtin functions and types.
13761
13762         * mips.c (mips_build_va_list): New.
13763         (mips_va_start, mips_va_arg): New.
13764         * mips.h (BUILD_VA_LIST_TYPE): New.
13765         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
13766
13767         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
13768         (sh_build_va_list, sh_va_start, sh_va_arg): New.
13769         * sh.h (BUILD_VA_LIST_TYPE): New.
13770         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
13771
13772 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
13773
13774         * recog.h (struct recog_data): Make dup_num, operand_address_p,
13775         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
13776         (struct insn_data): Likewise with n_operands, n_dups,
13777         n_alternatives, output_format.
13778         * regclass.c (scan_one_insn): Cast n_operands to int before
13779         arithmetic inside comparison.
13780
13781 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
13782
13783         * toplev.c (compile_function): Unconditionally emit nop.
13784
13785 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13786
13787         * haifa-sched.c (actual_hazard): Move declaration of variable
13788         `this_cost' into the scope where it is used.
13789
13790 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13791
13792         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
13793         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
13794         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
13795
13796         * genrecog.c (make_insn_sequence): Call memset, not bzero.
13797
13798         * jump.c (find_insert_position): Don't declare or define unless
13799         !HAVE_conditional_arithmetic.
13800         (returnjump_p_1, delete_prior_computation): Add static prototypes.
13801
13802         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
13803
13804         * recog.c (offsettable_address_p): Prototype function pointer.
13805         (preprocess_constraints): Call memset, not bzero.
13806
13807         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
13808         (gcc_obstack_init): Don't declare.
13809         (fix_sizetype): Add static prototype.
13810         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
13811         (tree_cons): Call memset, not bzero.
13812
13813         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
13814         definition in macro ASM_WEAKEN_LABEL.
13815         (mark_const_hash_entry): Add static prototype.
13816
13817 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13818
13819         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
13820
13821         * unroll.c (find_common_reg_term, subtract_reg_term,
13822         loop_find_equiv_value): Add static prototypes.
13823         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
13824         (copy_loop_body): Remove unreachable break statement.
13825
13826         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
13827
13828         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
13829
13830 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13831
13832         Undo some changes from the gcc2 merge:
13833         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
13834         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
13835         pointers.
13836
13837         Undo this change:
13838         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
13839         * emit-rtl.c (gen_lowpart_common): Disable optimization of
13840         initialized float-int union if the value is a NaN.
13841
13842 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
13843
13844         * gthr-win32.h: New file.
13845
13846         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
13847         shared as a valid attribute.
13848         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
13849         * extend.texi: Document `shared' variable attribute.
13850
13851 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
13852
13853         * configure.in: Handle --enable-threads on FreeBSD.
13854         * configure: Rebuit.
13855
13856 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
13857
13858         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
13859         thread support.
13860         * configure: Rebuilt.
13861
13862 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
13863                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
13864                           Rosimildo DaSilva <rdasilva@connecttel.com>
13865
13866         * configure.in (m68k-*-rtemscoff*): Added.
13867         * configure.in (mips64orion-*-rtems*): Converted to ELF.
13868         * configure.in (sparc-*-rtemsaout*): Added as alias for old
13869         sparc-rtems configuration.
13870         * configure.in (sparc-*-rtemself*): Added.
13871         * configure.in (sparc-*-rtems*): Now ELF not a.out.
13872         * config/i386/rtems.h: Added comment.
13873         * config/sparc/rtemself.h: New file.
13874
13875         * configure.in (m68k-rtemself): Added.
13876         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
13877         and DWARF_DEBUGGING_INFO.
13878         * config/m68k/crti.s: New file.
13879         * config/m68k/crtn.s: New file.
13880         * config/m68k/t-crtstuff: New file.
13881         * config/m68k/rtemself.h: New file.
13882
13883         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
13884         global ctor/dtor and C++ exception handling.
13885         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
13886         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
13887         ENDFILE_SPEC.
13888         * config/i386/t-rtems-i386: New File.
13889
13890 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
13891
13892         * stmt.c (expand_end_case): Return right away if the case stack is
13893         empty.
13894
13895 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
13896
13897         * Makefile.in (version.c): Remove rule incorrectly brought in from
13898         the gcc2 merge.
13899
13900 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
13901
13902         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
13903         * msdos/top.sed:  Take into account a prepended $(SHELL) to
13904         move-if-change.
13905         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
13906
13907         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
13908
13909 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13910
13911         * regmove.c (fixup_match_1): Don't change an unchanging register.
13912         (stable_but_for_p): Renamed to:
13913         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
13914         Changed all callers.
13915
13916 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
13917
13918         * loop.c (strength_reduce): Don't call reg_used_between_p if the
13919         insn from BL2 is after the insn from BL.
13920
13921 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
13922
13923         * recog.h (INSN_OUTPUT_FORMAT_*): New.
13924         (struct insn_data): Merge `template' and `outfun' into `output'.
13925         Add `output_format'.
13926         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
13927         (struct data): Remove `outfun'; add `output_format'.
13928         (name_for_index): Remove declaration.
13929         (output_insn_data): Handle output formats.
13930         (process_template): Emit the bare array for @.
13931         (gen_expand, gen_split): Set output_format to NONE.
13932         * output.h (get_insn_template): Declare.
13933         * final.c (get_insn_template): New.
13934         (final_scan_insn): Use it.
13935         * toplev.c (compile_file): Likewise.
13936
13937         * c4x/c4x.c (c4x_process_after_reload): Likewise.
13938         * i860/i860.c (output_delayed_branch): Likewise.
13939         (output_delay_insn): Likewise.
13940
13941 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13942
13943         * rtl.c (obstack_alloc_rtx): Removed.
13944
13945 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
13946
13947         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
13948
13949 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
13950
13951         * i386.c (call_insn_operand): Reject const_int.
13952         (expander_call_insn_operand): Use call_insn_operand.
13953
13954 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13955
13956         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
13957
13958 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
13959
13960         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
13961         Use DImode operation.
13962
13963 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
13964
13965         * gcc.c: Include sys/resource.h.
13966         (report_times): New flag.
13967         (execute):  If report_times is set, calculate and report the
13968         CPU time consumed by each subprocess.
13969
13970         (rus, prus): New globals.
13971         (option_map): Add --time.
13972         (display_help): Document -time.
13973         (process_command): Set report_times if -time is given.
13974         Turn off -pipe if -time is given.
13975
13976         * invoke.texi: Document new option -time.
13977
13978         * configure.in: Check for getrusage.  Check if we have to
13979         prototype getrusage.
13980         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
13981         * configure: Regenerate.
13982         * config.in: Regenerate.
13983
13984 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
13985
13986         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
13987         fields.
13988
13989 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
13990
13991         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
13992         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
13993         (nan): Return _thenan_sf or _thenan_df as appropriate.
13994         (L_thenan_sf): Define _thenan_sf.
13995         (L_thenan_df): Define _thenan_df.
13996
13997         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
13998         (DPBIT_FUNCS): Add _thenan_df.
13999
14000 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
14001
14002         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
14003         TYPE_SIZE_UNIT.
14004
14005 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14006
14007         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
14008
14009         * gcc.h: New file.
14010         (lang_specific_driver): Don't take a function pointer parameter.
14011         All callers changed.
14012
14013         * gcc.c: Include gcc.h.
14014         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
14015         lang_specific_extra_outfiles, fatal): Don't declare.
14016         (multilib_defaults_raw): Constify.
14017         (read_specs): Call memset, rather than bzero.
14018         (main): Call return, not exit.
14019         (lookup_compiler): Call memcpy, not bcopy.
14020         (fatal): Make extern.
14021
14022         * cppspec.c: Include gcc.h.
14023         (lang_specific_driver): Initialize variable `quote'.  Constify a
14024         char*.  All calls to the function pointer parameter now
14025         explicitly call `fatal'.
14026
14027         * gccspec.c (lang_specific_driver): Include gcc.h.
14028
14029 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
14030
14031         * arm.c (note_invalid_constants): Use recog_data.operand_type
14032         for recog_op_type.
14033
14034 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14035
14036         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
14037         Declare.
14038
14039         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
14040         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
14041         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
14042         reload_secondary_in_reload, reload_secondary_out_reload,
14043         reload_secondary_in_icode, reload_secondary_out_icode,
14044         reload_reg_rtx, reload_when_needed): Delete declarations.
14045         (struct reload): New structure.
14046         (rld): Declare new array.
14047         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
14048         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
14049         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
14050         reload_secondary_in_reload, reload_secondary_out_reload,
14051         reload_secondary_in_icode, reload_secondary_out_icode,
14052         reload_reg_rtx, reload_when_needed): Delete definitions.
14053         (rld): New array.
14054         (whole file): Replace uses of the deleted arrays with uses of rld.
14055         * reload1.c (whole file): Replace uses of the deleted arrays with
14056         uses of rld.
14057         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
14058         explicit loops, not with bcopy.
14059
14060 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
14061
14062         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
14063         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
14064         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
14065         insn_name): Delete and consolidate into new structures.
14066         (insn_operand_predicate_fn): New.
14067         (insn_output_fn): New.
14068         (insn_gen_fn): New.
14069         (struct insn_operand_data): New.
14070         (struct insn_data): New.
14071         (insn_data): New.
14072         (OUT_FCN): Update for insn_data change.
14073         * builtins.c (expand_builtin_strlen): Likewise.
14074         (expand_builtin_memcmp): Likewise.
14075         * combine.c (make_extraction, simplify_comparison): Likewise.
14076         * cse.c (canon_reg, cse_insn): Likewise.
14077         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
14078         * expmed.c (store_bit_field, extract_bit_field): Likewise.
14079         (emit_store_flag): Likewise.
14080         * expr.c (convert_move, emit_block_move): Likewise.
14081         (clear_storage, emit_push_insn, expand_increment): Likewise.
14082         (do_store_flag): Likewise.
14083         * expr.h (GEN_FCN): Likewise.
14084         (insn_gen_function): Die.
14085         * final.c (final_scan_insn): Update for insn_data change.
14086         (output_asm_name): Likewise.
14087         * function.c (fixup_var_refs_1): Likewise.
14088         * loop.c (check_dbra_loop): Likewise.
14089         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
14090         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
14091         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
14092         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
14093         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
14094         * regmove.c (gen_add3_insn): Likewise.
14095         * reload.c (push_secondary_reload, combine_reloads): Likewise.
14096         (find_reloads, find_reloads_address_1): Likewise.
14097         (debug_reload_to_stream): Likewise.
14098         * reload1.c (emit_reload_insns, gen_reload): Likewise.
14099         * stmt.c (expand_end_case): Likewise.
14100         * toplev.c (compile_file): Likewise.
14101
14102         * c4x/c4x.c (c4x_process_after_reload): Likewise.
14103         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
14104
14105         * print-rtl.c (insn_name_ptr): Remove declaration.
14106         (get_insn_name): Declare.
14107         (print_rtx): Use it.
14108         * genoutput.c (insn_name_ptr): Remove.
14109         (next_operand_number): New.
14110         (struct operand_data): New.
14111         (null_operand, odata, odata_end): New.
14112         (struct data): Use struct operand_data.
14113         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
14114         (get_insn_name): Renamed from name_for_index.
14115         (output_prologue): Define NO_MD_PROTOTYPES.
14116         (output_predicate_decls): Break out from output_epilogue.
14117         Iterate over the operands list.
14118         (output_operand_data): Break out from output_epilogue.  Emit
14119         just the operands list.
14120         (output_insn_data): Break out from output_epilogue.  Emit just
14121         the insn data.
14122         (output_epilogue): Remove.
14123         (output_get_insn_name): New.
14124         (constraints, op_n_alternatives, predicates, address_p): Die.
14125         (modes, strict_low, seen): Die.
14126         (scan_operands): Take new param `d' instead of writing to
14127         seven global variables.
14128         (compare_operands): New.
14129         (place_operands): New.
14130         (validate_insn_alternatives): Update for struct data change.
14131         (gen_insn): Don't zero or copy 7 global arrays.  Update for
14132         scan_operands; call place_operands.
14133         (gen_peephole, gen_expand, gen_split): Likewise.
14134         (main): Update for new output routines.
14135
14136         * genattr.c (insn_name_ptr): Remove.
14137         (get_insn_name): New function.
14138         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
14139         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
14140         * genrecog.c: Likewise.
14141
14142         * alpha.md (adddi3): Make `pattern' array static.
14143
14144 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14145
14146         * config/c4x/c4x.h (c4x_rpts_cycles_string,
14147         c4x_cpu_version_string): Constify char *.
14148         * config/c4x/c4x.c (c4x_rpts_cycles_string,
14149         c4x_cpu_version_string): Likewise.
14150
14151 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
14152
14153         * tree.c (save_tree_status): Revert 10 Sep change.
14154         (restore_tree_status): Likewise.  Call obstack_free with NULL
14155         before freeing the obstack proper.
14156
14157 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
14158
14159         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
14160
14161         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
14162         surrounding context.
14163
14164 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
14165
14166         * tree.c (type_hash_canon): Put all types in the hash-table, when
14167         GC'ing.
14168
14169 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
14170
14171         * recog.h (struct recog_data, recog_data): New.
14172         (recog_foo variables): Kill.
14173         * recog.c (recog_operand, recog_operand_loc): Kill.
14174         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
14175         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
14176         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
14177         (recog_data): Define.
14178         (extract_insn): Update all recog_foo references to use recog_data.
14179         (preprocess_constraints, constrain_operands): Likewise.
14180         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
14181         * genattrtab.c (main): Likewise.
14182         * genextract.c (main): Likewise.
14183         * genoutput.c: Likewise.
14184         * genrecog.c (write_subroutine, main): Likewise.
14185         * local-alloc.c (block_alloc): Likewise.
14186         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
14187         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
14188         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
14189         * reload.c (find_reloads, find_reloads_toplev): Likewise.
14190         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
14191         (reload_cse_simplify_operands): Likewise.
14192
14193         * arc/arc.c (arc_final_prescan_insn): Likewise.
14194         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
14195         * h8300/h8300.c (notice_update_cc): Likewise.
14196         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
14197         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
14198         * mn10200/mn10200.c (notice_update_cc): Likewise.
14199         * mn10300/mn10300.c (notice_update_cc): Likewise.
14200         * romp/romp.c (update_cc): Likewise.
14201         * sparc/sparc.c (check_pic): Likewise.
14202         * v850/v850.c (notice_update_cc): Likewise.
14203
14204         * genemit.c (main): Don't declare recog_operand.
14205
14206 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
14207
14208         * ggc.h (rtvec_def): Forward declare.
14209         (tree_node): Likewise.
14210         (ggc_root): Define.
14211         (roots): Declare.
14212         (ggc_set_mark_rtx): Add prototype.
14213         (ggc_set_mark_rtvec): Likewise.
14214         (ggc_set_mark_tree): Likewise.
14215         * ggc-simple.c (ggc_root): Don't define.
14216         (roots): Don't declare.
14217         (ggc_mark_rtx): Remove.
14218         (ggc_mark_rtvec): Likewise.
14219         (ggc_mark_tree): Likewise.
14220         (ggc_mark_varray): Likewise.
14221         (ggc_mark_tree_hash_table_entry): Likewise.
14222         (ggc_mark_tree_hash_table): Likewise.
14223         (ggc_set_mart_rtx): New function.
14224         (ggc_set_mark_rtvec): Likewise.
14225         (ggc_set_mark_tree): Likewise.
14226         (ggc_add_root): Remove.
14227         (ggc_add_rtx_root): Likewise.
14228         (ggc_remove_tree_root): Likewise.
14229         (ggc_add_string_root): Likewise.
14230         (ggc_add_tree_varray_root): Likewise.
14231         (ggc_add_tree_hash_table_root): Likewise.
14232         (ggc_del_root): Likewise.
14233         (ggc_mark_rtx_ptr): Likewise.
14234         (ggc_mark_tree_ptr): Likewise.
14235         (ggc_mark_string_ptr): Likewise.
14236         (ggc_mark_tree_varray_ptr): Likewise.
14237         (ggc_mark_tree_hash_table_ptr): Likewise.
14238         * ggc-common.c: New file.
14239         * Makefile.in (OBJS): Add ggc-common.o.
14240         (ggc-common.o): List dependencies.
14241
14242 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
14243
14244         * cppalloc.c (xstrdup): Use memcpy.
14245         * cpperror.c (cpp_print_containing_files): Don't use
14246         cpp_notice.
14247         * cpplib.c (conditional_skip): Set temp->lineno.
14248         (do_endif): Make error message less obscure.
14249         (if_directive_name): New function.
14250         (cpp_get_token [case EOF]): Unwind the if stack and generate
14251         error messages for each unterminated conditional in this file.
14252         (parse_string):  Do not behave differently if -traditional.
14253
14254 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
14255
14256         * builtins.c (expand_builtin_va_arg): Cope with an array-type
14257         va_list decomposing to pointer-type.
14258         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
14259         (rs6000_va_arg): Likewise.
14260
14261 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
14262
14263         * except.c (start_dynamic_handler): Compute size using
14264         STACK_SAVEAREA_MODE.
14265
14266 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14267
14268         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
14269         include directory headers.  Don't define strrchr.  Don't provide
14270         my_* replacement functions.  Prefer PTR over `pointer_type'.
14271         Don't prototype system functions.  Don't redefine getopt.
14272
14273         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
14274         safe_read, safe_write, save_pointers, restore_pointers,
14275         is_id_char, in_system_include_dir, directory_specified_p,
14276         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
14277         find_corresponding_lparen, referenced_file_is_newer,
14278         save_def_or_dec, munge_compile_params, gen_aux_info_file,
14279         process_aux_info_file, identify_lineno, check_source,
14280         seek_to_line, forward_to_next_token_char, output_bytes,
14281         output_string, output_up_to, other_variable_style_function,
14282         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
14283         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
14284         find_static_definition, connect_defs_and_decs, add_local_decl,
14285         add_global_decls, needs_to_be_converted, visit_each_hash_node,
14286         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
14287         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
14288         scan_for_missed_items, edit_file, string_list_cons): Add static
14289         prototypes.
14290         (standard_exec_prefix, target_machine, target_version,
14291         default_syscalls_dir, string_list, string_list_cons, find_file,
14292         do_cleaning): Constify a char*.
14293         (safe_read, safe_write): Use PTR, not a char*.
14294         (is_id_char): Take an int, not a char.
14295         (main): Add prototype.  Call return, not exit.
14296
14297 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
14298
14299         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
14300         when comparing types.
14301
14302 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
14303
14304         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
14305         (strength_reduce): Release the varrays from the no-bivs early exit.
14306
14307         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
14308         the loop over the registers.
14309
14310         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
14311         for a new obstack.
14312         (restore_tree_status): Check that instead when freeing the obstack.
14313
14314 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
14315
14316         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
14317         as pointers.
14318
14319 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14320
14321         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
14322         operand size modifiers.
14323
14324 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14325
14326         * c-common.c (c_common_nodes_and_builtins): Don't build
14327         va_list_type_node.
14328         * c-common.h (enum c_tree_index and related accesor macros): Remove
14329         everything now declared in tree.h.
14330         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
14331         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
14332         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
14333         (error_mark_node, void_type_node, char_type_node, integer_type_node,
14334         unsigned_type_node, ptr_type_node, va_list_type_node,
14335         integer_zero_node, null_pointer_node, integer_one_node): Delete.
14336         (init_decl_processing): Call build_common_tree_nodes and
14337         build_common_tree_nodes_2 instead of building their nodes here.
14338         Don't add roots for these nodes.
14339         * stor-layout.c (size_zero_node, size_one_node): Delete.
14340         (set_sizetype): Make a new node for bitsizetype each time.
14341         * tree.c (global_trees): New variable.
14342         (init_obstacks): Add a gc root for it.
14343         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
14344         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
14345         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
14346         (build_common_tree_nodes): New function.
14347         (fix_sizetype): New function.
14348         (build_common_tree_nodes_2): New function.
14349         * tree.h (enum tree_index): New.
14350         (global_trees): Declare.
14351         Add accessor macros for all nodes now moved to global_trees.
14352         Delete their declarations.
14353
14354 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
14355
14356         * c-decl.c (finish_function): When processing a nested function,
14357         push and pop GC context around rest_of_compilation.
14358
14359 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
14360
14361         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
14362         Default ix86_arch to PROCESSOR_I386.
14363         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
14364         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
14365         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
14366         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
14367         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
14368         (EXTRA_SPECS): Remove deleted specs.
14369
14370 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
14371
14372         * function.c (assign_stack_local_1): Allocate from
14373         function->x_frame_offset, not frame_offset.
14374
14375 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
14376
14377         * ggc.h (lang_cleanup_tree): Remove.
14378         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
14379         * ggc-callbacks.c (lang_cleanup_tree): Remove.
14380
14381         * c-decl.c (finish_struct): Use ggc_alloc to allocate
14382         TYPE_LANG_SPECIFIC when garbage collecting.
14383         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
14384         (lang_cleanup_tree): Remove.
14385
14386 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
14387
14388         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
14389         * crtstuff.c: Not here.
14390         * dwarf2out.c: Or here.
14391         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
14392         info.
14393
14394 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
14395
14396         * function.h (free_after_compilation): Remove decl parameter.
14397         (free_varasm_status0: Likewise.
14398         (free_emit_status): Likewise.
14399         (free_stmt_status): Likewise.
14400         (free_after_compilation): Likewise.
14401         (init_lang_status): New variable.
14402         (free_lang_status): Likewise.
14403         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
14404         * function.c (init_lang_status): New variable.
14405         (free_lang_status): Likewise.
14406         (push_function_context_to): Don't set function::decl here.
14407         (free_after_copmilation): Make decl parameter implicit.  Call
14408         free_lang_status if defined.
14409         (prepare_function_start): Call init_lang_status if defined.
14410         (init_function_start): Set function::decl here.
14411         * profile.c (output_func_start_profiler): Don't call pushdecl
14412         until we've actually started the function.
14413         * stmt.c (free_stmt_status): Make decl parameter implicit.
14414         * toplev.c (rest_of_compilation): Don't pass decl to
14415         free_after_compilation.
14416         * varasm.c (free_varasm_status): Likewise.
14417
14418 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14419
14420         * except.c (call_get_eh_context): Add root when allocating static
14421         tree variable.
14422
14423 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
14424
14425         * arm.c: Include "ggc.h".
14426         (arm_add_gc_roots): New function.
14427         (arm_override_options): Call it.
14428         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
14429
14430         * arm.md (define_asm_attributes): Add a pool_range attribute.
14431
14432 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
14433
14434         * extend.texi (Volatiles): New node.
14435
14436 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
14437
14438         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
14439         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
14440         (struct ggc_any): Replace `mark' with `magic_mark'.
14441         (ggc_alloc_string): Use memcpy, not bcopy.
14442         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
14443         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
14444         (ggc_free_any): New.
14445         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
14446         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
14447         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
14448         Use IS_MARKED. Use ggc_free_any.
14449
14450 1999-09-09  Scott Bambrough <scottb@netwinder.org>
14451
14452         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
14453
14454 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
14455
14456         * toplev.c (main): Always init_ggc.
14457
14458 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
14459
14460         * except.c (find_all_handler_type_matches): Free the list if
14461         we found no matches.
14462
14463         * combine.c (SUBST): Break out to a real function do_SUBST.
14464         (SUBST_INT): Likewise.
14465         * gcse.c (free_pre_mem): Free `temp_bitmap'.
14466         (pre_insert): Free `inserted'.
14467         * loop.c (basic_induction_var): Always set `location'.
14468
14469         * function.c (expand_function_end): Add initial_trampoline as a root.
14470         * rtl.h (init_varasm_once): Declare.
14471         * toplev.c (compile_file): Call it.
14472         * ggc-simple.c (ggc_mark_string_ptr): New.
14473         (ggc_add_string_root): New.
14474         (ggc_collect): Disable collection avoidance temporarily.
14475         * ggc.h (ggc_add_string_root): Declare.
14476         * except.c (create_rethrow_ref): Use ggc_alloc_string.
14477         * optabs.c (init_libfuncs): Likewise.
14478         * varasm.c (named_section): Use ggc_alloc_string.
14479         (make_function_rtl): Likewise.
14480         (make_decl_rtl): Likewise.
14481         (assemble_static_space): Likewise.
14482         (assemble_trampoline_template): Likewise.
14483         (output_constant_def): Likewise.
14484         (force_const_mem): Likewise.
14485         (mark_const_hash_entry): New.
14486         (mark_pool_sym_hash_table): New.
14487         (mark_varasm_state): Use it.
14488         (init_varasm_once): New.
14489
14490         * expr.h (init_one_libfunc): Declare.
14491         * optabs.c (init_one_libfunc): New.
14492         (init_optabs): Use it.
14493         * config/gofast.h: Likewise.
14494         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
14495         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
14496
14497 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
14498
14499         * Makefile.in (cppexp.o): Depend on cpphash.h.
14500         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
14501         Include cpphash.h.
14502         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
14503         * cpplib.c (do_define): Generalise to handle poisoned definitions,
14504         redefining poisoned identifiers, etc.
14505         (do_undef): Don't allow poisoned identifiers to be undefined.
14506         (do_pragma): Add #pragma poison.
14507         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
14508
14509         * cccp.c: Add T_POISON node type.
14510         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
14511         poisoned xxx.
14512         (do_define): Generalise to handle poisoned definitions,
14513         redefining poisoned identifiers, etc.
14514         (do_undef): Don't allow poisoned identifiers to be undefined.
14515         (do_pragma): Add #pragma poison.
14516         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
14517
14518         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
14519         * c-pragma.h: Add ps_poison state.  We now always have generic
14520         pragmas.
14521
14522 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
14523
14524         * ggc.h (ggc_alloc): New function.
14525         (ggc_mark): Likewise.
14526         * ggc-simple.c (ggc_any): New structure.
14527         (ggc_status): Add anys.
14528         (n_anys_collected): New variable.
14529         (ggc_alloc): Define.
14530         (ggc_mark): Likewise.
14531         (ggc_collect): Collect the anys.
14532
14533 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14534
14535         * c-decl.c (mark_binding_level): Make static to match prototype.
14536
14537 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
14538
14539         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
14540
14541 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
14542
14543         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
14544         will use into account.  Expand the max width to 5.
14545         * rtl.c: Likewise.
14546
14547 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
14548
14549         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
14550         for the rtx length.
14551
14552 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
14553
14554         * alpha.md (call value patterns): Remove the result predicates.
14555
14556 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
14557
14558         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
14559         last change.
14560
14561 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14562
14563         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
14564         changed from extern char *, to extern PTR.  Also fix typo in
14565         NEED_DECLARATION_REALLOC test.
14566
14567         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
14568
14569 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14570
14571         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
14572         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
14573         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
14574         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
14575
14576         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
14577
14578         * cccp.c (pcfinclude): Likewise.
14579
14580         * global.c (allocno_compare): Likewise.
14581
14582         * haifa-sched.c (rank_for_schedule): Likewise.
14583
14584         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
14585
14586         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
14587
14588         * stupid.c (stupid_reg_compare): Likewise.
14589
14590         * tree.c (_obstack_allocated_p): Likewise.
14591
14592         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
14593
14594 1999-09-08  Bruce Korb  autogen@linuxbox.com
14595
14596         * Makefile.in: Give the hapless gperf user a hint about
14597         why "gperf -F" fails.
14598
14599 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
14600
14601         * lists.c: Include ggc.h.
14602         (zap_lists): New.
14603         (init_EXPR_INSN_LIST_cache): Install it.
14604
14605         * ggc-simple.c (init_ggc): Absorb the old init.
14606         (ggc_push_context): Use xcalloc.
14607         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
14608         (ggc_collect): Add [rvts] tags to the collection stats.
14609
14610 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
14611
14612         * cccp.c (main): Fix handling of -include and -imacros options.
14613
14614 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
14615
14616         * cpplib.c (cpp_push_buffer): Fix order of arguments.
14617
14618 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
14619
14620         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
14621         genrtl.c.
14622
14623 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
14624
14625         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
14626         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
14627         and SET_DEST. Update comment.
14628
14629 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14630
14631         * config/c4x/c4x.c: Include ggc.h.
14632         (c4x_add_gc_roots): New function.
14633         (c4x_override_options): Call c4x_add_gc_roots.
14634
14635 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
14636
14637         * defaults.h (TARGET_ESC): Move ...
14638         * system.h: ... here, where Linas had it in the first place.  Silly me.
14639
14640 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
14641
14642         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
14643         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
14644         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
14645         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
14646         * defaults.h (TARGET_ESC): Add default.
14647
14648 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
14649
14650         * configure.in: add i370-*-openedition, i370-*-mvs and
14651         i370-*-linux targets
14652
14653 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
14654
14655         * dsp16xxx.c: Include ggc.h
14656         (override_options): Mark GC roots.
14657         * mn10200.c: Include ggc.h.
14658         (asm_file_start): Mark GC roots.
14659         * tahoe.c: Include ggc.h.
14660         (extensible_operand): Mark GC roots.
14661
14662 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
14663
14664         * README: Add section discussing status of ELF ABI.
14665         * i370.c: Fix misc spelling mistakes.
14666         (i370_label_scan): Updated notes, exception handling.
14667         (i370_function_prolog): Simplify ELF stack handling.
14668         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
14669         (STACK_GROWS_DOWNWARD): ELF stack grows down.
14670         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
14671         * i370.md: (movdi): Add notes.
14672         (floatsidf2): Use stack not rtca for scratch float area.
14673         (iorsi3): Correct operand constraints.
14674         * x-oe: Restore TAROUTOPTS which are used by pax.
14675
14676 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
14677
14678         * rs6000.c: Include ggc.h.
14679         (rs6000_add_gc_roots): New function.
14680         (override_options): Call it.
14681
14682 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
14683
14684         * alpha.h (alpha_compare): New.
14685         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
14686         * alpha.c: Likewise for the definitions.
14687         (alpha_emit_conditional_branch): Update for alpha_compare.
14688         (alpha_emit_conditional_move): Likewise.
14689         * alpha.md (cmpdf, cmpdi): Likewise.
14690         (setcc patterns): Likewise.  Zero alpha_compare after use.
14691         (sne): Optimize (x != 0) into (0U < x).
14692
14693 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
14694
14695         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
14696         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
14697         (INIT_EXPANDERS): Remove.
14698         * alpha.c: Include ggc.h.
14699         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
14700         (alpha_init_machine_status, alpha_mark_machine_status): New.
14701         (override_options): Install them.
14702         (struct machine_function): Moved to alpha.h.
14703         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
14704         (alpha_init_expanders): Remove.
14705         (alpha_return_addr): Adjust to use current_function->machine.
14706         (alpha_ra_ever_killed): Likewise.
14707         (alpha_expand_epilogue): Likewise.
14708         * alpha.md (eh_epilogue): Likewise.
14709
14710 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
14711                           Melissa O'Neill  <oneill@cs.sfu.ca>
14712                           Geoffrey Keating  <geoffk@cygnus.com>
14713
14714         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
14715         call-used registers (call-saved registers must still be contiguous
14716         and end with r31, of course).
14717
14718 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
14719
14720         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
14721         (self_promoting_type_p): Delete.
14722         (self_promoting_args_p): Move ...
14723         * c-common.c: ... here.
14724         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
14725         (simple_type_promotes_to): New.
14726         * builtins.c (lang_type_promotes_to): New.
14727         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
14728         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
14729         * c-common.h: ... here.
14730         (self_promoting_args_p, simple_type_promotes_to): Declare.
14731         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
14732         (grokdeclarator): Likewise.
14733         * tree.h (lang_type_promotes_to): Declare.
14734
14735 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
14736
14737         Add some machine-dependent GC roots.
14738         * sparc.c: Include ggc.h.
14739         (sparc_add_gc_roots): New function.
14740         (mark_ultrasparc_pipeline_state): Likewise.
14741         (override_options): Call sparc_add_gc_roots.
14742         * pa.c: Include ggc.h.
14743         (pa_add_gc_roots): New function.
14744         (mark_deferred_plabels): Likewise.
14745         (override_options): Call pa_add_gc_roots.
14746         * mips.c: Include ggc.h.
14747         (mips_add_gc_roots): New function.
14748         (override_options): Use it.
14749
14750 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14751
14752         * cpperror.c (cpp_file_line_for_message): Constify a char*.
14753
14754         * cppexp.c (parse_number, parse_charconst, cpp_lex,
14755         cpp_parse_expr): Add static prototypes.
14756         (parse_charconst): Don't cast away const-ness.
14757         (token): Constify a char*.
14758
14759         * cppfiles.c (file_name_list, include_hash, find_include_file,
14760         finclude, initialize_input_buffer): Constify a char*.
14761         (file_cleanup, find_position): Add static prototypes.
14762
14763         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
14764         collect_expansion): Add static prototypes.
14765         (cpp_install, create_definition, monthnames): Constify a char*.
14766
14767         * cpphash.h (cpp_install): Likewise.
14768
14769         * cppinit.c (known_suffixes, default_include,
14770         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
14771         (base_name, dump_special_to_buffer, initialize_dependency_output):
14772         Add static prototypes.
14773
14774         * cpplib.c (my_strerror): Constify a char*.
14775         (null_underflow, null_cleanup, skip_comment, copy_comment,
14776         copy_rest_of_line, handle_directive, pass_thru_directive,
14777         get_directive_token, read_line_number, cpp_print_file_and_line,
14778         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
14779         v_cpp_warning_with_line, detect_if_not_defined,
14780         consider_directive_while_skipping): Add static prototypes.
14781         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
14782         cpp_pedwarn_with_file_and_line): Constify a char*.
14783
14784         * cpplib.h (cpp_options, include_hash, progname, definition,
14785         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
14786         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
14787         find_include_file, deps_output, include_hash): Constify a char*.
14788
14789         * cppmain.c (progname): Constify.
14790         (main): Add prototype.  Use return, not exit.
14791
14792         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
14793         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
14794         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
14795         check_protection): Add static prototype.
14796         (xfree): Remove.
14797         (progname, recognized_macrom, recognized_extern): Constify a char*.
14798         (main): Add prototype.
14799
14800         * gen-protos.c (progname): Constify a char*.
14801
14802 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
14803
14804         * emit-rtl.c (free_emit_status): Take decl as a parameter.
14805         (init_emit_once): Add more GC roots.
14806         * except.c (mark_func_eh_entry): New function.
14807         (mark_eh_node): Mark false_label and rethrow_label.
14808         (init_eh): Add more GC roots.
14809         * function.c (free_after_compilation): Take decl as a paramter.
14810         Call free_stmt_status.
14811         (mark_function_state): Don't assume x_parm_reg_stack_loc is
14812         non-NULL.
14813         * function.h (free_after_compilation): Change prototype.
14814         (free_varasm_status): Likewise.
14815         (free_emit_status): Likewise.
14816         (free_stmt_status): New function.
14817         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
14818         Remove, replacing with ...
14819         (ggc_status): New structure.
14820         (ggc_chain): New variable.
14821         (init_gcc): Define.
14822         (ggc_push_context): New function.
14823         (ggc_pop_context): Likewise.
14824         (ggc_alloc_rtx): Adjust for use of ggc_chain.
14825         (ggc_alloc_rtvec): Likewise.
14826         (ggc_alloc_tree): Likewise.
14827         (ggc_alloc_string): Likewise.
14828         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
14829         (ggc_mark_tree): Give language-dependent code a chance to mark
14830         `x' nodes.
14831         (ggc_mark_tree_varray): Handle empty arrays.
14832         (ggc_collect): Adjust for use of ggc_chain.  Clear
14833         bytes_alloced_since_last_gc.
14834         * ggc.h (ggc_pop_context): New function.
14835         (ggc_push_context): Likewise.
14836         * print-tree.c (print_node): Don't print obstacks when GC'ing.
14837         * stmt.c (free_stmt_status): New function.
14838         (init_stmt_for_function): Clear last_expr_value.
14839         * toplev.c (rest_of_compilation): Always call free_after_compilation.
14840         Conditionalize call to ggc_collect.
14841         (main): Call init_ggc.
14842         * tree.c (push_obstacks): Do the push, even when GC'ing.
14843         (push_obstacks_nochange): Likewise.
14844         (pop_obstacks): Liekwise.
14845         * varasm.c (free_varasm_status): Take decl as a parameter.
14846
14847 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
14848
14849         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
14850         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
14851         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
14852         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
14853
14854 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
14855
14856         * pa/x-pa-mpeix: New file for the MPE port.
14857
14858         * pa/quadlib.asm: New file for long double support.
14859
14860         * configure.in: Add hppa1.0-*-mpeix for MPE port.
14861         * configure: Rebuilt.
14862
14863 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
14864
14865         * final.c (shorten_branches): Fix last change.
14866
14867 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
14868
14869         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
14870
14871 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
14872
14873         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
14874         details.
14875
14876 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14877
14878         * c-aux-info.c (concat): Don't define.
14879
14880         * cccp.c (my_strerror): Likewise.  All callers changed to use
14881         xstrerror instead.
14882         (do_include): Call xstrdup, not xmalloc/strcpy.
14883         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
14884         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
14885
14886         * collect2.c (my_strsignal): Likewise.  All callers changed to use
14887         strsignal instead.
14888         (locatelib): Call xstrdup, not xmalloc/strcpy.
14889
14890         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
14891
14892         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
14893
14894         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
14895
14896         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
14897
14898         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
14899
14900         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
14901
14902         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
14903         malloc/realloc.
14904         (find_all_handler_type_matches): Likewise.  Don't check return
14905         value.
14906         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
14907         xmalloc, not malloc.
14908         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
14909
14910         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
14911         (init_spec): Call xcalloc, not xmalloc/bzero.
14912         (set_spec): Call xstrdup, not save_string.
14913         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
14914         (find_a_file): Call xstrdup, not xmalloc/strcpy.
14915         (process_command): Call xstrdup, not save_string.
14916         (main): Call xcalloc, not xmalloc/bzero.
14917
14918         * gcov.c (xmalloc): Don't define.
14919         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
14920         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
14921         (output_data): Call xcalloc, not xmalloc/bzero.
14922
14923         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
14924
14925         * mips-tdump.c (xmalloc): Don't define.
14926         (print_symbol): Call xmalloc, not malloc.
14927         (read_tfile): Call xcalloc, not calloc.
14928
14929         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
14930         Don't define.  All callers of xfree/my_strsignal changed to use
14931         free/strsignal instead.
14932         (allocate_cluster): Call xcalloc, not calloc.
14933
14934         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
14935         Fix memory leak, free allocated memory.
14936
14937         * prefix.c (translate_name): Call xstrdup, not save_string.
14938         (update_path): Likewise.
14939
14940         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
14941
14942         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
14943         Don't define.  Callers of xfree/savestring2 changed to use
14944         free/concat instead.
14945
14946         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
14947         (init_elim_table): Likewise.
14948
14949         * resource.c (init_resource_info): Likewise.
14950
14951         * stupid.c (stupid_life_analysis): Likewise.
14952
14953         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
14954         (open_dump_file): Call concat, not xmalloc/strcpy/...
14955         (clean_dump_file): Likewise.
14956         (compile_file): Call xstrdup, not xmalloc/strcpy.
14957
14958 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
14959
14960         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
14961         * v850.c (v850_va_arg): New.
14962
14963 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14964
14965         * haifa-sched.c: Tidy comments.
14966
14967 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14968
14969         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
14970         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
14971         $(out_object_file)): Depend on ggc.h.
14972         * c-common.c: Include "ggc.h".
14973         (combine_strings): If doing GC, use ggc_alloc_string.
14974         * c-decl.c: Include "ggc.h".
14975         (ggc_p): Define with value 0.
14976         (mark_binding_level): New function.
14977         (init_decl_processing): Add GC roots.
14978         (mark_c_function_context): New function.
14979         (lang_mark_false_label_stack): New function.
14980         (lang_mark_tree): New function.
14981         (lang_cleanup_tree): New function.
14982         * c-lang.c: Include "ggc.h".
14983         (lang_init): Call c_parse_init.
14984         * c-lex.c: Include "ggc.h".
14985         (check_linenum): If doing GC, don't copy filenames to permanent
14986         obstack.
14987         * c-parse.in: Include "ggc.h".
14988         (c_parse_init): New function.
14989         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
14990         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
14991
14992         * except.c (mark_eh_state): Mark more state.
14993         * function.c (mark_function_state): Likewise.
14994         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
14995         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
14996         * toplev.c (mark_file_stack): New function.
14997         (compile_file): If doing GC, use ggc_alloc_string on input filename.
14998         (main): Add root for input_file_stack.
14999
15000         * i386.c: Include "ggc.h".
15001         (ix86_mark_machine_status): New function.
15002         (override_options): Set mark_machine_status.
15003
15004 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15005
15006         * tree.c (copy_node): Copy node contents also if doing GC.
15007
15008 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
15009
15010         * collect2.c (scan_libraries): Fix double-thinko :-).
15011
15012 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
15013
15014         * collect2.c (scan_libraries): Fix thinko.
15015
15016         * cse.c (delete_trivially_dead_insns): Do not skip the last
15017         insn if it is a real insn.
15018
15019 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
15020
15021         * Makefile.in (ggc-simple.o): Depend on hash.h.
15022         * ggc.h (ggc_add_tree_hash_table_root): Declare.
15023         (ggc_mark_tree_varray): Likewise.
15024         (ggc_mark_tree_hash_table): Likewise.
15025         * ggc-simple.c: Include hash.h.
15026         (ggc_mark_tree_hash_table_ptr): New function.
15027         (ggc_mark_tree_hash_table_entry): Likewise.
15028         (ggc_mark_tree_hash_table): Likewise.
15029         (ggc_add_tree_hash_table_root): Likewise.
15030         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
15031         rtx, when defining fields.
15032
15033 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
15034
15035         * profile.c (output_func_start_profiler): Remove apparently
15036         nonsensical call to start_sequence.
15037
15038 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
15039
15040         * clipper/clipper.c (clipper_va_start): Fix typos.
15041
15042         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
15043         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
15044         (spur_va_arg): New stub.
15045
15046         * configure.in: Comment out pyramid.
15047
15048 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
15049
15050         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
15051         don't conflict with the bits that win32, cygwin, and dgux
15052         defines.
15053
15054 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
15055                           Bernd Schmidt <bernds@cygnus.co.uk>
15056
15057         * integrate.c (function_cannot_inline_p): Do not inline
15058         functions with forced labels.
15059
15060 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
15061                           Bernd Schmidt <bernds@cygnus.co.uk>
15062                           Mark Mitchell  <mark@codesourcery.com>
15063
15064         * Makefile.in (ggc-simple.o): Depend on varray.h.
15065         (rtl.o): Depend on ggc.h.
15066         (genattrtab.o): Depend on ggc.h.
15067         (print-tree.o): Likewise.
15068         (fold-const.o): Likewise.
15069         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
15070         (make_insn_raw): Don't cache insns when GC'ing.
15071         (emit_insn_before): Likewise.
15072         (emit_insn_after): Likewise.
15073         (emit_insn): Likewise.
15074         (start_sequence): Use xmalloc to allocate the sequence_stack.
15075         (end_sequence): Add free to free it.
15076         (gen_sequence): Don't cache insns when GC'ing.
15077         (clear_emit_caches): Don't use sequence_element_free_list.
15078         (init_emit): Use xcalloc, not xmalloc+bzero.
15079         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
15080         * function.c (pop_function_context_from): Use free to free the
15081         fixup_var_refs_queue.
15082         (put_reg_into_stack): Allocate it with xmalloc.
15083         * genattrtab.c: Include ggc.h.
15084         (operate_exp): Don't use obstack_free when GC'ing.
15085         (simplify_cond): Likewise.
15086         (simplify_text_exp): Likewise.
15087         (optimize_attrs): Likewise.
15088         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
15089         GC'ing.
15090         (gencode): Generate a #include for ggc.h.
15091         * ggc-callbacks.c (ggc_p): Define it to zero.
15092         * ggc-none.c (ggc_p): Likewise.
15093         * ggc-simple.c: Include varray.h.
15094         (ggc_mark_tree_varray): New function.
15095         (ggc_add_tree_varray_root): Likewise.
15096         (ggc_mark_tree_varray_ptr): Likewise.
15097         * ggc.h (ggc_p): Declare.
15098         (varray_head_tag): Likewise.
15099         (ggc_add_tree_varray_root): Declare.
15100         * print-tree.c (print_node): Don't check for TREE_PERMANENT
15101         inconsistencies when GC'ing.
15102         * rtl.c: Include ggc.h.
15103         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
15104         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
15105         (rtx_free): Don't call obstack_free when GC'ing.
15106         * toplev.c (rest_of_compilation): Call ggc_collect after every
15107         pass, if GC'ing.
15108         * tree.c (push_obstacks): Do nothing, if GC'ing.
15109         (pop_obstacks_nochange): Likewise.
15110         (pop_obstacks): Likewise.
15111         (make_node): Use ggc_alloc_tree when GC'ing.
15112         (copy_node): Likewise.
15113         (get_identifier): Use ggc_alloc_string when GC'ing.
15114         (build_string): Likewise.
15115         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
15116         (tree_cons): Likewise.
15117         (build1): Likewise.
15118         (type_hash_canon): Don't call obstack_free when GC'ing.
15119
15120 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
15121
15122         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
15123         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
15124
15125 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
15126                           Bernd Schmidt <bernds@cygnus.co.uk>
15127                           Mark Mitchell  <mark@codesourcery.com>
15128
15129         * Makefile.in (stor-layout.o): Depend on ggc.h.
15130         (expr.o): Depend on ggc.h.
15131         (profile.o): Depend on ggc.h.
15132         (stor-layout.o): Depend on ggc.h.
15133         * emit-rtl.c (init_emit_once): Add gc roots.
15134         * expr.c: Include ggc.h.
15135         (emit_block_move): Add gc roots.
15136         (clear_storage): Likewise.
15137         * expr.h (init_stor_layout_once): New function.
15138         * profile.c: Include ggc.h.
15139         (init_arc_profiler): profiler_label is a root.
15140         * scan.c (make_sstring_space): Trust xrealloc to function
15141         correctly with first parameter NULL.
15142         * stor-layout.c: Include ggc.h.
15143         (set_sizetype): Add gc root.
15144         (init_stor_layout_once): New function.
15145         * toplev.c (compile_file): Call it.
15146
15147 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
15148                           Bernd Schmidt <bernds@cygnus.co.uk>
15149                           Mark Mitchell  <mark@codesourcery.com>
15150
15151         * Makefile.in (tree.o): Depend on ggc.h.
15152         (varasm.o): Likewise.
15153         (function.o): Likewise.
15154         (stmt.o): Likewise.
15155         (except.o): Likewise.
15156         (optabs.o): Likewise.
15157         (emit-rtl.o): Likewise.
15158         * emit-rtl.c: Include ggc.h.
15159         (sequence_element_free_list): Remove, and all references.
15160         (mark_sequence): New functions.
15161         (mark_emit_state): New function.
15162         * except.c: Include ggc.h.
15163         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
15164         (mark_tree_label_node): New functions.
15165         (mark_eh_state): New function.
15166         * function.c: Include ggc.h.
15167         (mark_temp_slot, mark_function_chain): New functions.
15168         (mark_function_state): New function.
15169         (init_function_once): New function.
15170         * function.h (init_function_once): New function.
15171         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
15172         * ggc.h (label_node): Declare.
15173         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
15174         (lang_mark_false_label_stack): New function.
15175         (mark_temp_slot): Remove declaration.
15176         (mark_function_chain): Likewise.
15177         (mark_eh_state): Adjust prototype.
15178         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
15179         Likewise.
15180         * optabs.c: Include ggc.h.
15181         (mark_optab): New function.
15182         (init_optabs): Add gc roots.
15183         * stmt.c: Include ggc.h.
15184         (mark_cond_nesting, mark_loop_nesting): New functions.
15185         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
15186         (mark_stmt_state): New function.
15187         * toplev.c (compile_file): Call init_function_once.
15188         * tree.c: Include ggc.h.
15189         (type_hash): Move declaration earlier in file.
15190         (TYPE_HASH_SIZE, type_hash_table): Likewise.
15191         (init_obstacks): Add gc roots.
15192         (mark_type_hash): New function.
15193         * varasm.c: Include ggc.h.
15194         (mark_pool_constant): New function.
15195         (mark_varasm_state): New function.
15196
15197 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15198
15199         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
15200
15201 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
15202
15203         * c-decl.c (struct language_function): Renamed from struct c_function.
15204         Delete elt NEXT.
15205         (c_function_chain): Delete.
15206         (push_c_function_context): New arg F.  Don't warn about nested
15207         functions here.  Fill LANGUAGE elt of F.  Delete code to update
15208         c_function_chain.  Don't call push_function_context.
15209         (pop_c_function_context): New arg F.  Restore from there instead of
15210         from c_function_chain.  Don't call pop_function_context.  Clear out
15211         LANGUAGE field of F when done.
15212         * c-lang.c: Include "function.h"
15213         (lang_init): Initialize save_lang_status and restore_lang_status.
15214         * c-parse.in (nested_function, nested_function_notype): Warn about
15215         nested functions.  Call push_function_context/pop_function_context
15216         instead of the _c_ variants.
15217         * c-tree.h (push_c_function_context, pop_c_function_context): Update
15218         prototype.
15219         * Makefile.in (c-lang.o): Update dependencies.
15220
15221         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
15222         regno_pointer_flag, regno_pointer_align.
15223         (gen_reg_rtx): Use xrealloc to enlarge them.
15224         (free_emit_status): New function.
15225         * function.c (mark_machine_status, mark_lang_status): New variables.
15226         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
15227         in some bits from assign_stack_local.  All callers changed to use new
15228         name.
15229         (assign_stack_local): Just call assign_stack_local_1.
15230         (free_after_compilation): New function.
15231         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
15232         (trampoline_address): Likewise.
15233         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
15234         (prepare_function_start): Explicitly clear some more variables.
15235         * function.h (struct function): New elt can_garbage_collect.
15236         (mark_machine_status, mark_lang_status): Declare variables.
15237         (free_after_compilation, free_emit_status, free_varasm_status,
15238         init_varasm_status): Declare functions.
15239         * toplev.c (rest_of_compilation): Call free_after_compilation when
15240         done with the current function.
15241         * varasm.c (free_varasm_status): New function.
15242
15243 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
15244
15245         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
15246         (EXPAND_BUILTIN_VA_ARG): Define.
15247         * sparc.c (sparc_va_start): New.
15248         (sparc_va_arg): New.
15249
15250 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15251
15252         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
15253
15254 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15255
15256         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
15257
15258 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
15259
15260         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
15261         (OBJS): Add $(GGC).
15262         (ggc-callbacks.o): New target.
15263         * ggc-callbacks.c: New file.
15264
15265 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15266
15267         * expr.h: Collapse individual optab and libfunc vars to arrays.
15268         (optab_index, libfunc_index): New enumerations.
15269         (optab_table, libfunc_table): New arrays.
15270         Add accessor macros for both.
15271
15272         * optabs.c (optab_table, libfunc_table): New.
15273         Delete declarations for individual optab and libfunc vars.
15274
15275 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
15276
15277         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
15278
15279 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
15280
15281         * Makefile.in (GGC, GGC_LIB): New.
15282         (HOST_RTL): Include ggc-none.o.
15283         (ggc-simple.o): New target.
15284         (ggc-none.o): Likewise.
15285         * tree.h (tree_common): Add gc_mark.
15286         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
15287         (struct rtvec_def): Add gc_mark.
15288         * emit-rtl.c (global_rtl): Update static initializers to contain
15289         enough initializers.
15290         * ggc.h, ggc-none.c, ggc-simple.c: New files.
15291         * toplev.c (gc_time): New variable.
15292         (all_time): New variable.
15293         (compile_file): Print gc time.
15294         (print_time): Calculate percentage of the whole.
15295
15296 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15297
15298         Change obstack memory management and varasm constant pool handling so
15299         that nested functions are treated like any other functions.
15300         * function.c (init_machine_status): New variable.
15301         (push_function_context_to): Set contains_functions for the outer
15302         function.  Don't call save_varasm_status.
15303         (pop_function_context_from): Don't call restore_varasm_status.  Don't
15304         set current_function_contains_functions.
15305         (prepare_function_start): Call init_varasm_status rather than
15306         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
15307         is non-null.
15308         * function.h (struct function) Add field varasm.  Delete fields
15309         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
15310         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
15311         (init_machine_status): Declare.
15312         (save_varasm_status, restore_varasm_status): Delete declarations.
15313         (save_tree_status, restore_tree_status): Delete last argument.
15314         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
15315         code.  All callers changed.
15316         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
15317         save_constants_in_decl_trees, restore_constants, save_constants,
15318         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
15319         functions.
15320         (inlining): New variable.
15321         (reg_map, label_map, insn_map, orig_asm_operands_vector,
15322         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
15323         variables.
15324         (save_for_inline_nocopy): Don't save constants.
15325         Don't set inl_emit field in current_function.
15326         (expand_inline_function): Use emit field, not inl_emit, of the inlined
15327         function.  Set new variable inlining before
15328         calling copy_rtx_and_substitute.
15329         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
15330         constant pool references if inlining is nonzero.
15331         Delete ADDRESS and (most of the) CONST cases.
15332         (output_inline_function): Save and restore current_function/
15333         current_function_decl.  Delete restore_constants code.  Don't call
15334         init_const_rtx_hash_table.
15335         * output.h (init_const_rtx_hash_table): Don't declare.
15336         * rtl.h (struct function): Declare.
15337         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
15338         * toplev.c (rest_of_compilation): Don't treat nested functions or
15339         functions containing them specially.  Delete all code to deal with
15340         save_for_inline_copying.
15341         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
15342         inline_obstacks): Delete variables.
15343         (save_tree_status): Lose arg CONTEXT.  All callers changed.
15344         Simply allocate a new function_maybepermanent_obstack for the new
15345         function, delete all the special cases.
15346         Don't save inline_obstacks.
15347         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
15348         Delete special handling for function_maybepermanent_obstack; simply
15349         free it if empty.
15350         Don't restore inline_obstacks.
15351         (permanent_allocation):  Delete code that frees inline_obstacks.
15352         (print_inline_obstack_statistics): Delete function.
15353         (dump_tree_statistics): Don't call it.
15354         * varasm.c (struct varasm_status): New.
15355         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
15356         last_pool, pool_offset, const_double_chain): Delete global
15357         variables, replace with accessor macros.
15358         (immed_double_const): Don't walk const_double_chain outside a
15359         function, but don't treat nested functions specially anymore.
15360         (immed_real_const_1): Likewise.
15361         (clear_const_double_mem): Don't treat nested functions specially.
15362         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
15363         (save_varasm_status, restore_varasm_status): Delete functions.
15364         (init_varasm_status): New function.
15365         (force_const_mem): Don't treat nested functions specially.
15366         (find_pool_constant): Accept new arg F, search for constants in
15367         that function's pool rather than the current one.  All callers
15368         changed.
15369         (get_pool_constant_for_function, get_pool_mode_for_function): New
15370         functions.
15371
15372         * i386.c (init_386_machine_status): New function, mostly from
15373         clear_386_stack_locals.
15374         (struct machine_functions): Rename element names to avoid name
15375         clashes.
15376         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
15377         macros, replacing global variables.
15378         (clear_386_stack_locals, save_386_machine_status,
15379         restore_386_machine_status): Delete functions.
15380         (override_options): Initialize init_machine_status.
15381         * i386.h (INIT_EXPANDERS): Delete macro.
15382         (save_386_machine_status, restore_386_machine_status,
15383         clear_386_stack_locals): Delete declarations.
15384
15385 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15386
15387         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
15388         (doloop_begin):  Simplify pattern and use emit_jump_insn.
15389         (doloop_end): Simplify pattern, switch operand order,
15390         and use emit_jump_insn.
15391
15392 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
15393
15394         * function.h (struct function): Add new element LANGUAGE.
15395         (save_lang_status): Declare new variable.
15396         (restore_lang_status): Likewise.
15397         * function.c (save_lang_status): Define.
15398         (restore_lang_status): Likewise.
15399         (push_function_context_to): Call language-specific save function.
15400         (pop_function_context_from): Call language-specific restore function.
15401
15402 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
15403
15404         * i386.md (movsf_1): Check REG_P before use of REGNO.
15405         (movdf_1): Likewise.
15406         (movxf_1): Likewise.
15407         (extendsfdf2): Likewise.
15408         (extendsfxf2): Likewise.
15409         (extenddfxf2): Likewise.
15410
15411 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15412
15413         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
15414         constants into memory.
15415         (c4x_shiftable_constant): New function.
15416         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
15417         (c4x_shiftable_constant): Declare.
15418         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
15419         ashlqi3_noclobber): Add new patterns and associated splitters.
15420
15421 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
15422
15423         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
15424         * dwarf2out.c (dwarf2out_frame_init): Likewise.
15425         * final.c (shorten_branches): Likewise.
15426         * global.c (global_alloc): Likewise.
15427         * haifa-sched.c (build_control_flow): Likewise.
15428         * stmt.c (check_for_full_enumeration_handling): Likewise.
15429         (estimate_case_costs): Likewise.
15430
15431 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
15432
15433         * rtl.h (RTL_CHECKC2): Fix typo in last change.
15434
15435 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
15436
15437         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
15438         (recompute_reg_usage): Likewise.
15439         * rtlanal.c (find_regno_fusage): Likewise.
15440
15441         * rtl.c (rtl_check_failed_code1): New function.
15442         (rtl_check_failed_code2): New.
15443         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
15444         (RTL_CHECKC1, RTL_CHECKC2): New.
15445         (XC*): New accessor macros.
15446         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
15447         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
15448         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
15449         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
15450         (TRAP_*, RANGE_INFO_*): Likewise.
15451
15452 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15453
15454         * Makefile.in (tlink.o): Don't depend on toplev.h.
15455
15456         * collect2.c (c_file, o_file, export_file, import_file, ldout,
15457         output_file, nm_file_name, ldd_file_name, strip_file_name,
15458         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
15459         add_prefix, prefix_from_env, prefix_from_string, do_wait,
15460         fork_execute, maybe_unlink, add_to_list,
15461         extract_init_priority, write_list, dump_list,
15462         dump_prefix_list, write_list_with_asm, write_c_file,
15463         write_c_file_stat, write_c_file_glob, scan_prog_file,
15464         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
15465         ignore_library, extract_string, notice, dump_file, target_machine,
15466         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
15467         read_file, print_load_command): Constify a char*.
15468         (fdopen, error, fatal, fatal_perror): Don't prototype.
15469         (my_strerror): Remove.  All callers use xstrerror instead.
15470         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
15471         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
15472         to xcalloc/strcpy/strcat/...  to one call to concat.
15473         (main, scan_prog_file, scan_libraries): Use an intermediate
15474         `const char **' to build an argv array.
15475         (mapfile, libselect, libcompare, locatelib): Add prototypes.
15476
15477         * collect2.h (collect_execute, collect_wait, dump_file,
15478         file_exists): Constify a char*.
15479         (ldout, c_file_name, temporary_obstack, permanent_obstack,
15480         temporary_firstobj, vflag, debug): Add extern declarations.
15481         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
15482
15483         * tlink.c: Don't include toplev.h.
15484         (vflag, debug, ldout, c_file_name, temporary_obstack,
15485         permanent_obstack, temporary_firstobj): Don't declare.
15486         (tlink_execute, frob_extension, symbol_hash_lookup,
15487         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
15488         recompile_files, read_repo_files, demangle_new_symbols,
15489         scan_linker_output): Constify a char*.
15490         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
15491         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
15492
15493 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
15494
15495         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
15496         (relative) rather than jsr (absolute) subroutine call insns.
15497         * config/m68k/m68k-coff.h: Ditto.
15498
15499 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
15500
15501         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
15502         now rework these too.
15503         (arm_reorg): If an insn can't reach the end of the current pool,
15504         ensure that we emit that pool before the insn.
15505
15506 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
15507
15508         * tlink.c (scan_linker_output): Skip the initial underscore in
15509         a mangled name if appropriate.
15510
15511 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15512
15513         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
15514         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
15515         error_with_ivar, gen_declarator, create_builtin_decl,
15516         my_build_string, generate_descriptor_table, generate_ivars_list,
15517         generate_dispatch_table, check_protocols, TAG_GETCLASS,
15518         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
15519         dump_base_name, lang_decode_option, build_encode_expr,
15520         start_class, finish_class, encode_pointer, really_start_method,
15521         gen_declaration, dump_interface, handle_class_ref, handle_impent):
15522         Constify.
15523         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
15524         Add static prototypes.
15525         (build_objc_string_decl, build_selector_reference_decl,
15526         encode_bitfield, build_class_reference_decl): Remove unused
15527         parameter, all callers changed.
15528         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
15529         (objc_printable_name): Likewise.  Change second parameter to type int.
15530         (init_objc): Use memcpy, not bcopy, to avoid casts.
15531
15532 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
15533
15534         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
15535         reg notes on a deleted insn.
15536         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
15537
15538 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
15539
15540         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
15541
15542 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15543
15544         * stmt.c (expand_asm_operands): Fix index into inout_mode when
15545         reading it.
15546
15547 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
15548
15549         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
15550         * tm.texi (MD_ASM_CLOBBERS): Document it.
15551
15552 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
15553
15554         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
15555         * except.c (expand_rethrow): Remove unused variable.
15556         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
15557         * flow.c (replace_insns): Likewise.
15558         (create_edge_list, verify_edge_list): Likewise.
15559         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
15560
15561         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
15562         is special code to run.
15563         (main): Don't define operands to emit_operand.
15564         * genrecog.c (main): Don't emit an empty peephole2_insn function.
15565
15566         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
15567
15568         * alpha/alpha.h (normal_memory_operand): Declare.
15569         (reg_no_subreg_operand): Declare.
15570         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
15571
15572 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
15573
15574         * c-parse.in (compstmt_primary_start): New, broken out of first
15575         part of compstmt handling in primary.
15576         (primary): Use it.  Add an error clause.
15577         (compstmt_nostart): Renamed from compstmt; remove all
15578         initial invocations of compstmt_start.
15579         (compstmt): New.
15580
15581 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
15582
15583         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
15584         needed.
15585
15586 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
15587
15588         * combine.c (simplify_shift_const): Remove extra semicolon.
15589         * dwarf2out.c (remove_AT): Likewise.
15590         * expmed.c (expand_mult): Likewise.
15591         * gcov.c (create_program_flow_graph): Likewise.
15592         * reorg.c (mostly_true_jump): Likewise.
15593
15594 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
15595
15596         * fold-const.c (fold_range_test): Do not try to fold the range
15597         test if the rhs or lhs has side effects.
15598
15599         * combine.c (simplify_rtx): Recognize another case of a synthesized
15600         sign extension.
15601
15602         * varasm.c (mark_constant_pool): When marking indirect references,
15603         only look at SYMBOL_REFs.
15604
15605         * except.c (expand_fixup_region_end): Do not peek at
15606         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
15607
15608 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
15609
15610         * flags.h: New variables align_loops, align_loops_log,
15611         align_jumps, align_jumps_log, align_labels, align_labels_log,
15612         align_functions, align_functions_log.
15613         * toplev.c: Define them.
15614         (f_options): Handle -falign-* when they have no argument.
15615         (main): Add logic to set variables for -falign-functions,
15616         -falign-jumps, -falign-labels, -falign-loops.
15617         Make it -fsched-verbose=<n> and -finline-limit=<n>.
15618         (display_help): Change help to match options.
15619         * final.c (LABEL_ALIGN): Default to align_labels_log.
15620         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
15621         (LOOP_ALIGN): Default to align_loops_log.
15622         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
15623         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
15624         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
15625         * varasm.c (assemble_start_function): Handle align_functions.
15626
15627         * config/sparc/sparc.h: Don't declare sparc_align_*.
15628         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
15629         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
15630         sparc.c.
15631         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
15632         it's a promise.
15633         * config/sparc/sparc.c: Delete sparc_align_loops,
15634         sparc_align_jumps, sparc_align_funcs and the corresponding string
15635         variables.
15636         (sparc_override_options): Default align_functions on ultrasparc.
15637         Delete -malign-* handling.
15638
15639         * config/mips/mips.c (override_options):  On 64-bit targets,
15640         try to align code to 64-bit boundaries.
15641         (print_operand): New substitution, %~,
15642         which aligns labels to align_labels_log.
15643         * config/mips/mips.md (div_trap_normal): Use %~.
15644         (div_trap_mips16): Likewise.
15645         (abssi): Likewise.
15646         (absdi2): Likewise.
15647         (ffssi2): Likewise.
15648         (ffsdi2): Likewise.
15649         (ashldi3_internal): Likewise.
15650         (ashrdi3_internal): Likewise.
15651         (lshrdi3_internal): Likewise.
15652         (casesi_internal): Likewise.
15653
15654 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
15655
15656         Merge new ia32 backend from the branch!
15657
15658         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
15659         See ChangeLog.P2 on new_ia32_branch for details.
15660
15661         * rtl.h (stack_regs_mentioned_p): Delete prototype.
15662         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
15663         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
15664         * i386/gas.h (ASM_FILE_START): Define.
15665         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
15666         for name change of ix86_valid_decl_attribute_p.
15667         (i386_pe_valid_type_attribute_p): Similarly.
15668
15669 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
15670
15671         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
15672         to step through CC modes.
15673
15674 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15675
15676         * regmove.c (fixup_match_1): Don't move INSN in front of P if
15677         it would end up in the shadow of a live flags regsiter.
15678
15679 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15680
15681         * reload1.c: Fix many indentation problems.
15682         * reload.c: Likewise.
15683
15684 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
15685
15686         * alias.c (non_local_reference_p): Constify fmt.
15687
15688 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
15689
15690         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
15691
15692 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
15693
15694         * cse.c (delete_trivially_dead_insns): Do not delete stores to
15695         the internal_arg_pointer.
15696
15697 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
15698
15699         Merge peephole2 from new_ia32_branch:
15700         * Makefile.in (STAGESTUFF): Add *.peephole2.
15701         (mostlyclean): Likewise.
15702         (recog.o): Depend on resource.h.
15703
15704         * final.c (peephole): Conditionalize decl on HAVE_peephole.
15705         (final_scan_insn): Likewise for the invocation of peephole.
15706         * genconfig.c (main): Look for peephole and peephole2 patterns.
15707         Emit HAVE_peephole* accordingly.
15708         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
15709         * flags.h (flag_peephole2): Declare.
15710         * toplev.c: New pass peephole2.  New flag -fpeephole2.
15711
15712         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
15713         * gencodes.c (main): Likewise.
15714         * genextract.c (main): Likewise.
15715         * genoutput.c (main): Likewise.
15716         * genemit.c (max_operand_1): Look for the max scratch operand.
15717         (gen_rtx_scratch): New.
15718         (gen_exp): Use it, and pass on new arg subroutine_type.
15719         (gen_expand): Take max scratch into account.
15720         (gen_split): Emit peephole2 functions.
15721         (output_peephole2_scratch): New.
15722         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
15723         * genrecog.c (routine_type): Add PEEPHOLE2.
15724         (IS_SPLIT): New.
15725         (make_insn_sequence): Match outer parallel for peep2.  Discard
15726         top level scratches and dups.
15727         (add_to_sequence): New args insn_type and top.  Update all callers.
15728         Handle toplevel peep2 matching insns.
15729         (write_subroutine): Handle peep2.
15730         (write_tree_1): Likewise.
15731         (write_tree): Likewise.
15732         (main): Likewise.
15733         (change_state): New arg afterward.  Update all callers.
15734         Handle matching separate insns.
15735         * recog.c (recog_next_insn): New.
15736         (peephole2_optimize): New.
15737         * rtl.def (DEFINE_PEEPHOLE2): New.
15738         * resource.c (find_free_register): New argument last_insn.  Use it
15739         to find a register available through the entire span.
15740         * resource.h (find_free_register): Update prototype.
15741
15742 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
15743
15744         * i386.c (output_strlen_unroll): Don't write xops[7]
15745         label if it wasn't set.
15746
15747 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
15748
15749         * cpplib.c (struct directive): Const-ify name pointer and
15750         function pointer prototype.
15751         (validate_else, do_define, do_line, do_include, do_undef,
15752         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
15753         do_elif, do_endif, do_sccs, do_assert, do_unassert,
15754         do_warning): Const-ify second arg.
15755         (directive_table): Mark const.  Reorder entries by frequency
15756         of usage, record statistics.
15757
15758 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
15759
15760         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
15761         bounds- check RTL accesses if --enable-checking.
15762         (RTVEC_ELT): Bounds check if --enable-checking.
15763         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
15764         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
15765         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
15766         GET_NUM_ELEM.
15767         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
15768         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
15769
15770         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
15771         (NOTE_SOURCE_FILE): Use X0STR.
15772         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
15773         MEM_ALIAS_SET): Use X0INT.
15774         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
15775         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
15776         Use X0EXP.
15777         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
15778         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
15779         (rtl_check_failed_bounds, rtl_check_failed_type1,
15780         rtl_check_failed_type2, rtvec_check_failed_bounds): New
15781         functions.
15782         (fancy_abort): Fix comment.
15783
15784         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
15785         (cse_insn): Decrement LABEL_NUSES for jump target before
15786         deleting jump insn.
15787         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
15788         * final.c (alter_subreg): Compute regno before changing x to
15789         REG; set REGNO(x) after changing it.
15790         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
15791         notes containing CONST_INTs.
15792         (delete_eh_regions): Use NOTE_EH_HANDLER.
15793         * function.c (put_reg_into_stack): Make reg a MEM before
15794         initializing it.
15795         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
15796         delete insn.
15797         (gen_mem_addressof): Make reg a MEM before initializing it.
15798         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
15799         X0WINT.
15800         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
15801         deleting an insn, not after.
15802         (block_alloc): Only look at PATTERN(insn) if we have to, and
15803         only if it's format class 'i'.
15804         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
15805         CONST_INT before using its INTVAL.
15806         * print-rtl.c (print_rtx): Use X0STR.
15807         * regmove.c (fixup_match_1): Don't look at PATTERN of
15808         non-class-'i' insn chain elements.
15809         * reload.c (loc_mentioned_in_p): Take address of
15810         in->fld[1].rtx directly.
15811         * reload1.c (reload): Change reg to a MEM before initializing
15812         it.
15813         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
15814         have no names.
15815         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
15816
15817 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
15818
15819         * config/mips/mips.c (machine_dependent_reorg): Force a
15820         barrier to output the local constant pool if a barrier hasn't
15821         been found at a natural point in the instruction stream.
15822
15823 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15824
15825         * c-parse.in (language_string): Constify.
15826
15827         * dwarf2out.c (language_string): Remove declaration.
15828
15829         * dwarfout.c (language_string): Likewise.
15830
15831         * toplev.c (language_string, init_parse, finish_parse): Likewise.
15832
15833         * tree.h (language_string, init_parse, finish_parse): Declare.
15834
15835         * i386/sun386.h (language_string): Remove declaration.
15836
15837         * mips.h (language_string): Likewise.
15838
15839         * nextstep.h (language_string): Likewise.
15840
15841         * nextstep21.h (language_string): Likewise.
15842
15843         * rs6000.c (language_string): Likewise.
15844
15845 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15846
15847         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
15848         (getpwd.o): Remove target.
15849
15850         * getpwd.c: Delete file.  Its in libiberty now.
15851
15852         * dbxout.c (getpwd): Don't prototype.
15853         * dwarf2out.c (getpwd): Likewise
15854         * dwarfout.c (getpwd): Likewise
15855         * final.c (getpwd): Likewise.
15856         * protoize.c (getpwd): Likewise.
15857
15858 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15859
15860         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
15861
15862 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
15863
15864         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
15865         mark_set_resources.
15866
15867 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
15868
15869         * fixinc/Makefile.in (subdir): New.
15870         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
15871         (Makefile): New.
15872
15873 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
15874
15875         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
15876         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
15877         be shared.
15878
15879         * invoke.texi: Fix typo.
15880
15881         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
15882         changed.  Handle autoincrement addressing modes.
15883
15884         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
15885         just like we would the virtual incoming args register when
15886         integrating.
15887
15888 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
15889
15890         * rs6000.h (ASM_FILE_START): Specify complete filename, including
15891         path, in .file directive.
15892
15893 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
15894
15895         * gcc.texi (External Bugs): Remove obsolete note about Perl on
15896         SunOS.
15897
15898 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
15899
15900         * stdbool.h: Make the typedef name _Bool, with bool a #defined
15901         alias.
15902
15903 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15904
15905         * tree.c (tree_code_name): Constify a char*.
15906
15907         * tree.h (tree_code_name, decl_printable_name): Likewise.
15908
15909         * function.h (struct function): Likewise.
15910
15911         * toplev.c (decl_name, decl_printable_name): Likewise.
15912
15913         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
15914
15915         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
15916         (init_objc): Remove function pointer cast.
15917
15918 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
15919
15920         * pa.md (interspace_jump): New pattern.
15921         (builtin_longjmp): New expander.
15922
15923 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
15924
15925         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
15926         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
15927         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
15928
15929 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
15930
15931         * jump.c (delete_prior_computation): Also check calls
15932         to constant functions.  Don't bother checking for a
15933         REG_UNUSED note before adding it.
15934         (delete_computation): Handle multi-word hard registers
15935         when synthesizing missing REG_DEAD notes for a register
15936         which is both set and used by an insn.
15937
15938 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15939
15940         * loop.c (this_loop_info): New variable.
15941         (loop_has_call, loop_has_volatile, loop_has_tablejump,
15942         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
15943         All uses updated.
15944         (prescan_loop, strength_reduce): New argument loop_info.  All callers
15945         updated.
15946         (scan_loop): New variable loop_info, initialise to address of
15947         this_loop_info.
15948         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
15949         Delete variable loop_has_multiple_exit targets and replace with
15950         field in this_loop_info.
15951         (find_and_verify_loops): Rename this_loop to this_loop_num.
15952         (strength_reduce): Delete loop_iteration_info.  Replace variable
15953         loop_info with function argument of same name.
15954         (insert_bct): Rework test for loop being completely unrolled.
15955
15956         * loop.h (struct loop_info): New fields num, loops_enclosed,
15957         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
15958         has_indirect_jump, and cont.  Redefine use of unroll_number.
15959         (loop_unroll_number): Delete.
15960
15961         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
15962         field of loop_info.
15963         (loop_iterations): Delete variable vtop and instead use
15964         loop_info->vtop computed in prescan_loop.
15965
15966 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
15967
15968         * fix-header.c (main): Do not pass a null pointer to strcmp.
15969
15970 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
15971
15972         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
15973         filenames.
15974         * configure: Rebuilt.
15975
15976 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
15977
15978         * jump.c (jump_optimize_1): Do not delete assignments to
15979         internal_arg_pointer.
15980         * cse.c (delete_trivially_dead_insns): Always consider a set of
15981         the internal_arg_pointer live.
15982
15983 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
15984
15985         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
15986         (update_life_info) [REG_WAS_0]: Search the original insns rather
15987         than the new insns for the note.  Fix typos finding note_dest.
15988         If no dest found, discard the note rather than abort.
15989         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
15990         (replace_insns): Remove the old insn list after update_life_info
15991         not before.
15992
15993 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
15994
15995         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
15996         sched_analyze_insn.
15997         (sched_analyze_1): Let add_dependence care for not adding dups.
15998         (sched_analyze_2): Likewise.
15999         (add_branch_dependences): Likewise.
16000
16001 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
16002
16003         * i386/winnt.c (export_list): New type.
16004         (exports_head): Rename to
16005         (export_head):  this.
16006         (i386_pe_record_exported_symbol): Add is_data flag.
16007         (i386_pe_asm_file_end): Emit directive for exported variables.
16008         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
16009         prototype.
16010         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
16011         (ASM_DECLARE_OBJECT_NAME): Likewise.
16012         (ASM_DECLARE_FUNCTION_NAME): Likewise.
16013         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16014
16015 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
16016
16017         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
16018
16019         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
16020         operand.
16021
16022 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
16023
16024         * config/openbsd.h: Define SET_ASM_OP.
16025         * tm.texi: cross-reference SET_ASM_OP in the index.
16026
16027 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
16028
16029         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
16030         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
16031         and class_narrowest_mode at compile time.  Kill init_rtl.
16032         Mark rtx_length, mode_class, mode_size, mode_unit_size,
16033         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
16034         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
16035         EXTRA_CC_NAMES.
16036         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
16037         format.
16038         * rtl.h: Declare rtx_length and rtx_format as const.
16039         * machmode.def: Define CC().  Use CC() to define CCmode.  If
16040         EXTRA_CC_MODES is defined, expand it here.
16041         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
16042         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
16043         const.  Kill all references to EXTRA_CC_MODES.
16044
16045         * toplev.c: Don't prototype or call init_rtl.
16046         * optabs.c: Don't call init_mov_optab.
16047         * genemit.c: Don't generate init_mov_optab.  Don't call
16048         init_rtl.
16049         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
16050         here.
16051         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
16052         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
16053         genrecog.c: Don't call init_rtl.
16054
16055         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
16056         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
16057         definition of EXTRA_CC_MODES.
16058
16059         * md.texi: Kill ref to EXTRA_CC_NAMES.
16060         * tm.texi: Document new way to define EXTRA_CC_MODES.
16061
16062         * genrecog.c: Do not look up the name of a define_split.
16063         (Unrelated bugfix.)
16064
16065 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
16066
16067         * config/v850/v850.md: Fix typo introduced by previous delta.
16068
16069 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16070
16071         * gcc.c (fatal): Make definition static to match prototype.
16072
16073 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16074
16075         * combine.c (get_last_value): Don't look for earlier sets if the last
16076         known set is somewhere in between the insns being combined.
16077
16078 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
16079
16080         * configure.in: Don't use shell ! to negate exit codes
16081         * configure: Regenerate
16082
16083 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
16084
16085         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
16086         the fact that ALIGN is measured in bits, not bytes.
16087
16088 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
16089
16090         * errors.c: New file; defines functions error, warning, and
16091         fatal, variables have_error and progname.
16092         * errors.h: New file; prototypes and decls for stuff in errors.c.
16093
16094         * Makefile: Add rules to build errors.o and
16095         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
16096         genopinit, genrecog, genextract, genpeep, genattr, and
16097         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
16098         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
16099         genpeep.o, genattr.o, and genoutput.o.
16100
16101         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
16102         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
16103         define or prototype fatal.  Set progname at beginning of main.
16104         * genoutput.c:  Likewise, and don't define or prototype error
16105         either.
16106
16107         * c-typeck.c (c_expand_start_case): Return immediately if exp
16108         is an ERROR_MARK.
16109         * fold-const.c (operand_equal_p): Return immediately if arg1
16110         or arg0 are ERROR_MARKs.
16111         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
16112         fields of type ERROR_MARK when calculating if the record can
16113         go in a register.
16114
16115 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
16116         with much help from Jeffrey A Law and Richard Henderson
16117
16118         * i386.md: In the 6 insns which call output_fix_trunc,
16119         earlyclobber operands[0].
16120
16121 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
16122
16123         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
16124         creating new registers.
16125
16126 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
16127
16128         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
16129         i386_reg_alloc_order, i386_regparm_string,
16130         i386_align_loops_string, i386_align_jumps_string,
16131         i386_align_funcs_string, i386_preferred_stack_boundary_string,
16132         and i386_branch_cost_string as type "const char *".
16133         * i386.c: Define all above strings as type "const char *".
16134
16135 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
16136
16137         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
16138         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
16139
16140 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
16141
16142         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
16143         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
16144
16145 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
16146
16147         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
16148         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
16149         (dwarf2out_line, dwarf2out_finish): Likewise.
16150         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
16151
16152 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
16153
16154         * tree.c (lang_unsave_expr_now) : Correct return type.
16155         * tree.h (lang_unsave_expr_now) : Same.
16156
16157 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
16158
16159         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
16160         instead of duplicating code.
16161
16162 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16163
16164         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
16165
16166 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
16167
16168         * tree.h: fancy_abort always takes three args.
16169         * resource.c: Move include of system.h before toplev.h.
16170
16171 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
16172
16173         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
16174         as SYMBOL_REFs.
16175
16176 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
16177
16178         * system.h: Don't redefine abort or trim_filename.
16179         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
16180         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
16181         whether or not __FUNCTION__ is available.
16182         * tree.h: Duplicate rtl.h's definition of abort, for files
16183         that don't include rtl.h.  Delete all code to perform type
16184         checking with a compiler other than GCC.
16185         * varray.h: Delete all code to perform type checking with a
16186         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
16187         its arguments exactly once, using a statement expression.
16188         Adjust the VARRAY_<type> accessor macros to match.
16189         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
16190         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
16191         caller's location.  Define fatal_insn and fatal_insn_not_found
16192         as macros that use _fatal_insn and _fatal_insn_not_found.
16193         (fancy_abort, trim_filename): Kill prototypes.
16194
16195         * rtl.c (trim_filename): Move here from toplev.c.
16196         (fancy_abort): New function.
16197         (DIR_SEPARATOR): Provide default definition.
16198         * tree.c (tree_check_failed, tree_class_check_failed): Go
16199         through fancy_abort.
16200         (tree_check, tree_class_check, cst_or_constructor_check,
16201         expr_check): Delete.
16202         * varray.c (varray_check_failed): New function.
16203         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
16204         _fatal_insn and _fatal_insn_not_found.  Go through
16205         fancy_abort.
16206         (trim_filename, fancy_abort): Delete.
16207
16208         * builtins.c (expand_builtin_args_info): Report ICE with abort.
16209         * except.c (start_catch_handler): Report ICE with error/abort
16210         combo.
16211         * final.c (output_operand_lossage): Likewise.
16212         * flow.c (verify_flow_info): Likewise.
16213
16214         * gcc.c: Prototype fatal.
16215         * gengenrtl.c: Undef abort after including rtl.h not system.h.
16216         * genattr.c, genattrtab.c, genemit.c, genextract.c,
16217         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
16218         Don't define fancy_abort.
16219
16220 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
16221
16222         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
16223         canonization.
16224
16225 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
16226
16227         * m88k.h (VERSION_INFO2): Kill.
16228         (VERSION_STRING): Kill.
16229         (TM_RCS_ID): Kill.
16230         (VERSION_INFO1): Tidy.
16231         (TARGET_VERSION): Update.
16232         * m88k/dgux.h (VERSION_INFO2): Kill.
16233         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
16234         * m88k/luna.h (VERSION_INFO1): Tidy.
16235         * m88k/sysv4.h (VERSION_INFO1): Likewise.
16236         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
16237         (output_file_start): Adjust for death of VERSION_STRING.
16238
16239 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
16240
16241         * cpplib.c (detect_if_not_defined): New function.
16242         (do_if): Use it to detect potential once-only headers.
16243
16244 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
16245
16246         * c-common.c (combine_strings): Always set TREE_CONSTANT.
16247
16248 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
16249
16250         * combine.c (nonzero_bits) : Allow single-ly set registers to be
16251         anywere in the function only if they are pseudos and set before
16252         being used (not live at the start of the function).
16253         (num_sign_bit_copies) : Same.
16254         (get_last_value_validate) : Same.
16255         (get_last_value) : Same.
16256
16257 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
16258
16259         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
16260         where N and M are constant and N is an integer multiple of M.
16261
16262 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
16263
16264         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
16265         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
16266         sbitmap_union_of_preds): Add prototypes.
16267         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
16268         the intersection of successors with the new flow graph structures.
16269         (sbitmap_intersection_of_preds): New function to compute the
16270         intersection of predecessors with the new flow graph structures.
16271         (sbitmap_union_of_succs): New function to compute the union of
16272         successors with the new flow graph structures.
16273         (sbitmap_union_of_preds): New function to compute the union of
16274         predecessors with the new flow graph structures.
16275         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
16276         (expr_reaches_here_p): Use edge and basic_block structures instead
16277         of s_preds and s_succs.
16278         (compute_cprop_avinout): Use new sbitmap routines.
16279         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
16280         of s_preds and s_succs.
16281         * flow.c (compute_flow_dominators): Compute dominators using
16282         edges and basic blocks instead of s_preds and s_succs.
16283
16284 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
16285
16286         * lists.c (unused_insn_list, unused_expr_list): New file for
16287         maintaining various types of lists. New statics for maintaining a
16288         cache of available INSN_LIST and EXPR_LIST nodes.
16289         (free_list): Static function for freeing a list of INSN/EXPR nodes.
16290         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
16291         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
16292         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
16293         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
16294         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
16295         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
16296         (free_INSN_LIST_node): Free an individual INSN_LIST node.
16297         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
16298         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
16299         (remove_dependence, free_pending_lists): Use new global routines.
16300         (flush_pending_lists, sched_analyze_insn): Use new global routines.
16301         (sched_analyze, compute_block_backward_dependences): Use new routines.
16302         (sched_analyze_1, sched_analyze_2): Use new routines.
16303         (schedule_insns): Use new global routines.
16304         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
16305         prototypes.
16306         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
16307         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
16308         prototypes.
16309         * toplev.c (rest_of_compilation): Initialize node cache.
16310         * Makefile.in (OBJS): Add lists.o to list of object files.
16311         (lists.o): Add dependancies.
16312
16313 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
16314
16315         * config/v850/v850.md: Fix compile time warning messages.
16316         * config/v850/v850.c: Fix compile time warning messages.
16317         * config/v850/v850.h: Fix compile time warning messages.
16318
16319 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16320
16321         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
16322         Remove unused prototype for `init_lengths'.
16323
16324 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16325
16326         * calls.c (emit_call_1): Mark parameter `stack_size' with
16327         ATTRIBUTE_UNUSED.
16328         (expand_call): Initialize variable `insn'.
16329         (emit_library_call): Likewise for variable `high_to_save'.
16330         (emit_library_call_value): Likewise.
16331         (store_one_arg): Likewise for variables `lower_bound' and
16332         `upper_bound'.
16333
16334         * combine.c (try_combine): Likewise for variables `i2_code_number'
16335         and `other_code_number'.
16336         (find_split_point): Likewise for variables `pos', `unsignedp' and
16337         `inner'.
16338         (simplify_if_then_else): Likewise for variables `op' and `c1'.
16339         (simplify_and_const_int): Remove unused variable `width'.
16340         (merge_outer_ops): Likewise.
16341
16342         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
16343         HOST_WIDE_INT' when comparing against one.
16344         (simplify_relational_operation): Likewise.
16345         (cse_insn): Initialize variables `src_eqv_volatile',
16346         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
16347
16348         * final.c (init_final): Constify parameter `filename'.
16349         (final_start_function): Mark parameter `optimize' with
16350         ATTRIBUTE_UNUSED.
16351         (profile_function): Likewise for parameters `first' and `optimize'.
16352         (output_source_line): Likewise for parameter `file'.
16353
16354         * integrate.c (subst_constants): Cast a value to `size_t' when
16355         comparing against one.
16356         (mark_stores): Initialize variable `mode'.  Cast a value to
16357         `size_t' when comparing against one.
16358
16359         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
16360
16361         * loop.c (move_movables): Initialize variable `first'.
16362         (strength_reduce): Likewise for variable `increment'.
16363         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
16364         value to `size_t' when comparing against one.
16365         (load_mems): Initialize variable `end_label'.
16366
16367         * output.h (init_final): Constify parameter.
16368
16369         * reload.c (decompose): Initialize variable `base'.
16370
16371         * reload1.c (reload): Likewise for variable `is_scalar'.
16372         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
16373         (choose_reload_regs): Initialize variable `mode'.
16374         (emit_reload_insns): Likewise for variable `store_insn'.
16375         (reload_cse_noop_set_p): Mark parameter `insn' with
16376         ATTRIBUTE_UNUSED.
16377         (reload_combine): Initialize variable `set'.
16378
16379         * unroll.c (unroll_loop): Likewise for variable `local_label'.
16380         (copy_loop_body): Cast a value to `size_t' when comparing against
16381         one.
16382
16383         * varasm.c (assemble_variable): Initialize variable `size_tree'.
16384         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
16385         (remove_from_pending_weak_list): Mark parameter `name' with
16386         ATTRIBUTE_UNUSED.
16387
16388 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16389
16390         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
16391         gcse dump file.
16392
16393 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
16394
16395         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
16396         (ASM_DECLARE_FUNCTION_NAME): Define.
16397         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
16398         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
16399         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
16400         not already defined.
16401
16402 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16403
16404         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
16405         of n_popped when call/call_value are not defined.
16406
16407 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
16408
16409         * tm.texi: GNU CC -> GCC conversion.
16410         (CC1_SPEC): Indicate it is used for all language front ends.
16411
16412 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
16413
16414         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
16415         NOTE_INSN_EH_REGION_END correctly.
16416
16417 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
16418                           Jeff Law <law@cygnus.com>
16419
16420         * loop.c (strength_reduce): Automatically unroll loops if the
16421         unrolled loop size is smaller than the rolled loop size.
16422
16423         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
16424         and delete comment that code should be rewritten.
16425
16426 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
16427
16428         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
16429         as reachable.
16430
16431         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
16432
16433 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
16434
16435         * fixinc/mkfixinc.sh: Don't fix uwin headers.
16436         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
16437         (LINK_SPEC): Add -u _main when building executables.
16438         (ASM_DECLARE_FUNCTION): Update from Cygwin.
16439         (ASM_FILE_END): Use the default for ix86-pe.
16440         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
16441
16442 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
16443
16444         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
16445         and ASM_CLOSE_PAREN are empty strings.
16446
16447 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
16448                           Geoffrey Keating <geoffk@cygnus.com>
16449
16450         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
16451         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
16452         (unprotoize.o): Ditto.
16453         (test-protoize-simple): Don't define STD_PROTO_DIR.
16454         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
16455         changes to make 'test-protoize-simple' pass.
16456         (STD_PROTO_DIR): Remove define.
16457         (STANDARD_EXEC_PREFIX): Supply default define.
16458         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
16459         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
16460         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
16461         (GET_ENV_PATH_LIST): New macro.
16462         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
16463         (do_processing): Initialize default_syscalls_dir using new
16464         macros.  Use it to initialize syscalls_absolute_filename.
16465
16466 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
16467
16468         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
16469         B into a register before emit_conditional_move.
16470
16471 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
16472
16473         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
16474         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
16475         multiplicand out of (+ (* a b) (* c d)).
16476
16477 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
16478                           Richard Henderson  <rth@cygnus.com>
16479
16480         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
16481         (new_insn_dead_notes): Likewise.
16482         (update_n_sets): Likewise.
16483         (update_flow_info): Move to flow.c, renamed to update_life_info;
16484         extend to handle multiple source insns.
16485         * flow.c: Include resource.h
16486         (unlink_insn_chain): New.
16487         (split_hard_reg_notes): New.
16488         (maybe_add_dead_note): New.
16489         (maybe_add_dead_note_use): New.
16490         (find_insn_with_note): New.
16491         (new_insn_dead_notes): New.
16492         (update_n_sets): New.
16493         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
16494         (maybe_remove_dead_notes): New.
16495         (update_life_info): New.
16496         (prepend_reg_notes): New.
16497         (replace_insns): New.
16498         * output.h (update_life_info): Declare.
16499         * recog.c (split_block_insns): Use update_life_info.
16500         * resource.c (find_free_register): Use reg_alloc_order, don't use
16501         fixed regs, make sure the mode is supported, don't use new regs.
16502         (reg_dead_p): New.
16503         * rtl.h (replace_insns): Declare.
16504
16505 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
16506
16507         * expr.c (expand_expr): Cope with COND_EXPRs with one
16508         non-returning branch.
16509
16510 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
16511
16512         * expr.c (store_expr): Always pass down the target, even when not
16513         doing CSE.
16514
16515 1999-08-24  Nick Clifton  <nickc@cygnus.com>
16516
16517         * configure.in: Define target_cpu_default for v850 targets.
16518         * configure: Regenerate
16519
16520         * config/v850/v850.h (TARGET_CPU_generic): Define.
16521         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
16522         addresses are 4 byte aligned.
16523
16524         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
16525         addresses.
16526
16527 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16528
16529         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
16530         (main): Add prototypes.
16531
16532         * genattrtab.c (substitute_address, write_const_num_delay_slots,
16533         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
16534         (write_attr_get): Emit prototypes along with function definition.
16535         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
16536         (write_complex_function): Emit static prototype along with
16537         function definition.
16538
16539         * genemit.c (gen_split): Emit prototypes along with function
16540         definition.
16541
16542         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
16543         Likewise for predicates and `insn_operand_predicate'.
16544         (process_template): Emit static prototype along with function
16545         definition.
16546
16547         * genrecog.c (make_insn_sequence): Constify a char*.  Add
16548         prototypes for get_split_*().
16549         (write_subroutine): Emit prototypes along with function
16550         definition.
16551
16552 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16553
16554         * gcse.c (find_avail_set): Follow chains of register-register copies.
16555         Use oprs_not_set_p to guarantee that the returned value can be
16556         substituted.
16557         (cprop_insn): Don't verify the return value of find_avail_set with
16558         oprs_not_set_p.
16559
16560         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
16561         (cprop_cc0_jump): New function.
16562         (cprop_insn): Break out new function cprop_jump and use it.
16563         Also use cprop_cc0_jump for machines with CC0.
16564         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
16565
16566         * tree.h (current_function_calls_setjmp,
16567         current_function_calls_longjmp): Delete declarations.
16568         * dsp16xx.c: Include "function.h".
16569         * elxsi.c: Likewise.
16570         * gmicro.c: Likewise.
16571         * h8300.c: Likewise.
16572         * i370.c: Likewise.
16573         * m32r.c: Likewise.
16574         * mn10200.c: Likewise.
16575         * mn10300.c: Likewise.
16576         * ns32k.c: Likewise.
16577         * spur.c: Likewise.
16578         * v850.c: Likewise.
16579
16580         * rtl.h (rtx_equal_function_value_matters): Declare.
16581         * toplev.c (rtx_equal_function_value_matters): Don't declare.
16582         * cse.c: Likewise.
16583         * function.c: Likewise.
16584         * emit-rtl.c: Likewise.
16585
16586 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
16587
16588         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
16589         call.
16590
16591 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16592
16593         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
16594         exactly.
16595
16596 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
16597
16598         * cpp.texi: Add a node documenting macro varargs (copied
16599         from extend.texi).
16600
16601 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
16602
16603         * cppspec.c: Put a null pointer at the end of the new argv.
16604
16605 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
16606
16607         * configure.in: Remove code to select/de-select the haifa
16608         scheduler.  Every scheduled port gets haifa now.
16609         * configure: Rebuilt.
16610         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
16611         * sched.c Deleted.
16612         * Makefile.in: Corresponding changes.
16613
16614 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16615
16616         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
16617         All callers changed.
16618         (prepare_float_lib_cmp): Likewise.
16619         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
16620         * expr.h (emit_float_lib_cmp): Delete declaration.
16621         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
16622         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
16623         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
16624         specially.
16625         (cmptf): Now conditional on TARGET_HARD_QUAD.
16626
16627 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
16628
16629         * resource.c (mark_target_live_regs): Use
16630         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
16631
16632 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16633
16634         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
16635
16636         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
16637
16638         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
16639
16640 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16641
16642         * rtl.h (rtx_format): Constify a char*.
16643
16644         * rtl.c (rtx_format): Likewise.
16645         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
16646         (init_rtl): Use accessor macro, not `rtx_format'.
16647
16648         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
16649         char*.
16650
16651         * caller-save.c (mark_referenced_regs): Likewise.
16652
16653         * combine.c (subst, make_compound_operation, known_cond,
16654         gen_rtx_combine, update_table_tick, get_last_value_validate,
16655         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
16656
16657         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
16658         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
16659         count_reg_usage): Likewise.
16660
16661         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
16662         Likewise.
16663
16664         * final.c (leaf_renumber_regs_insn): Likewise.
16665
16666         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
16667         dump_edge_info, count_reg_references): Likewise.
16668
16669         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
16670         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
16671         Likewise.
16672
16673         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
16674         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
16675         add_label_notes): Likewise.
16676
16677         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
16678         clear_struct_flag, count_sub_rtxs, count_alternatives,
16679         compares_alternatives_p, contained_in_p, walk_attr_value,
16680         write_expr_attr_cache): Likewise.
16681
16682         * genconfig.c (walk_insn_part): Likewise.
16683
16684         * genemit.c (max_operand_1, gen_exp): Likewise.
16685
16686         * genextract.c (walk_rtx): Likewise.
16687
16688         * genflags.c (num_operands): Likewise.
16689
16690         * genoutput.c (scan_operands): Likewise.
16691
16692         * genpeep.c (match_rtx): Likewise.
16693
16694         * genrecog.c (add_to_sequence): Likewise.
16695
16696         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
16697         Likewise.
16698
16699         * integrate.c (save_constants, copy_for_inline,
16700         copy_rtx_and_substitute, subst_constants, restore_constants):
16701         Likewise.
16702
16703         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
16704         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
16705
16706         * local-alloc.c (contains_replace_regs, memref_referenced_p):
16707         Likewise.
16708
16709         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
16710         add_label_notes, replace_call_address, count_nonfixed_reads,
16711         invariant_p, find_single_use_in_loop, find_mem_givs,
16712         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
16713         Likewise.
16714
16715         * print-rtl.c (reg_names, print_rtx): Likewise.
16716
16717         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
16718
16719         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
16720         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
16721         print_blocks): Likewise.
16722
16723         * regclass.c (fix_register, record_address_regs,
16724         reg_scan_mark_refs): Likewise.
16725
16726         * regmove.c (stable_but_for_p): Likewise.
16727
16728         * reload.c (loc_mentioned_in_p, operands_match_p,
16729         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
16730         copy_replacements, refers_to_regno_for_reload_p,
16731         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
16732         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
16733         Likewise.
16734
16735         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
16736         delete_address_reloads_1, count_occurrences,
16737         reload_cse_mem_conflict_p, reload_combine_note_use,
16738         add_auto_inc_notes): Likewise.
16739
16740         * resource.c (mark_referenced_resources, mark_set_resources):
16741         Likewise.
16742
16743         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
16744         reg_mentioned_p, regs_set_between_p, modified_between_p,
16745         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
16746         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
16747         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
16748         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
16749
16750         * sched.c (sched_analyze_2, attach_deaths): Likewise.
16751
16752         * stupid.c (stupid_mark_refs): Likewise.
16753
16754         * unroll.c (remap_split_bivs): Likewise.
16755
16756         * varasm.c (mark_constants): Likewise.
16757
16758         * a29k/a29k.c (uses_local_reg_p): Likewise.
16759
16760         * alpha/alpha.c (summarize_insn): Likewise.
16761
16762         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
16763         eliminate_lr2ip): Likewise.
16764
16765         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
16766
16767         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
16768         reg_mentioned_in_mem): Likewise.
16769
16770         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
16771         symbolic_reference_mentioned_p): Likewise.
16772
16773         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
16774
16775         * sh/sh.c (regs_used, mark_use): Likewise.
16776
16777         * vax/vax.c (vax_rtx_cost): Likewise.
16778
16779 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16780
16781         * machmode.h (mode_name): Constify a char*.
16782
16783         * rtl.c (mode_name): Likewise.
16784
16785         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
16786
16787         * optabs.c (init_libfuncs): Constify a char*.
16788
16789         * print-tree.c (mode_name): Remove redundant declaration.
16790         (print_node): Use accessor macro, not `mode_name'.
16791
16792         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
16793         not `mode_name'.
16794         (new_spill_reg): Constify a char*.
16795
16796         * tree.c (mode_name): Remove redundant declaration.
16797
16798 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16799
16800         * rtl.c (rtx_name): Constify a char*.
16801
16802         * rtl.h (rtx_name, fix_sched_param): Likewise.
16803
16804         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
16805         (mypr): Use accessor macro, not `rtx_name'.
16806
16807         * genemit.c (print_code): Constify a char*.
16808
16809         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
16810
16811         * genpeep.c (print_code): Constify a char*.
16812
16813         * genrecog.c (print_code): Likewise.
16814
16815         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
16816         end_bb): Add static prototype.
16817         (draw_edge): Constify a char*.
16818         (end_bb): Remove unused parameter.
16819
16820         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
16821         print_block_visualization): Constify a char*.
16822
16823 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
16824
16825         * c-common.c (c_get_alias_set): Update comment.
16826
16827 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
16828
16829         * linux.h (LIB_SPEC): Added.
16830
16831 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16832
16833         * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
16834
16835 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
16836
16837         * tree.c (expr_check): Fix typo in last change.
16838
16839 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
16840
16841         * rtl.def (NOTE): Change format to "iuu0n".
16842         (ADDR_DIFF_VEC): Change format to "eEee0".
16843         (ADDRESSOF): Change format to "eit".
16844
16845         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
16846         (RTVEC_ELT): Change to match.
16847         (XVECEXP): Use XVEC and RTVEC_ELT.
16848         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
16849         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
16850         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
16851         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
16852         TRAP_CONDITION, TRAP_CODE): Use XEXP.
16853         (INTVAL): Use XWINT.
16854         (ADDRESSOF_DECL): Use XTREE.
16855         (SET_ADDRESSOF_DECL): Delete.
16856         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
16857         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
16858         ifdefed out since 2.6 at least.
16859         (gen_rtvec_vv): Delete prototype.
16860
16861         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
16862         not rtunion.
16863         (copy_most_rtx): Handle 't' format letter.
16864         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
16865         (gen_rtvec_vv): Delete function.  All callers changed to use
16866         gen_rtvec_v instead.
16867         * print-rtl.c (print_rtx): Move special casing of NOTEs to
16868         the '0' format letter.
16869
16870         * function.c (gen_mem_addressof): Don't use
16871         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
16872         instead.
16873         * integrate.c (copy_rtx_and_substitute): Likewise.
16874         Copy 't' slots with XTREE.
16875         (subst_constants): Treat 't' slots like '[swi]' slots.
16876         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
16877         * jump.c (rtx_equal_for_thread_p): Likewise.
16878         * rtlanal.c (rtx_equal_p): Likewise.
16879         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
16880         only four arguments.
16881         * gengenrtl.c (type_from_format): Provide correct types for
16882         'b' and 't' slots.
16883
16884
16885         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
16886         If a recent gcc is in use (always in stage2 and beyond), use
16887         statement expressions, so we don't make a function call unless
16888         the check fails.  Evaluate arguments exactly once.
16889         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
16890         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
16891         Delete.
16892         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
16893         they evaluate their arguments exactly once, irrespective of
16894         the compiler in use.
16895
16896         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
16897         is used by the currently-enabled check macros.  This is:
16898         (tree_check_failed, tree_class_check_failed): For gcc.
16899         (tree_check, tree_class_check, cst_or_constructor_check,
16900         expr_check): For other compilers.
16901
16902         * gencheck.c: Do not define any *_CHECK1 macros.
16903
16904 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
16905                           Mark Mitchell <mark@codesourcery.com>
16906
16907         * c-common.c (c_get_alias_set): Fix support for poitners and
16908         references.
16909
16910 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
16911
16912         * alias.c: Include tree.h.
16913         (nonlocal_reference_p, mark_constant_function): New functions.
16914         * flow.c (life_analysis): Call mark_constant_function.
16915         * rtl.h (mark_constant_function): Declare it.
16916
16917 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
16918
16919         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
16920         unrecognisable switches.
16921
16922 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16923
16924         * loop.c (recombine_givs): Set ix field after sorting.
16925         (recombine_givs): Remove bogus index / giv lockstep looping.
16926
16927 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16928
16929         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
16930         on CODE.
16931         (emit_store_flag_force): Use do_compare_rtx_and_jump.
16932         (do_cmp_and_jump): Formatting fixes.
16933         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
16934         do_compare_rtx_and_jump instead of compare_from_rtx.
16935         (do_compare_rtx_and_jump): New function; mostly copied from
16936         compare_from_rtx.
16937         (do_jump_for_compare): Delete.
16938         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
16939         MIN_EXPR.
16940         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
16941         of compare/do_jump_for_compare pairs.
16942         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
16943         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
16944         compare_from_rtx/do_jump_for_compare pairs.
16945         (do_jump_by_parts_equality): Likewise.
16946         (do_jump_by_parts_equality_rtx): Likewise.
16947         * expr.h (do_compare_rtx_and_jump): Declare.
16948         * optabs.c (prepare_cmp_insn): New function, contains most of the code
16949         that used to be in emit_cmp_insn.
16950         (cmp_available_p): New function.
16951         (prepare_operand): New function.
16952         (emit_cmp_and_jump_insn_1): New function, contains some code that used
16953         to be in emit_cmp_insn.
16954         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
16955         parameters to be pointers; don't emit final compare but modify some of
16956         the values pointed to by the args so the caller can perform the
16957         correct comparison.
16958         (expand_binop): Call emit_store_flag_force with signed forms of
16959         comparison code.
16960         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
16961         emit_jump_insn pair.
16962         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
16963         emit_cmp_and_jump_insn_1.  Call emit_queue.
16964         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
16965         arg.
16966         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
16967         jump sets cc0 before deleting it.
16968         * integrate.c (expand_inline_function): Likewise.
16969         * unroll.c (unroll_loop): Similar changes in several places.
16970         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
16971         before deleting it.
16972
16973 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16974
16975         * Makefile.in (insn-recog.o): Update dependencies.
16976         * genrecog.c (main): Make generated file include "function.h".
16977
16978 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
16979
16980         * cse.c (cse_insn): Call never_reached_warning when a jump is
16981         changed to be unconditional.
16982         * flags.h: Declare warn_notreached.
16983         * flow.c (delete_block): Call never_reached_warning when
16984         a block is deleted.
16985         * jump.c (delete_barrier_successors): Call never_reached_warning
16986         when we delete everything after a BARRIER.
16987         (never_reached_warning): New function.
16988         * rtl.h: Declare never_reached_warning.
16989         * toplev.c (warn_notreached): New variable.
16990         (lang_independent_options): Set warn_notreached
16991         when -Wunreachable-code.
16992         (compile_file): We need line numbers for -Wunreachable-code.
16993
16994 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
16995
16996         * haifa-sched.c (insn_unit): Fix typo on out of range test.
16997         * sched.c (insn_unit): Likewise.
16998
16999 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
17000
17001         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
17002
17003 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17004
17005         * flow.c (create_edge_list): Use xmalloc, not malloc.
17006
17007 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
17008
17009         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
17010         C-style comments.  Do not lose the character before double slash.
17011
17012 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17013
17014         * basic-block.h (struct edge_list): Stucture to maintain a vector
17015         of edges.
17016         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
17017          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
17018         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
17019         New function prototypes.
17020         * flow.c (create_edge_list): Function to create an edge list.
17021         (free_edge_list): Discards memory used by an edge list.
17022         (print_edge_list): Debug output showing an edge list.
17023         (verify_edge_list): Internal consistency check for an edge list.
17024         (find_edge_index): Function to find an edge index for a pred and succ.
17025
17026 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
17027
17028         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
17029         hashtable.
17030
17031 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
17032
17033         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
17034
17035 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17036
17037         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
17038
17039 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
17040
17041         * toplev.c (rest_of_compilation): Allow machine dependent
17042         reorganisation pass to place information into the RTL dump
17043         file if it so wishes.
17044
17045 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
17046
17047         * explow.c (hard_function_value): Use VOIDmode instead of
17048         MAX_MACHINE_MODE.
17049         * stmt.c (expand_return): Likewise.
17050         * stor-layout.c (get_best_mode): Likewise.
17051
17052         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
17053         emit call instead of emit_insn call.
17054
17055 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17056
17057         * configure.in: Handle --disable/enable-win32-registry.
17058         * install.texi: Document --disable/enable-win32-registry.
17059         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
17060         (WIN32_REGISTRY_KEY): New macro.
17061         * prefix.c: Use to enable/disable win32-specific code.
17062         (lookup_key): Use versioned key.
17063         * configure: Regenerate.
17064         * config.in: Likewise.
17065
17066 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
17067
17068         * cpplib.c (read_line_number): New fn, split out of...
17069         (do_line): Here.
17070
17071 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
17072
17073         tree.c (lang_unsave_expr_now) : New.
17074         (unsave_expr_now): Call lang_unsave_expr_now.
17075         tree.h (lang_unsave_expr_now) : New.
17076
17077 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
17078
17079         * toplev.c (flag_new_exceptions): On by default.
17080
17081 1999-08-13  Michael Meissner  <meissner@cygnus.com>
17082
17083         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
17084
17085 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
17086
17087         * dwarfout.c (fundamental_type_code): Return FT_boolean for
17088         INTEGER_TYPE with precision==1, it's __java_boolean.
17089
17090 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17091
17092         * global.c (prune_preferences): Move some invariants out of the
17093         inner loop.
17094
17095 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
17096
17097         * configure.in (alpha*-dec-osf*): Add osf5.
17098
17099 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
17100
17101         * configure.in: Rework handling of ARM GNU/Linux slightly.
17102         (arm*-*-linux-gnuoldld): New target.
17103         * configure: Regenerate.
17104         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
17105         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
17106         * config/arm/linux-oldld.h: New file.
17107         * config/arm/linux-elf26.h: Don't include linux-elf.h.
17108         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
17109         Don't define.
17110         * config/arm/linux-elf.h (ASM_SPEC): Define.
17111         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
17112         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
17113         for 26-bit APCS and old linker.
17114         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
17115         `arm_elf'.
17116         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
17117         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
17118         don't define `arm' or `arm_elf'.
17119         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
17120         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
17121
17122 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
17123
17124         * rtl.texi: Fix typo.
17125
17126 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
17127
17128         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
17129
17130 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
17131
17132         * extend.texi (C++ Signatures): Remove node.
17133         * invoke.texi: Remove discussion of -fhandle-signatures,
17134         signature, sigof, __signature__, and __sigof__.
17135
17136 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
17137
17138         * Makefile.in (JAVAGC): Removed.
17139
17140 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17141
17142         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
17143
17144 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
17145
17146         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
17147
17148 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
17149
17150         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
17151         a register that is already known to be a pointer.
17152
17153 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
17154
17155         * fixinc/inclhack.tpl: Only install assert.h conditionally.
17156         * fixinc/inclhack.sh: Regenerated.
17157         * fixinc/fixincl.sh: Regenerated.
17158
17159 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
17160
17161         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
17162         Fix documentation of -ansi flag to describe its C++ behavior.
17163         Remove bogus reference to GCC 2.9.
17164
17165 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
17166
17167         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
17168         note if it is non-NULL.
17169
17170 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17171
17172         * except.h (eh_nesting_info): Add new structure defintion.
17173         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
17174         (reachable_handlers, update_rethrow_references): Add function
17175         prototypes.
17176         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
17177         a rethrow symbol instead of an integer exception region number.
17178         * flow.c (Make_edges): Use new exception nesting routines to determine
17179         which handlers are reachable from a CALL or asynchronous insn.
17180         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
17181         goto receivers.
17182         (delete_eh_regions): Update rethrow labels, and don't delete
17183         regions which are the target of a rethrow.
17184         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
17185         avoid overloading the SYMBOL_REF_USED flag.
17186         (rethrow_symbol_map): Use new rethrow_ref field.
17187         (rethrow_used): Use new rethrow_ref field.
17188         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
17189         of an integer.  Fix formatting.
17190         (output_exception_table_entry): Use new rethrow_ref field.
17191         (can_throw): Check for EH_REGION_NOTE before deciding
17192         whether a CALL can throw or not.
17193         (scan_region): Call rethrow_used() instead of accessing data structure.
17194         (update_rethrow_references): New function to make sure only regions
17195         which are still targets of a rethrow are flagged as such.
17196         (process_nestinfo): New static function to initialize a handler
17197         list for a specific region.
17198         (init_eh_nesting_info): New function to allocate and initialize
17199         the list of all EH handlers reachable from all regions.
17200         (reachable_handlers): New function to retrieve the list of handlers
17201         reachable from a specific region and insn.
17202         (free_eh_nesting_info): New function to dispose of a list of
17203         reachable handlers.
17204
17205 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17206
17207         * flow.c (split_edge): Set JUMP_LABEL field.
17208         (commit_one_edge_insertion): Set head correctly for insert_before.
17209         When inserting insns, update insn block numbers if allocated.
17210
17211 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17212
17213         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
17214         retry_incomplete_types): Add static prototype.
17215         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
17216         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
17217         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
17218         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
17219         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
17220         Constify a char*.
17221
17222         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
17223         dwarf2out_start_source_file, dwarf2out_line): Likewise.
17224
17225 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17226
17227         * output.h (assemble_name): Constify a char*.
17228
17229         * varasm.c (UNIQUE_SECTION, assemble_start_function,
17230         assemble_variable, assemble_name): Likewise.
17231
17232         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
17233
17234         * arm/pe.c (arm_pe_unique_section): Likewise.
17235
17236         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
17237
17238         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
17239
17240         * i386/interix.c (i386_pe_unique_section): Likewise.
17241
17242         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
17243
17244         * i386/winnt.c (i386_pe_unique_section): Likewise.
17245
17246         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
17247
17248         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
17249
17250         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
17251
17252         * pa/pa.c (output_call): Likewise.
17253
17254         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
17255
17256         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
17257
17258         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
17259         Likewise.
17260
17261         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
17262         Likewise.
17263
17264         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
17265
17266         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
17267         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
17268
17269         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
17270
17271 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17272
17273         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
17274
17275 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17276
17277         * tree.h (lang_identify): Constify a char*.
17278         (print_error_function): Add extern prototype.  Constify a char*.
17279
17280         * c-lang.c (lang_identify): Constify a char*.
17281
17282         * objc/objc-act.c (lang_identify): Constify a char*.
17283
17284 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17285
17286         * genpeep.c (main): Make generated file include "function.h".
17287         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
17288
17289 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17290
17291         * Makefile.in: Update dependencies.
17292         * alias.c: Include "function.h"
17293         * c-decl.c: Likewise.
17294         * caller-save.c: Likewise.
17295         * calls.c: Likewise.
17296         * combine.c: Likewise.
17297         * cse.c: Likewise.
17298         * explow.c: Likewise.
17299         * final.c: Likewise.
17300         * global.c: Likewise.
17301         * graph.c: Likewise.
17302         * local-alloc.c: Likewise.
17303         * loop.c: Likewise.
17304         * optabs.c: Likewise.
17305         * profile.c: Likewise.
17306         * recog.c: Likewise.
17307         * regclass.c: Likewise.
17308         * regmove.c: Likewise.
17309         * reload.c: Likewise.
17310         * reorg.c: Likewise.
17311         * resource.c: Likewise.
17312         * sched.c: Likewise.
17313         * stupid.c: Likewise.
17314         * config/1750a/1750a.c: Likewise.
17315         * config/a29k/a29k.c: Likewise.
17316         * config/arc/arc.c: Likewise.
17317         * config/arm/arm.c: Likewise.
17318         * config/arm/thumb.c: Likewise.
17319         * config/c4x/c4x.c: Likewise.
17320         * config/clipper/clipper.c: Likewise.
17321         * config/convex/convex.c: Likewise.
17322         * config/fx80/fx80.c: Likewise.
17323         * config/i860/i860.c: Likewise.
17324         * config/m68k/m68k.c: Likewise.
17325         * config/m88k/m88k.c: Likewise.
17326         * config/mips/mips.c: Likewise.
17327         * config/pdp11/pdp11.c: Likewise.
17328         * config/pyr/pyr.c: Likewise.
17329         * config/romp/romp.c: Likewise.
17330         * config/sh/sh.c: Likewise.
17331         * config/tahoe/tahoe.c: Likewise.
17332         * config/vax/vax.c: Likewise.
17333         * config/we32k/we32k.c: Likewise.
17334         * config/sparc/sparc.c: Include "function.h".
17335         (mem_min_alignment): Test current_function rather than
17336         regno_pointer_align.
17337         * config/pa/pa.c: Likewise.
17338         (compute_frame_size): Delete declaration of
17339         current_function_outgoing_args_size.
17340         * config/arc/arc.h (current_function_varargs): Delete declaration.
17341         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
17342         declaration.
17343         * config/i370/i370.h (current_function_outgoing_args_size): Delete
17344         declaration.
17345         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
17346         current_function_uses_pic_offset_table.
17347         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
17348         of current_function_returns_pointer.
17349         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17350         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17351         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17352         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17353         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17354         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17355         * config/m88k/m88k.c: Include "function.h"
17356         (call_used_regs, current_function_pretend_args_size,
17357         current_function_outgoing_args_size, frame_pointer_needed): Delete
17358         declarations.
17359         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
17360         declaration.
17361         * config/mips/mips.h (current_function_calls_alloca): Delete
17362         declaration.
17363         * config/mn10200/mn10200.h (current_function_needs_context,
17364         rtx_equal_function_value_matters): Delete declarations.
17365         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
17366         flag_pic): Delete declarations.
17367         * config/pa/pa.h (current_function_pretend_args_size,
17368         current_function_decl): Delete declarations.
17369         * config/pa/som.h (current_function_varargs): Delete declaration.
17370         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
17371         declaration.
17372         * config/pyr/pyr.h (current_function_pretend_args_size,
17373         current_function_args_size, current_function_calls_alloca): Delete
17374         declarations.
17375         * config/sh/sh.h (current_function_varargs): Delete declaration.
17376         * config/sparc/sparc.h (current_function_outgoing_args_size,
17377         current_function_calls_alloca, current_function_decl): Delete
17378         declarations.
17379         * config/spur/spur.h (current_function_pretend_args_size,
17380         current_function_calls_alloca): Delete declarations.
17381         * config/v850/v850.c (current_function_outgoing_args_size): Delete
17382         declaration.
17383         * config/vax/vms.h (current_function_name): Delete declaration.
17384         * gcse.c: Include "function.h".
17385         (current_function_name, current_function_calls_setjmp): Delete
17386         declarations.
17387         * haifa-sched.c: Include "function.h".
17388         (forced_labels): Delete declaration.
17389         * jump.c: Likewise.
17390         * reg-stack.c: Likewise.
17391         * reload1.c: Likewise.
17392         * genemit.c (main): Make generated file include function.h.
17393         * genoutput.c (output_prologue): Likewise.
17394
17395         * builtins.c (saveregs_value, apply_args_value): Delete variables.
17396         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
17397         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
17398         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
17399         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
17400         macros for some of them.
17401         (emit_filename, emit_lineno): Delete declarations.
17402         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
17403         regno_pointer_* variables through current_function.
17404         (gen_inline_header_rtx): Delete function.
17405         (save_emit_status): Delete function.
17406         (set_new_last_label_num): New function.
17407         (clear_emit_caches): New function.
17408         (restore_emit_status): Just clear last_labelnum and call
17409         clear_emit_caches.
17410         (get_last_insn_anywhere): Variable sequence_stack is now accessed
17411         through macro seq_stack.
17412         (add_insn_after): Likewise.
17413         (add_insn_before): Likewise.
17414         (remove_insn): Likewise.
17415         (pop_topmost_sequence): Likewise.
17416         (in_sequence_p): Likewise.
17417         (start_sequence_for_rtl_expr): Likewise.
17418         (start_sequence): Likewise, and likewise for
17419         sequence_rtl_expr/seq_rtl_expr.
17420         (push_topmost_sequence): Likewise.
17421         (end_sequence): Likewise.
17422         (init_virtual_regs): Now takes a "struct emit_status *" argument.
17423         All callers changed.  Store into that pointer instead of globals.
17424         (init_emit): Allocate emit elt of current_function.
17425         Changes for sequence_rtl_expr/sequence_stack renaming.
17426         Call clear_emit_caches instead of doing it in-line.
17427         Access regno_pointer_* variables through current_function.
17428         (init_emit_once) Don't clear sequence_stack.
17429
17430         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
17431         Delete variables.
17432         (arg_pointer_save_area): Delete declaration.
17433         (finish_expr_for_function): Renamed from init_queue; no longer static.
17434         (init_expr): Don't call init_queue.
17435         (save_expr_status, restore_expr_status): Delete functions.
17436         (expand_expr): Changes to reflect new layout of struct function.
17437         Don't access current_function_check_memory_usage when current_function
17438         is 0.
17439         * expr.h (forced_labels, save_expr_regs, saveregs_value,
17440         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
17441         current_function_outgoing_args_size, current_function_arg_offset_rtx,
17442         current_function_uses_const_pool, function_call_count,
17443         current_function_uses_pic_offset_table, nonlocal_labels,
17444         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
17445         current_function_check_memory_usage, nonlocal_goto_handler_slots,
17446         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
17447         declarations.
17448         (finish_expr_for_function): Declare.
17449         * flags.h (current_function_has_nonlocal_label,
17450         current_function_has_nonlocal_goto, current_function_is_thunk,
17451         current_function_has_computed_jump): Delete declarations.
17452         * flow.c (forced_labels): Delete declaration.
17453         * function.c (current_function_pops_args,
17454         current_function_returns_struct, current_function_returns_pcc_struct,
17455         current_function_needs_context, current_function_calls_setjmp,
17456         current_function_calls_longjmp, current_function_has_nonlocal_label,
17457         current_function_has_nonlocal_goto, current_function_is_thunk,
17458         current_function_has_computed_jump, current_function_calls_alloca,
17459         current_function_contains_functions, current_function_returns_pointer,
17460         current_function_epilogue_delay_list, current_function_args_size,
17461         current_function_pretend_args_size, current_function_arg_offset_rtx,
17462         current_function_outgoing_args_size, current_function_varargs,
17463         current_function_stdarg, current_function_args_info, cleanup_label,
17464         current_function_name, current_function_uses_const_pool,
17465         current_function_instrument_entry_exit, current_function_return_rtx,
17466         current_function_uses_pic_offset_table, nonlocal_labels,
17467         current_function_internal_arg_pointer, current_function_cannot_inline,
17468         current_function_check_memory_usage, function_call_count,
17469         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
17470         nonlocal_goto_stack_level, return_label, save_expr_regs,
17471         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
17472         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
17473         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
17474         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
17475         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
17476         Delete variables.
17477         (push_function_context_to): Don't save them.  Don't call
17478         save_storage_status, save_emit_status or save_expr_status.
17479         (pop_function_context_from): Don't restore them.  Don't call
17480         restore_storage_status or restore_expr_status.
17481         (get_func_frame_size): New function.
17482         (get_frame_size): Use it.
17483         (assign_outer_stack_local): Reflect some member name changes in struct
17484         function.
17485         (put_reg_into_stack): Likewise.
17486         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
17487         seq_rtl_expr.
17488         (fixup_var_refs): Likewise.
17489         (fix_lexical_addr): Likewise.
17490         (trampoline_address): Likewise.
17491         (prepare_function_start): Clear field inlinable of current_function.
17492         (init_function_for_compilation): New function.
17493         (expand_dummy_function_end): New function.
17494         (expand_function_end): Call finish_expr_for_function.
17495         * function.h (struct emit_status): New; fields moved here from struct
17496         function and from global variables.  Add accessor macros for some of
17497         the fields.
17498         (struct expr_status): Likewise.
17499         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
17500         (struct function): Add fields expr and emit, inlinable, inl_emit,
17501         original_arg_vector, original_decl_initial, inl_last_parm_insn,
17502         inl_max_label_num.  Add many comments.
17503         Add accessor macros for all elts of struct function that no longer
17504         have a global variable.
17505         (cleanup_label, return_label, frame_offset, tail_recursion_label,
17506         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
17507         stack_slot_list): Delete declarations.
17508         (get_func_frame_size): Declare.
17509         (save_expr_status, restore_expr_status, save_emit_status,
17510         save_storage_status, restore_storage_status): Delete declarations.
17511         (init_virtual_regs): Declare.
17512         * output.h (current_function_pops_args,
17513         current_function_returns_struct, current_function_returns_pcc_struct,
17514         current_function_needs_context, current_function_calls_setjmp,
17515         current_function_calls_longjmp, current_function_calls_alloca,
17516         current_function_has_nonlocal_label, current_function_varargs,
17517         current_function_has_computed_jump, current_function_returns_pointer,
17518         current_function_contains_functions, current_function_args_size,
17519         current_function_pretend_args_size, current_function_stdarg,
17520         current_function_outgoing_args_size, current_function_args_info,
17521         current_function_name, current_function_return_rtx,
17522         current_function_epilogue_delay_list,
17523         current_function_uses_const_pool, current_function_cannot_inline):
17524         Delete declarations.
17525         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
17526         regno_reg_rtx): Delete declaration.
17527         (REGNO_POINTER_FLAG): Delete macro.
17528         * stmt.c (expand_goto): Changes to reflect that some fields in struct
17529         function were renamed.
17530         * stor-layout.c (save_storage_status, restore_storage_status): Delete
17531         functions.
17532         * toplev.c: Include "function.h".
17533         (current_function_decl): Delete declaration.
17534         (compile_file): Call init_dummy_function_start and
17535         expand_dummy_function_end around some initializations that need to
17536         emit rtl.
17537         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
17538         Call init_function_for_compilation.
17539         * unroll.c: Include "function.h"
17540         (unroll_loop): Access regno_pointer_* variables through
17541         current_function.
17542
17543         * tree.h (struct tree_decl): Add elt f to saved_insns member.
17544         (DECL_SAVED_INSNS): use it.
17545         (expand_dummy_function_end): Declare.
17546         (init_function_for_compilation): Declare.
17547         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
17548         that it's no longer an INLINE_HEADER.
17549         (expand_call): Likewise.
17550         * integrate.c (finish_inline): Delete function.
17551         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
17552         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
17553         args.  Don't generate an INLINE_HEADER rtx, just return the arg
17554         vector.  All callers changed.
17555         (save_for_inline_copying):  Create a duplicate struct emit_status to
17556         hold the emit state for compiling the current function.  Use this and
17557         the other new fields in struct function that are for integration
17558         instead of an INLINE_HEADER.
17559         Use memcpy instead of bcopy.
17560         Store the current struct function in DECL_SAVED_INSNS of fndecl.
17561         (save_for_inline_nocopy): Similar changes, except no new emit_status
17562         is needed here.
17563         (expand_inline_function): Get information from function structure,
17564         not from an inline header rtx.
17565         (output_inline_function): Lose code to extract the necessary
17566         information from an inline header; simply put back the function
17567         structure into current_function.  Clear its inlinable elt.
17568         * rtl.def (INLINE_HEADER): Delete.
17569         * rtl.h: Delete all accessors for an INLINE_HEADER.
17570         (gen_inline_header_rtx): Delete declaration.
17571         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
17572         Delete declarations.
17573         (REGNO_POINTER_ALIGN): Delete.
17574         (clear_emit_caches): Declare.
17575         (set_new_last_label_num): Declare.
17576
17577 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
17578
17579         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
17580
17581         * except.c (expand_eh_region_start_for_decl): Always start a new block.
17582         * stmt.c (is_eh_region): Make sure current_function is present, too.
17583
17584 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
17585
17586         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
17587         for 64bit PA targets.
17588
17589         * pa.h (SELECT_SECTION): Define.
17590         * som.h (SELECT_SECTION): Delete.
17591
17592 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17593
17594         * alias.c (init_alias_analysis): Wrap call to
17595         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
17596
17597 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
17598
17599         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
17600         <sys/asm.h> contains an asm comment with an apostrophe
17601         * fixinc/inclhack.sh:  regen
17602         * fixinc/fixincl.x:  regen
17603
17604 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
17605
17606         * function.c (init_function_start): Clear prologue & epilogue.
17607         (prologue_epilogue_contains): New function.
17608         * alias.c (init_alias_analysis): Use it.
17609         * rtl.h (prologue_epilogue_contains): Declare it.
17610
17611 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
17612
17613         * jump.c (onlyjump_p): New function.
17614         * rtl.h: Declare it.
17615         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
17616         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
17617
17618 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
17619
17620         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
17621         to invert loops.  Simplify block scanning.
17622
17623 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
17624
17625         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
17626         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
17627
17628 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
17629
17630         * config/sparc/liteelf.h: New file to support sparclite-elf target
17631         * config/sparc/t-sp86x: New file to support sparc86x targets
17632         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
17633         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
17634         * configure.in: Support above target triplets
17635         * configure: Regenerated
17636
17637 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
17638
17639         * fixinc/server.c (server_setup): Do not prefix function used as
17640         parameter with `&'.
17641
17642 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
17643
17644         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
17645         Remove fp reg alternatives.
17646
17647 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
17648
17649         * Makefile.in (TAROUTOPTS): Kill.
17650         (install-headers-tar): Use "xpf" for tar headerfile extraction
17651         * i370/x-oe (TAROUTOPTS): Delete.
17652         * m68k/x-apollo68 (TAROUTOPTS): Delete.
17653         * m68k/x-hp320 (TAROUTOPTS): Delete.
17654         * m68k/x-hp320g (TAROUTOPTS): Delete.
17655         * gcc.texi: Update bug reporting text.
17656
17657 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17658
17659         * reg-stack.c (change_stack) Fixed problem with negative array index.
17660
17661 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
17662
17663         * extend.texi, install.texi: Fix spelling mistakes.
17664
17665         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
17666         (s-attrtab); No longer try to use pre-made insn-attrtab file.
17667         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
17668         PREMADE_ATTRTAB_MD.
17669         * mips/t-ecoff: Likewise.
17670         * mips/t-elf: Likewise.
17671         * mips/t-mips: Likewise.
17672         * mips/t-osfrose: Likewise.
17673         * mips/t-r3900: Likewise.
17674         * mips/t-svr3: Likewise.
17675         * mips/t-svr4: Likewise.
17676         * mips/t-ultrix: Likewise.
17677
17678         * gcc.texi: Document recommend means to provide software floating
17679         point libraries in libgcc.a
17680
17681 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
17682
17683         * c-lex.c (yylex): We can have a number with no digits.
17684
17685 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
17686
17687         * jump.c (delete_prior_computation): New function, broken
17688         out of delete_computation.  Check for side effects with
17689         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
17690         multi-word hard registers.
17691         (delete_computation): Use it.  Check for side effects with
17692         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
17693         missing REG_DEAD note for a register which is both set and
17694         used by an insn.
17695
17696 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
17697
17698         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
17699         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
17700         (ASM_FILE_START): Import _mcount with the right type.
17701         (ASM_DECLARE_FUNCTION_NAME): Define.
17702         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
17703         * pa.c (output_function_prologue): Always emit the function's label
17704         here.
17705         * pa.h (TEXT_SPACE_P): Define.
17706         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
17707         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
17708         * som.h (TEXT_SPACE_P): Delete.
17709         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
17710         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
17711
17712 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
17713
17714         * expr.c (emit_group_load): Allow src to be a CONCAT.
17715
17716 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17717
17718         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
17719         (___mulsi3): Use '!' comment character.
17720
17721 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17722
17723         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
17724
17725 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
17726
17727         * gcc.c: Update URLs and mail addresses.
17728         * gcc.texi: Likewise.
17729
17730 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
17731
17732         * rs6000.c (current_file_function_operand): Return zero for
17733         weak functions.
17734         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
17735         weak symbols.
17736         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
17737         for weak symbols.
17738
17739 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
17740
17741         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
17742         allocate space in the stack frame for the PIC register.
17743
17744 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
17745
17746         * m68k.md (xordi3, anddi3): These patterns are not available on
17747         the coldfire.
17748
17749 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
17750
17751         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
17752         (PUT_REAL): Likewise.
17753
17754 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17755
17756         * final.c (shorten_branches): Don't add an alignment for loops
17757         that have no label inside.
17758
17759 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17760
17761         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
17762         prototypes in macro HAVE_cmpstrsi.
17763
17764         * cpplib.c (cpp_get_token): Remove unused label `op3'.
17765
17766         * emit-rtl.c (operand_subword): Remove unused variable
17767         `bits_per_word'.
17768
17769         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
17770
17771         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
17772
17773 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
17774
17775         * cpphash.c (macroexpand): Delete leading whitespace when arg
17776         is concatenated before.
17777         (unsafe_chars): Correct test for whether + and - can extend a
17778         token.
17779
17780         * cppinit.c (cpp_start_read): Do dependencies for
17781         -include/-imacros files also.
17782
17783         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
17784         tokenizing non-directive lines.
17785         (cpp_expand_to_buffer): Temporarily disable no-output mode.
17786         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
17787         the input file.
17788
17789 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
17790
17791         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
17792
17793         * c-lex.c: Sync with C++ frontend.
17794         (linemode): New variable.
17795         (parse_float): imag, conversion_errno, and type are output only.
17796         (yylex): Adjust.  Move initial '.' case into main switch.
17797         Use linemode.
17798         (handle_generic_pragma): Just deal with tokens.
17799         (readescape): Use ISXDIGIT and ISGRAPH.
17800         * c-parse.in: Add END_OF_LINE token.
17801
17802         * c-lex.c (lang_init): Generalize.
17803         (nextchar): Remove.  Replace uses with UNGETC.
17804         (skip_white_space): Handle linemode here.  Optimize for cpplib.
17805         (skip_white_space_on_line): Remove.
17806         (extend_token_buffer_to): New fn.
17807         (extend_token_buffer): Use it.
17808         (read_line_number, check_newline): Just deal with tokens.
17809         (token_getch, token_put_back): New fns.
17810         (yylex): Use them.  More cpplib optimizations.  Simplify.
17811
17812 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
17813                           Jason Merrill  <jason@yorick.cygnus.com>
17814
17815         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
17816         (consume_string): Make this smart about USE_CPPLIB.
17817         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
17818         (yylex): Rewrite to be intelligent about USE_CPPLIB.
17819         Also, clean up cases where we redundantly set token_buffer[0].
17820         (read_line_number): New fn.
17821         (ignore_escape_flag): New variable.
17822
17823 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
17824
17825         * a29k/t-a29kbare: Fix some comments.
17826         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
17827         (FPBIT, DPBIT): Define.
17828         * a29k/t-vx29k: Likewise.
17829         * arc/t-arc: Likewise.
17830         * arm/t-arm-elf: Likewise.
17831         * arm/t-bare: Likewise.
17832         * arm/t-pe: Likewise.
17833         * arm/t-pe-thumb: Likewise.
17834         * arm/t-semi: Likewise.
17835         * arm/t-thumb: Likewise.
17836         * arm/t-thumb-elf: Likewise.
17837         * arm/t-thumb-linux: Likewise.
17838         * h8300/t-h8300: Likewise.
17839         * i960/t-i960: Likewise.
17840         * i960/t-vxworks960: Likewise.
17841         * m32r/t-m32r: Likewise.
17842         * mips/t-ecoff: Likewise.
17843         * mips/t-elf: Likewise.
17844         * mips/t-r3900: Likewise.
17845         * pa/t-pro: Likewise.
17846         * rs6000/t-aix43: Likewise.
17847         * rs6000/t-beos: Likewise.
17848         * rs6000/t-newas: Likewise.
17849         * rs6000/t-ppccomm: Likewise.
17850         * rs6000/t-rs6000: Likewise.
17851         * rs6000/t-winnt: Likewise.
17852         * rs6000/t-xnewas: Likewise.
17853         * rs6000/t-xrs6000: Likewise.
17854         * sh/t-sh: Likewise.
17855         * sparc/t-elf: Likewise.
17856         * sparc/t-sparcbare: Likewise.
17857         * sparc/t-sparclite: Likewise.
17858         * sparc/t-splet: Likewise.
17859         * v850/t-v850: Likewise.
17860         * mn10200/t-mn10200: Fix comments.
17861         * mn10300/t-mn10300: Likewise.
17862
17863         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
17864         dummy operand.  Allocate a new pseudo for the dummy operand.
17865         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
17866
17867         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
17868
17869 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
17870
17871         * configure: Rebuilt.
17872         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
17873
17874 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
17875
17876         * recog.c (preproces_constraints): Zero recog_op_alt before
17877         processing the constraints.
17878
17879         * arm.c (typedef minipool_node): Renamed from pool_node.
17880         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
17881         (add_minipool_constant): New function.
17882         (dump_minipool): New function.
17883         (find_barrier): Remove special case for getting the insn size of
17884         an insn that references the constant pool.
17885         (minipool_fixup): New structure.
17886         (push_minipool_barrier): New function.
17887         (push_minipool_fix): New function.
17888         (note_invalid_constants): New function.
17889         (add_pool_constant, dump_table, fixit, broken_move): Delete.
17890         (arm_reorg): Rewrite code to fix up the constant pool into a
17891         series of mini-pools embedded in the insn stream.
17892         (arm_output_epilogue): New function, made mainly from the body
17893         of output_func_epilogue.
17894         (output_func_epilogue): Move insn generation part of epilogue code
17895         to arm_output_epilogue.
17896         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
17897         * arm.md (pool_range): New attribute.
17898         (zero_extendqidi2): Add attribute pool_range.
17899         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
17900         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
17901         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
17902         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
17903         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
17904         (epilogue): New expand.
17905         (epilogue_insn): New insn.  Call arm_output_epilogue.
17906
17907         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
17908         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
17909
17910 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
17911
17912         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
17913
17914 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
17915
17916         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
17917
17918 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
17919
17920         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
17921
17922 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
17923
17924         * global.c: Fix comment.
17925
17926 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
17927
17928         * gcc.c (access_check): New static function.
17929         (find_a_file): Use it when searching a directory list.
17930         * collect2.c (find_a_file): Don't accept directories found when
17931         searching a directory list.
17932
17933 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
17934
17935         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
17936         function parameters with `&'.
17937         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
17938
17939 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
17940
17941         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
17942         or tidy_fallthru_edge if the last insn in the block is not
17943         an unconditional jump or a simple conditional jump.
17944
17945 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17946
17947         * Makefile.in (c-decl.o): Depends on defaults.h.
17948
17949 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
17950
17951         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
17952         PA1.1 and above.
17953         (CLASS_MAX_NREGS): Likewise.
17954
17955 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
17956
17957         * cse.c (cse_insn): Fix dumb thinko in last change.
17958
17959 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17960
17961         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
17962         "const char *".
17963
17964 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
17965
17966         * dwarf2out.c (add_location_or_const_value_attribute): Correct
17967         test for sizes of passed and declared parameter types.
17968
17969 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17970
17971         * fixincludes: Fix the return type of bsearch, char* -> void*.
17972
17973         * fixinc/inclhack.def: Likewise.
17974
17975 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
17976
17977         * invoke.texi (-fdump-translation-unit): New option.
17978
17979 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
17980
17981         * expr.h (PROMOTE_PROTOTYPES): Move ...
17982         * defaults.h: ... to here.
17983         * c-decl.c: Include defaults.h instead of expr.h.
17984         * c-typeck.c: Include defaults.h.
17985
17986 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
17987
17988         * toplev.h (errorcount): Declare.
17989         (warningcount): Likewise.
17990         (sorrycount): Likewise.
17991         * c-lex.c (errorcount): Don't declare.
17992         * dwarf2out.c (errorcount): Don't declare.
17993
17994 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
17995
17996         * config/libgloss.h: Add a note discouraging use with ELF.
17997         * configure.in: Don't use libgloss.h for ELF targets.
17998         Always use_collect2 on a.out targets.
17999
18000 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
18001
18002         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
18003         (force_to_mode, case ASHIFTRT): Add shiftrt label.
18004
18005 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18006
18007         * loop.c (strength_reduce): When doing biv->giv conversion, update
18008         reg note of NEXT->insn.
18009
18010 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
18011
18012         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
18013
18014 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
18015
18016         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
18017         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
18018         Ensure expr.h is included.
18019         * c-typecheck.c (convert_arguments): Ditto.
18020
18021         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
18022
18023         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
18024         * config/convex/convex.h: Ditto.
18025         * config/dsp16xx/dsp16xx.h: Ditto.
18026         * config/fx80/fx80.h: Ditto.
18027         * config/gmicro/gmicro.h: Ditto.
18028         * config/i370/i370.h: Ditto.
18029         * config/i386/i386.h: Ditto.
18030         * config/m32r/m32r.h: Ditto.
18031         * config/m68k/m68k.h: Ditto.
18032         * config/m88k/m88k.h: Ditto.
18033         * config/mips/mips.h: Ditto.
18034         * config/pa/pa.h: Ditto.
18035         * config/pyr/pyr.h: Ditto.
18036         * config/tahoe/tahoe.h: Ditto.
18037         * config/we32k/we32k.h: Ditto.
18038
18039         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
18040         based on arch size.
18041
18042         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
18043
18044         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
18045         from comment.
18046
18047         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
18048
18049 1999-08-02  Richard Henderson  <rth@cygnus.com>
18050
18051         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
18052         for the register spill block.
18053         (m32r_va_arg): New.
18054         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
18055         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
18056
18057         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
18058         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
18059         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
18060
18061 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
18062
18063         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
18064         MAX_WCHAR_TYPE defined in sparc.h.
18065         * config/sparc/linuxaout.h: Likewise.
18066         * config/sparc/linux64.h: Likewise.
18067         Also default to -mvis if CPU is UltraSPARC.
18068
18069 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
18070
18071         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
18072         (RTX_OK_FOR_OLO10): Likewise.
18073         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
18074         %lo(), allow it in addresses...
18075         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
18076         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
18077         does not make sense.
18078         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
18079         (sparc_output_scratch_registers): New function.
18080         (output_function_prologue, sparc_flat_output_function_prologue): Use
18081         it.
18082         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
18083         defined.
18084         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
18085         * configure.in: Add check for .register pseudo-op support in as and
18086         check for offsetable %lo().
18087         * acconfig.h: Add templates for the above checks.
18088         * configure: Regenerate.
18089
18090 1999-08-02  Richard Henderson  <rth@cygnus.com>
18091
18092         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
18093         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
18094         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
18095
18096 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18097
18098         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
18099         reg_biv_class.
18100
18101 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
18102
18103         * config/float-sparc.h: New file.
18104         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
18105         sparc-*-linux-gnu and sparc64-*-linux*.
18106
18107 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
18108
18109         * rs6000.c (rs6000_va_list): Type is an array.
18110         (rs6000_va_start): Don't doubly adjust for varargs.
18111         (rs6000_va_arg): Evaluate long long GPR adjustment.
18112
18113 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
18114
18115         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
18116         -maix64 and -maix32.
18117         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
18118         LINK_SPEC): Change appropriately.
18119         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
18120         (u_short_cint_operand): Likewise.
18121         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
18122         for 64-bit hosts.
18123         * rs6000/t-aix43 (MULTILIB): Change to -m64.
18124
18125         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
18126
18127 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
18128
18129         * rs6000/rs6000.c (num_insns_constant_wide): Correct
18130         for type promotion.
18131         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
18132         (non_add_cint_operand): Likewise.
18133         (logical_operand): Likewise.
18134         (non_logical_cint_operand): Likewise.
18135         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
18136         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
18137         (rs6000_select_rtx_section): Suppress warning.
18138         (small_data_operand): Suppress warning.
18139         (rs6000_got_register): Suppress warning.
18140         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
18141         type, so `J' is generally the wrong constraint for a SImode value;
18142         use `L' instead.
18143         (andsi3_internal2): Likewise.
18144         (andsi3_internal3): Likewise.
18145         (iorsi3_internal1): Likewise.
18146         (xorsi3_internal1): Likewise.
18147         (movsi): Likewise.
18148         (movsf_softfloat): Likewise.
18149         (scc insns): Likewise.
18150         (movsi+2): Preserve sign bits of SImode constant.
18151         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
18152         (movdf+1): Sign-extend properly.
18153         (movdi_32+1): Sign-extend properly.
18154         (scc insns): Sign-extend properly.
18155
18156         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
18157         K, L, and T.
18158
18159 1999-08-02  Richard Henderson  <rth@cygnus.com>
18160
18161         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
18162         -mcpu parsing code.
18163         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
18164         * alpha.md (all fp insns): Likewise.
18165
18166 1999-08-02  Nick Clifton  <nickc@cygnus.com>
18167
18168         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
18169         already defined.
18170
18171 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
18172
18173         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
18174         pic_load_label generator directly.
18175         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
18176         No longer a named pattern.
18177
18178 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
18179
18180         * explow.c (force_reg): Call force_operand if X does not
18181         satisfy general_operand.
18182
18183 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
18184
18185         * fix-header.c (main): When testing for CONTINUED, use string
18186         equality, not pointer equality.
18187
18188 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
18189
18190         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
18191
18192 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
18193
18194         * cse.c (cse_insn): Fix loop which deletes insns after a jump
18195         that has become an unconditional jump.
18196
18197         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
18198         (output_function_epilogue): Similarly.
18199
18200 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18201
18202         * tree.h (init_dummy_function_start): Declare.
18203
18204 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18205
18206         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
18207         last_expr_type, last_expr_value, block_start_count, block_stack,
18208         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
18209         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
18210         dynamically in stmt elt of struct function for each function.
18211         (struct nesting): Rename function_call_count elt to n_function_calls,
18212         target_temp_slot_level to block_target_temp_slot_level.  All users
18213         changed.
18214         (struct stmt_status): New structure definition.
18215         Add many accessor macros for stmt_status elements which previously
18216         were global variables.
18217         (init_stmt_for_function): Allocate stmt elt for current_function.
18218         Reflect that block_start_count was renamed to
18219         current_block_start_count.
18220         (save_stmt_status, restore_stmt_status): Delete functions.
18221         (preserve_subexpressions_p): Don't access loop_stack when outside
18222         a function.
18223         (expand_start_bindings): Reflect that block_start_count was renamed to
18224         current_block_start_count.
18225         (expand_fixup): Likewise.
18226         (expand_decl): Don't access block_stack when outside a function.
18227         (expand_decl_cleanup): Likewise.
18228         (expand_dcc_cleanup): Likewise.
18229         (expand_dhc_cleanup): Likewise.
18230         (expand_anon_union_decl): Likewise.
18231         (set_file_and_line_for_stmt): New function.
18232         (in_control_zone_p): New function.
18233
18234         * function.h (struct function): Add new elt stmt.
18235         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
18236         case_stack, nesting_stack, nesting_depth, block_start_count,
18237         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
18238         emit_lineno, goto_fixup_chain.
18239         (save_eh_status, restore_eh_status, save_stmt_status,
18240         restore_stmt_status): Delete declarations.
18241         * function.c (push_function_context_to): Don't call save_stmt_status.
18242         (pop_function_context_to): Don't call restore_stmt_status.
18243         * tree.h (in_control_zone_p): Declare.
18244         * rtl.h (set_file_and_line_for_stmt): Declare.
18245
18246         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
18247         call set_file_and_line_for_stmt.
18248
18249 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
18250
18251         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
18252         Also update copyright.
18253
18254 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18255
18256         * c-pragma.c: Don't include "except.h".
18257         * emit-rtl.c: Likewise.
18258         * stor-layout.c: Likewise.
18259         * tree.c: Likewise.
18260         * varasm.c: Likewise.
18261
18262         * flow.c: Include "function.h".
18263         * tree.h (init_dummy_function_start): Declare new function.
18264
18265         * except.h (struct eh_status): New structure.
18266         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
18267         been included.
18268         (eh_return_stub_label, ehstack, catchstack, ehqueue,
18269         catch_clauses, false_label_stack, caught_return_label_stack,
18270         protect_list, current_function_ehc): Add accessor macros for the
18271         corresponding fields in current_function->eh; delete declarations
18272         for all items that used to be declared here.
18273         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
18274         catch_clauses, false_label_stack, caught_return_label_stack,
18275         protect_list, current_function_ehc): Delete variables.
18276         (init_eh_for_function): Allocate current_function->eh.
18277         (save_eh_status, restore_eh_status): Delete functions.
18278
18279         * function.h (struct function): Add fields next_global and eh.
18280         Delete all exception handling related fields.
18281         * function.c (current_function): New variable.
18282         (all_functions): New variable.
18283         (push_function_context_to): Don't allocate a struct function,
18284         use current_function instead.  Call init_dummy_function_start when
18285         outside a function.  Clear current_function before returning.
18286         (pop_function_context_from): Restore current_function.
18287         Don't free the restored struct function.
18288         (prepare_function_start): New function.
18289         (init_dummy_function_start): New function.
18290         (init_function_start): Break out some code into prepare_function_start
18291         and call it here.
18292
18293         * stmt.c (save_stmt_status): Don't call save_eh_status.
18294         (restore_stmt_status): Don't call restore_eh_status.
18295
18296         * Makefile.in: Update dependencies.
18297
18298 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
18299
18300         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
18301         of depending on a magic constant value.  Update comments.
18302         (hppa_expand_prologue): Similarly.
18303
18304         * pa.md (reload_indi, reload_outdi): Allow any register for the
18305         original reload register.
18306
18307 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
18308
18309         * cccp.c (print_help): Change marcos to macros.
18310
18311 1999-07-30  Richard Henderson  <rth@cygnus.com>
18312
18313         * c-typeck.c (initializer_constant_valid_p): Move ...
18314         * c-common.c (initializer_constant_valid_p): ... here.  Use
18315         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
18316         of label addresses.
18317         * c-common.h (initializer_constant_valid_p): Declare.
18318         * c-tree.h (initializer_constant_valid_p): Remove.
18319
18320 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
18321
18322         * config/i386/sol2-c1.asm: Align the stack.
18323         * config/i386/sol2-gc1.asm: Likewise.
18324
18325 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
18326
18327         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
18328         -Asparclite for sparc86x.
18329         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
18330         sparc86x.
18331         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
18332
18333 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
18334
18335         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
18336         the user if using the non-default arch size in BI_ARCH configuration.
18337         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
18338
18339         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
18340         Fix patterns so that they actually match.
18341         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
18342         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
18343         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
18344         TARGET_HARD_MUL32.
18345         (mulsidi3): Reflect this in the expand.
18346         (smulsi3_highpart): Only on TARGET_ARCH32.
18347         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
18348         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
18349         (umulsidi3): Reflect this in the expand.
18350         (umulsi3_highpart): Only on TARGET_ARCH32.
18351         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
18352         don't require g0 to be zero.
18353         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
18354         ({,u}divsi3): New expands.
18355         ({,u}divsi3_sp64): New patterns.
18356         (after lshrdi3_v8plus): Four new patterns to help combiner
18357         optimizing nested mixed mode shifts.
18358
18359         * config/sparc/sparc.c (sparc_override_options): Use deprecated
18360         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
18361         speed things up. Don't use them by default on plain v9 in 64bit
18362         mode, according to what SPAMv9 sais.
18363
18364         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
18365         top 32 bits of %[og][0-7] in signal handlers.
18366         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
18367
18368 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
18369
18370         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
18371         (ashlsi3): Corresponding changes.
18372
18373         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
18374
18375 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
18376
18377         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
18378
18379 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18380
18381         * arm.h (Hint): Delete macro.
18382         Substitute HOST_WIDE_INT for Hint in some prototypes.
18383         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
18384
18385 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
18386
18387         * builtins.c (expand_builtin_setjmp): Use force_operand to
18388         make sure that the buffer address is in a suitable form to be
18389         passed to force_reg.
18390
18391 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
18392
18393         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
18394         them here.
18395
18396 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
18397
18398         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
18399         proper mode in the condition string.
18400         (icacheflush, dcacheflush): Remove modes from match_operands.
18401
18402         * pa.c (emit_move_sequence): Always convert scratch_reg to the
18403         proper mode before using it.
18404
18405         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
18406         pair.
18407
18408         * pa.c (store_reg): Do not call add_high_const generator directly.
18409         (load_reg, set_reg_plus_d): Likewise.
18410         * pa.md (add_high_const): No longer a named pattern.
18411
18412         * pa.c (legitimize_address): Consistently use Pmode rather than
18413         SImode.  Do not call gen_pic2_highpart directly anymore.
18414         * pa.md (pic2_highpart): No longer a named pattern.
18415         (pic2_lo_sum): Similarly.  Reformat to make more readable.
18416
18417         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
18418         needed.
18419
18420         * README: Update.
18421
18422 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
18423
18424         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
18425
18426 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
18427
18428         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
18429         and tag the spill mems.
18430         (hppa_va_start): New.
18431         (hppa_va_arg): New.
18432         * pa.h (EXPAND_BUILTIN_VA_START): New.
18433         (EXPAND_BUILTIN_VA_ARG): New.
18434
18435 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
18436
18437         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
18438         and tag the spill mems.
18439         (mn10300_va_start): New.
18440         (mn10300_va_arg): New.
18441         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
18442         (EXPAND_BUILTIN_VA_ARG): New.
18443
18444 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
18445
18446         * mn10200.c (mn10200_va_arg): New.
18447         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
18448
18449 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
18450
18451         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
18452         rather than play with TREE_INT_CST_LOW.
18453
18454 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
18455
18456         * config/arm/telf.h: Include dbxelf.h.
18457         (CPP_PREDEFINES): Only define if not already defined.
18458         (ASM_IDENTIFY_GCC): Likewise.
18459         (SUBTARGET_EXTRA_SECTIONS): Likewise.
18460         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
18461         * config/arm/thumb.h (LINK_SPEC): Only define if not already
18462         defined.
18463         (DBX_DEBUGGING_INFO): Don't define.
18464         * config/arm/linux-telf.h: New file.
18465         * config/arm/linux-tgas.h: New file.
18466         * config/arm/t-thumb-linux: New file.
18467         * config/arm/uclinux-elf.h: New file.
18468         * config/arm/uclinux-telf.h: New file.
18469         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
18470         thumb-*-uclinux): New targets.
18471         * configure: Regenerate.
18472
18473 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
18474
18475         * pa.md (post_store, pre_load): New expanders.
18476         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
18477         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
18478         need to directly generate RTL for them.
18479         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
18480         changes.
18481
18482 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
18483
18484         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
18485         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
18486         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
18487         (secndary_reload_class): Make TARGET_ELF conditional compile.
18488         (print_operand_address): Similar.
18489         (output_toc): Print all values as hex.
18490         (get_issue_rate): Rearrange and add RS64A and PPC630.
18491         * rs6000.h (processor_type): Add RS64A and PPC630.
18492         (PROCESSOR_POWERPC64): New.
18493         (PROMOTE_MODE): Use word_mode.
18494         (RTX_COSTS): Add RS64A and PPC630.
18495         * rs6000.md (scheduling information): Add lmul and ldiv
18496         representing 64-bit integer multiply and divide.  Add rs64a and
18497         PPC630 information.
18498         (ashldi3): Add support for "rldic" instruction.
18499         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
18500
18501 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
18502
18503         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
18504         instead of V8 for sparclite86x in cpu_table.
18505
18506 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18507
18508         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
18509         output_file_directive.
18510
18511 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
18512
18513         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
18514         tree for op1, not the rtl.
18515
18516 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
18517
18518         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
18519         to m88k_va_start, leaving only the register spill.
18520         (m88k_build_va_list): New.
18521         (m88k_va_start): New.
18522         (m88k_va_arg): New.
18523         * m88k.h (BUILD_VA_LIST_TYPE): New.
18524         (EXPAND_BUILTIN_VA_START): New.
18525         (EXPAND_BUILTIN_VA_ARG): New.
18526
18527 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
18528
18529         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
18530         Rename from expand_builtin_saveregs.
18531         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
18532
18533 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
18534
18535         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
18536         for the register spill block.
18537         (i960_build_va_list): New.
18538         (i960_va_start): New.
18539         (i960_va_arg): New.
18540         * i960.h (BUILD_VA_LIST_TYPE): New.
18541         (EXPAND_BUILTIN_VA_START): New.
18542         (EXPAND_BUILTIN_VA_ARG): New.
18543         * i960.md (store_multiple): Use change_address on individul mems.
18544
18545 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
18546
18547         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
18548         an ARRAY_TYPE.
18549         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
18550         (expand_builtin_va_end): Evaluate arg for side effects.
18551         * c-common.c (c_common_nodes_and_builtins): Construct a
18552         va_list_arg_type_node to handle array decomposition to pointer.
18553
18554 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
18555
18556         * except.c (start_dynamic_cleanup): Use force_operand on the
18557         buffer's address.
18558
18559 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
18560
18561         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
18562         * c4x.c (c4x_va_arg): New.
18563
18564 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
18565
18566         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
18567         has manual_pop set.
18568
18569 1999-07-26  Nathan Sidwell  <nathan@acm.org>
18570
18571         * eh-common.h (__eh_matcher): Prototype correctly.
18572
18573 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
18574
18575         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
18576         (TARGET_SINGLE_PIC_BASE): Likewise.
18577         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
18578         definitions.
18579         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
18580         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
18581         (TARGET_OPTIONS): Add -mpic-register=N.
18582         (OUTPUT_INT_ADDR_CONST): New macro.
18583         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
18584         LEGITIMATE_PIC_OPERAND_P): Likewise.
18585         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
18586         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
18587         output_addr_const directly.
18588         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
18589         ARM port.
18590         (thumb_pic_register, thumb_pic_register_string): Declare.
18591
18592         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
18593         from arm.c.
18594         (label_mentioned_p): New function: Imported from arm.c.
18595         (legitimize_pic_address): New function: Imported from arm.c.
18596         (is_pic):New function: Imported from arm.c.
18597         (thumb_finalize_pic):New function: Imported from arm.c.
18598         (add_constant): Cope with PIC constants.
18599         (fixit): Cope with PIC constants.
18600         (output_return): Do not treat the PIC register as live if
18601         TARGET_SINGLE_PIC_BASE is true.
18602         (thumb_function_prologue): Do not treat the PIC register as live if
18603         TARGET_SINGLE_PIC_BASE is true.
18604         (thumb_expand_prologue): Do not treat the PIC register as live if
18605         TARGET_SINGLE_PIC_BASE is true.
18606         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
18607         TARGET_SINGLE_PIC_BASE is true.
18608         (thumb_print_operand): Accept '|'.
18609         (thumb_override_options): Process PIC options.
18610
18611         * config/arm/thumb.md (movsi): Support PIC.
18612         (call_insn): Change "i" constraint to "X".
18613         (call_value_insn): Likewise.
18614         (consttable_4, consttable_8, consttable_end): Set and clear
18615         "making_const_table" as appropriate.
18616         (pic_load_addr, pic_add_dot_plus_four): New insns.
18617
18618         * invoke.texi (Thumb Options): Fix spelling.  Document new
18619         options -msingle-pic-base and -mpic-register=.
18620
18621 1999-07-26  Andrew Haley  <aph@cygnus.com>
18622
18623         * config/m32r/initfini.c (__init): Use a full word immediate for
18624         __fini: this allows it to be placed in any memory region.
18625
18626         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
18627         -mmodel=medium.  This is OK for all memory models.
18628
18629 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
18630
18631         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
18632         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
18633
18634 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
18635
18636         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
18637         defined.
18638
18639         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
18640
18641 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
18642
18643         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
18644         (BUILD_VA_LIST_TYPE): New.
18645         (EXPAND_BUILTIN_VA_START): New.
18646         (EXPAND_BUILTIN_VA_ARG): New.
18647         * i860.c (output_delayed_branch): Disable.
18648         (output_delay_insn): Likewise.
18649         (i860_saveregs): New.
18650         (i860_build_va_list): New.
18651         (i860_va_start): New.
18652         (i860_va_arg): New.
18653         * i860.md: Disable all peepholes using output_delayed_branch.
18654         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
18655
18656 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
18657
18658         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
18659         (BUILD_VA_LIST_TYPE): New.
18660         (EXPAND_BUILTIN_VA_START): New.
18661         (EXPAND_BUILTIN_VA_ARG): New.
18662         * clipper.c (clipper_builtin_saveregs): Only dump registers.
18663         Return the address of the save area.
18664         (clipper_build_va_list): New.
18665         (clipper_va_start): New.
18666         (clipper_va_arg): New.
18667
18668 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
18669
18670         * arc.h (EXPAND_BUILTIN_VA_START): New.
18671         (EXPAND_BUILTIN_VA_ARG): New.
18672         * arc.c (arc_setup_incoming_varargs): Set alias set of
18673         varargs save area.
18674         (arc_va_start): New.
18675         (arc_va_arg): New.
18676
18677 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
18678
18679         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
18680         (BUILD_VA_LIST_TYPE): New.
18681         (EXPAND_BUILTIN_VA_START): New.
18682         (EXPAND_BUILTIN_VA_ARG): New.
18683         * alpha.c (alpha_builtin_saveregs): Delete.
18684         (alpha_build_va_list): New.
18685         (alpha_va_start): New.
18686         (alpha_va_arg): New.
18687
18688 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
18689
18690         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
18691         column zero.
18692         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
18693         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
18694
18695         * gcc.texi: More changes related to list conversion.
18696         * invoke.texi: Likewise.
18697
18698 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
18699
18700         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
18701         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
18702         (expand_builtin_next_arg): Accept ARGLIST not EXP.
18703         (stabilize_va_list): New function.
18704         (std_expand_builtin_va_start): New function.
18705         (expand_builtin_va_start): New function.
18706         (get_varargs_alias_set): New function.
18707         (std_expand_builtin_va_arg): New function.
18708         (expand_builtin_va_arg): New function.
18709         (expand_builtin_va_end): New function.
18710         (expand_builtin_va_copy): New function.
18711         (expand_builtin): Call them.
18712         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
18713         __builtin_{varargs_start,stdarg_start,end,copy}.
18714         (build_va_arg): New function.
18715         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
18716         (build_va_arg): Declare.
18717         * c-decl.c (ptr_type_node, va_list_type_node): New.
18718         * c-parse.gperf (__builtin_va_arg): New.
18719         * c-parse.in (VA_ARG): New token.
18720         (unary_expr): Recognize it.
18721         * expr.c (expand_expr): Expand VA_ARG_EXPR.
18722         * expr.h (std_expand_builtin_va_start): Declare.
18723         (std_expand_builtin_va_arg): Declare.
18724         (expand_builtin_va_arg): Declare.
18725         (get_varargs_alias_set): Declare.
18726         * tree.def (VA_ARG_EXPR): New.
18727         * tree.h (BUILT_IN_VARARGS_START): New.
18728         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
18729         (ptr_type_node, va_list_type_node): Declare.
18730         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
18731         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
18732         * m88k.h, m88k.c: Likewise.
18733         * mn10300.h, mn10300.c: Likewise.
18734         * pa.h, pa.c: Likewise.
18735         * rs6000.h, rs6000.c: Likewise.
18736         * sh.h, sh.c: Likewise.
18737         * sparc.h, sparc.c: Likewise.
18738
18739         * emit-rtl.c (operand_subword): Copy alias set.
18740         (change_address): Likewise.
18741
18742 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
18743
18744         * pa.c (compute_frame_size): Scan all the used callee saved registers,
18745         not just the first one.
18746
18747 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
18748
18749         * config/arm/arm.h (TARGET_SWITCHES): Add
18750         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
18751         (TARGET_OPTIONS): Add -mpic-register=.
18752         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
18753         (arm_pic_register_string): Declare.
18754         (NEED_PLT_GOT): Delete, replace with ...
18755         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
18756         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
18757         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
18758         * config/arm/arm.c (arm_override_options): Add new option
18759         -mpic-register=N.
18760         (arm_pic_register_string): New variable.
18761         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
18762         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
18763         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
18764         (output_return_instruction): Likewise.
18765         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
18766         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
18767         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
18768
18769         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
18770         mention of -msched-prolog.  Document new options -msingle-pic-base
18771         and -mpic-register=.
18772
18773 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
18774
18775         * haifa-sched.c (reemit_notes): Tidy.
18776         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
18777         haifa's routine.
18778
18779 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
18780
18781         * explow.c (trunc_int_for_mode): New function.
18782         (plus_constant_wide): Use it.
18783         * combine.c (simplify_and_const_int): Likewise.
18784         (merge_outer_ops): Likewise.
18785         (simplify_shift_const): Likewise.
18786         * cse.c (simplify_unary_operation): Likewise.
18787         (simplify_binary_operation): Likewise.
18788         * emit-rtl.c (operand_subword): Likewise.
18789         * rtl.h: Declare it.
18790
18791 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18792
18793         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
18794         (use NUM_REGS instead of NUM_INTS).
18795
18796 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18797
18798         * builtins.c: New file.
18799         * expr.c (saveregs_value, apply_args_value):  Delete definition,
18800         moved into builtins.c.
18801         (string_constant): No longer static.
18802         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
18803         apply_args_size, apply_result_size, result_vector,
18804         expand_builtin_apply_args, expand_builtin_apply,
18805         expand_builtin_return): Delete functions, moved into builtins.c.
18806         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
18807         * expr.h (saveregs_value, apply_args_value): Declare variables.
18808         (expand_builtin, string_constant): Declare functions.
18809         * Makefile.in: Update to build builtin.o.
18810
18811 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
18812
18813         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
18814         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
18815         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
18816         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
18817         false.
18818         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
18819         Define to zero.
18820
18821 1999-07-21  Michael Meissner  <meissner@cygnus.com>
18822
18823         * print-rtl.c (print_rtx): Print the names of the virtual
18824         registers.
18825
18826 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
18827
18828         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
18829         introduced in previous delta.
18830
18831 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18832
18833         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
18834         to avoid name clash.
18835
18836 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18837
18838         * c-lex.c (yylex) : Correct the test for overflow when lexing
18839         integer literals.
18840
18841 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
18842
18843         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
18844         (adjust_priority): Always call ADJUST_PRIORITY.
18845         (schedule_insn): Only put insns into the ready at cost 0.
18846         (schedule_block): Remove redundant initial sort.  Give clock_var
18847         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
18848         is not 0.
18849         * tm.texi (MD_SCHED_REORDER): Update docs.
18850
18851         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
18852         * sparc.c (ultra_reorder_called_this_block): Delete.
18853         (ultrasparc_sched_init): Don't set it.
18854         (ultrasparc_sched_reorder): Don't check it.
18855
18856 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
18857
18858         * rs6000.h (struct rs6000_args): Add sysv_gregno.
18859         * rs6000.c (init_cumulative_args): Init sysv_gregno.
18860         (function_arg_boundary): Align DFmode.
18861         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
18862         to get fp reg and stack overflow correct.
18863         (function_arg): Likewise.
18864         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
18865         (setup_incoming_varargs): Restructure for ABI_V4; use
18866         function_arg_advance to skip final named argument.
18867         (expand_builtin_saveregs): Properly unskip the last integer arg
18868         when doing varargs.  Adjust overflow location calculation.
18869
18870         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
18871         explicitly unsigned.
18872         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
18873         (__VA_GP_REGSAVE): Similarly.
18874         (__va_longlong_p): Delete.
18875         (__va_arg_type_violation): New declaration.
18876         (va_arg): Restructure.  Flag promotion errors.  Align double.
18877         TFmode passed by reference.
18878
18879         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
18880         in the HOST_BITS_PER_WIDE_INT > 32 case.
18881
18882 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
18883
18884         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
18885
18886 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
18887
18888         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
18889         * toplev.c (documented_lang_options): Add -fpreprocessed.
18890         * cpplib.h (struct cpp_buffer): Add preprocessed.
18891         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
18892         (cpp_start_read): Don't expand macros or emit an initial #line
18893         directive if -fpreprocessed.
18894
18895 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
18896
18897         * cpplib.h (struct cpp_buffer): Added manual_pop for
18898         better C++ tokenization.
18899         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
18900         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
18901         * c-common.c (cpp_token): Make non-static.
18902
18903 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18904
18905         * c-common.h: New file.
18906         * c-common.c (permanent_obstack): Delete unused declaration.
18907         (c_global_trees): New array.
18908         (c_common_nodes_and_builtins): New function; split off common code
18909         from init_decl_processing in both c-decl.c and cp/decl.c.
18910         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
18911         c_global_trees and accessor macros defined in c-common.h.
18912         Include c-common.h.
18913         * c-decl.c: Delete definitions for tree nodes that were replaced by
18914         c_global_trees.
18915         (init_decl_processing): Build void_list_node.
18916         Call c_common_nodes_and_builtins; delete code to generate the common
18917         builtins here.
18918         * objc/objc-act.c (build_module_descriptor): Rename variable
18919         void_list_node to avoid clash with c-common.h.
18920
18921         * Makefile.in: Update dependencies.
18922         * objc/Make-lang.in: Likewise.
18923
18924 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
18925
18926         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
18927         (UNIQUE_SECTION_P): Likewise.
18928         (UNIQUE_SECTION): Likewise.
18929
18930 1999-07-19  Linas Vepstas  <linas@linas.org>
18931
18932         * config/i370/README: New file.
18933         * config/i370/linux.h: New file.
18934         * config/i370/mvs.h: New file.
18935         * config/i370/oe.h: New file.
18936         * config/i370/t-linux: New file.
18937         * config/i370/t-mvs: New file.
18938         * config/i370/t-oe: New file.
18939         * config/i370/x-oe: New file.
18940         * config/i370/xm-linux.h: New file.
18941         * config/i370/xm-mvs.h: New file.
18942         * config/i370/xm-oe.h: New file.
18943
18944         * i370.c (label_node_t): Add first_ref_page, label_addr,
18945         label_first_ref, label_last_ref members.
18946         (mvs_need_base_reload): Renamed from mvs_label_emitted.
18947         (MAX_MVS_LABEL_SIZE): Define.
18948         (MAX_LONG_LABEL_SIZE): Define.
18949         (alias_node_t, alias_anchor, alias_number): New.
18950         (mvs_function_table): Reorder for EBCDIC.
18951         (ascebc, ebcasc): Unconditionally define.
18952         (i370_branch_dest, i370_branch_length): New functions.
18953         (i370_short_branch, i370_label_scan): New functions.
18954         (mvs_get_label): Renamed from mvs_add_label.  Search for
18955         an existing label before creating a new one.
18956         (mvs_add_label): New function.
18957         (mvs_get_label_page): New function.
18958         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
18959         over the entire list.
18960         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
18961         (mvs_check_page) [TARGET_ELF_ABI]: New function.
18962         (mvs_add_alias, mvs_need_alias): New functions.
18963         (mvs_get_alias, mvs_check_alias): New functions.
18964         (handle_pragma): New function.
18965         (mvs_function_check): New function.
18966         (unsigned_jump_follows_p): Search harder.
18967         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
18968         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
18969         * i370.h (TARGET_VERSION): Delete.
18970         (CPP_SPEC, CPP_PREDEFINES): Delete.
18971         (mvs_label_emitted): Delete.
18972         (TARGET_EBCDIC): Delete.
18973         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
18974         (HANDLE_PRAGMA): Define.
18975         (HARD_REGNO_NREGS): Handle complex modes.
18976         (HARD_REGNO_MODE_OK): Likewise.
18977         (CLASS_MAX_NREGS): Likewise.
18978         (RET_REG): Likewise.
18979         (EXTRA_CONSTRAINT): Define.
18980         (RETURN_IN_MEMORY): True for DImode.
18981         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
18982         (FUNCTION_PROFILER): Delete.
18983         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
18984         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
18985         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
18986         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
18987         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
18988         (ASM_FILE_START): Add "RMODE ANY".
18989         (ASM_OUTPUT_EXTERNAL): Check for aliases.
18990         (ASM_GLOBALIZE_LABEL): Likewise.
18991         (ASM_OUTPUT_LABELREF): Likewise.
18992         (ASM_OUTPUT_COMMON): Likewise.
18993         (PRINT_OPERAND): Handle 'K', 'W', default.
18994         (PRINT_OPERAND_ADDRESS): New.
18995         (Lots of defines): Add support for TARGET_ELF_ABI.
18996         * i370.md (attr length): New.  Define for all patterns.
18997         (*): Lots of tweeks to assembly output and constraints.
18998
18999 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
19000
19001         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
19002         Disable patterns performing SImode comparisons with SImode values
19003         if TARGET_POWERPC64 and instruction does not sign-extend or does
19004         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
19005         differ for signed quantities.
19006         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
19007         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
19008         (decrement_and_branch_on_count): Add 64-bit variant.
19009
19010 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19011
19012         * final.c (output_asm_insn): When searching for the matching string
19013         for a given dialect, don't run past the end of the list of
19014         alternatives if there are fewer alternatives in the template than
19015         dialects.
19016
19017 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
19018
19019         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
19020         Removed paragraph about compression of files and size limitation,
19021         duplicated in the FAQ.  Use gcc-patches for posting patches.
19022         * gcc.c (main): Updated URL with bug reporting instructions to
19023         gcc.gnu.org.  Removed e-mail address.
19024         * system.h (abort): Likewise.
19025
19026 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19027
19028         * Makefile.in (stmp-multilib-sub): Make the files extracted
19029         from $(LIBGCC1) writable.
19030
19031 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
19032
19033         * config/arm/aout.h: Reformat for improved readability.
19034
19035         * config/arm/arm.h: Reformat for improved readability.
19036         Replace uses of fprintf with asm_fprintf where appropriate.
19037         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
19038         function declaration assembler actions.
19039         (NUM_INTS): New macro: Convert from bytes to words.
19040         (NUM_REGS): New macro: Compute number of registers required to
19041         hold a quanitity of tyep MODE.
19042         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
19043         types.
19044         (NUM_ARG_REGS): New macro: The number of argument registers
19045         available.
19046         (ARG_REGISTER): New macro: Compute the register number of the Nth
19047         argument register.
19048         (LAST_ARG_REGNUM): New macro: The number of the last argument
19049         register.
19050         (SP_REGNUM): New macro: Register number of the stack pointer.
19051         (FP_REGNUM): New macro: Register number of the frame pointer.
19052         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
19053         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
19054         CUMULATIVE_ARGS so that it counts registers not bytes.
19055
19056         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
19057         TARGET_INTERWORK.
19058         Replace uses of fprintf with asm_fprintf where appropriate.
19059         (output_ascii_pseudo_op): Replace with version from thumb.c
19060
19061         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
19062
19063         * config/arm/elf.h (CPP_PREDEFINES): Replace with
19064         SUBTARGET_CPP_SPEC.
19065         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
19066         (ASM_FILE_START): Emit ASM_APP_OFF.
19067
19068 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
19069
19070         * pa.c (compute_frame_size): Round frame according to
19071         STACK_BOUNDARY rather than a hardwired value.
19072
19073         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
19074
19075         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
19076         of "1".
19077         * configure: Rebuilt.
19078
19079         * configure.in (hppa*-*-linux*): New configuration.
19080         * configure: Rebuilt.
19081         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
19082         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
19083         * pa/pa-linux.h: New file.
19084         * pa/t-linux: New file.
19085         * pa/xm-linux.h: New file.
19086
19087         * pa.c (hppa_legitimize_address): Change references from SImode to
19088         either Pmode or word_mode as appropriate.
19089         (emit_move_sequence, store_reg, load_reg): Likewise.
19090         (set_reg_plus_d, hppa_expand_prologue): Likewise.
19091         (output_mul_insn): Likewise.
19092         * pa.h (PROMOTE_MODE): Likewise.
19093         (INITIALZE_TRAMPOLINE): Likewise.
19094         (Pmode): Define to word_mode.
19095
19096         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
19097         value of 4.  Allocate 8 bytes for each FP register save.
19098         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
19099         value of 4.
19100         (hppa_expand_prologue): Likewise.
19101         * pa.h (PROMOTE_MODE): Likewise.
19102         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
19103         (FUNCTION_ARG_BOUNDARY): Likewise.
19104
19105         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
19106
19107         * pa.c (out_of_line_prologue_epilogue): Delete.
19108         (override_options): Remove -mspace related code.
19109         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
19110         (compute_frame_size): Only allocate space for register that
19111         actually need to be saved.
19112         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
19113         (TARGET_SWITCHES): Remove -mspace, -mno-space
19114         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
19115         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
19116         * pa/ee.asm, pa/ee_fp.asm: Delete.
19117
19118         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
19119
19120         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
19121         directive in column zero.
19122
19123 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
19124
19125         * m68k.c (output_function_prologue): Fix computation of save mask
19126         when generating PIC code.
19127
19128 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
19129
19130         * tree.c (build_type_attribute_variant): Move current_obstack restore
19131         after build_qualified_type call.
19132
19133 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
19134
19135         * configure.in: Use t-iris6, even with GNU LD.
19136         * config/mips/iris6gld.h: Fix typo in linker spec.
19137         * config/mips/t-iris6gld: Remove.
19138
19139 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
19140
19141         * rs6000.md (insv, extzv): Remove SImode dependence in named
19142         patterns.  Explicitly generate DImode RTL if PowerPC64 and
19143         operand is DImode.
19144         (insvdi): Reverse start and size in instruction template.
19145
19146 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
19147
19148         * invoke.texi: Typo fixes.
19149
19150 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
19151
19152         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
19153         handle at this time instead of silently generating incorrect code.
19154         (gen_imagpart): Likewise.
19155
19156         * reload.c (find_reloads): Emit a USE for a pseudo register without
19157         a hard register if we could not create an optional reload for the
19158         pseudo.
19159
19160 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19161
19162         * c-typeck.c (output_init_element, process_init_element):
19163         When advancing constructor_unfilled_fields for a RECORD_TYPE,
19164         check for nameless bit fields.
19165
19166 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
19167
19168         * regclass.c (scan_one_insn): Notice subregs that change the
19169         size of their operand.
19170         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
19171
19172 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
19173
19174         * configure.in (alpha*-*-*): Include alpha/t-ieee.
19175         * configure: Rebuilt.
19176         * alpha/t-ieee: New file.
19177
19178 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
19179
19180         * rs6000.c (find_addr_reg): Do not select r0 as an address
19181         register.
19182
19183 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
19184
19185         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
19186
19187 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
19188
19189         * rs6000.md (movsf): Do not force easy FP constants into memory.
19190
19191         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
19192         immed_double_const to ensure they are properly truncated then
19193         sign extended.
19194
19195 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
19196
19197         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
19198         always unless NO_DEBUG is used.  Compile this code
19199         unconditionally.
19200         (replace_symbols_in_block): Compile it unconditionally.
19201
19202 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
19203
19204         * configure.in (i?86-*-elf*): New target.
19205         * configure: Rebuilt.
19206         * i386/i386elf.h, i386/t-i386elf: New files.
19207
19208 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
19209
19210         * toplev.c (main): Don't complain about saying -gdwarf.
19211         (rest_of_compilation): Remove redundant code.
19212
19213 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
19214
19215         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
19216
19217 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
19218
19219         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
19220         "Li960R:", to avoid name clash.
19221
19222 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19223
19224         * loop.c (check_dbra_loop): When reversing a loop, delete all
19225         REG_EQUAL notes referencing the reversed biv except those which are
19226         for a giv based on it.
19227
19228 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
19229
19230         * version.c: Drop "gcc-" prefix from version #.
19231
19232 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
19233
19234         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
19235         the label if we're being verbose.
19236
19237 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
19238
19239         * m68k.c (output_function_prologue): Add pic register to mask
19240         if live and flag_pic.
19241         (output_function_epilogue): Likewise.
19242
19243 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
19244
19245         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
19246         directives in column zero.
19247
19248         * pa/elf.h (ASM_FILE_START): Define.
19249         * pa/som.h (ASM_FILE_START): Include .level directives.
19250         * pa/hpux10.h (ASM_FILE_START): Delete.
19251         * pa/hpux11.h (ASM_FILE_START): Delete.
19252
19253         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
19254
19255 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19256
19257         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
19258         when reload_out equals reload_in.
19259
19260 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
19261
19262         * invoke.texi (Spec Files): New node: Describe the contents of
19263         spec files.
19264
19265 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
19266
19267         * invoke.texi (DEC Alpha Options): Put @end table at
19268         beginning of line, to avoid confusing texi2html.
19269
19270 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
19271
19272         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
19273         introduced in previous delta.
19274
19275 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
19276
19277         * reload1.c (gen_reload): When synthesizing a 3 operand add
19278         sequence, improve test for when to reload OP1 into the reload
19279         register instead of OP0.
19280
19281 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
19282
19283         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
19284
19285 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
19286
19287         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
19288         string literal.
19289
19290 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
19291
19292         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
19293         (va_dcl): Use __builtin_va_alist_t.
19294
19295 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
19296
19297         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
19298         on the permanent_obstack.
19299         * dwarfout.c (output_type): Likewise.
19300
19301 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
19302
19303         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
19304         Merged from c-typeck.c and cp/typeck.c.
19305         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
19306         Merged into c-common.
19307
19308 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
19309
19310         * c-lex.c (errorcount): Declare it.
19311         (finish_parse): Update errorcount when using CPPLIB.
19312
19313 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
19314
19315         * fixinc/inclhack.def(end_else_label): Double the backslash so
19316         sed gets a chance to see it.
19317         * fixinc/inclhack.sh: regen
19318         * fixinc/fixincl.x: regen
19319
19320 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
19321
19322         Add framework to support armv5 architecture when it becomes
19323         available:
19324
19325         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
19326         (arm_arch5): New variable.
19327         (all_architectures): Add armv5 line.
19328         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
19329         -march=armv5 is specified on the command line.
19330         (arm_arch5): Export this variable.
19331         * invoke.texi: Document new string accepted by -march= switch for
19332         ARM ports.
19333
19334         * config/arm/arm.h: Replace use of constant 12 as a register
19335         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
19336         * config/arm/arm.c: Replace use of constant 12 as a register
19337         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
19338
19339         * config/arm/elf.h: Tidy up.
19340         * config/arm/coff.h: Tidy up.
19341
19342 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
19343
19344         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
19345         * gcc/config/mips/t-iris6gld: New file.
19346         * gcc/config/mips/iris6gld.h: Likewise.
19347
19348 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
19349
19350         * c-decl.c (widest_integer_literal_type_node,
19351         widest_unsigned_literal_type) : New.
19352         (init_decl_processing): Handle/use the two new types.
19353         * c-common.c (type_for_size,type_for_mode) : Same.
19354         * c-lex.c (yylex) : Same.
19355         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
19356         Same.
19357         * c-tree.h (widest_integer_literal_type_node,
19358         widest_unsigned_literal_type) : New.
19359
19360 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
19361
19362         * dwarfout.c (field_byte_offset): Correctly compute the object's
19363         byte offset for the first bit of a field which crosses an alignment
19364         boundary on a !BYTES_BIG_ENDIAN target.
19365
19366 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
19367
19368         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
19369         ntohs.
19370
19371 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
19372                           Jeff Law <law@cygnus.com>
19373
19374         * ginclude/varargs.h (va_dcl): Use word_mode for type of
19375         __builtin_va_list.
19376
19377         * except.c: Include intl.h.
19378         (expand_eh_return): Set current_function_cannot_inline.
19379         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
19380         * function.h (struct function): Add eh_return_stub_label.
19381         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
19382         * Makefile.in (except.o): Depend on intl.h.
19383
19384 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
19385
19386         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
19387         same as offsettable in cases 1 and 2.
19388
19389 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
19390
19391         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
19392         (extlh, extwh): Likewise.
19393
19394 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
19395
19396         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
19397
19398 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
19399
19400         * configure.in: Add arm-pe and thumb-pe targets.
19401         * configure: Regenerate.
19402
19403         * thumb.c (arm_naked_function_p): New function: Determines if
19404         a function is naked (has no gcc generated prologue/epilogue).
19405         (is_called_in_ARM_mode): Return true if the func has the
19406         interfacearm attribute.
19407         (output_return): Do not generate a return for naked functions.
19408         (thumb_function_prologue): Do not generate a prologue for
19409         naked functions.
19410         (thumb_expand_prologue): Do not generate a prologue for naked
19411         functions.
19412         (thumb_expand_epilogue): Do not generate an epilogue for naked
19413         functions.
19414         (arm_valid_machine_decl_attribute): New function, copied from
19415         arm.c:  Permit naked and interfacearm attributes.
19416
19417         * config/arm/pe.c: New file: Support code for arm-pe target.
19418         * config/arm/pe.h: New file: Header file for arm-pe target.
19419         * config/arm/tpe.h: New file: Header file for thumb-pe target.
19420         * config/arm/t-thumb-pe: New file: Makefile fragment for
19421         thumb-pe target.
19422
19423 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
19424
19425         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
19426         -fPIC or -fpic is specified.
19427
19428 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
19429
19430         * expr.c (emit_block_move): Use copy_to_mode_reg for
19431         !TARGET_MEM_FUNCTIONS case too.
19432
19433         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
19434         appropriate.
19435         * configure: Rebuilt.
19436         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
19437         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
19438         definitions made redundant by dbxelf.h inclusion.  Delete
19439         lots of definitions related to assembly output that are
19440         specific to the SOM object format.
19441         * pa.c (output_function_prologue): Do not emit the function's
19442         name for OBJ_ELF.
19443         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
19444         * pa-pro.h: Deleted.
19445         * som.h: New file with SOM specific definitions.
19446         * elf.h: New file with ELF specific definitions.
19447
19448         * elfos.h (const_section): Output a tab before assembler directives.
19449         (ctors_section, dtors_section): Likewise.
19450         (ASM_OUTPUT_SECTION_NAME): Likewise.
19451
19452         * pa/pa1.h: Delete unused file.
19453
19454 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
19455
19456         * configure.in (hppa*-hp-hpux11*): New configuration.
19457         * configure: Rebuilt.
19458         * pa/pa-hpux11.h: New file.
19459         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
19460         command line.
19461
19462         * mips.md (leasi, leadi): New patterns.
19463
19464         * expr.c (emit_block_move): Properly handle case where one of the
19465         block move arguments has a queued increment or decrement.
19466         (clear_storage): Similarly.  Fix formatting goof.
19467
19468 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
19469
19470         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
19471         semicolon from the BSD VA_LIST replacement expression.
19472
19473         * fixinc/inclhack.sh: regen
19474         * fixinc/fixincl.x: regen
19475
19476         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
19477         now use the fixincl program.
19478
19479 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
19480
19481         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
19482         case.  Also make the PIC register call_used.
19483
19484         * m68k.h (FINALIZE_PIC): Delete.
19485         * m68k.c (finalize_pic): Delete.
19486
19487 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
19488
19489         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
19490         to memory.
19491
19492 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
19493
19494         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
19495
19496 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
19497
19498         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
19499
19500 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
19501
19502         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
19503
19504 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
19505
19506         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
19507
19508 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
19509
19510         * rs6000.c (output_toc): Always use hex values for floating-point
19511         constants.  Store single-precision values in upper-half of TOC
19512         entry in 64-bit mode.
19513         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
19514         to final constraints.
19515         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
19516         (fctiwz): Improve accuracy of RTL for pattern.
19517
19518 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
19519
19520         * expr.c (expand_expr): Allow RTL_EXPR's through the
19521         MAX_INTEGER_COMPUTATION_MODE checks.
19522
19523 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
19524
19525         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
19526         such that MASK_SUPPORT_ARCH is not negative.
19527
19528 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
19529
19530         * loop.c (verify_dominator): Properly handle ADDR_VEC and
19531         ADDR_DIFF_VEC insns that appear inside loops.
19532
19533 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
19534                           Jeff Law <law@cygnus.com>
19535
19536         * rs6000.md (movdf_hardfloat32): Revert previous patch.
19537         Handle LO_SUM the same as offsettable in cases 1 and 2.
19538         * rs6000.c (find_addr_reg): Revert previous patch.
19539
19540 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
19541
19542         * system.h (strstr): New external function declaration.
19543         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
19544         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
19545         * config.in, configure: Rebuilt.
19546
19547 1999-06-24  Tom Tromey  <tromey@cygnus.com>
19548
19549         * gcc.c (main): Read user-specified specs files after computing
19550         additional startfile_prefixes.
19551
19552 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
19553
19554         Revert these two patches:
19555
19556         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19557         * loop.c (strength_reduce): When doing biv->giv conversion, update
19558         reg note of NEXT->insn.
19559
19560         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19561         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
19562         reg_biv_class.
19563         (recombine_givs): Set ix field after sorting.
19564
19565 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19566
19567         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
19568         for the parts of an UNSPEC / UNSPEC_VOLATILE.
19569
19570 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
19571
19572         *fixinc/inclhack.def:  Add fix development commentary
19573         (read_ret_type): reactivate and add selection clause
19574         (zzz_*): tweak output file name to match what is used in hackshell.tpl
19575         *fixinc/{fixincl.x|inclhack.sh}: regen
19576
19577 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
19578
19579         * expr.c (expand_expr): STRIP_NOPS before checking against
19580         MAX_INTEGER_COMPUTATION_MODE
19581         (check_max_integer_computation_mode): Likewise.
19582
19583 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
19584
19585         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
19586
19587 1999-06-22  Jim Wilson  <wilson@cygnus.com>
19588
19589         * expr.c (store_expr): When target is a promoted subreg, return a
19590         promoted subreg as a result.
19591
19592 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
19593
19594         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
19595         coding standards.
19596         (dwarf2out_define): Mark unused parameters appropriately.
19597         (gen_unspecified_parameters_die): Ditto.
19598         (gen_subprogram_die): Fix signed/unsigned warnings.
19599         (gen_variable_die): Ditto.
19600
19601 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
19602
19603         * fixinc/inclhack.def(end_else_label): combined else_label
19604         and endif_label and fixed the sed expression.
19605         *fixinc/{fixincl.x|inclhack.sh}: regen
19606
19607 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
19608
19609         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
19610         'x' when handling non-offsettable addresses
19611
19612 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
19613
19614         * final.c (shorten_branches): Don't try to split an insn that has
19615         been deleted.
19616
19617 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
19618
19619         * config/mips/mips.c (symbolic_expression_p): New function.
19620         (mips_select_rtx_section): Put symbolic expressions in the
19621         data section, not the read-only data section.
19622
19623 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
19624
19625         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
19626
19627 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
19628
19629         * collect2.c (main): Log frame table count.
19630         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
19631         (scan_prog_file) [COFF]: Handle frame tables.
19632
19633         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
19634         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
19635         * alpha/elf.h: Undef them again.
19636         * alpha/vms.h: Remove their definitions.
19637
19638 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19639
19640         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
19641         remove the clobber of r0 and change the REG_UNUSED note to
19642         REG_INC.
19643
19644 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
19645
19646         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
19647         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
19648         fits in HOST_WIDE_INT and one uses union to access a long constant
19649         as double.
19650
19651 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
19652
19653         * sparc.c (sparc_override_options): Don't allow profiling for
19654         code models other than medlow.
19655         (sparc_function_profiler): New function from old FUNCTION_PROFILER
19656         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
19657         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
19658         (sparc_block_profiler): Likewise.
19659         (sparc_function_block_profiler_exit): Likewise.
19660         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
19661         (FUNCTION_BLOCK_PROFILER): Likewise.
19662         (BLOCK_PROFILER): Likewise.
19663         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
19664         (MCOUNT_FUNCTION): New.
19665         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
19666         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
19667         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
19668         (MCOUNT_FUNCTION): New.
19669         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
19670         (BLOCK_PROFILER): Delete.
19671         (MCOUNT_FUNCTION): New.
19672
19673 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
19674
19675         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
19676
19677 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
19678
19679         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
19680         Add the macros.
19681
19682         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
19683         Ditto.
19684
19685         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
19686         Ditto.
19687
19688         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
19689         Ditto.
19690
19691 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
19692
19693         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
19694         types.
19695
19696 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
19697
19698         * i386/djgpp.h (LIB_SPEC): New.
19699         (STARTFILE_SPEC): New.
19700
19701         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
19702
19703 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
19704
19705         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
19706         compiler flags.
19707
19708         * system.h (WSTOPSIG): New macro.
19709
19710 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19711
19712         * c-pragma.c (push_alignment): Don't ignore alignments greater than
19713         4 bytes.
19714         (insert_pack_attributes): Take into account member natural
19715         alignment.
19716
19717         * i386/winnt.c (exports_head): New static variable.
19718         (i386_pe_record_exported_symbol): New function.
19719         (i386_pe_asm_file_end): Use.
19720         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
19721         symbols to be emitted at end of assembly.
19722         (ASM_DECLARE_OBJECT_NAME): Likewise.
19723         (ASM_DECLARE_FUNCTION_NAME): Likewise.
19724
19725         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
19726         -iwithprefix.
19727
19728 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
19729
19730         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
19731         in last change.
19732
19733 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
19734
19735         * haifa-sched.c (sched_analyze_1): Use free_list instead of
19736         zapping reg_last_uses directly.
19737         (sched_analyze_2, sched_analyze_insn): Likewise.
19738         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
19739
19740 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
19741
19742         * rs6000.md (movdf_hardfloat32): Use worst case insn length
19743         attributes for cases 1 and 2.
19744
19745 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
19746
19747         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
19748         instead of set.
19749
19750 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
19751
19752         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
19753
19754 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
19755
19756         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
19757         PIC_OFFSET_TABLE_REGNUM for general alloaction.
19758         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
19759         must be stacked if it is used for PIC accesses.
19760         * arm.c (use_return_insn): Handle PIC register specially.
19761         (output_return_instruction): Likewise.
19762         (output_func_{prologue,epilogue}): Likewise.
19763         (output_expand_prologue): Likewise.
19764
19765         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
19766         (*strsi_predec): Renamed from *strqi_predec.
19767         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
19768         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
19769
19770         * arm.c (arm_override_options): Remove warning about PIC code
19771         not being supported.
19772
19773 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
19774
19775         * rs6000.c (find_addr_reg): New function.
19776         * rs6000.h (find_addr_reg): Declare.
19777         (offsettable_addr_operand): Delete.
19778         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
19779         from and stores to GPRs.
19780
19781 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
19782
19783         * alpha.c (alpha_expand_block_move): Use get_insns rather than
19784         gen_sequence as argument to emit_no_conflict_block.
19785
19786 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
19787
19788         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
19789         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
19790         *fixinc/fixincl.x: regen
19791         *fixinc/inclhack.sh: regen
19792
19793 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
19794
19795         * added support for -mpcrel (PC relative addressing for m68k)
19796         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
19797         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
19798         * m68k.c (print_operand_address): Handle 32-bit PIC case.
19799         (comments for general_src_operand): Add some explanation
19800         about EXTRA_CONSTRAINTS.
19801         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
19802         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
19803         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
19804         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
19805         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
19806         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
19807         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
19808         if not already set.
19809         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
19810         * m68k.h (TARGET_PCREL): New target flag.
19811         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
19812         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
19813         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
19814         contains a SYMBOL_REF.  Relax this constraint during reload, since
19815         we want to use the predicates, not reload's built-in concept of a
19816         valid memory address, to control what insns need reloading.
19817         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
19818         operands (essentially 'g', 'm', and 's' under normal circumstances).
19819         * m68k.c (print_operand): Cause printing of pc-relative addresses
19820         to include pc register.
19821         (print_operand_address): Ditto.
19822         (general_src_operand): Accept operands that are not only
19823         general_operands, but are also valid when used as a pc-relative
19824         source.
19825         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
19826         (memory_src_operand): Similar, for memory_operands.
19827         (pcrel_address): New predicate to accept the special case of a
19828         pc-relative address.
19829         * m68k.md (many patterns): Rewrite common SImode, HImode, and
19830         QImode insns to accept *_src_operand instead of *_operand where
19831         pc-relative operands can fit.  For example, a pc-relative operand
19832         can be used as a memory source operand for addsi3, but not as a
19833         memory destination.
19834         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
19835
19836 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
19837
19838         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
19839         .thumb_set pseudo op to mark aliases of thumb functions.
19840
19841 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
19842
19843         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
19844         preference to ASM_OUTPUT_DEF, if it is defined.
19845
19846         * tm.texi: Document new, optional target macro
19847         ASM_OUTPUT_DEF_FROM_DECLS.
19848
19849 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
19850
19851         * fixincludes: ISCNTL patch
19852         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
19853         (dgux_int_varargs): new for DG/UX
19854         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
19855
19856 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
19857
19858         * invoke.texi (ia32 options): Fix typo.
19859
19860 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19861
19862         * loop.c (strength_reduce): When doing biv->giv conversion, update
19863         reg note of NEXT->insn.
19864
19865 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
19866
19867         * loop.c (move_movables): Note issues with replacing REGs with
19868         SUBREGs.
19869         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
19870
19871 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
19872
19873         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
19874
19875         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
19876         the reference to `mcount' was not correct for the ELF on FreeBSD.
19877
19878 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19879
19880         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
19881         reg_biv_class.
19882
19883         (recombine_givs): Set ix field after sorting.
19884
19885 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
19886
19887         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
19888         to safe to extract a subword out of a REG.
19889
19890 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19891
19892         * sh.md (mulsi3): Don't add a no-op move at the end.
19893
19894 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19895
19896         * cse.c (cse_insn): Don't put hard register source into tables for
19897         the last insn of a libcall.
19898
19899 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19900
19901         * loop.c (strength_reduce): Insert sets of derived givs at every
19902         biv increment, even if it's the only one.
19903
19904 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
19905
19906         * dwarfout.c (add_incomplete_type): New fn.
19907         (output_type): Call it.
19908         (retry_incomplete_types): New fn.
19909         (dwarfout_finish): Call it.
19910
19911         From Eric Raskin <ehr@listworks.com>:
19912         (output_type): Output types for bases.
19913
19914 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
19915
19916         * mips.c (mips_output_conditional_branch): Add `break'
19917         between `default' label and `close braces'.
19918
19919 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
19920
19921         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
19922         specifications and make it realistic.
19923         (LIB_SPEC): Likewise.
19924
19925 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
19926
19927         * config/mips/mips.c (mips_secondary_reload_class): Check for
19928         (PLUS (SP) (REG)) and return appropriate register class.
19929         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
19930         Handle (PLUS (SP) (REG)).
19931         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
19932         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
19933         of emit_insn for tablejump.
19934
19935 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
19936
19937         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
19938         asm_fprintf format string by itself.
19939         (output_function_profiler): Likewise.
19940
19941 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
19942
19943         * combine.c (simplify_logical, case AND): Only call
19944         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
19945         or the constant is positive.
19946
19947 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
19948
19949         * configure.in: Fix typo in rs6000-ibm-aix4 case.
19950         * configure: Regenerate.
19951
19952 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
19953
19954         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
19955         require a sub-version #.
19956         * configure: Rebuilt.
19957
19958 1999-06-14  Robert Lipe  (robertlipe@usa.net)
19959
19960         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
19961
19962 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
19963
19964         * c-typeck.c (process_init_element): Detect excess elements in
19965         char array initializer.
19966
19967 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
19968
19969         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
19970
19971 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
19972
19973         * invoke.texi (Option Summary): Add -fpermissive flag.
19974
19975 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
19976
19977         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
19978         that require PIC code sequences.
19979
19980 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
19981
19982         * configure.in: Add new target: thumb-elf.
19983         * configure: Regenerate.
19984         * config/arm/t-thumb-elf: New file: Makefile fragment for
19985         thumb-elf build.
19986         * config/arm/telf.h: New file: Header file for thumb-elf
19987         build.
19988
19989 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
19990
19991         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
19992         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
19993         initializers is some circumstances.
19994
19995         * fixinc/inclhack.def (endif_label): Add additional selector for
19996         more bogus stuff after #endif statements.
19997         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
19998
19999 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
20000
20001         * i386/cygwin.h (SET_ASM_OP): Define.
20002
20003 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
20004
20005         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
20006
20007 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20008
20009         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
20010         latter.
20011
20012         * sh.md (ic_invalidate_line_i): Remove second alternative.
20013
20014 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
20015
20016         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
20017         test for the presence of valid prototypes.  Delete bypass expr.
20018         (ioctl_fix_ctrl): Correct the selection expression.
20019         (no_double_slash): Correct quoting rules
20020         *fixinc/fixincl.x: regen
20021         *fixinc/inclhack.sh: regen
20022
20023 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
20024
20025         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
20026
20027 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20028
20029         * rs6000.md (movsi_got_internal_mem): Delete.
20030         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
20031         (GOT_TOC_REGNUM): Delete.
20032         (PIC_OFFSET_TABLE_REGNUM): Define.
20033         (FINALIZE_PIC): Disable.
20034         * rs6000.c (rs6000_got_register): New code for fixed pic register.
20035         (rs6000_replace_regno): Delete.
20036         (rs6000_finalize_pic): Likewise.
20037         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
20038
20039 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20040
20041         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
20042         is a note; use <= for the compare; advance P while it is
20043         a NOTE.
20044
20045 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
20046
20047         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
20048         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
20049
20050         * varasm.c (remove_from_pending_weak_list): Verify t->name
20051         is non-NULL before passing it to strcmp.
20052
20053 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
20054
20055         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
20056         the typed arguments are not part of a comment
20057         (ioctl_fix_ctrl): Added a purpose comment
20058         *fixinc/fixincl.x: regenerate
20059         *fixinc/inclhack.sh: regenerate
20060
20061 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20062
20063         * invoke.texi: Add C4x invocation docs.
20064
20065 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20066
20067         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
20068         Define new macros.
20069         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
20070         TARGET_EXPOSE_LDP.
20071         (c4x_legitimize_reload_address): New function.
20072         * config/c4x/c4x.md: Update docs.
20073
20074 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
20075
20076         * fixincludes: Avoid removing '.'.
20077         * fixinc/fixinc.svr4: Likewise.
20078         * fixinc/fixinc.winnt: Likewise.
20079         * fixinc/inclhack.tpl: Likewise.
20080         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
20081
20082 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20083
20084         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
20085         pattern.
20086         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
20087
20088 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
20089
20090         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
20091         correctly.
20092
20093 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
20094
20095         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
20096         * configure: Regenerate.
20097
20098 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
20099
20100         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
20101         values.
20102
20103 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
20104
20105         * fixinc/inclhack.def (avoid_bool): Also catch
20106         "typedef [unsigned] int bool".
20107         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
20108
20109         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
20110         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
20111         * configure: Rebuilt.
20112
20113 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
20114
20115         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
20116         such that we can override its definitions if necessary.
20117         (CPP_SPEC): New define.  Support processor specific predefines via
20118         %(cpp_cpu).
20119         (CC1_SPEC): New define.  Support processor specific compiler
20120         options via %(cc1_cpu).
20121         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
20122         -static.
20123
20124 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20125
20126         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
20127         between sed's -e flag, and the open-quote following it.
20128         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
20129
20130 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
20131                           Jeffrey A Law  (law@cygnus.com)
20132
20133         * varasm.c (assemble_start_function): Remove the function
20134         from the pending weak decls list when we define a function.
20135         (assemble_variable): Similarly for variables.
20136         (weak_finish): Ignore items on the list with a NULL name.
20137         (remove_from_ending_weak_list); New function to "remove" an item
20138         from the pending weak declarations list.
20139
20140 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
20141
20142         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
20143
20144 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
20145
20146         * c-lex.c (GETC): Redefine to call getch.
20147         (UNGETC): Redefine to call put_back.
20148         (putback_buffer): New structure type.
20149         (putback): New static structure.
20150         (getch): New function.
20151         (put_back): New function.
20152         (yylex): Replace unused bytes from bad multibyte character.
20153
20154 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
20155
20156         * cpplib.c (do_define): Cast `alloca' return value.
20157         (do_include, do_undef, do_pragma): Likewise.
20158         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
20159         values.
20160         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
20161         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
20162
20163 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
20164
20165         * sparc.md (abstf2): This should be an expand.
20166         (split after abstf2_notv9): Fix mode.
20167         (abstf2_hq_v9): New pattern.
20168         (abstf2_v9): Only use when no hard quad.
20169         (absdf2_v9): Fix if target is not the same as source.
20170         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
20171         Add correct output constraints.
20172
20173 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
20174
20175         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
20176         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
20177
20178 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
20179
20180         * mips.h (mips_output_conditional_branch): New function.
20181         (mips_adjust_insn_length): Likewise.
20182         (ASSEMBLER_SCRATCH_REGNUM): New macro.
20183         (ADJUST_INSN_LENGTH): Likewise.
20184         * mips.c (print_operand): Add `F' and `W' for floating-point
20185         comparison opcodes.
20186         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
20187         are now in bytes.
20188         (mips_adjust_insn_length): New function.
20189         (mips_output_conditional_branch): New function.
20190         * mips.md (length): Adjust attribute definition to handle
20191         conditional branches.  Change lengths to bytes, rather than
20192         instructions throughout.  Remove length attribute from
20193         instructions whose length is four bytes, and rely on the default
20194         instead.
20195         (dslot): Fix typo in comment.
20196         Reword conditional branch patterns to use
20197         mips_output_conditional_branch.
20198
20199 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20200
20201         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
20202         (LIB_SPEC): Likewise.
20203         Link with -lprof1_r for -g/-pg.
20204
20205 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
20206
20207         * loop.c (check_dbra_loop): Fix change of Jan 19.
20208
20209 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
20210
20211         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
20212         (STARTFILE_SPEC):  Define, override the svr4.h version.
20213         (ENDFILE_SPEC):  Likewise.
20214
20215 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
20216
20217         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
20218         * fixinc/fixincl.x: Regenerated.
20219         * fixinc/inclhack.sh: Regenerated.
20220
20221 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20222
20223         * sh.c (barrier_align): Don't return early for normal branch/barrier
20224         when optimizing for SH2.
20225
20226 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
20227
20228         * i386/udk.h (LINK_SPEC): Correct linker search path for
20229         system libraries.
20230
20231 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20232
20233         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
20234         (braf_label_ref_operand): Delete.
20235         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
20236         * sh.md (casesi_jump_2): Operand1 is now the inside of a
20237         label_ref, and has no predicate.
20238         The patten has a predicate to guard against invalid substitutions.
20239         (dummy_jump): Delete.
20240         (casesi): Update use of casesi_jump_2.
20241
20242 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
20243
20244         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
20245         *fixinc/fixincl.x: regenerate
20246         *fixinc/inclhack.sh: regenerate
20247
20248 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
20249
20250         * dwarf2out.c (add_incomplete_type): New fn.
20251         (gen_struct_or_union_type_die): Call it.
20252         (retry_incomplete_types): New fn.
20253         (dwarf2out_finish): Call it.
20254
20255 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
20256
20257         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
20258         current block starts with a CODE_LABEL and ends with a CALL and
20259         we can not find all the argument setup instructions for the CALL.
20260
20261 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
20262
20263         Revert this change:
20264         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
20265         something is a candidate for optimize_bit_field_compare.
20266
20267 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20268
20269         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
20270
20271 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
20272
20273         * alpha.c (override_options): Thinko in last patch.
20274
20275         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
20276         (LIB_SPEC): Recognize -pthread.
20277
20278 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
20279
20280         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
20281         definition in config/arm/coff.h
20282         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
20283
20284 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
20285
20286         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
20287         fixes that need "file=xxx\n" prepended before invocation
20288         (start_fixer - new): starting the fixer process is complex enough
20289         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
20290         (process): uses the new routine; omit usage of putenv()
20291         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
20292         * fixinc/fixincl.x: regenerate
20293
20294 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
20295
20296         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
20297         and version #s (1.1 -> 2.96) as needed.
20298         * README.g77: Kill way out of date file in the toplevel directory.
20299
20300 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
20301
20302         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
20303         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
20304         * configure: Rebuilt.
20305         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
20306         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
20307         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
20308         (SWITCH_TAKES_ARG): Likewise.
20309         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
20310         * config/t-freebsd: Moved from config/i386/ so it can used for all
20311         FreeBSD targets.
20312
20313 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
20314
20315         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
20316
20317 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
20318
20319         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
20320         * configure: Rebuilt.
20321
20322 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
20323
20324         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
20325         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
20326         * rs6000/rs6000.c (rs6000_file_start): Use putc.
20327         (rs6000_output_load_toc_table): Same.
20328         (output_prolog, output_mi_thunk): Same.
20329         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
20330         (ASM_GLOBALIZE_LABEL): Use putc.
20331
20332 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
20333
20334         * alpha.md (reload_*_help): New patterns and splitters.
20335         (reload_*): Use them.
20336         (mov[qh]i): Likewise.
20337
20338 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
20339
20340         * cccp.c (handle_directive): Handle backslash-newlines in quoted
20341         strings correctly.
20342
20343 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
20344
20345         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
20346
20347 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
20348
20349         * flow.c (mark_regs_live_at_end, insn_dead_p,
20350         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
20351         and HARD_FRAME_POINTER_REGNUM special treatment if reload
20352         hasn't run or the frame pointer is needed.
20353         * haifa-sched.c (attach_deaths): Likewise.
20354         * sched.c (attach_deaths): Likewise.
20355
20356 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
20357
20358         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
20359         calculate_can_reach_end returns nonzero.
20360
20361         * configure.in (native gas tests): Search for an assembler in the
20362         same manner that the installed compiler will.
20363         * configure: Rebuilt.
20364         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
20365
20366         * alias.c (find_base_term): Improve handling of addresses
20367         constructed from binary operations.
20368
20369 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
20370
20371         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
20372
20373 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
20374
20375         * function.h (cleanup_label, frame_offset): Declare.
20376         (tail_recursion_label, tail_recursion_reentry): Likewise.
20377         (arg_pointer_save_area, rtl_expr_chain): Likewise.
20378         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
20379         (tail_recursion_label, tail_recursion_reentry): Likewise.
20380         (arg_pointer_save_area, rtl_expr_chain): Likewise.
20381
20382 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
20383
20384         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
20385         defined.
20386         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
20387         (MAX_OFILE_ALIGNMENT): Define.
20388
20389 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
20390
20391         * fixincl.c: Replace local include scheme with #includes of
20392         gansidecl.h and system.h.
20393         * procopen.c:  Likewise.
20394         * server.c:  Likewise.
20395
20396 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
20397
20398         * i386/t-dgux (EXTRA_PARTS): Add crti.o
20399         (crti.o): Add build rule and dependencies.
20400         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
20401
20402 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20403
20404         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
20405         (LIB_LINUX_SPEC): Likewise.
20406         (LIB_LINUX_SPEC): Add support for -pthread
20407         (CPP_OS_LINUX_SPEC): Likewise.
20408         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
20409         specified.
20410
20411 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
20412
20413         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
20414         conditional move.
20415         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
20416         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
20417         for IEEE math and CC_FCOMI.
20418         (put_jump_code): No IEEE if CC_FCOMI is set.
20419
20420 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
20421
20422         * fold-const.c (fold_truthop): Make the field reference unsigned
20423         when converting a single bit compare.
20424
20425 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20426
20427         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
20428
20429 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
20430
20431         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
20432         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
20433         version did.
20434
20435         * reload.c (push_reload): Do not call remove_address_replacements
20436         when presented with identical optional reloads.
20437
20438 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
20439
20440         * alpha.h (MASK_FIX, TARGET_FIX): New.
20441         (MASK_*): Reorganize constants.
20442         (CPP_AM_FIX_SPEC): New.
20443         (TARGET_SWITCHES): Add FIX.
20444         (EXTRA_SPECS): Likewise.
20445         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
20446         (SECONDARY_MEMORY_NEEDED): Likewise.
20447         (REGISTER_MOVE_COST): Likewise.
20448         * alpha.c (override_options): Add FIX support.  Always use
20449         ALPHA_TP_PROG for ev6.
20450         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
20451         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
20452         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
20453
20454 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
20455
20456         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
20457         something is a candidate for optimize_bit_field_compare.
20458
20459 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
20460
20461         * gcc.texi (Passes): Document branch-shortening.
20462         * invoke.texi (Debugging Options): Document the fact that `-dp'
20463         outputs length information for instructions.
20464
20465 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
20466
20467         * flow.c: Revert previous delta.
20468
20469 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
20470
20471         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
20472         FRAME_POINTER_REGNUM.
20473         (mark_set_1): Ditto.
20474         (mark_used_regs): Ditto.
20475
20476 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
20477
20478         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
20479         (GOT_PCREL): New macro.  Define to 1 if not already defined.
20480         * arm/elf.h (GOT_PCREL): Define to 0.
20481         * arm.c (arm_finalize_pic): Take into account the setting of
20482         GOT_PCREL.
20483
20484 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
20485
20486         * output.h (STRIP_NAME_ENCODING): Provide default definition.
20487         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
20488
20489         * flow.c (mark_set_1): Do not record BLKmode stores as dead
20490         store elimination candidates.
20491
20492 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20493
20494         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
20495         TARGET_GAS.
20496
20497 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
20498
20499         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
20500         Add use of x-aix41-gld.
20501
20502 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
20503
20504         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
20505         (ASM_OUTPUT_DESTRUCTOR): Define.
20506
20507 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
20508
20509         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
20510         last CODE_LABEL in a loop if we have previously passed a jump
20511         to the top of the loop.
20512
20513 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
20514
20515         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
20516         applying Philip's patch.
20517
20518 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
20519
20520         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
20521         are not VAR_DECLs.
20522
20523 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
20524
20525         * loop.c (strength_reduce): Grow reg_single_usage as needed.
20526
20527 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
20528
20529         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
20530         Also remove a useless comment.
20531
20532 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
20533
20534         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
20535
20536 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
20537
20538         * collect2.c (main): Only generate import or export file and add
20539         to link arguments if non-empty.  Use xmalloc not alloca.
20540         (write_{export,import}_file): Delete.
20541         (write_aix_file): New function.
20542         (locatelib): Use xmalloc not malloc.
20543         (GCC_OK_SYMBOL): Do not check type if aix64.
20544
20545 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
20546
20547         Based on patch by Scott Bambrough and Pat Beirne:
20548         * config/arm/arm.c (making_const_table): New variable.
20549         * config/arm/arm.h (making_const_table): Declare.
20550         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
20551         appropriate.
20552         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
20553         Keep track of when we are building the constant table.
20554
20555 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
20556
20557         * config/arm/arm.c (arm_override_options): Fix erroneous warning
20558         message.
20559
20560 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
20561
20562         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
20563         defined.
20564
20565 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
20566
20567         * tm.texi (FUNCTION_ARG): Correct description of a stack element
20568         in a PARALLEL.
20569
20570 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
20571
20572         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
20573
20574 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20575
20576         * rs6000.c (output_mi_thunk): Enable full support again.
20577
20578 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20579
20580         * sh.h (BRANCH_COST): Define.
20581
20582 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
20583
20584         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
20585
20586 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
20587
20588         * function.c (assign_stack_local): Align stack slot propertly.
20589         (assign_outer_stack_local): Likewise.
20590
20591 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
20592
20593         * expr.h (lang_expand_constant): Declare.
20594         * toplev.c (lang_expand_constant): Define it.
20595         * varasm.c (output_constant): Use it.
20596
20597 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20598
20599         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
20600         Change function definitions to K&R style.
20601
20602 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
20603
20604         * fixinc/fixincl.c: We must not ignore SIGCLD now.
20605
20606 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
20607
20608         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
20609         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
20610         (several places): omit static initialization
20611         (process): use single fd, since only the read fd is used
20612         * fixinc/gnu-regex.c: define 'const' away, if not supported
20613         * fixinc/procopen.c(several places): omit static initialization
20614         * fixinc/server.c: define 'volitile' away, if not supported
20615
20616 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
20617
20618         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
20619         asm_fprintf and %L to generate the label name.
20620         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
20621         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
20622
20623 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
20624
20625         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
20626         insn for a conditional jump can not be found.
20627
20628 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
20629
20630         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
20631         on variables in specific sections other than .sbss and .sdata.
20632
20633 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
20634
20635         * stmt.c (expand_return): Call start_cleanup_deferral and
20636         end_cleanup_deferral around conditional code.
20637
20638 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
20639
20640         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
20641         filename lists.  Utilizes new "krstr" AutoGen function.
20642         * fixinc/fixincl.x: Rebuilt.
20643
20644 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
20645
20646         * i386.c (output_float_compare): Avoid GNU-C extensions.
20647
20648 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
20649
20650         * version.c: Bump to distinguish mainline tree from the
20651         gcc-2.95 branch.
20652
20653 See ChangeLog.1 for earlier changes.