OSDN Git Service

* flow.c (allocate_reg_life_data): Set max_regno here ...
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-04-26  Richard Henderson  <rth@cygnus.com>
2
3         * flow.c (allocate_reg_life_data): Set max_regno here ...
4         (life_analysis): ... not here.
5
6 2000-04-26  Richard Henderson  <rth@cygnus.com>
7
8         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
9         commit change group changes.
10         (invert_exp_1): Similarly.
11         (redirect_exp, invert_exp): Use them.
12         (redirect_jump_1): New.
13         (invert_jump_1): New.
14         (jump_optimize_1): Remove code subsumed by condexec.c.
15         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
16
17 2000-04-26  Richard Henderson  <rth@cygnus.com>
18
19         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
20
21         * genconfig.c (main): Set all HAVE_foo to 1.
22
23         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
24
25 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
26
27         * invoke.texi: Document -fssa flag.
28
29 2000-04-26  Richard Henderson  <rth@cygnus.com>
30
31         * flow.c (count_reg_sets_1): Remove.
32         (count_reg_sets, count_reg_references): Remove.
33         (recompute_reg_usage): Implement with update_life_info.
34         Reallocate life data.
35
36 2000-04-26  Richard Henderson  <rth@cygnus.com>
37
38         * flow.c (update_life_info): Consider blocks null to mean the
39         universal set.
40         (calculate_global_regs_live): Likewise.
41         (life_analysis): Do that instead of collecting all_blocks.
42
43 2000-04-26  Richard Henderson  <rth@cygnus.com>
44
45         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
46         a still-valid conditional jump.
47
48 2000-04-26  Richard Henderson  <rth@cygnus.com>
49
50         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
51
52         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
53         * flow.c (calculate_loop_depth): Remove.
54         * output.h (calculate_loop_depth): Don't declare.
55         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
56         inline; run estimate_probability at the same time.
57
58 2000-04-26  Neil Booth  <NeilB@earthling.net>
59
60         * cpplib.h: "~=" is not a single pp-token.
61         * cpplex.c: Correct commentary.
62
63 2000-04-26  Richard Henderson  <rth@cygnus.com>
64
65         * flow.c (mark_set_1): New arguments code and flags; update all
66         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
67         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
68         loop_depth when optimizing for size.  Do new_dead update after
69         emitting REG_UNUSED notes.  Merge mark_set_reg code.
70         (mark_set_reg): Remove.
71         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
72         arrange to not emit REG_UNUSED notes.
73
74 2000-04-26  Richard Henderson  <rth@cygnus.com>
75
76         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
77         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
78
79 2000-04-26  Richard Henderson  <rth@cygnus.com>
80
81         * flow.c (propagate_one_insn): Break out from propagate_block.
82         (init_propagate_block_info): Likewise.
83         (free_propagate_block_info): Likewise.
84         (propagate_block): Use them.  Export.
85         * basic-block.h: Declare them all.
86
87 2000-04-26  Richard Henderson  <rth@cygnus.com>
88
89         * basic-block.h (life_analysis): Declare here ...
90         * output.h: ... not here.
91         * flow.c (life_analysis): Remove nregs parameter; replace
92         remove_dead_code with flags.  Remove ssa dead code check.
93         Only init alias analysis if we'll use it.
94         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
95         * ssa.c (convert_to_ssa): Likewise.
96         (convert_from_ssa): Likewise.
97         * toplev.c (rest_of_compilation): Likewise.
98
99 2000-04-26  Richard Henderson  <rth@cygnus.com>
100
101         * flow.c (flow_delete_block): Rename from delete_block.  Export.
102         * basic-block.h (flow_delete_block): Declare.
103
104 2000-04-26  David S. Miller  <davem@redhat.com>
105
106         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
107         taking a PATTERN of it.
108
109 2000-04-26  <NeilB@earthling.net>
110
111         * cpplex.c (spell_other, spell_char): Remove.
112         (SPELL_CHAR): New.
113         (token_spelling, trigraph_map): Use unsigned chars.
114         (_cpp_lex_line): Tidy up the switch statement.
115         * cpplib.h: Implement spell_char with spell_string.
116         (C): New.
117
118 2000-04-26  <RodneyBrown@pmsc.com>
119         
120         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
121         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
122
123 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
124
125         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
126         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
127         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
128         dwarf2out_return_save, dwarf2out_return_reg,
129         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
130         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
131         gen_compile_unit_die, dwarf2out_init): Constify a char*.
132
133         * dwarf2out.h (dwarf2out_init): Likewise.
134
135         * dwarfout.c (filename_entry, primary_filename, last_filename,
136         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
137
138         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
139         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
140         dwarf2out_return_reg): Likewise.
141
142 2000-04-26  Andreas Jaeger  <aj@suse.de>
143
144         * extend.texi (Function Attributes): Fix description of pure
145         attribute.
146
147 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
148
149         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
150         before calling rest_of_compilation.
151
152 2000-04-26  Andreas Jaeger  <aj@suse.de>
153
154         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
155         last patch.
156
157 2000-04-25  Richard Henderson  <rth@cygnus.com>
158
159         * cse.c (cse_insn): Emit barrier after unconditional jump.
160
161         * calls.c (expand_call): Disable tail call generation once
162         rtx_equal_function_value_matters is false.
163
164         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
165         like EDGE_EH edges.
166
167 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
168
169         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
170
171         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
172
173         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
174         is the primary DIE for a member function.
175         (gen_decl_die): Call set_decl_origin_self here.
176         * dwarfout.c (output_decl): And here.
177         * integrate.c (output_inline_function): Not here.
178         Don't clear DECL_INLINE until after calling rest_of_compilation.
179         (set_decl_origin_self): No longer static.
180         * tree.h: Add prototype.
181         * toplev.c (note_deferral_of_defined_inline_function): Only write
182         out abstract instance for actual inlines.
183
184 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
185
186         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
187         EXTENDED_REGS only if TARGET_AM33.
188         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
189         SP_REGS to register allocation and reloading unless absolutely
190         necessary.
191         (movsi3): Remove special-case of adding non-constants to SP.
192
193 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
194
195         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
196         INCLUDES to search and does not provide any of its own.  Also it
197         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
198         parameters.  Also it does not call AC_DEFINE.
199         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
200         AC_DEFINE and provides for automatic entries for autoheader.
201         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
202
203         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
204         so we can pass -I flags and include gansidecl.h/system.h in this
205         test.
206
207         * acconfig.h: Delete all NEED_DECLARATION_* entries.
208
209 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
210
211         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
212         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
213         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
214                 
215         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
216         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
217         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
218         for these macros.  Clean up spacing and linewraps.
219
220 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
221
222         * calls.c (expand_call): Use get_callee_fndecl.
223
224         * print-tree.c (print_node): Print the chain of an _EXPR.
225
226 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
227                           Jim Wilson  <wilson@cygnus.com>
228                           Andrew Haley  <aph@cygnus.com>
229         
230         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
231         and gp save/restore problems.
232         * config/ia64/crtend.asm: Add IA-64 unwind support.
233         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
234         in fr_pad_size calculation.
235         (save_restore_insns): Move PR save area.  Correct uses of
236         RTX_FRAME_RELATED_P.
237         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
238         (ia64_expand_epilogue): Add eh_epilogue support.
239         (ia64_function_prologue): Emit .prologue directive.
240         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
241         (ia64_override_options): Set init_machine_status and
242         mark_machine_status.
243         (rtx_needs_barrier): Handle bsp reads and writes.
244         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
245         New static variables.
246         (process_set, process_for_unwind_directive): New functions.
247         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
248         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
249         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
250         macros.
251         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
252         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
253         (struct machine_function): Define.
254         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
255         
256 2000-04-25  Bruce Korb  <bkorb@gnu.org>
257
258         * fixinc/Makefile.in: make the removal of old programs more
259         robust
260         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
261         install-bin and install-sh
262
263 2000-04-25  Nick Clifton  <nickc@cygnus.com>
264
265         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
266         defined, define to return zero.
267         (function_cannot_inline_p): If a function has any target
268         specific attributes, then use the macro
269         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
270         whether it can be inlined.  If it cannot, issue a suitable
271         explanation.
272
273         * tm.texi: Add a new node 'Inlining' to document the new macro
274         FUNCTION_ATTRIBUTE_INLINABLE_P. 
275
276 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
277
278         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
279         commentary. 
280
281 2000-04-25  Neil Booth  <NeilB@earthling.net>
282
283         Restore previous patch, plus the following fixes:
284
285         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
286         flags, not CPP_OPEN_PAREN.
287         * cpplex.c (expand_token_space, init_token_list,
288         cpp_free_token_list): Put the dummy token at list->tokens[-1].
289         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
290
291 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
292
293         * config/i386/freebsd.h (INT_ASM_OP): Define.
294
295 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
296
297         * loop.c (strength_reduce): Fix typo in the last checkin.
298
299 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
300
301         * stor-layout.c (finalize_record_size): Simplify to use existing
302         functions.
303         (compute_record_mode): No longer static.
304         * tree.h (compute_record_mode): New declaration.
305
306 2000-04-25  Neil Booth  <NeilB@earthling.net>
307
308         * Revert my patch below until cause of build failures
309         determined.
310
311 2000-04-25  Richard Henderson  <rth@cygnus.com>
312
313         * combine.c (combine_instructions): Add missing argument
314         to try_combine.
315
316         * toplev.c (rest_of_compilation): Delay sibcall optimization
317         until after emit_eh_context.
318
319 2000-04-24  Nick Clifton  <nickc@redhat.com>
320
321         * combine.c (combine_instructions): Do not try to combine a
322         sequence of insns when the second insn has been replaced by a
323         note.
324
325 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
326
327         * gcc.c (load_specs): New static function.
328         (read_specs): Use it.
329
330         * gcc.c (lookup_compiler): Make multiple passes for case
331         insensitive filesystems.
332
333 2000-04-24  Neil Booth  <NeilB@earthling.net>
334
335         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
336         * cpphash.h (_cpp_check_directive): new.
337         * cpplex.c (handle_newline, cpp_free_token_list,
338         init_trigraph_map, trigraph_ok, trigraph_replace,
339         backslash_start, skip_block_comment, skip_line_comment,
340         skip_whitespace, parse_name, parse_number, parse_string,
341         copy_comment, _cpp_lex_line, spell_char, spell_string,
342         spell_comment, spell_name, spell_other, _cpp_lex_file,
343         _cpp_output_list): new.
344         (expand_name_space): take length argument.
345         (init_token_list): add comment list initialisation.
346         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
347         instead of HSPACE_BEFORE.
348
349         * cpplib.c (_cpp_check_directive): new
350         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
351         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
352         (HSPACE_BEFORE): delete.
353         (TTYPE_TABLE): rearrange.
354         (struct cpp_toklist): update.   
355
356 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
357
358         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
359         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
360         argument form of AC_DEFINE.
361
362         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
363         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
364         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
365         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
366         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
367
368         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
369
370 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
371
372         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
373         deduced.h): Use -isystem, not -I, for including system headers.
374
375 2000-04-24  Nick Clifton  <nickc@cygnus.com>
376
377         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
378         the source register is the frame pointer or arg pointer.
379         (addsi3_small_int): Disallow if source register is the frame
380         pointer or arg pointer.
381
382 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
383
384         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
385         call to AC_MSG_RESULT.
386
387 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
388
389         * invoke.texi: Correct grammatical errors, document
390         -fno-gnu-keywords as identical to -fno-asm for C++.
391
392 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
393
394         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
395         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
396         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
397         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
398         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
399
400         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
401         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
402         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
403         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
404         new macros names.
405
406 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
407
408         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro. 
409         (pop_alignment): Likewise.
410         (handle_pragma_token): Likewise.
411
412 2000-04-24  Robert Lipe <robertlipe@usa.net>
413
414         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
415
416 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
417
418         * combine.c (try_combine): Update reg_nonzero_bits of
419         newi2pat before newpat.
420
421 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
422
423         * loop.c (strength_reduce): Simplify test to INSN_P.
424         (record_giv): Attempt to simplify the add value, use CONSTANT_P
425         expressions instead of CONST_INT.
426         (express_from_1): Likewise.
427
428 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
429
430         * regs.h (reg_n_max): Don't declare.
431         * flow.c (reg_n_max): Don't define.
432         * regclass.c (renumber): Don't initialize to zero.
433         (regno_allocated): Likewise.
434         (reg_n_max): Define.
435         (allocate_reg_info): Don't initialize unnecessarily.
436         
437 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
438
439         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
440         and blockage_p in the newly allocated attribute.
441
442 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
443
444         * config/mn10300/mn10300.md (addsi): `inc4' on address
445         registers does not modify cc, but `inc' on an extended
446         register does.
447
448 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
449
450         * reload.c (find_equiv_reg): Checks all valueno regs
451         as a reload_reg_p regs.
452
453 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
454
455         * cpphash.c (collect_objlike_expansion): Add sanity check.
456         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
457         the buffer is the empty string, return.  Mark __DATE__ and
458         __TIME__ as XCONST nodes, not MCONST.
459         (_cpp_macroexpand): Avoid pushing an empty buffer.
460         (funlike_macroexpand): Don't pop token_buffer here.
461
462 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
463
464         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
465         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
466         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
467         (REGNO_OK_FOR_BASE_P): Define in terms of them.
468         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
469         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
470         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
471
472 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
473
474         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
475         constant MULT givs.
476
477 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
478
479         * cpphash.h (struct definition): Move file, line, col members...
480         (struct hashnode): ... here.  Also add 'disabled' flag.
481         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
482         T_IDENTITY.  Remove T_DISABLED.               
483         Update prototypes.
484
485         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.     
486         (collect_expansion): Split into collect_objlike_expansion and
487         collect_funlike_expansion.                                 
488         (_cpp_macroexpand): Split out scan_arguments, stringify, and
489         funlike_macroexpand.
490         (_cpp_compare_defs): Rename compare_defs, make static.
491         (_cpp_make_hashnode): Initialize hp->disabled.  
492         (macro_cleanup): Adjust for new token types.  Clear
493         m->disabled.
494         (_cpp_create_definition): Move code here to determine what     
495         sort of macro it is, and code to check for redefinitions, from
496         do_define.  Implement a few simple cases without creating a   
497         full DEFINITION.
498         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
499         Handle the simple cases.                                 
500         (push_macro_expansion): Set buf->has_escapes and hp->disabled
501         here.
502
503         * cppinit.c (builtin_array): Change MCONST to XCONST
504         everywhere.
505         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
506         fix check for disabled and function-like macros.
507         * cpplib.c (do_define): Move most logic to
508         _cpp_create_definition.
509         (do_undef): Handle new special token types.
510
511 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
512
513         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
514         of CONSTANT_P for mult_val; always use validate_change to update insn.
515
516 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
517
518         * cpphash.c (trad_stringify, add_pat): New functions.
519         (collect_expansion): Restore support for -traditional syntax.
520         Use trad_stringify and add_pat.
521         (_cpp_macroexpand): Restore support for -traditional semantics.
522         * cpplex.c (_cpp_scan_line): Don't change space_before if we
523         get a COMMENT token.
524         (_cpp_lex_token): Provide COMMENT tokens to caller if
525         traditional and parsing_define_directive.
526         (skip_comment): Warn about // comments if -Wtraditional.
527         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
528         proper node type.
529         (do_undef): Don't warn about undefining EMPTY nodes.
530
531 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
532
533         * loop.c (strength_reduce): Fix biv removal code.
534
535 2000-04-22  Richard Henderson  <rth@cygnus.com>
536
537         * predict.c (estimate_probability): Examine both sides of
538         a branch for no exits.  Use 90% not 50% for predict taken.
539         Reorg for one copy of note generation code.
540
541 2000-04-22  Richard Henderson  <rth@cygnus.com>
542
543         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
544
545 2000-04-22  Richard Henderson  <rth@cygnus.com>
546
547         * diagnostic.c (init_output_buffer): Don't initialize format_args.
548         (output_clear): Likewise.
549         (output_printf): Use va_copy.
550         (vline_wrapper_message_with_location): Likewise.
551         (v_message_with_decl): Likewise.
552         (line_wrapper_printf): VA_START infor buffer.format_args directly.
553         * system.h (va_copy): Provide default implementation.
554
555 2000-04-22  Richard Henderson  <rth@cygnus.com>
556
557         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
558         the collected condition is not a constant.
559
560 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
561
562         * diagnostic.h: New file.
563
564         * Makefile.in (diagnostic.o): Depends on diagnostic.h
565
566         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
567         various function prototypes.
568         (diagnostic.h): #include.
569         (struct output_buffer): Move into diagnostic.h.
570         (get_output_prefix): Rename to output_get_prefix.  Export.
571         (init_output_buffer): Export. Break out.  Ajust intialization.
572         (output_space_left, output_append): Export.
573         (output_newline): Rename to output_add_newline.  Export.
574         (output_clear): Nullify additional output_buffer fields.
575         (output_puts): Rename to output_add_string.  Export.
576         (dump_output): Rename to output_flush_on.  Export.
577         (build_location_prefix): Constify return-type.
578         (emit_output_prefix): Rename to output_emit_prefix. Export.
579         (set_real_maximum_length): New function.
580         (output_set_maximum_length): Ditto
581         (output_clear): Ditto.
582         (output_add_character): Ditto.
583         (output_add_integer): Ditto.
584         (output_add_space): Ditto.
585         (output_format): Ditto.
586         (output_printf): Adjust buffer initialization.
587         (vline_wrapper_message_with_location): Ditto.
588         (v_message_with_decl): Ditto.  Adjust call to output_puts
589         and get_output_prefix.
590         (default_print_error_function): Adjust buffer intialization.
591
592 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
593
594         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
595         of VOID_TYPE.
596
597 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
598
599         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
600         of explicit 0.
601
602 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
603
604         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
605         accurate data about SP moves.
606
607 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
608
609         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
610         aliases to AM33 registers.
611
612 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
613
614         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
615         to all EXTENDED bitmaps.
616
617 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
618
619         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
620         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
621         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
622
623 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
624
625         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
626         the operand is not constant.
627
628 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
629
630         * reload.c (find_equiv_reg): Checks all valueno and regno regs
631         as a call-clobbered regs.
632
633 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
634
635         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
636         * rtl.h: Likewise.
637         * rtl.def: Update comment.
638         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
639         * integrate.c (expand_inline_function): Likewise.
640         * profile.c (branch_prob): Likewise.
641         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
642         * print-rtl.c (print_rtx): Likewise.
643         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
644         (reemit_notes): Likewise; also use enum insn_note.
645
646         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
647         (place_field): Properly compute know and actual alignment.
648
649         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
650         in proper format.
651
652         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
653         note for REG1.
654
655 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
656
657         * cpphash.c (struct arg, struct arglist): Const-ify strings.
658         (warn_trad_stringify, duplicate_arg_p): New helper functions.
659         (collect_expansion): Rewrite to scan over a token list.
660         Remove -traditional support.
661         (collect_formal_parameters): Rename to collect_params; rewrite
662         to scan over a token list.
663         (_cpp_create_definition): Adjust to scan a token list.
664         (_cpp_macroexpand): Remove -traditional support.
665         (_cpp_compare_defs): Whitespace is now canonicalized.
666         (comp_def_part): Delete function.
667
668         * cpphash.h: Update prototypes.
669         * cpplex.c (init_token_list): Don't set lineno if there is no
670         buffer.
671         (pedantic_whitespace): New function.
672         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
673         consume a newline.  Use pedantic_whitespace.
674         (_cpp_lex_token): Remove support for -traditional macros.
675         (_cpp_get_define_token): Delete.
676         (_cpp_get_directive_token): Do the real work here.  Use
677         pedantic_whitespace.
678         (_cpp_init_input_buffer): Initialize pfile->directbuf.
679
680         * cpplib.c (get_macro_name): Delete.
681         (do_define): Read the entire line into pfile->directbuf, then
682         feed the token list to _cpp_create_definition.
683         * cpplib.h (HSPACE_BEFORE): new define.
684         (struct cpp_reader): Add a toklist member, "directbuf".
685
686         * predict.c (estimate_probability): New heuristic: if a jump
687         branches around a block with no successors, predict it taken.
688         Disentangle control flow.
689
690 2000-04-20  Richard Henderson  <rth@cygnus.com>
691
692         * loop.c (emit_iv_add_mult): Revert last change.
693
694 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
695
696         * cpplib.h (enum cpp_ttype): Add token types for all
697         punctuators.  Distinguish pp-numbers from valid C numbers.
698         Give some tokens better names.  Initialize from macro.    
699         (struct cpp_name, cpp_token, cpp_toklist): New data   
700         structures.
701         Update prototypes.
702         * cpplex.c (bump_column, expand_name_space,
703         expand_token_space, init_token_list, cpp_output_list,
704         _cpp_scan_line):  New functions.
705         (output_line_command): Add third argument, new line number.
706         * cpphash.h: Update prototypes.
707         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
708         token names.
709
710 2000-04-20  Richard Henderson  <rth@cygnus.com>
711
712         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
713
714 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
715
716         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
717         object pointed to.
718
719 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
720
721         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
722         REG_EQUAL note explaining the calculated value.
723
724         * calls.c (expand_call): Avoid unnecesary precalculation
725         and outgoing parameters space guarding for sibling calls.
726         (store_one_arg): Likewise.
727
728 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
729
730         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
731         (rest_of_compilation): Write sibling dump file and account
732         for time as jump time.
733         * invoke.texi: Update documentation on dump flags.
734
735 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
736
737         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
738
739 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
740
741         * cpphash.c (special_symbol): Represent an empty macro with
742         "\r \r " not just "\r ".
743         (_cpp_macroexpand): Correct condition for the foo ( ) special
744         case.
745         (unsafe_chars): Handle EOF as second argument.
746         (push_macro_expansion): Simplify test for removing escape at
747         end.  Do not trim both escapes if there is no text in between.
748
749 2000-04-19  Jim Blandy  <jimb@redhat.com>
750
751         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
752         of PTR_SIZE, when appropriate.
753
754 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
755
756         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
757         (USE_ENUM_BITFIELDS): Fix typo.
758
759 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
760
761         * stor-layout.c (place_field): Set rli->offset_align properly.
762
763 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
764
765         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
766         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
767         PARM_BOUNDARY): Remove unnecessary casts.
768
769 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
770
771         * calls.c (precompute_arguments): Remove must_preallocate and
772         args_size calls.
773         (expand_call): Update call of precompute_arguments.
774
775         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
776         check_insn_for_givs): Break out from ...
777         (strength_reduce) ... here; use for_every_insn_in_loop to call
778         check_insn_for_givs.
779         * loop.h (for_every_insn_in_loop): Declare.
780         (loop_insn_callback): New type.
781
782 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
783
784         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
785         not nul-terminated.
786
787 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
788
789         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
790         flag_pic and RELOC.
791
792 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
793
794         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
795
796         * configure.in: Delete --disable-cpplib option and all
797         references to cpp_main.
798         * configure: Regenerate.
799         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
800         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
801         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
802         cpp$(exeext).  Add --no-headers to makeinfo command line when
803         generating INSTALL.  Install and uninstall cpp.1 manpage, not
804         cccp.1.
805         * install.texi: Delete all references to cexp.y/cexp.c.
806         Delete ancient instructions for compiling GCC on 3b1.
807         * INSTALL: Regenerate.
808
809         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
810         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
811         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
812         cexp.c/cexp.y.
813         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
814         which is no longer tested anywhere.
815         
816         * cppinit.c (handle_option): Don't run error message through
817         gettext twice.
818
819 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
820
821         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
822         * cpperror.c (hashtab.h): Now include.
823         * cppexp.c (hashtab.h): Likewise.
824         * cpplex.c (hashtab.h): Likewise.
825         * cppfiles.c (hashtab.h): Likewise.
826         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
827         to htab_find_slot_with_hash.
828         * cpphash.c (hashtab.h): Now include.
829         (_cpp_lookup_slot): INSERT is now enum insert_option.
830         * cpphash.h (_cpp_lookup_slot): Likewise.
831         * cppinit.c (hashtab.h): Include earlier.
832         (initialize_builtins): Pass enum to htab_find_slot.
833         * cpplib.c (hashtab.h): Now include.
834         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
835         (do_pragma_poison, do_assert): Likewise.
836         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
837         htab_find_slot_with_hash.
838         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
839         * tree.c (type_hash_add): Likewise.
840         (build1): Minor cleanup.
841
842         * ggc-common.c: Add missing blanks.
843         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
844         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
845
846         * stmt.c (mark_case_node): New function.
847         (mark_case_nesting): Call it.
848
849         * expmed.c (emit_store_flag): If comparing two-word integer
850         with zero, can optimize NE, EQ, GE, and LT.
851
852         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
853         * conflict.c: Minor cleanups.
854         * optabs.c: Add blank line
855         * simplify-rtx.c: Minor cleanups.
856
857 2000-04-18  Stan Cox  <scox@cygnus.com>
858
859         * gengenrtl.c (genlegend): Fix misspelling.
860
861 2000-04-18  Robert Lipe  <robertlipe@usa.net>
862
863         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
864         bitfields of the host compiler are not signed quantities.
865         * config.in: Regenerate.
866         * configure: Regenerate.
867         * system.h (USE_ENUM_BITFIELDS): Added.
868         (ENUM_BITFIELDS): Added.
869         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
870         (SHORT_ENUM_BUG): Deleted.
871         * tree.h (tree_common): Members `code', `mode', `built_in_class', 
872         now ENUM_BITFIELD.
873         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
874         (CODE_FIELD_BUG): Likewise.
875         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
876         (OLD_CC): Likewise.
877         * config/m68k/x-ccur (X_CFLAGS): Likewise.
878
879 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
880
881         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
882         mark is active.
883
884 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
885
886         * cppexp.c (lex): Don't assume tokens are NUL terminated.
887         * cpplib.c (do_include, do_import, do_include_next,
888         read_line_number, detect_if_not_defined): Likewise.
889         * cpphash.c (collect_expansion): Likewise.
890         (special_symbol, _cpp_macroexpand): Check return from
891         cpp_file_buffer.
892         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
893         macros.  Delete all uses.
894
895         * gcc.dg/cpp-mi.c: Add two more test cases.
896         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
897
898 2000-04-17  Richard Henderson  <rth@cygnus.com>
899
900         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
901         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
902
903 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
904
905         * function.c (expand_function_start): Use hard_function_value to
906         compute the RTL to use for DECL_RESULT.
907
908 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
909
910         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
911         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
912          x86_memory_mismatch_stall): New global variables.
913         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
914         alloved; fix load penalties for Athlon.
915         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
916         x86_memory_mismatch_stall): Declare.
917         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
918          TARGET_MEMORY_MISMATCH_STALL): New.
919         * i386.md (athlon scheduling parameters): Fix latencies according to
920         Athlon Optimization Manual.
921         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
922         vector.
923         (fsqrt instruction patterns): Set athlon_decode to direct.
924         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
925         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
926         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
927         and TARGET_PARTIAL_REGISTER_STALL machines.
928         (pushdf_nointeger): New pattern.
929         (pushdf_integer): Rename from pushdf.
930         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
931         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
932
933 2000-04-17  Richard Henderson  <rth@cygnus.com>
934
935         * loop.c (canonicalize_condition): Add WANT_REG argument.
936         Stop the search if we match it.
937         * expr.h (canonicalize_condition): Update decl.
938         * predict.c (expected_value_to_br_prob): Use it.  Track last
939         expected value note.
940         (find_expected_value): Remove.
941
942         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
943
944 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
945
946         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
947         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
948         a plain file.
949         * configure.in: Call AC_FUNC_MMAP_FILE.
950         * configure: Regenerate.
951         * config.in: Regenerate.
952
953         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
954         * fixinc/fixincl.c: Likewise.
955
956 2000-04-17  Richard Henderson  <rth@cygnus.com>
957
958         * builtins.c (expand_builtin_expect): New.
959         (expand_builtin): Call it.
960         * builtins.def (BUILT_IN_EXPECT): New.
961         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
962         * extend.texi: Document it.
963
964         * predict.c (expected_value_to_br_prob): New.
965         (find_expected_value): New.
966         * basic-block.h (expected_value_to_br_prob): Declare.
967         * toplev.c (rest_of_compilation): Invoke it.
968
969         * rtl.h (NOTE_EXPECTED_VALUE): New.
970         (NOTE_INSN_EXPECTED_VALUE): New.
971         * rtl.c (note_insn_name): Update.
972         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
973         cases; handle NOTE_INSN_EXPECTED_VALUE.
974
975 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
976
977         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
978         leaf sibcall delay slot if flag_pic.
979         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
980
981 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
982
983         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
984
985         * fixproto: If fix-header fails, exit with an error.
986
987 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
988
989         * cse.c (struct check_depdendence_data): New.
990         (check_dependence): New function.
991         (invalidate): Use check_depdenence.
992
993 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
994
995         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
996         UNITS_PER_WORD is unsigned.
997
998         * tree.h (struct tree_common): Remove misleading comment.
999
1000 2000-04-16  Dave Pitts  <dpitts@cozx.com>
1001
1002         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
1003         message in quotes. Otherwise, IBM's make program treats the '#' as the
1004         start of a comment and ignores the remainder of the line.
1005
1006         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
1007         upper case.
1008         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
1009         * cexp.y (initialize_random_junk): Likewise.
1010         * cppfiles.c (find_include_file): Cast alloca return value.
1011         * cppinit.c (initialize_standard_includes): Likewise.
1012         * cpplib.c (cpp_define, cpp_undef): Likewise.
1013         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
1014         * final.c (output_asm_insn): Allow for holes in EBCDIC.
1015         * fold-const.c (CHARMASK): New.
1016         (real_hex_to_f): Use it.
1017         * real.c (CHARMASK): New.
1018         (etoasc, asctoeg): Use it.
1019         (asctoeg): EBCDIC lower case characters preceed upper case.
1020
1021         * i370.c (mvs_add_label): Change spacing for coding conventions.
1022         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
1023         outputing case vectors.
1024         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
1025         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
1026         since vector in in the data CSECT.
1027         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
1028         * i370.md (Many patterns): Put the length in the XL directives.
1029         (movdi): Put back STM and MVC in definition.
1030         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
1031         pattern using the TCA.
1032         * oe.h (CPP_SPEC): Added to allow trigraphs.
1033         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
1034         not support the "long long" type.
1035
1036 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
1037
1038         * config/mips/mips-protos.h (mips_legitimate_address_p): New
1039         function.
1040         (mips_reg_mode_ok_for_base_p): Likewise.
1041         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
1042         (REG_OK_FOR_INDEX_P): Define unconditionally.
1043         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
1044         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
1045         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
1046         that GET_MODE_SIZE is unsigned.
1047         (mips_reg_mode_ok_for_base_p): Define.
1048         (mips_legitimate_address_p): Likewise.  Adjust now
1049         that GET_MODE_SIZE is unsigned.
1050         (block_move_loop): Make the number of bytes unsigned.
1051         (expand_block_move): Likewise.
1052         (function_arg): Make the loop counter unsigned to match the
1053         boundary condition.
1054
1055 2000-04-16  Richard Henderson  <rth@cygnus.com>
1056
1057         * rtl.h (enum insn_note): New enumeration.  Subsume
1058         NOTE_INSN_DELETED and friends.
1059         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
1060         * rtl.c (note_insn_name): Tweak string order.
1061
1062 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
1063
1064         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
1065         to offset * 2.
1066
1067         * cpplex.c (output_line_command): Remove debugging prints.
1068         (cpp_output_tokens): Don't write out a zero-length buffer or
1069         try to see if it has a newline in it.
1070         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
1071         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
1072         the end of the loop.  Use memmove.  Don't read past the end of
1073         the buffer.  Remove trailing newlines from error messages.
1074
1075 2004-04-16  Neil Booth  <NeilB@earthling.net>
1076
1077         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
1078         * cpplib.c: Add new syntax flags to directive table, and
1079         supporting macros.
1080
1081 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
1082
1083         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
1084         using ret $N.
1085
1086 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
1087
1088         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
1089         * haifa-sched.c: Update -fsched-verbose comments to use "=".
1090
1091 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1092
1093         * Makefile.in (ggc-page.o): Now includes toplev.h.
1094         * ggc-page.c (toplev.h): Now included.
1095         (gc_time): Remove declaration.
1096         (ggc_collect): TIME now long.
1097         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
1098         others static.
1099         * toplev.h (gc_time, parse_time, gc_time): New declarations.
1100
1101         * toplev.c: Make *_time variable long to reduce chance of overflow.
1102         (TIMEVAR): Likewise for `otime'.
1103         (print_time): Arg is now long; compute percentage in FP and round.
1104         * toplev.h (print_time): Arg is long.
1105
1106         * tree.c: Minor whitespace changes.
1107
1108         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
1109         * configure: Rebuilt.
1110         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
1111         (__fixunsxfDI): Renamed from __fixunsxfdi.
1112         (__fixunsdfDI): Renamed from __fixunsdfdi.
1113         (__fixunssfDI): Renamed from __fixunssfdi.
1114         (__floatdisf): Use proper type in REP_BIT macro.
1115         (__fixunsxfSI): Renamed from __fixunsxfsi.
1116         (__fixunsdfSI): Renamed from __fixunsdfsi.
1117         (__fixunssfSI): Renamed from __fixunssfsi.
1118         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
1119         Change location of macros and upper-case some names as above.
1120         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
1121         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
1122
1123         * varasm.c (assemble_variable): Add cast to remove warning.
1124         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
1125
1126         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
1127         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
1128         region number to -1.
1129
1130 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
1131
1132         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
1133         call unshare_all_rtl.
1134
1135         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
1136
1137 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
1138
1139         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
1140         Use .s1 not .s0 for all FP instructions.
1141
1142 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
1143
1144         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
1145         interfaces.
1146         (safe_fwrite, output_line_command): New static functions.
1147         (cpp_expand_to_buffer): Now private to cpplib.
1148         (cpp_scan_buffer): Take a printer.
1149
1150         * cpphash.h: Update prototypes.
1151         * cpplib.h: Update prototypes.
1152         (cpp_printer): New.
1153         (cpp_buffer): Remove last_nominal_fname.
1154         (cpp_reader): Remove lineno.
1155
1156         * cppmain.c: Use a cpp_printer.
1157         * fix-header.c: No need to inhibit line commands.  Call
1158         cpp_start_read with no printer.
1159
1160         * cpperror.c (cpp_notice_from_errno): Provide default name.
1161         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
1162         (find_include_file, cpp_read_file): Use make_IHASH.
1163         (file_cleanup): Set control_macro and clear
1164         input_stack_listing_current here.
1165         (_cpp_execute_include): Don't output entering-file marker.
1166         * cpphash.c (special_symbol): Look for the line number in the
1167         buffer, not the reader.
1168         (_cpp_macroexpand): No need to disable line commands.
1169         (_cpp_dump_definition): No need to generate line commands.
1170         (dump_hash_helper): Remove excess newline from output.
1171         * cppinit.c (dump_special_to_buffer): No need to generate line
1172         commands.
1173         (cpp_printer_init): New.
1174         (cpp_start_read): Take a printer, and start it up if it's not
1175         NULL.  No need to generate line commands.
1176         (cpp_finish): Expect no buffers stacked at all.  Take a
1177         printer argument, and flush the output buffer if it's not
1178         NULL.
1179         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
1180         Don't put two hashes at the beginning of an assertion.
1181         (cpp_get_token): Don't increment pfile->lineno or emit line
1182         commands here.  Return EOF if there's no buffer when we get
1183         EOF.
1184         * cpplib.c (do_define, skip_if_group): 
1185         No need to disable line commands.
1186         (_cpp_output_line_command): Delete function.
1187         (do_line): Don't emit line commands here, but set things up so
1188         they will be emitted if necessary.  Use _cpp_fake_ihash to
1189         make unique nominal_fnames if necessary.
1190         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
1191         with 0 for column, not -1.
1192         (_cpp_handle_eof): Don't set the control macro here.  Don't
1193         clear input_stack_listing_current here.  Don't emit line
1194         commands.
1195
1196 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
1197
1198         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
1199         always, use the default SVR4 start address.
1200
1201         * config/rs6000/linux.h (LINK_SPEC): Don't define.
1202         (LINK_SHLIB_SPEC): Define.
1203         (LINK_START_DEFAULT_SPEC): Define.
1204         (LINK_OS_DEFAULT_SPEC): Define.
1205
1206         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
1207
1208         * config/rs6000/eabi.asm (__eabi): Call __init rather than 
1209         __do_global_ctors to handle constructors.
1210         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
1211         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
1212         (STARTFILE_MVME_SPEC): Likewise.
1213         (STARTFILE_SIM_SPEC): Likewise.
1214         (ENDFILE_ADS_SPEC): Use crtend.
1215         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
1216         (ENDFILE_MVME_SPEC): Likewise.
1217         (ENDFILE_SIM_SPEC): Likewise.
1218         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
1219         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
1220         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
1221         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
1222         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
1223         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
1224         (CRTSTUFF_T_CFLAGS_S): Define.
1225         * config/rs6000/eabi-ctors.c: Delete.
1226         
1227         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
1228         boundary.
1229         (__fini): Likewise.
1230         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
1231         boundary.
1232         (__fini): Likewise.
1233
1234 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
1235
1236         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
1237         plus mask size is smaller or equal to the mode size.
1238
1239 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1240
1241         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
1242         not yet set.
1243
1244         * expr.c (reload.h): Now included.
1245         (emit_block_move): Set volatile_ok when checking for movstr.
1246         (emit_move_1): Check for replacements in addresses in multi-word case.
1247         * Makefile.in (expr.o): Now includes reload.h.
1248
1249         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
1250         Never have a LIBCALL end a basic block.
1251         (find_basic_blocks_1): Likewise.
1252         Reorganize CALL_INSN cases.
1253
1254         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
1255
1256 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
1257
1258         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
1259         completers from mov.ret instruction.
1260
1261 2000-04-14  Richard Henderson  <rth@cygnus.com>
1262
1263         * fold-const.c (extract_muldiv): Don't distribute and widen
1264         multiply across plus for non-sizetype unsigned types.
1265
1266 2000-04-14  Richard Henderson  <rth@cygnus.com>
1267
1268         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
1269         If the original source is dead in the incr insn, it's dead now.
1270
1271 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1272
1273         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
1274         see if DECL_BIT_FIELD needs to still be set.
1275
1276         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
1277
1278         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
1279         print_int_cst_octal with something that's not an INTEGER_CST.
1280
1281         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
1282         and not a SUBREG to a FLOAT rtl.
1283
1284 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
1285
1286         * emit-rtl.c (try_split): Avoid infinite loop if the split
1287         results in a sequence that contains the original insn.
1288
1289 2000-04-13  Andreas Jaeger  <aj@suse.de>
1290
1291         * config/mips/mips.c (expand_block_move): Pass alignment
1292         argument to move_by_pieces in bits, not bytes.
1293
1294         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
1295         __pic__ for little endian.
1296
1297 2000-04-13  Andreas Jaeger  <aj@suse.de>
1298
1299         * config/i386/i386-protos.h: Add prototype for
1300         uno_comparison_operator.
1301
1302 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1303
1304         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
1305         * calls.c (ECF_PURE): New flag.
1306         (emit_call_1): Handle ECF_PURE calls.
1307         (initialize_argument_information): Unset ECF_PURE flag too.
1308         (precompute_arguments): Precompute for ECF_PURE too.
1309         (expand_call): Handle ECF_PURE calls too.
1310         (emit_library_call_value_1): Rename no_queue argument to fn_type,
1311         accept value of 2 as pure function.
1312         (emit_library_call_value, emit_library_call): Rename no_queue argument
1313         to fn_type.
1314         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
1315
1316         * tree.h (DECL_IS_PURE): New macro.
1317         (struct tree_decl): Add pure_flag.
1318         * c-common.c (enum attrs): Add attribute "pure".
1319         (init_attributes): Initialize attribute "pure"
1320         (decl_attributes): Handle attribute "pure".
1321         * extend.texi (Attribute "pure"): Document.
1322         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
1323         in pure function.
1324         (flags_from_decl_or_type): Support attribute "pure".
1325
1326 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
1327
1328         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
1329         the token except for numbers and identifiers.
1330
1331 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
1332
1333         * i386.c (ix86_expand_binary_operator,
1334         ix86_expand_unary_operator): Check no_new_pseudos
1335         instead of reload_in_progress and reload_completed.
1336         (ix86_split_ashldi, ix86_split_ashrdi,
1337         ix86_split_lshrdi): Check no_new_pseudos instead
1338         of reload_completed.
1339
1340 2000-04-12  Jeffrey A Law  (law@cygnus.com)
1341
1342         * function.c (purge_addressof): Unshare any shared rtl created by
1343         purge_addressof and its children.
1344
1345 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
1346
1347         * function.c (aggregate_value_p): VOID_TYPE nodes are never
1348         aggregates.
1349
1350 2000-04-05  Andreas Jaeger  <aj@suse.de>
1351
1352         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
1353         not compiling PIC code, add flags for mabi=64.
1354         (SUBTARGET_CPP_SIZE_SPEC): New.
1355         (SUBTARGET_CPP_SPEC): New.
1356         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
1357         for MIPS/Linux and lots of code needs these defines.
1358
1359 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
1360
1361         * reorg.c (fill_slots_from_thread): Check side_effects_p when
1362         trying the "opposite arithmetic" approach.
1363
1364 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1365
1366         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
1367         (struct sh_args): Add new field force_mem.
1368         (INIT_CUMULATIVE_ARGS): Initialize it.
1369         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
1370
1371 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1372
1373         * calls.c (expand_call): Do not reverse args in "equal from" field.
1374         (emit_library_call_value_1): Emit_libcall_block for const and pure
1375         function.
1376
1377 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1378
1379         * reload1.c (reload_combine): Don't enable optimization for fixed
1380         registers when encountering a BARRIER.
1381
1382 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1383
1384         * builtins.c (expand_builtin_memcmp): Do expansion even with
1385         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
1386
1387         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
1388         stack is propertly aligned; add sanity checking for aligned
1389         stack pointer.
1390         (expand_library_call_value_1): Add sanity checking for aligned
1391         stack pointer.
1392
1393 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
1394  
1395         * calls.c (emit_library_call_value_1): Change 3rd arg to
1396         locate_and_pad_parm to disregard the setting of partial.
1397
1398 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1399
1400         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
1401
1402         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
1403         CALL_INSN from the normal case.
1404
1405 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1406
1407         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
1408         New global variables.
1409         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
1410         adjustment.
1411         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
1412         Declare,
1413         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
1414          TARGET_ADD_ESP_8): New macros.
1415         * i386.md: Add peep2s to convert esp adjustments to push and pop
1416         instructions.
1417         (pushsi_prologue, popsi_epilogue): New patterns.
1418
1419 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
1420
1421         * real.c (toe64): Remove stale #endif from the last change.
1422
1423 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
1424
1425         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
1426         * real.c (toe64): Revert previous change.
1427
1428 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
1429
1430         * objc/objc-act.c: Include ggc.h.
1431         (objc_tree_index, objc_global_trees): Convert most of the
1432         static tree variables into a static array with previous names
1433         as defines.
1434         (objc_ellipsis_node): New variable.
1435         (lang_init): Call objc_act_parse_init and c_parse_init.
1436         Create objc_ellipsis_node.
1437         (build_selector_translation_table): Use objc_ellipsis_node instead
1438         of (tree)1.
1439         (hack_method_prototype): Likewise.
1440         (get_arg_type_list): Likewise.
1441         (start_method_def): Likewise.
1442         (continue_method_def): Likewise.
1443         (gen_method_decl): Likewise.
1444         (ggc_mark_imp_list): New function.
1445         (ggc_mark_hash_table): New function.
1446         (objc_act_parse_init): New function.
1447         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
1448         * c-parse.in (c_parse_init): For objc add roots of objc specific
1449         local tree variables.
1450         * objc/objc-parse.y: Rebuilt.
1451         * objc/objc-parse.c: Rebuilt.
1452         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
1453
1454 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
1455
1456         * cse.c (delete_trivially_dead_insns): Also delete insns
1457         that copy a register to itself where the destination is
1458         a strict_low_part.
1459
1460 2000-04-11  Richard Henderson  <rth@cygnus.com>
1461
1462         * flow.c (struct propagate_block_info): Add new_dead, new_live.
1463         (propagate_block): Initialize them.  Use them in parallel instead
1464         of one tmp variable, ie revert much of the 0408 and 0407 functional
1465         changes, but keep the structural changes.
1466         (mark_set_regs): Take new_dead from propagate_block_info instead.
1467         (mark_set_1, mark_set_reg): Likewise.
1468         (mark_used_regs): Likewise with new_live.
1469         (mark_used_reg): Likewise.  Revert 0408 change.
1470
1471 2000-04-11  Nick Clifton  <nickc@cygnus.com>
1472
1473         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
1474         restriction.
1475         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
1476
1477 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1478
1479         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
1480         const section to output a CONSTRUCTOR based on the same conditions
1481         used for VAR_DECLs.
1482
1483 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
1484
1485         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
1486         * pa/pa-protos.h (output_call): Add additional argument indicating
1487         if the call is a sibling/tail call.
1488         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
1489         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
1490         (function_arg, function_arg_partial_nregs): Likewise
1491         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
1492         (emit_move_sequence): Zero extend certain constants as needed
1493         for TARGET_64BIT.
1494         (compute_zdepdi_operands, output_64bit_and): New functions.
1495         (output_64bit_ior, function_arg): Likewise.
1496         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
1497         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
1498         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
1499         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
1500         (output_bvb): Likewise.
1501         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
1502         (output_call): New argument 'sibcall'.  Generate sibcall sequences
1503         as needed.
1504         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
1505         (ouput_arg_descriptor): Do not emit argument descriptors for
1506         TARGET_64BIT.
1507         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
1508         defined.
1509         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
1510         (FUNCTION_OK_FOR_SIBALL): Define.
1511         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
1512         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
1513         (CPP_SPEC): Use new spec infrastructure.
1514         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
1515         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
1516         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
1517         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
1518         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
1519         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
1520         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
1521         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
1522         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
1523         (FUNCTION_ARG); Call out to C code.
1524         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
1525         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
1526         (MIN_UNITS_PER_WORD): Likewise.
1527         * pa/pa.md (cmpdi): New expander.
1528         (scc patterns, movstrsi): Not available for TARGET_64BIT.
1529         (64bit conditional arithmetic): New patterns.
1530         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
1531         (movsicc): Not available if modes on all the operands to not match.     
1532         (movdicc): New expander and associated patterns.
1533         (64bit branches): New patterns.
1534         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
1535         (pre_ldd, post_std): New patterns.
1536         (64bit addil, load low part): New patterns.
1537         (special movsf constant): Not available for TARGET_64BIT.
1538         (movsf, movdf expanders): Force constants into memory.
1539         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
1540         (64bit movdf/movdi patterns): New patterns.
1541         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
1542         for TARGET_64BIT.
1543         (extendqidi2, extendhidi2, extendsidi2): Similarly.
1544         (adddi3 expander): Allow "arith_operand" for second input.
1545         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
1546         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
1547         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
1548         (muldi3): New expander for TARGET_64BIT.
1549         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
1550         for TARGET_64BIT.
1551         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
1552         patterns for TARGET_64BIT.
1553         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
1554         patterns for TARGET_64BIT.
1555         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
1556         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
1557         (sibcall_epilogue): New expander.
1558         (casesi): Tweak for TARGET_64BIT.
1559         (call expanders): Set & use the outgoing argument pointer.  Use the
1560         64bit call patterns as needed. Add additional arg to output_call.
1561         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
1562         (sibcall, sibcall_internal_symref): New expanders.
1563         (sibcall_value, sibcall_value_internal_symref
1564         (interspace_jump): Turn into an expander + matching patterns.
1565         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
1566         * pa/pa64-regs.h: Eliminate trigraph sequences.
1567         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
1568
1569 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
1570
1571         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
1572         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
1573         cpp_token with cpp_ttype everywhere.
1574         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
1575         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
1576         CPP_BUF_COL.  Line and column numbers are unsigned int, not
1577         long.
1578         * cpplex.c (cpp_buf_line_and_col): Delete.
1579         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
1580         'long lineno' to 'unsigned int lineno'.
1581         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
1582
1583 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1584
1585         * extend.texi: ISO C99 is not a draft anymore.
1586         * invoke.texi: ISO C++ is not a draft anymore.
1587         * cpp.texi: __cplusplus is required by the ISO standard.
1588
1589         * extend.texi (-fthis-is-variable): Undocument.
1590         * flags.h (warn_template_debugging): Remove declaration.
1591         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
1592         -Wenum-clash, -Wtemplate-debugging): Undocument.
1593
1594 2000-04-10  Nick Clifton  <nickc@cygnus.com>
1595
1596         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
1597         integer.
1598         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
1599         integer.
1600         (ARM_SIGN_EXTEND): Use HOST_UINT.
1601         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
1602         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
1603         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
1604         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
1605
1606         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
1607         (arm_gen_constant): Use HOST_UINT.
1608         (arm_canonicalize_constant): Use HOST_UINT.
1609         (arm_reload_in_hi): Use HOST_UINT.
1610         (arm_reload_out_hi): Use HOST_UINT.
1611         (output_multi_immediate): Use HOST_UINT.
1612         (int_log2): Use HOST_UINT.
1613         (arm_poke_function_name): Use HOST_UINT.
1614         (arm_output_epilogue): Use arm_volatile_func().
1615         (output_thumb_prologue): Use arm_strip_name_encoding().
1616         
1617 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1618
1619         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
1620         of sequence point problems.
1621
1622 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
1623
1624         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
1625         Recomment.
1626         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
1627
1628 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1629
1630         * sbitmap.h: Whitespace changes and use upper-case macro args.
1631         (struct simple_bitmap_def): All sizes now unsigned.
1632         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
1633         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
1634         (sbitmap_vector_alloc): Parms and local vars now unsigned.
1635         (sbitmap_zero): Cast bzero arg to PTR.
1636         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
1637         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
1638         loop to make structure clearer.
1639         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
1640         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
1641         (sbitmap_a_and_b_or_c): Likewise.
1642         (sbitmap_intersection_of_succs): Minor cleanups.
1643         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
1644         (sbitmap_union_of_preds): Likewise.
1645         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
1646         (debug_sbitmap): New function.
1647         
1648         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
1649         * c-typeck.c (convert_for_assignment): Likewise.
1650
1651         * expmed.c (init_expmed): Don't free objects we make.
1652         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
1653
1654         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
1655         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
1656
1657         * gcse.c (expr_hash_table_size): Now unsigned.
1658         (compute_ae_gen): Local variable `i' now unsigned.
1659         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
1660         (compute_transout, hoist_code): Likewise.
1661         (compute_local_properties): Likewise, also hash_table_size.
1662         (alloc_expr_hash_table): N_INSNS now unsigned.
1663         (delete_null_pointer_checks): Mark arg F as unused.
1664
1665         * regrename.c: Minor cleanups, including chang some variables
1666         to unsigned int.
1667
1668 2000-04-10  Neil Booth  <NeilB@earthling.net>
1669
1670         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
1671         than GETC ().
1672         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
1673
1674 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1675
1676         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
1677         __classof__, and __headof__ from the list of gnu keywords.
1678         (-ansi): Remove -foperator-names from list of implied options. 
1679         Do not call it ANSI C++.
1680         (-foperator-names): Document as -fno-operator-names.
1681
1682 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
1683
1684         * cpphash.c (timestamp): Delete.
1685         (del_HASHNODE): If type is T_MCONST, free value.cpval.
1686         (special_symbol): Remove unnecessary braces.  Remove
1687         T_VERSION.  Treat T_STDC like T_CONST unless
1688         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
1689         when one is encountered, then convert them into T_MCONST
1690         nodes.
1691         * cppinit.c (builtin_array): version_string is T_MCONST.
1692         __STDC__ has a "1" in its cpval.  Don't have a terminator
1693         entry.  Clean up which entries are dumped.
1694         (initialize_builtins): Only __STDC__ gets the special
1695         -traditional treatment.  Count the length of builtin_array.
1696         Render version_string here.
1697         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
1698         * cpplib.h (struct cpp_reader): Remove timebuf. 
1699
1700 2000-04-09  Richard Henderson  <rth@cygnus.com>
1701
1702         * genrecog.c (pred): Update comparison_operator for the unordered
1703         operators.
1704
1705         * config/i386/i386.c (no_comparison_operator): Disallow unordered
1706         operators.
1707         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
1708         (uno_comparison_operator): New.
1709         (put_condition_code): Handle UNORDERED/ORDERED.
1710         (unsigned_comparison): Likewise.
1711         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
1712         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
1713         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
1714         update all callers.  Handle all 8 unordered operators.
1715         (ix86_expand_setcc): Lose the unordered argument, update all callers.
1716         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
1717         * config/i386/i386.h (PREDICATE_CODES): Update.
1718         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
1719         (ix86_expand_branch, ix86_expand_setcc): Update.
1720         * config/i386/i386.md (sunordered, sordered): New.
1721         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
1722         (bunordered, bordered): New.
1723         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
1724         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
1725         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
1726
1727 2000-04-09  Philip Blundell  <philb@gnu.org>
1728
1729         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
1730         
1731 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
1732
1733         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
1734         fix_truncxfhi2): New patterns.
1735         * i386.c (output_fix_trunc): Handle converting to HImode.
1736
1737 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
1738
1739         * ssa.c (convert_to_ssa): Eliminate dead code when calling
1740         life_analysis.  
1741         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
1742         (for_each_successor_phi): Change parameter to basic_block.
1743         (coalesce_regs_in_successor_phi_nodes): Likewise.
1744         (coalesce_regs_in_copies): Likewise.
1745         (compute_coalesced_reg_partition): Use basic_block instead of index.
1746         * rtl.h (convert_to_ssa): Delete.
1747         (convert_from_ssa): Likewise.
1748         (successor_phi_fn): Likewise.
1749         (for_each_successor_phi): Likewise.
1750         (in_ssa_form): Likewise.
1751         * basic-block.h (convert_to_ssa): Moved from rtl.h.
1752         (convert_from_ssa): Likewise.
1753         (successor_phi_fn): Likewise.
1754         (in_ssa_form): Likewise.
1755         (for_each_successor_phi): Likewise.  Change parameter to basic_block. 
1756         * flow.c (calculate_global_regs_live): Pass a basic_block to
1757         for_each_successor_phi.
1758
1759 2000-04-08  Richard Henderson  <rth@cygnus.com>
1760
1761         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
1762         was modified in the current insn.
1763
1764 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
1765
1766         * arm/thumb.md: Delete.
1767         * arm/thumb-protos.h: Delete.
1768
1769 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
1770
1771         Merge changes from merged-arm-thumb-backend-branch onto trunk.
1772
1773         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
1774
1775         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
1776         into branch.
1777
1778         * arm.md (nop): Use the standard RTL expression.  Don't code as a
1779         define_expand.
1780         (*arm_nop, *thumb_nop): Delete.
1781
1782         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
1783         constants.  Use casts instead.
1784         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
1785         output_multi_immediate, arm_poke_function_name): Likewise.
1786         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
1787         MASK_RETURN_ADDDR): Likewise.
1788
1789         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
1790
1791         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325 
1792         into branch.
1793         
1794         * arm.md (eh_epilogue): New function.
1795         * arm.h (struct machine_function): Move to here ...
1796         * arm.c: ... from here.
1797         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
1798         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
1799         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
1800
1801         2000-03-30  Nick Clifton  <nickc@cygnus.com>
1802
1803         * config/arm/semi.h (ASM_SPEC): Restore definition.
1804         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
1805
1806         * config/arm/elf.h (ASM_SPEC): Restore definition.
1807         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
1808
1809         * config/arm/arm.h (ASM_SPEC): Remove definition.
1810         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
1811
1812         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
1813
1814         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
1815
1816         2000-03-24  Nick Clifton  <nickc@cygnus.com>
1817
1818         Various formating tidyups, elimination of compile time
1819         warnings and synchronisation with internal sources:
1820         
1821         * config/arm/arm-protos.h (assemble_align): Add prototype.
1822         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
1823         (gen_comapre_reg): Rename to arm_gen_compare_reg.
1824         (arm_return_addr_rtx): Rename to arm_return_addr.
1825
1826         * config/arm/arm.c: Include except.h.
1827         Define shorter typenames for strict minipool_node and struct
1828         minipool_fix.
1829         (arm_return_in_memory): For WinCE return all structures <= 32 bits
1830         in memory.
1831         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
1832         (gen_comapre_reg): Rename to arm_gen_compare_reg.
1833
1834         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
1835         already defined.
1836         (ASM_SPEC): Define if not already defined.
1837         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1838
1839         * config/arm/arm.md: Rename references to gen_rotated_half_load to
1840         arm_gen_rotated_half_load, and references to gen_comapre_reg to
1841         arm_gen_compare_reg.
1842         (indirect_jump):  Only accept register operands.
1843         (load_indirect_jump): Keep this pattern since combine can generate
1844         it.
1845
1846         * config/arm/coff.h: Include aout.h.
1847         (MULTILIB_DEFAULTS): Only define if not already defined.
1848
1849         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
1850         into arm.h (so that COFF ports can support thumb based aliases).
1851         (ASM_SPEC): Move definition into arm.h
1852         
1853         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
1854         redundant apcs spec.
1855         (ASM_SPEC): Move definition to arm.h
1856
1857         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
1858
1859         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
1860         for entries in the .bss section
1861
1862         2000-03-23  Nick Clifton  <nickc@cygnus.com>
1863
1864         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
1865         to thumb_far_jump_used_p.
1866
1867         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
1868         single integer parameter.
1869
1870         * config/arm/arm.c (struct machine_function): Add two new
1871         fields, 'far_jump_used' and 'arg_pointer_live'.
1872         (thumb_far_jump_used_p): Once the decision has been made that
1873         far jumps might be used, always return true.
1874         If being called from the initial elimination offset macro then
1875         do not bother to perform the test if the arg pointer is not
1876         being used.
1877         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
1878         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
1879
1880         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
1881
1882         * arm.c (output_return_instruction): Handle more cases where we can
1883         return from a function with an ldr instruction.
1884         (arm_output_epilogue): Likewise.
1885
1886         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
1887         if we need to push a large stack frame and there are no callee-saved
1888         registers.
1889
1890         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
1891         in ARM code if the frame pointer has been eliminated.
1892
1893         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
1894         unspec_volatile arguments to avoid duplicates.
1895         (consttable_1, consttable_2): Fixes for big-endian mode.
1896
1897         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
1898         as appropriate.
1899
1900         Re-write constant pool code.
1901         * arm.c (minipool_node, minipool_fix): New types.
1902         (minifix): Delete type.
1903         (arm_add_minipool_constant): Delete.
1904         (arm_compute_minipool_offsets, arm_find_barrier, 
1905         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
1906         (get_jump_table_size): Now returns HOST_WIDE_INT.
1907         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
1908         functions.
1909         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
1910         (assign_minipool_offsets, arm_print_value): Likewise.
1911         (dump_minipool): Rewrite.
1912         (arm_barrier_cost): New function.
1913         (create_fix_barrier): New function.
1914         (push_minipool_barrier): New function.
1915         (push_minipool_fix): Record additional information about the fixup 
1916         required.
1917         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
1918         check the mode of what needs fixing.
1919         (arm_reorg): Rewrite.
1920
1921         2000-03-08  Nick Clifton  <nickc@cygnus.com>
1922
1923         * config/arm/arm.md (indirect_jump): Force constant addresses into
1924         a register. 
1925
1926         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
1927
1928         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
1929
1930         2000-02-24  Nick Clifton  <nickc@cygnus.com>
1931
1932         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
1933         adjust is word aligned.
1934         (thumb_expand_epilogue): Make sure that stack adjust is word
1935         aligned.
1936
1937         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
1938         
1939         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
1940
1941         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
1942         pointer relative addresses.
1943
1944         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
1945
1946         * arm.c (find_barrier): Find the last barrier within the allowed 
1947         range.
1948
1949         2000-02-09  Nick Clifton  <nickc@cygnus.com>
1950
1951         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
1952
1953         2000-02-09  Nick Clifton  <nickc@cygnus.com>
1954
1955         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
1956         ARM_FUNCTION_PROFILER. 
1957
1958         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
1959         ARM_FUNCTION_PROFILER. 
1960
1961         * config/arm/linux-oldld.h: Imported from mainline sources.
1962
1963         2000-02-07  Nick Clifton  <nickc@cygnus.com>
1964
1965         * config/arm/lib1funcs.asm: Merge in thumb functions from
1966         lib1thumb.asm.
1967         
1968         * config/arm/lib1thumb.asm: Delete.
1969
1970         2000-02-04  Nick Clifton  <nickc@cygnus.com>
1971
1972         * config/arm/arm.c: Sychronised with current Red hat local
1973         sources. 
1974         * config/arm/arm.h: Ditto.
1975         * config/arm/arm-protos.h: Ditto.
1976
1977         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
1978
1979         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
1980
1981         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
1982         byte stores.
1983
1984         2000-02-02  Nick Clifton  <nickc@cygnus.com>
1985
1986         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
1987
1988         * config/arm/arm.md (epilogue): Fix rtl checking abort because
1989         (return) was emited using an emit_insn() call. 
1990         
1991         2000-01-31  Nick Clifton  <nickc@cygnus.com>
1992
1993         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
1994         thumb stack frame.
1995         (thumb_exit): Move frame pointer back into hard frame pointer
1996         register if backtracing is being used.
1997
1998         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
1999
2000         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113 
2001         into branch.
2002
2003         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
2004
2005         * config/arm/arm.md (neg_pool_offset): Provide default for new
2006         attribute.
2007         (arm_movsi_insn): Add neg_pool_offset attribute.
2008         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
2009         rtx for the insn that starts the scan and an unsigned long for its
2010         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
2011         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
2012         instructions in *PINSERTED.
2013         (struct minipool_fixup): Add MIN_ADDRESS elt.
2014         (sort_fixups): Compute it.
2015         (arm_reorg): Changes to support inserting pools before the insn to be
2016         fixed up.
2017
2018         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
2019
2020         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
2021         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
2022         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
2023
2024         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
2025
2026         * config/arm/semi.h (TARGET_VERSION): Do not define if already
2027         defined.
2028         (TARGET_DEFAULT): Do not define if already defined.
2029
2030         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
2031
2032         * config/arm/arm.md (anddi3): Allow disjoint source operands.
2033         (iordi3): Allow disjoint source operands.
2034         (xordi3): Allow disjoint source operands.
2035         (negdi2): Permit construction for ARM and Thumb.
2036         (arm_negdi2): Renamed version of old negdi2 pattern.
2037         (thumb_negdi2): New pattern: Only permit non-overlapping
2038         source and destination.
2039
2040         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
2041
2042         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
2043         scratch low register so that it will not be deleted.
2044
2045         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
2046
2047         * config/arm/pe.h (ARM_PE): Define.
2048         
2049         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
2050         interfacearm attribute if this is a PE toolchain.
2051         (output_return_instruction): Do not emit anything if the function
2052         has the naked attribute set.
2053         (is_called_in_ARM_mode): If the function has the interfacearm
2054         attribute then return true.
2055         (thumb_expand_prologue): Do not generate a prologue for naked
2056         functions.
2057         (thumb_expand_epilogue): Do not generate an epilogie for a naked
2058         function.
2059         (output_thumb_prologue): Do not bother if the function is naked.
2060         Strip PE encoding from function name before emitting.
2061
2062         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
2063
2064         * arm.md (pic_load_addr): Fix constraints.
2065
2066         * arm.md (casesi_insn): Fix mis-applied patch.
2067
2068         * arm.md ("core" function unit): Add rules for single- and
2069         multi-cycle insns.
2070         (All TARGET_THUMB patterns): Add "type" attribute information
2071         where needed.
2072         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
2073         the following insn is a CALL.
2074
2075         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
2076         pointer.
2077         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the 
2078         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
2079         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
2080         
2081         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
2082
2083         * config/arm/linux-gas.h: oops - this file was missed out when the
2084         branch was created...
2085
2086         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
2087
2088         * thumb.c: Deleted.  Move contents to ...
2089         * arm.c: ... here.
2090         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
2091         rule for thumb.o
2092         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
2093         * configure: Regen.
2094
2095         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
2096         declare a prototype for asm_output_align();
2097
2098         * arm.c (thumb_condition_code): Delete.
2099         (arm_print_operand): Always use arm_condition_code array.
2100
2101         * arm.c (thumb_return_addr_rtx): Delete.
2102         (arm_save_machine_status, arm_restore_machine_status): Delete.
2103         (arm_init_machine_status, arm_mark_machine_status): New functions.
2104         (arm_init_expanders): Update accordingly.
2105         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
2106         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
2107         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
2108         
2109         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
2110
2111         * configure.in : Fix arm-*-aout target to use new t-arm-aout
2112         script. 
2113         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
2114         targets.
2115
2116         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
2117
2118         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
2119         stack backtrace structure.
2120
2121         * config/arm/arm-protos.h: Add prototypes for functions defined in
2122         arm/pe.h.
2123         
2124         * config/arm/arm.c (arm_override_options): Fix selection of 
2125         attributes of default processor.
2126         
2127         * config/arm/coff.h: Delete needless #include.
2128         
2129         * config/arm/pe.c: Delete unused code.
2130         
2131         * config/arm/pe.h (CPP_DEFINES): Delete
2132         (SUBTARGET_CPP_SPEC): Define.
2133         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
2134         
2135         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
2136
2137         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
2138
2139         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
2140         updated.
2141         (CAN_DEBUG_WITHOUT_FP): Define.
2142         (FIXED_REGISTERS): Make r11 call-saved.
2143         (CALL_USED_REGISTERS): Likewise.
2144         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
2145         (FRAME_POINTER_REQUIRED): Correct logic for determining when a 
2146         frame-pointer is required.
2147         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
2148         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
2149         if the target normally needs a stack frame in non-leaf functions.
2150         (use_return_insn): Correct logic for determining when a return
2151         instruction can be used.
2152         (output_return_instruction): Handle the frame-pointer register as
2153         a normal register when not TARGET_APCS_FRAME.
2154         (arm_output_prologue): Likewise.
2155         (arm_output_epilogue): Likewise.
2156         (output_func_epilogue): Likewise.
2157         (arm_expand_prologue): Likewise.
2158         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
2159
2160         * arm.c (use_return_insn): No need to check floating point regs if
2161         TARGET_SOFT_FLOAT.
2162         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
2163         the code of value stored in the minipool array.
2164         (arm_add_minipool_constant): Likewise.
2165
2166 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2167
2168         * basic-block.h (conflict_graph_enum_fn): K&R fix.
2169
2170 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2171
2172         * tree.c (tree_expr_nonnegative_p): New function.
2173
2174         * tree.h (tree_expr_nonnegative_p): Declare.
2175
2176         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
2177         elide some sign_compare warnings.
2178         (build_conditional_expr): Likewise.
2179
2180 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
2181
2182         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
2183
2184         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
2185         * i386.c (print_operand): Use the proper suffix for a 387 HImode
2186         operand.  Abort if a 387 operand has an unsupported size.
2187
2188 2000-04-08  Neil Booth  <NeilB@earthling.net>
2189
2190         * cppexp.c (parse_charconst): Null does not end character
2191         constants.
2192         * cppinit.c (ISTABLE): Null character handled as whitespace.
2193         * cpplex.c (null_warning):  new function.
2194         (skip_string): Emit warning if nulls encountered.
2195         (_cpp_skip_hspace): Emit warning if nulls encountered.
2196         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
2197         them.
2198         * cpp.texi: Update.
2199
2200 2000-04-07  Richard Henderson  <rth@cygnus.com>
2201
2202         * flow.c (loop_depth): Remove.
2203         (reg_next_use, cc0_live, mem_set_list): Replace with ...
2204         (struct propagate_block_info): New.
2205         (life_analysis): Don't allocate reg_next_use.
2206         (propagate_block_delete_insn): Break out of propagate_block.
2207         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
2208         (propagate_block_delete_libcall): Likewise.
2209         (propagate_block): Create a propagate_block_info struct to pass
2210         to subroutines.  Allocate one not two temporary regsets.  Don't
2211         clobber memory for const calls.  Look for clobbers in
2212         CALL_INSN_FUNCTION_USAGE.
2213         (mark_set_regs): Recognize COND_EXEC.
2214         (mark_set_reg): Break out of mark_set_1.
2215         (mark_used_reg): Break out of mark_used_regs.
2216         (mark_used_regs): Recognize COND_EXEC.
2217         (insn_dead_p): Use propagate_block_info struct.
2218         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
2219         (find_auto_inc, try_pre_increment_1): Likewise.
2220         (print_rtl_with_bb): Dump regs live at end too.
2221         (count_reg_sets_1): Pass in loop_depth.
2222         (count_reg_sets, count_reg_references): Likewise.
2223         (recompute_reg_usage): Provide it.
2224
2225 2000-04-07  Richard Henderson  <rth@cygnus.com>
2226
2227         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
2228         not the raw files.
2229
2230 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
2231
2232         * cpplib.c (do_elif): Skip the rest of the line if we're
2233         not going to bother evaluating it.
2234         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
2235         to avoid pointless calls to the lexer.
2236
2237 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
2238
2239         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
2240
2241 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
2242
2243         * calls.c (expand_call): emit_queue if we're trying a sibcall.
2244
2245 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
2246
2247         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
2248
2249 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
2250
2251         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
2252         crtend so they can be multilibbed.
2253         (STAGESTUFF): Remove s-crt and s-crtS.
2254
2255 2000-04-07  Richard Henderson  <rth@cygnus.com>
2256
2257         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
2258         if we discover we need a pseudo and no_new_pseudos is true.
2259         * config/alpha/alpha.md (ne:DI insn): New.
2260         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
2261
2262 2000-04-07  Richard Henderson  <rth@cygnus.com>
2263
2264         * rtl.def (COND_EXEC): New.
2265         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
2266         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
2267
2268         * genconfig.c (have_cond_arith_flag): Remove.
2269         (have_cond_exec_flag): New.
2270         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
2271         (main): Print HAVE_conditional_execution.
2272
2273         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
2274         (sched_analyze_insn, print_pattern): Likewise.
2275         * reload.c (find_equiv_reg): Likewise.
2276         * rtlanal.c (reg_referenced_p): Likewise.
2277         (note_stores, dead_or_set_regno_p): Likewise.
2278         (reg_overlap_mentioned_p): Rewrite to use a switch.
2279
2280         * ggc.h (struct rtx_def): Forward declare.
2281
2282         * print-rtl.c (debug_rtx_range): New.
2283         * rtl.h (debug_rtx_range): Declare.
2284
2285         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
2286
2287         * gcse.c (gcse_main): Don't rebuild the CFG here.
2288         (delete_null_pointer_checks): Likewise.
2289         * ssa.c (convert_to_ssa): Likewise.
2290         * toplev.c (rest_of_compilation): Do it here instead.  Combine
2291         sequential calls to TIMEVAR.  Consistently use `insns' instead of
2292         `get_insns()'.  Always split insns after reload when optimizing.
2293
2294         * basic-block.h (merge_blocks_nomove): Declare.
2295         (tidy_fallthru_edge): Declare.
2296         * flow.c (merge_blocks_nomove): Document as merging into previous
2297         blocks.  Remove cruft from between blocks; remove all edges out of A.
2298         (tidy_fallthru_edge): Export.
2299
2300 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
2301
2302         * ssa.c (compute_conservative_reg_partition): Declare with
2303         void arguments.
2304         * toplev.c (clean_dump_file): Remove previously-deleted function
2305         inadvertantly merged back in.
2306         * conflict.c (conflict_graph_add): Use a single call to
2307         htab_find_slot to look up and insert.
2308
2309 2000-04-06  Richard Henderson  <rth@cygnus.com>
2310
2311         * genrecog.c (*): Rename _last_insn to last_insn.
2312         (make_insn_sequence): Set the position of the peephole2 C test
2313         to be at the last insn.
2314
2315 2000-04-06  Richard Henderson  <rth@cygnus.com>
2316
2317         * flow.c (compute_flow_dominators): Free worklist.
2318
2319 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
2320
2321         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
2322
2323 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
2324
2325         * rtl.h (INSN_P): New macro.
2326         (successor_phi_fn): New typedef.
2327         (for_each_successor_phi): New prototype.
2328         (in_ssa_form): New variable.
2329         (PHI_NODE_P): Likewise.
2330         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
2331         phi nodes in successors.
2332         (mark_used_regs): Add PHI case.
2333         (set_phi_alternative_reg): New function.
2334         (life_analysis): Assert that dead code elimination is not selected
2335         when in SSA form.
2336         * toplev.c (to_ssa_time): New variable.
2337         (from_ssa_time): Likewise.
2338         (compile_file): Zero to_ssa_time and from_ssa_time.
2339         Print time to convert to and from SSA.
2340         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
2341         (print_time): Compute percent fraction as integer.
2342         * ssa.c (PHI_NODE_P): Moved to rtl.h.
2343         (convert_to_ssa): Check if we're already in SSA.  
2344         Don't eliminate dead code in life_analysis.
2345         Rerun flow and life analysis at bottom.
2346         (eliminate_phi): Use canonical regnos when adding nodes.
2347         (mark_reg_in_phi): New function.
2348         (mark_phi_and_copy_regs): Likewise.
2349         (convert_from_ssa): Rerun life analysis at top.  
2350         Use coalesced partition.
2351         Check for removing a phi node at the end of the block.
2352         (compute_coalesced_reg_partition): New function.
2353         (coalesce_regs_in_copies): Likewise.
2354         (coalesce_reg_in_phi): Likewise.
2355         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
2356         (for_each_successor_phi): Likewise.
2357         (rename_context): New struct.
2358         (rename_block): Use a rename_context with rename_insn_1.  When
2359         renaming sets of a subreg, emit a copy of the entire reg first.
2360         (rename_insn_1): Treat data as a rename_context *.  Save current
2361         insn in set_data.
2362         (rename_set_data): Add field set_insn.
2363         * Makefile.in (HASHTAB_H): Move up in file.
2364         (OBSTACK_H): New macro.
2365         (collect2.o): Use OBSTACK_H in dependencies.
2366         (sdbout.o): Likewise.
2367         (emit-rtl.o): Likewise.
2368         (simplify-rtx.o): Likewise.
2369         (fix-header.o): Likewise.
2370         (OBJS): Add conflict.o.
2371         (conflict.o): New rule.
2372         * basic-block.h: Include partition.h.
2373         (conflict_graph): New typedef.
2374         (conflict_graph_enum_fn): Likewise.
2375         (conflict_graph_new): New prototype.
2376         (conflict_graph_delete): Likewise.
2377         (conflict_graph_add): Likewise.
2378         (conflict_graph_conflict_p): Likewise.
2379         (conflict_graph_enum): Likewise.
2380         (conflict_graph_merge_regs): Likewise.
2381         (conflict_graph_print): Likewise.
2382         (conflict_graph_compute): Likewise.
2383         * conflict.c: New file.
2384
2385 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
2386
2387         * tlink.c (read_repo_files): Don't look for .rpo info for
2388         linker flags.
2389
2390 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2391
2392         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
2393
2394 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2395
2396         * config/sh/lib1funcs.asm (___udivsi3_i4):
2397         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
2398         only depends on FMOVD_WORKS.
2399
2400 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2401
2402         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
2403         make double constant 8-byte aligned.
2404
2405 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
2406
2407         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
2408         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
2409         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
2410         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
2411         Accept storing GENERAL_REGS into offsetable memory.
2412         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
2413         building a TFmode constant other than 0.0L into GENERAL_REGS.
2414
2415 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
2416
2417         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
2418         
2419 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
2420
2421         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
2422         (macro_cleanup): No need to cast pbuf->macro.
2423         (collect_expansion): Use _cpp_get_define_token.  Goto done if
2424         it returns VSPACE.  Remove check for trailing space after
2425         CPP_COMMENT.
2426         (_cpp_create_definition): Don't diddle flags here.  Return
2427         directly on error.
2428         (unsafe_chars): Handle c1 being EOF.
2429         (push_macro_expansion): Use unsafe_chars for both accidental-paste
2430         checks.  Don't push the buffer till after we're done with
2431         them.
2432         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
2433         (PEEKN, FORWARD, GETC, PEEKC): Use them.
2434         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
2435         appropriately.
2436         (_cpp_parse_assertion): Don't NUL terminate.
2437         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
2438         hspace before calling _cpp_parse_assertion.  Remove all sets
2439         of only_seen_white. Treat '\f' as hspace.  Don't do anything
2440         special with '\n' here.
2441         (maybe_macroexpand): Handle T_EMPTY hash entries without
2442         pushing a buffer at all.
2443         (cpp_get_token): Handle clearing only_seen_white here.  Handle
2444         incrementing the line number here.  Clear
2445         potential_control_macro as well as only_seen_white, if
2446         appropriate.
2447         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
2448         (_cpp_get_define_token): New function, basically like
2449         _cpp_get_directive_token was but doesn't eat horizontal space.
2450         Don't do anything with only_seen_white here.
2451         (_cpp_get_directive_token): Just call _cpp_get_define_token
2452         repeatedly till it returns non-hspace.
2453
2454         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
2455         (conditional_skip, skip_if_group): Return int.
2456         (DIRECTIVE_TABLE): Change origin of all conditional directives
2457         to "COND".
2458         (TRAD_DIRECT_P): New macro.
2459         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
2460         an error for a bogus directive, unless -lang-asm.  Use
2461         TRAD_DIRECT_P. Loop calling handler functions till one returns
2462         zero.
2463         (get_macro_name): Don't diddle flags here.
2464         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
2465         Create T_EMPTY nodes for #define macro /* nothing */.
2466         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
2467         Use hp->name when calling pass_thru_directive.
2468         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
2469         Return the result of conditional_skip and/or skip_if_group.
2470         Don't call _cpp_output_line_command.
2471         (consider_directive_while_skipping): Use _cpp_get_directive_token.
2472         Issue -Wtraditional warnings as appropriate.  Don't complain
2473         about unrecognized directives.  If we are to stop skipping,
2474         return the number of the directive that ended the skip.
2475         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
2476         expansion and line commands while skipping.  Return the result
2477         of consider_directive_while_skipping, if nonzero.
2478         (do_endif): Just set potential_control_macro here.
2479         (validate_else): Use _cpp_get_directive_token.
2480         (do_assert, do_unassert): Don't save pointers into the
2481         token_buffer across calls to the lexer.  Use
2482         _cpp_get_directive_token.  
2483
2484         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a 
2485         pointer, not an offset.  Replace 'data', which was a generic
2486         pointer, with 'macro', which points to a struct hashnode.
2487         (cpp_reader): Add 'potential_control_macro' pointer.
2488         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
2489         (CPP_BUF_GET, CPP_FORWARD): Delete.
2490         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
2491         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
2492         ACTIVE_MARK_P): Update.
2493         (_cpp_get_define_token): New internal function.
2494         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
2495
2496 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
2497
2498         * configure.in: And here.
2499         * configure: Regenerate.
2500         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
2501         --enable-libstdcxx-v3 is passed at configure time.
2502         * config.h.in: Regenerate.
2503
2504 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
2505
2506         * final.c (final): Use xcalloc to allocate line_note_exists.
2507         * function.c (free_after_compilation): Free the temp_slots.
2508         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
2509         (combine_temp_slot): Free temp_slots when they get combined.
2510         (purge_addressof): Fix typo in comment.
2511         * stmt.c (mark_goto_fixup): Mark the fixup itself.
2512         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
2513
2514         * ggc.h: Include varray.h.
2515         (ggc_pending_trees): Declare.
2516         (ggc_mark_tree_children): Remove declaration.
2517         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
2518         * ggc-common.c (ggc_pending_trees): New variable.
2519         (ggc_mark_roots): Call ggc_mark_trees.
2520         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
2521         the ggc_pending_trees.
2522         * Makefile.in (GGC_H): New variable.  Use it throughout in place
2523         of ggc.h.
2524         
2525 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2526
2527         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
2528         GET_MODE_SIZE.
2529
2530 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2531
2532         * sh.c (sh_insn_length_adjustment): New function.
2533         * sh-protos.h (sh_insn_length_adjustment): Declare.
2534         * sh.h (ADJUST_INSN_LENGTH): Use it.
2535
2536 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
2537
2538         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
2539         from the insn where REG_RETVAL is added.
2540         (emit_no_conflict_block): Ditto.
2541
2542         * md.texi (Standard Names): Clarify when movX is needed.
2543
2544         * combine.c (simplify_comparison) [MINUS]: Do not replace
2545         all (op (minus A B) 0) with (op A B).
2546
2547 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
2548                           J"orn Rennecke <amylaar@cygnus.co.uk>
2549
2550         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
2551         (block_lump_real): Likewise.
2552
2553 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
2554
2555         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
2556         remaining non-zero debugging masks.
2557
2558 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
2559
2560         * basic-block.h (verify_flow_info): Declare.
2561         (flow_loop_outside_edge_p): Declare.
2562         * flow.c (verify_flow_info): Remove declaration.
2563         (clear_log_links, flow_loop_outside_edge_p): Likewise.
2564
2565 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
2566
2567         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
2568         not C++ comments.
2569
2570 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
2571
2572         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
2573         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
2574         seqdi_zero_trunc+1): Allow splits only if registers are
2575         different.
2576
2577 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
2578
2579         * acconfig.h: Add HAVE_GAS_HIDDEN.
2580         * config.in: Regenerated.
2581         * configure.in: Add test for .hidden pseudo-op in gas.
2582         * configure: Regenerated.
2583         * crtstuff.c: Include auto-host.h.
2584         Emit additional .hidden pseudo-op for __dso_handle if the
2585         assembler knows about it.
2586
2587 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
2588
2589         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
2590         before freeing argnames.
2591         * cpplib.c (do_ifndef): Cast return value of xstrdup.
2592
2593 2000-04-05  Michael Meissner  <meissner@redhat.com>
2594
2595         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
2596         Walton <jonboy@gordian.com> to make memory references with update
2597         work wtih -mregnames.
2598
2599 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2600
2601         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
2602         (regrename_optimize): Rename variables `def_uses' and
2603         `ext_basic_blocks' to avoid conflicts with similarly named
2604         typedefs in traditional C.
2605
2606         * calls.c (initialize_argument_information): Fix typo in previous
2607         change.
2608
2609 2000-04-04  Richard Henderson  <rth@cygnus.com>
2610
2611         * regrename.c (consider_available): Test fixed_regs not
2612         PIC_OFFSET_TABLE_REGNUM.
2613
2614 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
2615
2616         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
2617         crtend.
2618         (CRTSTUFF_T_CFLAGS_S): Delete definition.
2619         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
2620         (ENDFILE_LINUX_SPEC): Always use crtend.
2621         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
2622         (powerpc-*-linux-gnu): Likewise.
2623         * configure: Regenerate.
2624
2625         * config/rs6000/eabi.h: Don't include sysv4.h.
2626         (MULTILIB_DEFAULTS): Don't define.
2627         * config/rs6000/eabiaix.h: Don't include eabi.h.
2628         * config/rs6000/eabile.h: Delete.
2629         * config/rs6000/eabilesim.h: Delete.
2630         * config/rs6000/eabisim.h: Don't include eabi.h.
2631         * config/rs6000/linux.h: Don't include sysv4.h.
2632         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
2633         (MULTILIB_DEFAULTS): Don't redefine.
2634         * config/rs6000/rtems.h: Don't include eabi.h.
2635         * config/rs6000/sol2.h: Don't include sysv4le.h.
2636         * config/rs6000/sysv4le.h: Don't include sysv4.h.
2637         * config/rs6000/t-ppc: Delete.
2638         * config/rs6000/t-ppcgas: Correct comment.
2639         * config/rs6000/t-ppcos: Correct comment.  Don't build 
2640         multilibs for -fPIC, rather use -fPIC -mstrict-align 
2641         as default.
2642         * config/rs6000/t-ppc: Delete.
2643         * config/rs6000/vxppc.h: Don't include sysv4.h.
2644         * config/rs6000/vxppcle.h: Delete.
2645         * configure.in: Use multiple header files for p2pc ELF targets
2646         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
2647         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
2648         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
2649         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
2650         always available for these platforms.
2651
2652 2000-04-04  Richard Henderson  <rth@cygnus.com>
2653
2654         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
2655
2656 2000-04-04  Stan Cox  <scox@cygnus.com> 
2657
2658         * Makefile.in: Add rules for regrename.o
2659         * regrename.c: New file.
2660         * rtl.h (regrename_optimize): Add prototype.
2661         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
2662         (compile_file, decode_d_option): Add support for -frename-registers.
2663         (rest_of_compilation): Call regrename_optimize.
2664         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
2665         New macros.     
2666         
2667 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2668
2669         * Makefile (gccbug): New target.
2670         (doc): Depend on it.
2671         * gcc.texi (Bugs): Link subnodes.
2672         (gccbug): New node.
2673         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
2674         Document severities, priorities, and classes in bug form.
2675
2676 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
2677
2678         * cpplex.c (trigraph_map, speccase): Combine into single
2679         table, chartab.
2680         (NORMAL, NONTRI): New macros.
2681         (_cpp_read_and_prescan): Change to use unified table.  Use
2682         is_hspace to test for whitespace.
2683
2684         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
2685         definition that doesn't provoke the "empty body in an
2686         if-statement" warning.
2687
2688 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
2689
2690         * builtins.c (expand_builtin_strlen): Force the source to
2691         be a memory address.
2692
2693 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2694
2695         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
2696
2697 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2698
2699         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
2700          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
2701         (ECF_IS_CONST): Rename to ECF_CONST.
2702         (special_function_p): Make static, change interface.
2703         (flags_from_decl_or_type, try_to_integrate): Break out from ...
2704         (expand_call) ... here; convert number of variables to flags.
2705         (emit_library_call_vlue_1): Likewise.
2706         (setjmp_call_p): New function.
2707         (initialize_argument_information): Accepts flags as argument;
2708         return flags.
2709         (precompute_arguments): Likewise.
2710         * tree.h (special_function_p): Remove.
2711         (setjmp_call_p): Add prototype.
2712
2713 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
2714
2715         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
2716         so that addresses are offsetable by up to 16 bytes.
2717         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
2718         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
2719         offsetable.
2720
2721         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
2722         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
2723         (movsf): Don't force any constant to memory if target is integer
2724         hard register.
2725         Move fp_zero_operand check below the const0_rtx check.
2726         (movtf): Likewise. Also allow fp_zero_operand for stores into
2727         memory.
2728         (movdf): Likewise. Also allow fp_zero_operand for stores into
2729         memory and into integer hard registers.
2730         (clear_df, clear_dfp, movdf_const_intreg_sp32,
2731         movdf_const_intreg_sp64): Remove.
2732         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
2733         conditions.
2734         (movdf_no_e_insn_v9_sp32): New pattern.
2735         (movdf_insn_v9only): Remove.
2736         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
2737         (movdf_insn_sp64): Remove.
2738         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
2739         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
2740         (following splits): Rewrite conditions. Add two new splits
2741         for storing 0.0 into memory and registers.
2742         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
2743         (movtf_insn_sp32): Redo constraints and conditions.
2744         (movtf_insn_vis_sp32): New pattern.
2745         (movtf_no_e_insn_sp32): Redo constraints and conditions.
2746         (movtf_insn_hq_sp64): Likewise.
2747         (movtf_insn_hq_vis_sp64): New pattern.
2748         (movtf_insn_sp64): Redo constraints and conditions.
2749         (movtf_insn_vis_sp64): New pattern.
2750         (movtf_no_e_insn_sp64): Redo constraints and conditions.
2751         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
2752         or memory.
2753         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
2754         -mvis or -m64 to take down the number of various reload patterns.
2755
2756 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
2757
2758         * pa/pa-64.h: New file.
2759         * pa/pa64-regs.h: New file.
2760         * pa/pa64-start.h: New file.
2761         * pa/t-pa64: New file.
2762         * pa/xm-pa64hpux.h: New file.
2763
2764 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2765
2766         * sparc.c (output_restore_regs): Prototype.
2767         (sparc_emit_float_lib_cmp): Constification.
2768
2769         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
2770
2771         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
2772         Prototype.
2773
2774         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
2775         (get_value_hash, hash_rtx): Likewise.
2776
2777         * ssa.c (compute_conservative_reg_partition): Prototype.
2778
2779         * tree.c (mark_hash_entry): Prototype.
2780
2781 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
2782
2783         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
2784         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
2785         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
2786
2787         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
2788         * objc/lang-specs.h: Likewise.
2789
2790 2000-04-03  Neil Booth  <NeilB@earthling.net>
2791
2792         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
2793         and SYNTAX_ERROR2. Replace `' in messages with ''.
2794         (op_to_str): Make re-entrant.
2795         (_cpp_parse_expr): Implement new error macros. Use | rather
2796         than || to logically or 2 boolean integers.  Simply expression
2797         checking we have a left operand iff needed.
2798
2799 2000-04-03  Nick Clifton  <nickc@cygnus.com>
2800
2801         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
2802
2803 2000-04-03  Philip Blundell  <philb@gnu.org>
2804
2805         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
2806
2807 2000-04-03  Felix Lee  <flee@cygnus.com>
2808
2809         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
2810         (run_shell): Use it. 
2811
2812 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
2813
2814         * Makefile.in (stmp-int-hdrs): Make include subdir here...
2815         (stmp-fixproto): ...rather than here.
2816
2817 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
2818
2819         * pa.c (print_operand): Compute 'base' only inside the code paths
2820         that use it.
2821
2822 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
2823
2824         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
2825         CEIL_DIV_EXPR.
2826
2827 2000-04-03  Philipp Thomas  <pthomas@suse.de>
2828
2829         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
2830
2831 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
2832
2833         * Makefile.in (alias.o): Depend on $(TREE_H).
2834
2835 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
2836
2837         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
2838         processing C++.
2839         * cpplib.c (_cpp_handle_directive): Improve warnings for
2840         traditional C and indented directives.
2841
2842         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
2843         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
2844         fixinc/inclhack.def: Indent the # of #include_next one space.
2845         * cp/rtti.c: Un-indent #if and #endif.
2846
2847         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
2848         syntax error, but an error has already been printed.
2849         * cpplex.c (_cpp_parse_assertion): Give a more specific error
2850         message when called with nothing remaining on the line.
2851         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
2852         OTHER token, not an ASSERTION.
2853         * cpplib.c (do_assert): When we create a 'base' node, clear
2854         its aschain pointer.
2855
2856 2000-04-02  Neil Booth <NeilB@earthling.net>
2857
2858         * cppexp.c:  New typedef op_t.  struct operation and struct 
2859         token updated to use it.
2860         (op_to_str): New function.
2861         (_cpp_parse_expr): Error messages modified to use op_to_str.
2862
2863 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2864
2865         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
2866         before checking MUST_PASS_IN_STACK.
2867
2868 2000-04-02  Neil Booth <NeilB@earthling.net>
2869
2870         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
2871         flags and initial priority into a single constant.  New
2872         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
2873         (_parse_cpp_expr): Implement new constants.  Take left operand
2874         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
2875         parse indicated by reducing FINISHED token.  Remove new lines
2876         from cpp_error messages.
2877
2878 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
2879
2880         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
2881         permanent obstack.
2882
2883 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
2884
2885         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
2886         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
2887         the strings and function names on the fly.  Take the #sccs
2888         entry out of the table if SCCS_DIRECTIVE is not defined.
2889         (_cpp_handle_directive): Decide if the # was at the beginning
2890         of the line here.  Issue -pedantic warnings for extended
2891         directives here.  Warn about K+R directives with the #
2892         indented, and C89/extended directives with the # not indented,
2893         here.
2894         (do_import, do_include_next, do_warning, do_ident, do_sccs,
2895         do_assert, do_unassert): Don't issue pedantic warning here.
2896
2897         * cpphash.h: Add CPP_WTRADITIONAL macro.
2898         * cpplib.h (struct cpp_options): Rename warn_stringify to
2899         warn_traditional; update comments.
2900         * cppinit.c (handle_option): Set warn_traditional not
2901         warn_stringify.
2902         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
2903         CPP_WTRADITIONAL (pfile).
2904         * cpplex.c (_cpp_lex_token): Don't decide if directives should
2905         be ignored in -traditional mode here.
2906
2907         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
2908         to initialize speccase[] and trigraph_map[].  Delete all
2909         references to pfile->input_speccase.  Always treat '?' as a
2910         special character.  Remove table-initialization code from
2911         _cpp_init_input_buffer.
2912
2913         * cpplib.h (struct cpp_reader): Remove input_speccase field.
2914         * cppinit.c (cpp_cleanup): Don't free input_speccase.
2915
2916 2000-04-01  Richard Henderson  <rth@cygnus.com>
2917
2918         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
2919         (mostlyclean): Likewise.
2920
2921         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
2922         (struct dump_file_info, enum dump_file_index, dump_file): New.
2923         (open_dump_file): Take a dump_file_index not a suffix, and a decl
2924         not a string.  Clean out file if we havn't yet done so.  Do nothing
2925         if the dump isn't enabled.
2926         (close_dump_file): Do nothing if the dump isn't open.  Dump 
2927         graph data if requested.
2928         (dump_rtl, clean_dump_file): Remove.
2929         (compile_file): Don't clean the dump files.  Only finalize .bp dump
2930         if flag_test_coverage or flag_branch_probabilities.  Only finalize
2931         .combine dump if optimizing.  Iterate over dump_file to finalize the
2932         graph dumps.
2933         (rest_of_compilation): Update for open_dump_file/close_dump_file.
2934         Convert all uses of dump_rtl.
2935         (decode_d_option): Iterate over dump_file to implement 'a' and to
2936         locate pass-specific dumps.
2937
2938 2000-04-01  Neil Booth <NeilB@earthling.net>
2939
2940         * cppexp.c: Redefine priority constants.
2941         (_cpp_parse_expr): Replace left and right priority scheme with
2942         single priority logic.  Move LOGICAL to same place as COMPARE.
2943         Remove bogus check for multiple unary +/- operators.
2944
2945 2000-04-01  Neil Booth <NeilB@earthling.net>
2946
2947         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
2948         within the switch statement.  Binary operations break out of
2949         the switch naturally.  '(' tokens handled by forcing
2950         immediate shift.  ')' handled by forcing immediate reduce to
2951         the previous '('.  New error messages.
2952         
2953 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
2954
2955         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
2956         part', it's already in use.  Use %K instead.  Add a return at the
2957         end of what is now %K.
2958         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. 
2959
2960 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2961
2962         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
2963         allocate_dynamic_stack_space.
2964         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
2965         update stack_pointer_delta; do not update arg_size_so_far.
2966         (compute_argument_block_size): Use stack_delta instead of
2967         stack_pointer_pending and arg_size_so_far.
2968         (expand_call): Add sanity checking for stack_pointer_delta;
2969         save and restore stack_pointer_delta for SIB, use
2970         stack_pointer_delta for alignment; do not update arg_space_so_far.
2971         (emit_library_call_value): Use stack_pointer_delta for alignment.
2972         (store_one_arg): Do not update arg_space_so_far.
2973         * explow.c (adjust_stack, anti_adjust_stack): Update
2974         stack_pointer_delta.
2975         (allocate_dynamic_stack_space): Add sanity checking for
2976         stack_pointer_delta.
2977         * expr.c (init_expr, clear_pending_stack_adjust): Clear
2978         stack_pointer_delta.
2979         (emit_push_insn): Update stack_pointer_delta.
2980         * function.h (struct expr_status): Add x_stack_pointer_delta;
2981         remove x_arg_space_so_far.
2982         (arg_space_so_far): Remove.
2983         (stack_pointer_delta): New macro.
2984
2985 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
2986
2987         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
2988         Reorder struct cpp_options and struct cpp_reader for better 
2989         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
2990         takes two args.  Change all 'char' flags to 'unsigned char'.
2991         Move show_column flag into struct cpp_options.  Don't
2992         prototype cpp_options_init.
2993         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
2994         cppinit.c, cpplex.c, cpplib.c:
2995         Replace CPP_OPTIONS (pfile)->whatever with
2996         CPP_OPTION (pfile, whatever), and likewise for
2997         opts = CPP_OPTIONS (pfile); ... opts->whatever;
2998
2999         * cppinit.c (merge_include_chains): Take a cpp_reader *.
3000         Extract CPP_OPTION (pfile, pending) and work with that
3001         directly.
3002         (cpp_options_init): Delete.
3003         (cpp_reader_init): Turn on on-by-default options here.
3004         Allocate the pending structure here.              
3005         (cl_options, enum opt_code): Define these from the same table,
3006         kept in a large macro.  Add -fshow-column and -fno-show-column
3007         options.
3008
3009         * cpperror.c (v_message): If show_column is off, don't print
3010         the column number.
3011
3012         * cppmain.c: Update for new interface.
3013         * fix-header.c: Likewise.
3014
3015 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
3016
3017         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
3018         definition.
3019         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
3020         are passed to any invocation of AR_FOR_TARGET.
3021         (AR_CREATE_FOR_TARGET): New macro.
3022         (AR_EXTRACT_FOR_TARGET): New macro.
3023         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
3024         AR_EXTRACT_FOR_TARGET.
3025         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
3026         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
3027         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
3028         AR_EXTRACT_FOR_TARGET to sub-makes.
3029
3030 2000-03-31  Neil Booth <NeilB@earthling.net>
3031
3032         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
3033         PAREN_INNER_PRIO.
3034         (_cpp_parse_expr): Check for multiple unary +/- operators.
3035         Correct priorities of ':' and '?'.  Treat ')' as having a
3036         value.  Ensure conditional expression is not void.
3037         
3038 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
3039
3040         * alias.c (canon_rtx): Make it global.
3041         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
3042         equality.
3043         * cse.c (struct table_elt): Add canon_exp.
3044         (insert): Clear it.
3045         (invalidate): Canonicalize expressions only once.
3046         * rtl.h (canon_rtx): Declare.
3047
3048 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
3049
3050         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
3051         * alias.c (reg_known_value): Add comments.
3052         (init_alias_analysis): Likewise.
3053         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
3054         address.
3055         (cse_basic_block): Fix typo in comment.
3056         * emit-rtl.c: Include hashtab.h.
3057         (const_int_htab): New variable.
3058         (const_int_htab_hash): New function.
3059         (const_int_htab_eq): Likewise.
3060         (rtx_htab_mark_1): Likewise.
3061         (rtx_htab_mark): Likewise.
3062         (gen_rtx_CONST_INT): Cache all CONST_INTs.
3063         (unshare_all_rtx): Fix formatting.
3064         (init_emit_once): Initialize const_int_htab.
3065         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
3066         address.
3067         * rtl.texi: Document the fact that all CONST_INTs with the same
3068         value are shared.
3069
3070 2000-03-30  Richard Henderson  <rth@cygnus.com>
3071
3072         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
3073
3074 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
3075
3076         * configure.in: Comment out --enable-c-cpplib stanza.
3077         * configure: Regenerate.
3078
3079 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3080
3081         * expr.c (store_constructor): Properly compute displacement and
3082         alignment when offset is variable.
3083
3084         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
3085         cases of alignment in bytes.
3086
3087 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
3088
3089         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
3090         since it is used to generate c-parse.y.
3091         * objc-parse.c, objc-parse.y: Regenerated.
3092
3093         * function.c (expand_function_end): Pass alignment argument to
3094         emit_block_move in bits, not bytes.
3095
3096 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3097
3098         * expr.c (move_by_pieces_ninsns): Fix one more missing align
3099         correction.
3100
3101         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
3102
3103         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
3104         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
3105         * function.c (assign_parms): Likewise.
3106         * integrate.c (expand_inline_function): Likewise.
3107         * stmt.c (expand_decl): Likewise.
3108         (copy_rtx_and_substitute): Likewise.
3109         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
3110         (clear_by_pieces): Fix error in last change.
3111         * emit-rtl.c (init_emit): Set known registers alignment in bits.
3112         * function.h (regno_pointer_align): Now unsigned.
3113         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
3114         is in bits.
3115         * config/i386/i386.c (aligned_operand): Likewise.
3116         * config/sparc/sparc.c (mem_min_alignment): Likewise.
3117         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
3118         (unaligned_memory_operand): Likewise.
3119         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
3120         Also make alignments and sizes unsigned and some whitespace cleanup.
3121         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
3122
3123         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
3124         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
3125         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
3126         (expand_builtin_memset): Likewise, but to clear_storage.
3127         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
3128         (restore_fixed_argument_area): Likewise.
3129         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
3130         (load_register_parameters): Likewise, to emit_group_load.
3131         (expand_call): Likewise, to emit_group_store and emit_block_move.
3132         (emit_library_call_value_1): Likewise, to emit_block_move.
3133         (store_one_arg): Likewise, and to emit_push_insn.
3134         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
3135         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
3136         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
3137         (emit_block_move, emit_group_load, emit_group_store): Likewise.
3138         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
3139         (expand_assigment, store_expr, store_constructor_field): Likewise.
3140         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
3141         (store_constructor, store_field, get_inner_reference): Likewise.
3142         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
3143         (expand_expr, case COMPONENT_REF): Likewise.
3144         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
3145         and positions; reindent code.
3146         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
3147         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
3148         (assign_parms): Likewise to emit_group_store.
3149         * optabs.c (prepare_cmp_insn): Alignment is in bits.
3150         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
3151         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
3152         (expand_return): Likewise to {extract,store}_bit_field.
3153         * stor-layout.c (get_mode_alignment): Minor cleanup.
3154         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
3155         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
3156         
3157 2000-03-29  Nick Clifton  <nickc@cygnus.com>
3158
3159         * config/arm/arm.h: Undo effects of previous delta:
3160         (ASM_SPEC): Do not define.
3161         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
3162
3163         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
3164         typo. 
3165
3166 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
3167
3168         * cppinit.c (cpp_start_read): Call initialize_dependency_output
3169         only after reading in the primary source file.
3170
3171 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
3172
3173         * c-common.c (c_common_nodes_and_builtins): The first parameter to
3174         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
3175         or a reference to a va_list.
3176         * builtins.c (stabilize_va_list): Simplify now we don't have to
3177         work around C array address decay.
3178         * c-typeck.c (convert_for_assignment): Handle assignment to
3179         a reference parameter by taking the address of the RHS.
3180         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
3181         (va_copy): Likewise.
3182         (__va_copy): Likewise.
3183         * ginclude/varargs.h (va_start): Likewise.
3184         (__va_copy): Likewise.
3185
3186 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
3187
3188         * i386/djgpp.h: Remove extraneous "+".
3189
3190         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
3191
3192         * calls.c (expand_call): Fix typo in last change.
3193
3194 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
3195
3196         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
3197         been expanded.
3198
3199 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3200
3201         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
3202         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
3203         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
3204         * tree.c (bit_position, byte_position): Likewise.
3205         * tree.h: Declare new functions.
3206
3207 2000-03-29  Nick Clifton  <nickc@cygnus.com>
3208
3209         * config/arm/arm.c: Minor formatting changes/
3210         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
3211         already defined.
3212         (ASM_SPEC): Define if not already defined.
3213
3214 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
3215
3216         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
3217         _cpp_calc_hash.
3218
3219 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
3220
3221         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
3222         value, don't output it as unsigned.
3223
3224 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
3225
3226         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
3227
3228 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3229
3230         * c-common.c (c_common_nodes_and_builtins): Don't special case
3231         cplus_mode when declaring builtin bzero/bcmp, always avoid
3232         prototype arguments.
3233
3234 2000-03-29  Bruce Korb  <bkorb@gnu.org>
3235
3236         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
3237         to a non-file
3238
3239 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3240
3241         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
3242         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
3243         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
3244         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
3245         (save_fixed_argument_area, restore_fixed_argument_area):
3246         conditionize by #ifdef REG_PARM_STACK_SPACE only.
3247         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
3248         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
3249         (precompute_register_parameters): Avoid #ifdefs on
3250         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
3251         (stire_one_args): Likewise.
3252         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
3253         (emit_library_call_value_1): Likewise.
3254         (compute_argument_block_size): Align to STACK_BOUNDARY only for
3255         ACCUMULATE_OUTGOING_ARGS.
3256         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
3257         value.
3258         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
3259         (use_crosses_set_p): Likewise.
3260         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
3261         #define ACCUMULATE_OUTGOING_ARGS 1.
3262         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
3263         frames.
3264         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
3265         constants.
3266         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
3267         (TARGET_SWITCHES): Add push-args, no-push-args,
3268         accumulate-outgoing-args and no-accumulate-outgoing-args.
3269         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
3270         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
3271         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
3272         and PUSH_ROUNDING.
3273         (emit_push_insn): Likewise.
3274         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
3275         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
3276         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
3277         (STACK_DYNAMIC_OFFSET): Define correctly for both
3278         ACCUMULATE_OUTGOING_ARGS and normal mode.
3279         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
3280         * tm.texi (PUSH_ARGS): Document.
3281         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
3282
3283 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3284
3285         * flags.h (flag_optimize_sibling_calls): Declare.
3286         * calls.c (expand_call): Fail sibcall when
3287         !flag_optimize_sibling_calls
3288         * invoke.texi (flag_optimize_sibling_calls): Document.
3289         * toplev.c (flag_optimize_sibling_calls): New global variable.
3290         (f_options): Add flag_optimize_sibling_calls.
3291         (rest_of_compilation): Conditionize
3292         optimize_sibling_and_tail_recursive_calls by
3293         flag_optimize_sibling_calls.
3294         (main): Set flag_optimize_sibling_calls for -O2.
3295         * stmt.c (expand_return): Conditionize tail recursion by
3296         flag_optimize_sibling_calls.
3297
3298 2000-03-29  Richard Henderson  <rth@cygnus.com>
3299
3300         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
3301         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
3302
3303 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
3304
3305         * except.c (add_eh_table_entry): Mark type_info's as referenced.        
3306
3307 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3308
3309         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
3310         is given.
3311         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
3312         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
3313         * config/rs6000/aix.h: then modified likewise.
3314
3315 2000-03-28  Richard Henderson  <rth@cygnus.com>
3316
3317         * rtl.h: Redistribute enum reg_note documentation. 
3318         Kill trailing whitespace.
3319         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
3320         Kill trailing whitespace.
3321
3322 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
3323
3324         * cppfiles.c (hash_IHASH): Just return i->hash.
3325         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
3326         htab_find_with_hash.
3327         (cpp_read_file): Likewise.
3328         (find_include_file): Likewise.  Properly initialize
3329         ih->nshort.  Share ih->name and ih->nshort if possible.
3330         * cpphash.c (_cpp_calc_hash): New function.
3331         (hash_HASHNODE): Just return h->hash.
3332         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
3333         htab_find_with_hash.
3334         * cpphash.h: Prototype _cpp_calc_hash.
3335         * cppinit.c (initialize_builtins): Provide a valid hash
3336         to _cpp_make_hashnode, using _cpp_calc_hash.
3337
3338         * cpphash.c (collect_expansion): # is not a special character
3339         in object-like macros.  In -traditional mode, /**/ is not
3340         token paste at the beginning or end of the line.
3341         * cpplib.c (do_include, do_import, do_include_next): If
3342         parse_include fails, return immediately.
3343
3344 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
3345
3346         * config/arm/arm.md (return peepholes): Update to reflect the new
3347         call insn patterns.
3348         * config/arm/arm.c (arm_volatile_func): Also check
3349         current_function_nothrow.
3350         (output_return_instruction, output_func_prologue): Use it.
3351         (arm_output_epilogue, arm_expand_prologue): Likewise.
3352
3353 2000-03-27  Tom Tromey  <tromey@cygnus.com>
3354
3355         * gcc.c (handle_braces): In {x*...} case, break out of loop if
3356         switch is found.
3357
3358 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3359
3360         * expr.c (store_constructor): SIZE now signed.
3361         For EXPR_SIZE, don't evaluate size; just needed if constant.
3362         * fold-const.c (fold): Fix a number of cases when folded tree is
3363         wrong type.
3364         * function.c (flush_addressof): Reenable.
3365         * tree.h (flush_addressof): Likewise.
3366         * toplev.c (independent_decode_option): Look at strings_processed.
3367         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
3368
3369 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
3370
3371         * sibcall.c (indentify_call_return_value): Find last call in the chain;
3372         Allow stack adjustment after function call.
3373
3374         * regmove.c (struct csa_memlist): Make mem field rtx *.
3375         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
3376         (try_apply_stack_adjustment): Replace whole MEM rtx.
3377         (combine_stack_adjustments_for_block): Update calls
3378         to record_one_stack_ref.
3379
3380 2000-03-28  Neil Booth  <NeilB@earthling.net>
3381
3382         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
3383         '\\' rather than a null character, so nulls are not special.  Fix
3384         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
3385         speed trigraph conversion.
3386         (_cpp_init_input_buffer): Initialize trigraph map.
3387
3388 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
3389
3390         * config/i386/i386.c (output_387_binary_op): Correct intel
3391         mode assembly output, and add spaces after commas in AT&T
3392         output.  Correct Unixware assembler comment.  Document input
3393         constraints.  Comment fp operations.  Reduce profligate buffer
3394         size.  Remove extraneous abort.  Localize temp var.
3395         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
3396         (output_fix_trunc): Add spaces after commas in assembly output.
3397
3398 2000-03-27  Richard Henderson  <rth@cygnus.com>
3399
3400         * i386-protos.h (ix86_match_ccmode): Declare.
3401         * i386.c (ix86_match_ccmode): New.
3402         (ix86_expand_fp_compare): Update for pattern renames.
3403         (ix86_expand_strlensi_unroll_1): Likewise.
3404         * i386.h (EXTRA_CC_MODES): Add CCZ.
3405         (SELECT_CC_MODE): Use it for EQ/NE zero.
3406         * i386.md (cmpsi_ccz_1): New.
3407         (cmpqi_ccz_1): New.
3408         (*testsi_ccz_1): New.
3409         (testqi_ccz_1): New.
3410         (cmpsi_ccno_1): Rename from cmpsi_0.
3411         (testsi_ccno_1): Rename from testsi_1.
3412         (testqi_ccno_1): Rename from testqi_1.
3413         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
3414         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
3415         (*cmphi_0): Use ix86_match_ccmode.
3416         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
3417         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
3418         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
3419         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
3420         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
3421         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
3422         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
3423         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
3424         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
3425         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
3426         (appropriate peepholes): Likewise.
3427         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
3428         (*subsi_3, *subhi_3, *subqi_3): Remove.
3429         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
3430         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
3431         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
3432         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
3433         (x86_shift_adj_1): Use CCZ.
3434         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
3435
3436 2000-03-27  Stan Cox  <scox@cygnus.com> 
3437
3438         * resource.h (mark_resource_type): New.
3439         * resource.c (find_dead_or_set_registers, mark_target_live_regs, 
3440         find_free_register): Use mark_resource_type.
3441         (mark_set_resources): Change include_delayed_effects
3442         to mark_resource_type.
3443         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, 
3444         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): 
3445         Use mark_resource_type.
3446         
3447 2000-03-27  Richard Henderson  <rth@cygnus.com>
3448
3449         * i386.md (call_pop_0, call_value_pop_0): New.
3450         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
3451         (call_value_pop_1): Likewise.
3452         (call_0, call_value_0): New.
3453         (call_1, call_value_1): Remove constraint from unused arg.
3454
3455 2000-03-27  Nick Clifton  <nickc@cygnus.com>
3456
3457         * invoke.texi (Spec Files): Document new spec % command created by
3458         Tom Tromey's recent patch.
3459
3460 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
3461
3462         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
3463         if not defined.
3464
3465 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3466
3467         * expr.c (expand_assignment): Fix typo in last change.
3468
3469         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
3470
3471 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3472
3473         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
3474         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
3475         and DECL_INLINE if FUNCTION_DECL.
3476         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
3477         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
3478         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
3479         (combine_parm_decls): Likewise.
3480         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
3481         * print-tree.c (print_node): Likewise.
3482         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
3483         DECL_TRANSPARENT_UNION on proper decl types.
3484         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
3485         * stor-layout.c (layout_decl): Only check DECL_PACKED and
3486         DECL_BIT_FIELD of FIELD_DECL.
3487         * tree.h (DECL_RESULT_FLD): New macro.
3488         
3489         * expr.c (expand_assignment): Add code to handle variable-sized
3490         BLKmode case.
3491
3492 2000-03-26  Richard Henderson  <rth@cygnus.com>
3493
3494         * calls.c (expand_call): Pass parms not original exp to
3495         optimize_tail_recursion.  Mind return value instead of looking
3496         for a barrier.
3497         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
3498         call_expr.  Move checks for call_expr and current_function_decl ...
3499         (expand_return): ... here.
3500
3501 2000-03-26  Tom Tromey  <tromey@cygnus.com>
3502
3503         * gcc.c (handle_braces): Recognize `%{<S}' construct.
3504         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
3505         defines.
3506         (process_command): Use them.
3507         (check_live_switch): Likewise.
3508         (give_switch): Skip ignored switches.
3509
3510 2000-03-26  Jan Hubicka  <jh@suse.cz>
3511
3512         * jump.c (jump_optimize_1): Fix typo in elide optimizations
3513         for minimal jump pass test.
3514
3515 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
3516
3517         * integrate.c (function_cannot_inline_p): Do inline functions that
3518         return `void'.
3519
3520 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3521
3522         * stor-layout.c (layout_type, set_sizetype): early_type_list is
3523         now a list of TREE_LIST entries, not types.
3524         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
3525
3526         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
3527         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
3528         int_bit_position.
3529         * config/mips/mips.c (function_arg): Likewise; also remove cast
3530         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
3531         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
3532         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
3533         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
3534         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
3535         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
3536         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
3537         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
3538         num_adjusts now unsigned.
3539         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
3540         * config/sparc/sparc.c (struct function_arg_record_value_parms):
3541         NREGS now unsigned.
3542         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
3543         as is BITPOS variable; use host_integerp and int_bit_position.
3544         (function_arg_record_value_2): Likewise.
3545         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
3546         Variable REGNO now unsigned.
3547         (function_arg_record_value): NREGS now unsigned.
3548
3549 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
3550
3551         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
3552
3553 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3554
3555         * Rework fields used to describe positions of bitfields and
3556         modify sizes to be unsigned and use HOST_WIDE_INT.
3557         * alias.c (reg_known_value_size): Now unsigned.
3558         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
3559         (really_start_incremental_init): Use bitsize_zero_node.
3560         (push_init_level, pop_init_level, output_init_element): Likewise.
3561         Use bitsize_unit_node and bitsize_one_node.
3562         (output_pending_init_elements, process_init_element): Likewise.
3563         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
3564         (make_extraction): Position and length HOST_WIDE_INT and unsigned
3565         HOST_WIDE_INT, respectively.
3566         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
3567         (num_sign_bit_copies): Returns unsigned.
3568         BITWIDTH now unsigned; rework arithmetic.
3569         Remove recursive call from arg to MAX.
3570         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
3571         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
3572         REGNO now unsigned.
3573         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
3574         (find_split_point, expand_compound_operation, make_extraction): LEN
3575         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
3576         (make_field_assignment): Likewise.
3577         (combine_simplify_rtx): Add cast.
3578         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
3579         (force_to_mode): WIDTH now unsigned; add cast.
3580         (if_then_else_cond): SIZE now unsigned.
3581         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
3582         (extended_count): Now returns unsigned.
3583         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
3584         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
3585         (simplify_comparison): MODE_WIDTH now unsigned.
3586         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
3587         (mark_used_regs_combine): Likewise; rework arithmetic.
3588         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
3589         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
3590         (record_promoted_value): REGNO now unsigned.
3591         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
3592         (get_last_value): REGNO now unsigned.
3593         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
3594         (reg_dead_regno, reg_dead_endregno): Now unsigned.
3595         (remove_death): Arg REGNO now unsigned.
3596         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
3597         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
3598         now unsigned.
3599         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
3600         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
3601         (struct cse_reg_info): REGNO now unsigned.
3602         (cached_regno): Now unsigned.
3603         (REGNO_QTY_VALID_P): Add cast.
3604         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
3605         (remove_invalid_regs): Likewise.
3606         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
3607         as are variables END and I.
3608         (get_cse_reg_info, insert): Likewise.
3609         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
3610         (canon_hash): Likewise.
3611         (insert_regs, lookup_for_remove): REGNO now unsigned.
3612         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
3613         New variable RN.
3614         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
3615         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
3616         * emit-rtl.c (subreg_realpart_p): Add cast.
3617         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
3618         (operand_subword_force): Arg I is now unsigned.
3619         * except.c (eh_regs): Variable I is now unsigned.
3620         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
3621         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
3622         length is unsigned HOST_WIDE_INT; likewise for internal variables.
3623         (store_split_bit_field, extract_fixed_bit_field): Likewise.
3624         (extract_split_bit_field, store_bit_field, extract_bit_field):
3625         Likewise.
3626         * expr.c (store_constructor_fields, store_constructor, store_field):
3627         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
3628         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
3629         (do_jump): Likewise.
3630         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
3631         MAX_SIZE is now unsigned.
3632         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
3633         (emit_group_store): Likewise.
3634         (emit_move_insn): I now unsigned.
3635         (store_constructor): Use host_integerp, tree_low_cst, and
3636         bitsize_unit_node.
3637         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
3638         Rework all calculations to use trees and new fields.
3639         * expr.h (promoted_input_arg): Regno now unsigned.
3640         (store_bit_field, extract_bit_field): Adjust types of pos and size.
3641         (mark_seen_cases): Arg is HOST_WIDE_INT.
3642         * flow.c (verify_wide_reg_1): REGNO now unsigned.
3643         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
3644         precisions and alignments are unsigned.
3645         (optimize_bit_field_compare, fold_truthop): Likewise.
3646         (int_const_binop): Adjust threshold for size_int_type_wide call.
3647         (fold_convert): Likewise.
3648         (size_int_type_wide): Make table larger and fix thinko that only
3649         had half of table used.
3650         (all_ones_mask_p, fold): Precisions are unsigned.
3651         * function.c (put_reg_info_stack): REGNO is unsigned.
3652         (instantiate_decl): Size is HOST_WIDE_INT.
3653         (instantiate_virtual_regs): I is unsigned.
3654         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
3655         (promoted_input_arg): REGNO is unsigned.
3656         * function.h (struct function): x_max_parm_reg is now unsigned.
3657         * gcse.c (max_gcse_regno): Now unsigned.
3658         (struct null_pointer_info): min_reg and max_reg now unsigned.
3659         (lookup_set, next_set): REGNO arg now unsigned.
3660         (compute_hash_table): REGNO and I now unsigned.
3661         (handle_avail_expr): regnum_for_replacing now unsigned.
3662         (cprop_insn): REGNO now unsigned.
3663         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
3664         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
3665         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
3666         * hard-reg-set.h (reg_class_size): Now unsigned.
3667         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
3668         * jump.c (mark_modified_reg): I now unsigned; add cast.
3669         (rtx_equal_for_thread_p): Add cast.
3670         * loop.c (max_reg_before_loop): Now unsigned.
3671         (struct_movable): REGNO now unsigned.
3672         (try_copy_prop): REGNO arg unsigned.
3673         (regs_match_p): XN and YN now unsigned.
3674         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
3675         (strength_reduce): Likewise; NREGS also unsigned.
3676         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
3677         * loop.h (struct iv_class): REGNO now unsigned.
3678         (max_reg_before_loop, first_increment_giv, last_increment_giv):
3679         Now unsigned.
3680         * machmode.h (mode_size, mode_unit_size): Now unsigned.
3681         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
3682         * optabs.c (expand_binop): I and NWORDS now unsigned.
3683         (expand_unop): I now unsigned.
3684         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
3685         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
3686         * real.c (significand_size): Now returns unsigned.
3687         * real.h (significand_size): Likewise.
3688         * regclass.c (reg_class_size): Now unsigned.
3689         (choose_hard_reg_mode): Both operands now unsigned.
3690         (record_reg_classes): REGNO and NR now unsigned.
3691         (reg_scan): NREGS now unsigned.
3692         (reg_scan_update): old_max_regno now unsigned.
3693         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
3694         * reload.c (find_valid_class): BEST_SIZE now unsigned.
3695         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
3696         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
3697         Likewise for variable R.
3698         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
3699         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
3700         (find_equiv_reg): Add casts.
3701         (regno_clobbered_p): Arg REGNO now unsigned.
3702         * reload.h (struct reload): NREGS now unsigned.
3703         (refers_to_regno_for_reload_p): Regno args are unsigned.
3704         (regno_clobbered_p): Likewise.
3705         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
3706         (compute_use_by_pseudos): REGNO now unsigned.
3707         (find_reg): I and J now unsigned, new variable K, and change loop
3708         variables accordingly; THIS_NREGS now unsigned.
3709         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
3710         (spill_hard_reg): REGNO arg now unsigned; add casts.
3711         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
3712         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
3713         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
3714         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
3715         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
3716         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
3717         (emit_reload_insns): REGNO now unsigned.
3718         (reload_cse_move2add): Add cast.
3719         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
3720         and rework loop.
3721         * resource.c (mark_referenced_resources, mark_set_resources): New
3722         variable R; REGNO and LAST_REGNO now unsigned.
3723         (mark_target_live_regs): J and REGNO now unsigned.
3724         * rtl.c (mode_size, mode_unit_size): Now unsigned.
3725         * rtl.h (union rtunion_def): New field rtuint.
3726         (XCUINT): New macro.
3727         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
3728         (operand_subword, operand_subword_force): Word number is unsigned.
3729         (choose_hard_reg_mode): Operands are unsigned.
3730         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
3731         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
3732         (regno_use_in, combine_instructions, remove_death): Likewise.
3733         (reg_scan, reg_scan_update): Likewise.
3734         (extended_count): Return is unsigned.
3735         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
3736         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
3737         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
3738         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
3739         (reg_reg_last_1): FIRS and LAST now unsigned.
3740         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
3741         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
3742         now unsigned.
3743         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
3744         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
3745         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
3746         (replace_regs): Arg NREGS now unsigned.
3747         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
3748         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
3749         (simplify_binary_operation): Likewise.
3750         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
3751         THIS_LAST now unsigned.
3752         (cselib_record_set): Add cast.
3753         * ssa.c (ssa_max_reg_num): Now unsigned.
3754         (rename_block): REGNO now unsigned.
3755         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
3756         sizes now unsigned.
3757         (all_cases_count): Just return -1 not -2.
3758         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
3759         Rework tests to use trees whenever possible.
3760         Use host_integerp and tree_low_cst.
3761         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
3762         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
3763         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
3764         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
3765         (smallest_mode_for_size): Likewise.
3766         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
3767         KNOWN_ALIGN is now an alignment, so simplify code.
3768         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
3769         (start_record_layout): Renamed from new_record_layout_info.
3770         Update to new fields.
3771         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
3772         New functions.
3773         (place_union_field): Renamed from layout_union_field.
3774         Update to use new fields in rli.
3775         (place_field): Renamed from layout_field.
3776         Major rewrite to use new fields in rli; pass alignment to layout_decl.
3777         (finalize_record_size): Rework to use new fields in rli and handle
3778         union.
3779         (compute_record_mode): Rework to simplify and to use new DECL fields.
3780         (finalize_type_size): Make rounding more consistent.
3781         (finish_union_layout): Deleted.
3782         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
3783         (layout_type, case RECORD_TYPE): Call new function names.
3784         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
3785         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
3786         (get_best_mode): UNIT is now unsigned; remove casts.
3787         * tree.c (bit_position): Compute from new fields.
3788         (byte_position, int_byte_position): New functions.
3789         (print_type_hash_statistics): Cast to remove warning.
3790         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
3791         (build_index_type): Likewise; make subtype of sizetype.
3792         (build_index_2_type): Pass sizetype to build_range_type.
3793         (build_common_tree_nodes): Use size_int and bitsize_int to
3794         initialize nodes; add bitsize_{zero,one,unit}_node.
3795         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
3796         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
3797         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
3798         (DECL_FIELD_BITPOS): Deleted.
3799         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
3800         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
3801         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
3802         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
3803         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
3804         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
3805         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
3806         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
3807         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
3808         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
3809         (DECL_ALIGN): Adjust to new field in union.
3810         (DECL_OFFSET_ALIGN): New field.
3811         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
3812         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
3813         (union tree_decl): Add struct for both aligns.
3814         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
3815         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
3816         (struct record_layout_info): Rework fields to have offset
3817         alignment and byte and bit position.
3818         (start_record_layout, place_field): Renamed from old names.
3819         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
3820         (byte_position, int_byte_position): Likewise.
3821         (get_inner_reference): Change types of position and length.
3822         * unroll.c (unroll_loop): New variable R; use for some loops.
3823         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
3824         (calculate_giv_inc): Arg REGNO now unsigned.
3825         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
3826         * varasm.c (assemble_variable): Clean up handling of size using
3827         host_integerp and tree_low_cst.
3828         (decode_addr_const): Use byte, not bit, position.
3829         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
3830         use tree_low_cst and int_bit_position.
3831         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
3832         
3833 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
3834
3835         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
3836         (reorder_block_def): New members eff_head and eff_end.
3837         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
3838         (verify_insn_chain): New function.
3839         (skip_insns_between_block): Add code to skip deleted insns.
3840         Check for note before using.
3841         (chain_reorder_blocks): Replace calls to skip_insns_between_block
3842         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
3843         Check for note before using.
3844         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
3845         (fixup_reorder_chain): Restructure, clean up, defect removal.
3846         (reorder_basic_blocks): Remove last_insn and references to it.
3847         Moved insn chain verification code into a new function (see above).
3848         Delete defective code that sets last insn.
3849         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
3850         all blocks.
3851
3852 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3853
3854         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
3855
3856 2000-03-24  Richard Henderson  <rth@cygnus.com>
3857
3858         * tree.c (lang_safe_for_unsave): Remove.
3859         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
3860         allowing for two levels of unsafeness.  Remove lang hook.
3861         * tree.h: Update declarations.
3862         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
3863         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
3864         Always fail sibcalls when there are pending cleanups.
3865
3866 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
3867
3868         * flow.c (propagate_block): When we delete an ADDR_VEC,
3869         also delete the BARRIER following it if there is one.
3870
3871 2000-03-24  Richard Henderson  <rth@cygnus.com>
3872
3873         * builtins.c (expand_builtin_bzero): Convert `length' argument
3874         to sizetype.
3875
3876 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
3877
3878         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
3879         comparison if regno's are equal.
3880         * calls.c (initialize_argument_informat): Add ecf_flags argument.
3881         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
3882         (expand_call): Update caller.
3883         Avoid making a sibling call if argument size of the callee is larger
3884         than argument size of the caller.
3885         Call hard_function_value with outgoing set if in sibcall pass.
3886         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
3887
3888         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
3889         Change LEAF_REGISTERS from an array initializer to actual array
3890         identifier. Move static global variable into the function.
3891         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
3892         sequences for leaf functions.
3893         * global.c (global_alloc): Likewise.
3894         * tm.texi (LEAF_REGISTERS): Update documentation.
3895
3896         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
3897         TARGET_FLAT leaf disabling hack.
3898         (LEAF_REGISTERS): Changed from an array initializer to actual array
3899         identifier to avoid duplication and remove the above hack.
3900         (FUNCTION_OK_FOR_SIBCALL): Define.
3901         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
3902         always like call attribute.
3903         (eligible_for_sibcall_delay): New attribute.
3904         (sibcall): New delay type.
3905         (sibcall, sibcall_value, sibcall_epilogue): New expands.
3906         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
3907         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
3908         * config/sparc/sparc.c (sparc_leaf_regs): New array.
3909         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
3910         New functions.
3911         (output_function_epilogue): Move part of the code into
3912         output_restore_regs.
3913         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
3914         TYPE_SIBCALL.
3915         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
3916         prototypes.
3917
3918         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
3919         until infrastructure is finished.
3920
3921 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
3922
3923         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
3924         (save_parm_insns): Not here.
3925
3926 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3927
3928         * builtins.c (expand_builtin_bzero): New function.
3929         (expand_builtin): Handle bzero.
3930
3931         * builtins.def: Add BUILT_IN_BZERO.
3932
3933         * c-common.c (c_common_nodes_and_builtins): Provide builtin
3934         prototype & function for bzero.
3935
3936 2000-03-23  Michael Meissner  <meissner@redhat.com>
3937
3938         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
3939         change adding TARGET_FP to the TF floating point insns, except for
3940         trunctfsf2, which generates direct calls to truncdfsf2.
3941
3942 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
3943
3944         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
3945         try to protect against middle-end changes that break binary
3946         compatibility.
3947         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
3948
3949 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3950
3951         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
3952
3953 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3954
3955         * calls.c (expand_call): If TARGET is passed by reference and
3956         is readonly, write a CLOBBER.
3957
3958 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3959
3960         * builtins.c (expand_builtin): Handle bcmp.
3961
3962         * builtins.def: Add BUILT_IN_BCMP.
3963
3964         * c-common.c (c_common_nodes_and_builtins): Provide builtin
3965         prototype & function for bcmp.
3966
3967 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
3968
3969         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
3970         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
3971         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
3972
3973 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
3974
3975         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
3976         alternative when using -fp64 -gp32.
3977
3978 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
3979
3980         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
3981         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
3982         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
3983
3984         * frame.h (frame_state): Revert last change.
3985         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
3986         * libgcc2.c (throw_helper): Revert last change.
3987         
3988 2000-03-22  Richard Henderson  <rth@cygnus.com>
3989
3990         * stmt.c (expand_asm_operands): Don't promote the temporary.
3991
3992 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
3993
3994         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
3995         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
3996           c_get_alias_set): Likewise.
3997         * c-decl.c (duplicate_decls): Likewise.
3998         * c-typeck.c (default_conversion,build_unary_op): Likewise.
3999         * calls.c (initialize_argument_information): Likewise.
4000         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
4001         Likewise.
4002         * dwarfout.c (decl_class_context,output_type): Likewise.
4003         * expr.c (get_inner_reference): Likewise.
4004         * fold-const.c (simple_operand_p,fold): Likewise.
4005         * function.c (aggregate_value_p): Likewise.
4006         * stmt.c (expand_asm_operands): Likewise.
4007         * varasm.c (named_section): Likewise.
4008
4009 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
4010
4011         Implement dwarf2 exception handling for the ARM.
4012         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
4013         (DWARF_FRAME_RETURN_COLUMN): Define.
4014         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
4015         REG_FRAME_RELATED_EXPR note.
4016         (emit_sfm): Likewise.
4017         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
4018         * dwarf2out.c (reg_save): Handle saving a register to itself.
4019         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
4020         * except.c (eh_regs): Don't use the static chain reg if it's
4021         callee-saved.
4022         * frame.h (frame_state): Add cfa_saved field.
4023         * frame.c (execute_cfa_insn): Set it.
4024         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in 
4025         the epilogue.
4026         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
4027         Now takes a parm.
4028         (instantiate_virtual_regs): Adjust.
4029         * tm.texi: Adjust.
4030         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
4031         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
4032         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
4033
4034         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
4035         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
4036
4037 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4038
4039         * builtins.def: New file.
4040
4041         * Makefile.in (TREE_H): Depend on builtins.def.
4042
4043         * builtins.c (built_in_names): Use builtins.def.
4044
4045         * tree.h (built_in_function): Likewise.
4046
4047 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
4048
4049         * tree.c (size_in_bytes): Return size_zero_node, not
4050         integer_zero_node.
4051
4052 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
4053
4054         * config/fp-bit.c (pack_d): Correct the case when a denormal
4055         is rounded up and stops being denormal.
4056
4057 2000-03-21  Richard Henderson  <rth@cygnus.com>
4058
4059         * config/alpha/alpha.c (function_arg): Check for void_type_node
4060         before using MUST_PASS_IN_STACK.
4061
4062 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
4063
4064         * regmove.c (combine_stack_adjustments_for_block): Check that
4065         the stack pointer is a valid memory address.
4066
4067 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
4068
4069         * calls.c: re-install Mar 16 emit_library_call merge.
4070
4071 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
4072
4073         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
4074         we cannot be sure that if reload_completed base register will
4075         be properly aligned.
4076
4077 2000-03-21  Richard Henderson  <rth@cygnus.com>
4078
4079         * flow.c (delete_block): Fix typo last change.
4080
4081 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
4082
4083         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
4084         not COMPLETE_TYPE_P, to check the type of the expression.
4085
4086 2000-03-21  Michael Meissner  <meissner@redhat.com>
4087
4088         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
4089         all floating point insns that just tested the macro
4090         TARGET_HAS_XFLOATING_LIBS.
4091         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
4092         used to only use the gprs.
4093
4094 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
4095
4096         * tree.h (COMPLETE_TYPE_P): New macro.
4097         (COMPLETE_OR_VOID_TYPE_P): New macro.
4098         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
4099         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
4100         * c-aux-info.c (gen_type): Use them.
4101         * c-common.c (c_expand_expr_stmt): Likewise.
4102         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
4103         grokdeclarator, grokparms, finish_struct, start_function,
4104         store_parm_decls, combine_parm_decls): Likewise.
4105         * c-parse.y (cast_expr): Likewise.
4106         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
4107         c_size_in_bytes, c_alignof, build_component_ref,
4108         build_indirect_ref, build_array_ref, convert_arguments,
4109         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
4110         * calls.c (initialize_argument_information): Likewise.
4111         * convert.c (convert_to_integer): Likewise.
4112         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
4113         * dwarfout.c (location_or_const_value_attribute,
4114         output_enumeration_type_die, output_structure_type_die,
4115         output_union_type_die, output_type): Likewise.
4116         * expr.c (safe_from_p, expand_expr): Likewise.
4117         * function.c (assign_parms): Likewise.
4118         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
4119         * tree.c (build_array_type, build_function_type,
4120         build_method_type, build_offset_type, build_complex_type): Likewise.
4121         * c-parse.c, c-parse.h: Regenerated.
4122
4123 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4124
4125         * config/c4x/rtems.h: Include config/rtems.h.
4126
4127 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
4128
4129         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
4130         decl is a FUNCTION_DECL
4131
4132 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
4133
4134         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
4135         function uses output registers.  Don't save RP for leaf functions.
4136         Do save RP even if no epilogue.
4137         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
4138         (CALL_USED_REGISTERS): Unmark in registers.
4139         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
4140         to near the middle.
4141
4142 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
4143
4144         * config/rs6000/rs6000.md (bunordered): New expander.
4145         (bordered): New expander.
4146         (buneq): New expander.
4147         (bunge): New expander.
4148         (bungt): New expander.
4149         (bunle): New expander.
4150         (bunlt): New expander.
4151         (bltgt): New expander.
4152  
4153         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
4154         (ccr_bit_negated_p): New function.
4155         (print_operand): For %C, generate appropriate cror for UNEQ,
4156         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
4157
4158 2000-03-20  Andreas Jaeger  <aj@suse.de>
4159
4160         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
4161         warning.
4162
4163         * tree.h (safe_for_unsave): Prototype.
4164
4165 2000-03-20  Richard Henderson  <rth@cygnus.com>
4166
4167         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
4168         (combine_stack_adjustments_for_block): Don't allow sp references
4169         in the side of a set we're not fixing up.
4170         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
4171         after life_analysis.
4172
4173 2000-03-20  Richard Henderson  <rth@cygnus.com>
4174
4175         * calls.c (expand_call): Don't bother generating tail call
4176         sequences if there are pending cleanups.  Use
4177         expand_start_target_temps/expand_end_target_temps to elide
4178         cleanups created during sibcall expansion.
4179
4180 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
4181
4182         * configure.in: Set $IFS to a value if it doesn't already have one
4183         in the --enable-checking handling.
4184         * configure: Regenerate.
4185
4186 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4187
4188         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
4189         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
4190         Regenerated.
4191
4192 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
4193
4194         * jump.c (delete_noop_moves): Remove code attempting to
4195         combine stack adjustments.
4196
4197 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4198
4199         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
4200         * except.c (emit_cleanup_handler): Use them.
4201         (expand_end_all_catch): Likewise.
4202         * function.c (fixup_var_refs): Likewise.
4203         (expand_function_end): Clear catch_clauses_last.
4204         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
4205         * except.h (struct eh_status): New field x_catch_clauses_last.
4206         (catch_clauses_last): New define.
4207
4208         * Makefile.in (tree.o): Depend on HASHTAB_H.
4209         * tree.c: Include hashtab.h.
4210         (struct type_hash): Remove next field.
4211         (TYPE_HASH_SIZE): Remove.
4212         (TYPE_HASH_INITIAL_SIZE): New define.
4213         (type_hash_table): Change type to htab_t.
4214         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
4215         mark_hash_entry): New functions.
4216         (init_obstacks): Allocate type hash.
4217         (type_hash_lookup): Use htab functions.
4218         (type_hash_add, mark_type_hash): Likewise.
4219         (dump_tree_statistics): Call print_type_hash_statistics.
4220
4221 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4222
4223         * rs6000/t-aix41: New file.
4224
4225         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
4226
4227 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
4228
4229         * tm.texi (Driver): Fix typos and tweak entry for
4230         INCLUDE_DEFAULTS.
4231         Move misplaced STRUCT_FORCE_BLK entry ...
4232         (Storage Layout): ... to here.
4233         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
4234
4235 2000-03-19  Richard Henderson  <rth@cygnus.com>
4236
4237         * flow.c (delete_block): Delete the addr_vec along with the block.
4238         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
4239         reference labels.
4240
4241         * fold-const.c (extract_muldiv): Apply type check for defined
4242         overflow to multiply as well as divide.
4243
4244         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
4245
4246 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
4247
4248         * emit-rtl.c (remove_unncessary_notes): Check that all
4249         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
4250         associated NOTE_BLOCK.
4251         * function.h (identify_blocks): Update comments.
4252         (reorder_blocks): Declare.
4253         * function.c (identify_blocks): Don't take paramters.
4254         (reorder_blocks): Don't take parameters.
4255         * loop.h (find_loop_tree_blocks): Remove.
4256         (unroll_block_trees): Likewise.
4257         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
4258         reorder_blocks instead of unroll_block_trees.h
4259         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
4260         * stmt.c (find_loop_tree_blocks): Remove.
4261         (unroll_block_trees): Likewise.
4262         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
4263         in whole-function mode.
4264         * tree.h (reorder_blocks): Remove declaration.
4265
4266         * expr.c: Include intl.h.
4267         * Makefile.in (expr.o): Depend on intl.h.
4268         
4269 2000-03-18  Richard Henderson  <rth@cygnus.com>
4270
4271         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
4272
4273 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
4274
4275         * tree.h (tree_index): Remove enumerals for integer types.
4276         (integer_type_kind): New type.
4277         (integer_types): New variable.
4278         (char_type_node): Adjust.
4279         (signed_char_type_node): Likewise.
4280         (unsigned_char_type_node): Likewise.
4281         (short_integer_type_node): Likewise.
4282         (short_unsigned_type_node): Likewise.
4283         (integer_type_node): Likewise.
4284         (unsigned_type_node): Likewise.
4285         (long_integer_type_node): Likewise.
4286         (long_unsigned_type_node): Likewise.
4287         (long_long_integer_type_node): Likewise.
4288         (long_long_unsigned_type_node): Likewise.
4289         * tree.c (integer_types): New variable.
4290         (init_obstacks): Register it as a root.
4291
4292 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
4293
4294         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
4295         NEXT_INSN. Update last insn in chain.
4296
4297 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
4298
4299         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
4300         with TYPE_DECL_SUPPRESS_DEBUG set.
4301
4302 2000-03-18  Richard Henderson  <rth@cygnus.com>
4303
4304         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
4305
4306 2000-03-18  Richard Henderson  <rth@cygnus.com>
4307
4308         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
4309         care for HALF_PIC_P.
4310         (expander_call_insn_operand): Remove.
4311         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
4312         * i386.h (PREDICATE_CODES): Update.
4313         * i386.md (all call expanders): Remove predicates, remove special
4314         handling for half-pic.
4315         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
4316         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
4317         (sibcall_epilogue): New.
4318
4319 2000-03-17  Richard Henderson  <rth@cygnus.com>
4320
4321         * rtlanal.c (single_set): Reject if the parallel has anything
4322         except SET or USE or CLOBBER.
4323
4324 2000-03-17  Jeff Law  <law@cygnus.com>
4325             Richard Henderson  <rth@cygnus.com>
4326
4327         * Makefile.in (OBJS): Add sibcall.o.
4328         (sibcall.o): New.
4329         * sibcall.c: New file.
4330         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
4331         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
4332         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
4333         Emit sibcall patterns when requested.  Update all callers.
4334         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
4335         elimination seems feasable.
4336         * final.c (leaf_function_p): Sibling calls don't discount being
4337         a leaf function.
4338         * flow.c (HAVE_sibcall_epilogue): Provide default.
4339         (find_basic_blocks_1): Sibling calls don't throw.
4340         (make_edges): Make edge from sibling call to EXIT.
4341         (propagate_block): Don't remove sibcall_epilogue insns.
4342         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
4343         (sibcall_epilogue): New.
4344         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
4345         (identify_blocks_1): Likewise.  Break out from ...
4346         (identify_blocks): ... here.
4347         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
4348         (reorder_blocks): ... here.
4349         (init_function_for_compilation): Zap prologue/epilogue as varrays.
4350         (record_insns): Extend a varray instead of mallocing new memory.
4351         (contains): Read a varray not array of ints.
4352         (sibcall_epilogue_contains): New.
4353         (thread_prologue_and_epilogue_insns): Emit and record
4354         sibcall_epilogue patterns.
4355         (init_function_once): Allocate prologue/epilogue varrays.
4356         * genflags.c (gen_insn): Treat sibcall patterns as calls.
4357         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
4358         Broken out from ...
4359         (save_for_inline_nocopy): ... here.
4360         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. 
4361         Broken out from ...
4362         (expand_inline_function): ... here.
4363         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
4364         (subst_constants): Handle 'n' formats.
4365         * jump.c (jump_optimize_minimal): New.
4366         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
4367         optimizations if it's set.
4368         * rtl.c (copy_rtx): Do copy jump & call for insns.
4369         * rtl.h (struct rtx_def): Document use of jump and call for insns.
4370         (SIBLING_CALL_P): New.
4371         (sibcall_use_t): New.
4372         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
4373         Invoke optimize_sibling_and_tail_recursive_calls.
4374         * tree.c (lang_safe_for_unsave): New.
4375         (safe_for_unsave): New.
4376         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
4377
4378         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
4379         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
4380         (*sibcall_osf_1, *sibcall_value_osf_1): New.
4381
4382 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
4383
4384         * objc/objc-act.c (encode_method_prototype): Pass types, not
4385         PARM_DECLs, to int_size_in_bytes.
4386
4387 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
4388
4389         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
4390
4391         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
4392         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
4393
4394 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4395
4396         * Clean up usages of TREE_INT_CST_LOW.
4397         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
4398         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
4399         Regenerated.
4400         * c-tree.h (min_precision): Move declaration to here.
4401         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
4402         (build_unary_op, add_pending_init): Use bit_position.
4403         (pending_init_member, process_init_element): Likewise.
4404         (really_start_incremental_init, push_init_level, pop_init_level):
4405         Don't make copies of nodes or modify them in place, use consistent
4406         types when tracking positions, and use tree routines computations.
4407         (set_init_index, output_init_element): Likewise.
4408         (output_pending_init_elements, process_init_element): Likewise.
4409         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
4410         tree_low_cst and int_bit_position; also minor cleanup.
4411         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
4412         (print_cst_octal): Precision is unsigned.
4413         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
4414         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
4415         (simple_type_align_in_bits): Result is unsigned int.
4416         Use tree_int_low_cst and host_integerp.
4417         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
4418         (field_byte_offset): Result is HOST_WIDE_INT.
4419         Change types of internal variables so alignments are unsigned int,
4420         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
4421         Use host_integerp, tree_low_cst, and int_bit_position.
4422         (add_bit_offset_attribute): Likewise.
4423         (add_data_member_location_attribute): Use tree_cst_low.
4424         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
4425         (add_bit_size_attribute): Use tree_low_cst.
4426         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
4427         * dwarfout.c: Similar changes to dwarf2out.c.
4428         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
4429         * genoutput.c (n_occurences): Return -1 for null string.
4430         (strip_whitespace): Accept null string and make into function.
4431         (scan_operands): Reflect above changes.
4432         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
4433         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
4434         * ssa.c (rename_registers): Add missing cast of arg to bzero.
4435         * tree.c (int_size_in_bytes): Check for too big to represent.
4436         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
4437         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
4438         New declarations.
4439         (min_precision): Delete from here.
4440         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
4441         and int_bit_position.
4442         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
4443         (encode_method_def): Likewise.
4444         (build_ivar_list_initializer): Use int_bit_position.
4445         (generate_shared_structures): Convert size.
4446         (encode_type, encode_complete_bitfield): Use integer_zerop.
4447         (encode_bitfield): Use tree_low_cst and int_bit_position.
4448         
4449 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4450
4451         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
4452
4453 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4454
4455         * call.c (special_function_p): It is only malloc if it returns
4456         Pmode.
4457
4458 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4459
4460         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
4461         (C33_FLAG, TARGET_C3X): Add macros.
4462         (TARGET_SWITCHES): Add -m33 option.
4463         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
4464         
4465 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4466         
4467         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
4468         (PARALLEL_PACK_FLAG): Delete.
4469         (TARGET_SWITCHES): Update.
4470         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
4471
4472 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4473
4474         * fold-const.c (fold): Fix a few cases when the returned result
4475         is not of the same type as the input.
4476
4477 2000-03-16  Nick Clifton  <nickc@cygnus.com>
4478
4479         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
4480         warning.
4481
4482 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4483
4484         * libgcc2.h: Move prototypes above macros with the same name.
4485         Wrap some function prototypes in the conditional which indicates
4486         whether they are supported, i.e. "BITS_PER_UNIT == 8".
4487
4488 2000-03-16  Richard Henderson  <rth@cygnus.com>
4489
4490         * calls.c: Revert last two changes.
4491
4492 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
4493
4494         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
4495         has exponent 0 is a zero.
4496
4497         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
4498         HASH may already be nonzero.  Add code/mode into hash value
4499         immediately after repeat label.
4500         (cselib_lookup): Don't leave the hash table in an inconsistent
4501         state before a hash lookup operation.
4502
4503 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
4504
4505         * i386.md (all HI and QI mode non-move patterns):  Conditionize
4506         by TARGET_[HQ]IMODE_MATH.
4507         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
4508         x86_promote_qi_regs): Declare.
4509         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
4510         TARGET_PROMOTE_QI_REGS): New macros.
4511         (PROMOTE_MODE): New macro.
4512         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
4513         x86_promote_qi_regs): New global variables.
4514
4515 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
4516
4517         * calls.c (emit_library_call_value_1): Break out from ...; handle
4518         VOIDmode function calls too.
4519         (emit_library_call_value): ... here.
4520         (emit_library_call): Implement by calling emit_library_call_value_1.
4521
4522 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
4523
4524         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
4525         Update arg_space_so_far on stack adjustments.
4526         (emit_library_call, emit_library_call_value): Likewise; take into
4527         account arg_space_so_far and pending_stack_adjust when calculcating
4528         the boundary.
4529
4530 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
4531
4532         * flow.c: Move all basic block reordering code into its own file.
4533         (create_basic_block): Externalize.
4534         * bb-reorder.c: New file. Copy all basic block reordering code from
4535         flow.c to this file.
4536         (reorder_basic_blocks): Fix fencepost error in for-loop.
4537         (reorder_basic_blocks): Remove braces from single statement for-loops.
4538         * basic-block.h: Add declaration for create_basic_block.
4539         * Makefile.in: Add rules for bb-reorder.o.
4540
4541 2000-03-16  Neil Booth  <NeilB@earthling.net>
4542
4543         * cppinit.c (handle_option):  Implement #unassert directive
4544         as -A- command line option.
4545         (print_help):  Update.
4546         * cpptexi.c:  Update.
4547
4548 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
4549
4550         * md.texi (Standard Names): Document `jump'.
4551
4552 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
4553
4554         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
4555         gotos.
4556
4557 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
4558
4559         Merge changes from newppc-branch onto trunk.
4560
4561         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
4562
4563         * rs6000.c (toc_hash_table): Update for new hash table functions.
4564         (toc_hash_function): Likewise.
4565         (toc_hash_eq): Likewise.
4566         (toc_hash_mark_entry): Likewise.
4567         (toc_hash_mark_table): Likewise.
4568         (output_toc): Likewise.
4569         (rs6000_add_gc_roots): Likewise.
4570
4571         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4572
4573         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
4574         (AR_FLAGS_FOR_TARGET): here.  New macro.
4575
4576         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
4577
4578         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
4579         fpmem_operand) Delete.
4580         (xer_operand) New.
4581         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
4582         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
4583         (rs6000_save_machine_status, rs6000_restore_machine_status, 
4584         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove 
4585         references to above variables.
4586         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
4587         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
4588         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
4589         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
4590         (XER_REGNO_P, XER_REGNO): New.
4591         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
4592         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
4593         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to 
4594         XER_REGNO_P.
4595         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
4596         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
4597         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
4598         
4599         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4600
4601         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
4602         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
4603         * rs6000.h: from here.
4604
4605         * rs6000-protos.h (rs6000_select_section): Provide prototype.
4606         (rs6000_select_rtx_section): Likewise.
4607         (rs6000_encode_section_info): Likewise.
4608         (sdata_section): Likewise.
4609         (sdata2_section): Likewise.
4610         (sbss_section): Likewise.
4611         * sysv4.h (rs6000_select_section): Delete prototype.
4612         (rs6000_select_rtx_section): Likewise.
4613         (rs6000_encode_section_info): Likewise.
4614         (sdata_section): Likewise.
4615         (sdata2_section): Likewise.
4616         (sbss_section): Likewise.
4617         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
4618
4619         * sysv4.h: Delete various unnecessary #undef's and put a comment
4620         on the remaining ones.
4621         Change various comments according to coding standard.
4622
4623         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
4624
4625         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO, 
4626         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
4627         (CR0_REGNO_P) Remove.
4628         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand, 
4629         setup_incoming_varargs, mtcrf_operation, print_operand, 
4630         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): 
4631         Use the above macros.
4632
4633         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
4634
4635         * config/rs6000/rs6000.md: Added a new alternative for each
4636         pattern that had a 'x' alternative but no 'y' alternative.
4637         Added a new split for each of the above patterns.
4638
4639         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
4640
4641         * aix41.h (ASM_CPU_SPEC): Delete.
4642         (CPP_CPU_SPEC): Delete.
4643
4644         * aix.h (RS6000_OUTPUT_BASENAME): Define.
4645         (ASM_OUTPUT_LABEL): Define.
4646         (ASM_GLOBALIZE_LABEL): Define.
4647         (STRIP_NAME_ENCODING): Define.
4648         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
4649         (STRIP_NAME_ENCODING): Don't define.
4650         (ASM_OUTPUT_LABEL): Don't define.
4651         (ASM_GLOBALIZE_LABEL): Don't define.
4652         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
4653         names, and ASM_OUTPUT_LABEL to output labels, rather than
4654         asm_fprintf.
4655         (ASM_OUTPUT_LABEL): Define.
4656         (ASM_OUTPUT_INT): Use assemble_name.
4657         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
4658         (STRIP_NAME_ENCODING): Don't undefine first.
4659         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
4660         ELF.
4661         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
4662         specified with 'asm' even with -fleading-underscore.
4663         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
4664         (output_epilog): Likewise.
4665         (output_toc): Likewise. 
4666         * tramp.asm: Handle -fleading-underscore correctly.
4667
4668         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
4669         -mminimal-toc.
4670         (nonlocal_goto_receiver): Delete.
4671         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
4672
4673         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
4674         (SET_ASM_OP): Define.
4675         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
4676
4677         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
4678         (ASM_LONG): Define.
4679
4680         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
4681         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
4682
4683         * rs6000.h: Add 'u' to more constants.
4684
4685         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
4686
4687         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
4688
4689         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
4690
4691         * rs6000.c (reg_or_u_cint_operand): New function.
4692         (logical_operand): Handle 64-bit hosts.
4693         (logical_u_operand): New function.
4694         (non_logical_cint_operand): Handle 64-bit hosts.
4695         (non_logical_u_cint_operand): New function.
4696         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
4697         (PREDICATE_CODES): Define new functions.
4698         * rs6000-protos.h: Declare new functions.
4699         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
4700         (movdi_64): Bracket code intended for 64-bit hosts.  Create
4701         CONST_DOUBLE for 32-bit values.
4702         (scc insns): Generate DImode compares.
4703         (mfcr insns): Create DImode versions.
4704         (sge matchers): New patterns.
4705         
4706         2000-02-15  Gabriel Paubert  <paubert@iram.es>
4707
4708         * rs6000.md: Correct instructions length attributes and
4709         constraints on unsigned compare instructions.
4710         (*ne0): Disable for PowerPC64.
4711
4712         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
4713
4714         * rs6000.c (output_function_profiler): Use .long for a 32-bit
4715         quantity, fix profile1.C test failure under -fPIC.
4716
4717         * rs6000.c: Add 'u' to many constants to suppress warnings.
4718         (constant_pool_expr_1): Make static.
4719         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
4720         * rs6000.h: Add 'u' to many constants to suppress warnings.
4721
4722         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
4723         for the start of the TOC, instead of LCTOC..0.
4724         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
4725         of the TOC.
4726         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
4727         (load_toc_aix_di): Use LCTOC..1.
4728
4729         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
4730         * rs6000.c (rs6000_legitimize_address): New function from
4731         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
4732         symbols in the constant pool that really are TOC references.
4733         (print_operand_address): For ELF, write TOC offsets under
4734         -fPIC as subtractions in the insn.
4735         (output_toc): For ELF, define symbols in TOC as normal labels,
4736         to match RTL.
4737         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
4738         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
4739         (create_TOC_reference): Prototype only when RTX_CODE is defined.
4740         * rs6000.md (movsi): Only use create_TOC_reference on
4741         symbols in the constant pool that really are TOC references.
4742
4743         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
4744         * rs6000.c (rs6000_reorg): Delete.
4745         * rs6000-protos.h (rs6000_reorg): Delete.
4746
4747         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
4748
4749         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
4750
4751         * aix.h (SETUP_FRAME_ADDRESSES): Define.
4752         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
4753         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
4754         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
4755         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
4756         rs6000_aix_emit_builtin_unwind_init.
4757         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call 
4758         rs6000_emit_eh_toc_restore on AIX.
4759         (return_eh_si): Use r2.
4760         (return_eh_di): Use r2.
4761
4762         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
4763         since we're breaking binary compatibility anyway.
4764
4765         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
4766
4767         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
4768         constant_pool_expr_p): Declare them.
4769         (constant_pool_expr_p): Declare it.
4770         * config/rs6000/rs6000.c (toc_label_name): Define.
4771         (rs6000_override_options): Set toc_label_name.
4772         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
4773         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
4774         uses_TOC): New functions.
4775         (print_operand): Delete old '*' case.
4776         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
4777         and strip off rtl for TOC before calling output_addr_const.
4778         (rs6000_emit_load_toc_table): Use toc_label_name.
4779         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
4780         the default.
4781         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
4782         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
4783         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
4784         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
4785         into explicit TOC_REGISTER offsets.
4786         (TOC_REGISTER): New macro.
4787         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under 
4788         TARGET_TOC to reference TOC_REGISTER.
4789         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
4790         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call  
4791         uses_TOC before emitting label references.
4792
4793         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
4794
4795         * rs6000.md (stack_tie): Fix warning.
4796
4797         * eabi-ctors.c: Use 'asm' names for the start/end variables,
4798         to handle -fleading-underscore.
4799         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
4800         (USER_LABEL_PREFIX): New macro.
4801         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
4802         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
4803         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
4804         call-linux can use the same multilibs.
4805         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
4806         and call-linux multilibs.  Do multilib with -fleading-underscore.
4807         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
4808         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
4809         to call-aix.
4810
4811         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
4812         have MASK_SOFT_FLOAT set.
4813         (CPP_FLOAT_DEFAULT_SPEC): New macro.
4814         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
4815         CPP_FLOAT_DEFAULT_SPEC.
4816
4817         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
4818         * rs6000.md: Whitespace change.
4819         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
4820         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
4821
4822         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
4823
4824         * rs6000.md (eh_epilogue): New expander.
4825         (eh_reg_restore): New expand/split/insn combination.
4826         (return_eh_si): New insn.
4827         (return_eh_di): New insn.
4828
4829         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
4830         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
4831         * eabi-ctors.c (__do_global_ctors): Register this object's
4832         frame.  Clean up.  Call atexit() after the constructors.
4833         (__do_global_dtors): Deregister this object's frame.  Clean up.
4834         Allow for recursive calls to exit().
4835         * rs6000.c (fixuplabelno): New variable.
4836         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
4837         TARGET_RELOCATABLE, it slows down exec() under linux.
4838         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
4839
4840         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
4841         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
4842         (ASM_OUTPUT_DWARF_DELTA2): New macro.
4843         (ASM_OUTPUT_DWARF_DELTA4): New macro.
4844         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
4845         (ASM_OUTPUT_DWARF_ADDR): New macro.
4846         (ASM_OUTPUT_DWARF_DATA4): New macro.
4847         (ASM_OUTPUT_DWARF_DATA2): New macro.
4848         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
4849         (ASM_OUTPUT_DWARF_OFFSET): New macro.
4850         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
4851
4852         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
4853
4854         * rs6000.c (rs6000_sr_alias_set): New variable.
4855         (rs6000_override_options): Initialise rs6000_sr_alias_set.
4856         (rs6000_emit_stack_tie): New function.
4857         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
4858         in a way that dwarf2out can understand.
4859         (rs6000_frame_related): New function.
4860         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
4861         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
4862         Use rs6000_emit_stack_tie when needed.
4863         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
4864         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
4865         * rs6000.md (stack_tie): New insn.
4866         (return_internal_si): Allow return value to be in the count
4867         register.
4868         (return_internal_di): Likewise.
4869
4870         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
4871
4872         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
4873
4874         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
4875
4876         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
4877
4878         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
4879
4880         * rs6000.md (stmw): Use the right POWER opcode.
4881         (lmw): Likewise.
4882
4883         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4884
4885         * rs6000-protos.h: New file.
4886
4887         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
4888         
4889         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
4890         warnings.
4891         
4892         * sysv4.h: Likewise.
4893
4894         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
4895
4896         * ../../configure.in: Delete powerpcle-*-winnt*
4897         and powerpcle-*-pe|powerpcle-*-cygwin*.
4898         * ../../configure: Regenerated.
4899         * cygwin.h: Delete.
4900         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
4901         (TARGET_WINDOWS_NT): Delete.
4902         (ABI_NT): Delete.
4903         (CALL_NT_DLLIMPORT): Delete.
4904         Delete NT-specific code.
4905         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
4906         * win-nt.h: Delete.
4907         * t-winnt: Delete.
4908         * nt-ci.asm: Delete.
4909         * nt-cn.asm: Delete.
4910         * ntstack.asm: Delete.
4911
4912         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4913
4914         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
4915         (ASM_FILE_START): Likewise.
4916         (ASM_DECLARE_FUNCTION_NAME): Likewise.
4917         (ASM_OUTPUT_LABELREF): Likewise.
4918         (ASM_OUTPUT_SKIP): Likewise.
4919         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
4920         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
4921         (ASM_OUTPUT_CASE_LABEL): Likewise.
4922         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
4923         (ASM_OUTPUT_ASCII): Likewise.
4924
4925         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
4926
4927         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
4928         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
4929         increment rs6000_pic_labelno here.
4930         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
4931         and increment rs6000_pic_labelno here.
4932
4933         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
4934
4935         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
4936         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
4937         allocation knows (reg) is dead before the insn.
4938
4939         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
4940
4941         * rs6000.md (movsi_to_cr): Correct typo in output template.
4942
4943         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
4944
4945         * rs6000.c (rs6000_pic_labelno): Always define.
4946         (rs6000_pic_func_labelno): Delete.
4947         (lmw_operation): Check for a zero base register,
4948         which doesn't mean what we want.
4949         (stmw_operation): New function.
4950         (print_operand): Define new 'l' modifier.
4951         (rs6000_stack_info): We must save all 64 bits of the registers
4952         if TARGET_POWERPC64.
4953         (rs6000_output_load_toc_table): Delete.
4954         (rs6000_emit_load_toc_table): New function.
4955         (rs6000_allocate_stack_space): Delete.
4956         (rs6000_emit_allocate_stack): New function.
4957         (rs6000_emit_prologue): New function.
4958         (output_prolog): Use rs6000_emit_prologue.
4959         (rs6000_emit_epilogue): Change a few variable names to be
4960         more accurate.  Restore all 64 bits of the registers if
4961         TARGET_POWERPC64.  Only restore the FP registers which were used
4962         if they are being saved/restored one-at-a-time.
4963         (output_mi_thunk): Delete inefficient code generation.
4964         (output_function_profiler): Don't use rs6000_output_load_toc_table.
4965         * rs6000.h: Declare rs6000_emit_load_toc_table,
4966         rs6000_allocate_stack_space, stmw_operation.  Don't declare
4967         rs6000_output_load_toc_table.
4968         * rs6000.md (elf_high): Allow register 0, but discourage it
4969         heavily.
4970         (elf_low): Support loading into register 0.
4971         (load_toc_aix_si): New pattern.
4972         (load_toc_aix_di): New pattern.
4973         (load_toc_v4_pic_si): New pattern.
4974         (load_toc_v4_pic_di): New pattern.
4975         (load_toc_v4_PIC_1): New pattern.
4976         (load_toc_v4_PIC_1b): New pattern.
4977         (load_toc_v4_PIC_2): New pattern.
4978         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
4979         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
4980         (prologue): New expander.
4981         (movesi_from_cr): New pattern.
4982         (stmw): New pattern.
4983         (save_fpregs_si): New pattern.
4984         (save_fpregs_di): New pattern.
4985
4986         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
4987
4988         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
4989         (movdi): Likewise.
4990         (movhi): Likewise.
4991         (movqi): Likewise.
4992
4993         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
4994
4995         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
4996         at present.
4997         (movsi_got_internal): Likewise.
4998         (movsi_got_internal+1): Likewise.
4999         (set_sp): 'unspec 7' does a SImode clobber.
5000
5001         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
5002
5003         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
5004         allocate a stack temporary.
5005         (floatsidf2_internal): Likewise.
5006         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
5007         with unspec.
5008         (floatunssidf2): Don't use the fpmem "register", just
5009         allocate a stack temporary.
5010         (floatunssidf2_internal): Likewise.
5011         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
5012         with unspec.
5013         (floatsidf2_loadaddr): Delete.
5014         (floatsidf2_store1): Delete.
5015         (floatsidf2_store2): Delete.
5016         (floatsidf2_load): Delete.
5017         (fix_truncdfsi2): Don't use the fpmem "register", just
5018         allocate a stack temporary.
5019         (fix_truncdfsi2_internal_si): Delete.
5020         (fix_truncdfsi2_internal_di): Delete.
5021         (fix_truncdfsi2_internal): New insn.
5022         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
5023         (fix_truncdfsi2_store): Delete.
5024         (fix_truncdfsi2_load): Delete.
5025         (fctiwz): Produce gen_fctiwz.
5026
5027         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
5028
5029         * eabi.h (INVOKE__main): Define.
5030         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
5031         specially.
5032         (rs6000_emit_prologue): Likewise.
5033         * rs6000.h (struct rs6000_stack): Don't keep track of whether
5034         this is the main program.
5035
5036         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
5037
5038         * rs6000.c (rs6000_va_arg): Delete some unused variables.
5039
5040         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
5041
5042         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
5043         goes after the argument.
5044
5045         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
5046
5047         * rs6000.md: Document 'unspec' values used.
5048         (epilogue): New expander.
5049         (movesi_to_cr_one): New expander.
5050         (movesi_to_cr and following): New pattern.
5051         (lmw): New pattern.
5052         (return_internal_si): New pattern.
5053         (return_internal_di): New pattern.
5054         (return_and_restore_fpregs_si): New pattern.
5055         (return_and_restore_fpregs_di): New pattern.
5056         * rs6000.h: Declare new functions.
5057         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
5058         rather than rs6000_calls_p.
5059         (rs6000_makes_calls): Delete.
5060         (lmw_operation): New function.
5061         (mtcrf_operation): New function.
5062         (rs6000_emit_epilogue): New function.
5063         (output_epilog): Call rs6000_emit_epilogue and final if
5064         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
5065
5066         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
5067
5068         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
5069         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
5070         * aix.h (SUBTARGET_SWITCHES): Document switches.
5071         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
5072         sched-prolog and sched-epilog the same.  Document all the
5073         switches.
5074         (TARGET_OPTIONS): No longer allow -mdebug-.
5075
5076         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
5077
5078         * rs6000.h (ASM_FILE_END): Move to aix.h.
5079         (EXTRA_SECTIONS): Move to aix.h.
5080         (READONLY_DATA_SECTION): Move to aix.h.
5081         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
5082         (SELECT_SECTION): Move to aix.h.
5083         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
5084         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
5085         (LINK_REGISTER_REGNUM): New definition.
5086         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
5087         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
5088         AIX and SVR4.
5089         * sysv4.h: Delete the code between the inclusion of rs6000.h
5090         and svr4.h.
5091         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
5092         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
5093         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
5094         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
5095         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
5096         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
5097         (fix_truncdfsi2_internal_di): New pattern.
5098         (fix_truncdfsi2_store): The second arg here is Pmode too.
5099         (fix_truncdfsi2_load): The second arg here is Pmode too.
5100         (tablejumpdi): Now that switch tables hold only SImode values,
5101         gcc needs to know how to add them to the pc which is DImode.
5102         * rs6000.c (rs6000_stack_info): Use symbolic name for 
5103         LINK_REGISTER_REGNUM.
5104         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
5105         (output_toc): Delete unused variables s1 and s2.
5106         (output_ascii): Use fputs not fprintf on a variable string.
5107
5108         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
5109
5110         * rs6000.c (processor_target_table): Add power3 as alias for 630.
5111         * aix43.h: Revert Aug 2 change.
5112         (HAS_INIT_SECTION): Define, not visible yet.
5113         (LD_INIT_SWITCH): Define, not visible yet.
5114         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
5115
5116         2000-01-04  Joel Sherrill (joel@OARcorp.com>
5117
5118         * config/rs6000/rtems.h: Include config/rtems.h.
5119
5120         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
5121
5122         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
5123         (SLOW_UNALIGNED_ACCESS): Define.
5124         (CASE_VECTOR_MODE): Always use 32-bit offsets.
5125         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
5126         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
5127         (toc_section): Likewise and .toc pseudo-op.
5128         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
5129         64-bit mode.
5130         (TEXT_SECTION_ASM_OP): Likewise.
5131         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
5132         32-bit offsets.
5133
5134         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
5135
5136         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
5137         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
5138         compiling libgcc2.
5139         
5140         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5141
5142         * rs6000.h: Move more stuff from here...
5143         * aix.h: to here.
5144         * sysv4.h: Cleanup accordingly.
5145         * netware.h: Likewise
5146
5147         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5148
5149         * rs6000.h: Continue cleanup.
5150         * aix.h: Likewise.
5151         * lynx.h: Likewise.
5152         * netware.h: Likewise.
5153         * sol2.h: Likewise.
5154         * sysv4.h: Likewise.
5155         * win-nt.h: Likewise.
5156
5157         * rs6000.h (TARGET_SWITCHES): Add descriptions.
5158         (TARGET_OPTIONS): Likewise.
5159
5160         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
5161         (SUBTARGET_OPTIONS): Likewise.
5162
5163         * rs6000.md: Fix compile time warnings.
5164
5165         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
5166
5167         vxworks patches from the Cygnus tree originally by
5168         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
5169         <vmakarov@cygnus.com>.
5170         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
5171         (ENDFILE_SPEC): Likewise.
5172         (LIB_VXWORKS_SPEC): New macro.
5173         (STARTFILE_VXWORKS_SPEC): New macro.
5174         (ENDFILE_VXWORKS_SPEC): New macro.
5175         (LINK_START_VXWORKS_SPEC): New macro.
5176         (LINK_OS_VXWORKS_SPEC): New macro.
5177         (CPP_OS_VXWORKS_SPEC): New macro.
5178         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
5179         * vxppc.h: Rewrite to use proper configuration method.
5180         * vxppcle.h: New file.
5181         * ../../configure.in: Add powerpcle-wrs-vxworks*.
5182         * ../../configure: Rebuilt.
5183
5184         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
5185
5186         Lots of changes to rs6000.h, sysv4.h, aix.h,
5187         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
5188         with the aim that rs6000.h is the first header
5189         included and the others override it.
5190         * aix.h: New file.
5191
5192         * x-aix41-gld: Remove.  
5193         * x-aix43: Remove.
5194         * x-aix41: Remove target-specific switches, and don't specify
5195         -Wl,-bbigtoc as we don't need it any more.
5196         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
5197         Use t-aix43 for AIX 4.3 and above.
5198         * ../../configure: Regenerated.
5199
5200         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
5201         options, that don't do anything yet.
5202         (MASK_SCHED_PROLOG): New macro.
5203         (MASK_SCHED_EPILOG): New macro.
5204         (TARGET_SCHED_PROLOG): New macro.
5205         (TARGET_SCHED_EPILOG): New macro.
5206
5207         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
5208
5209         * rs6000.c: Correct comment, the `minimal' TOCs are actually
5210         one per translation unit, not one per function.
5211         (output_toc): Also do duplicate constant elimination
5212         for per-translation-unit TOCs.
5213
5214         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
5215         a comment explaining _exactly_ when this pattern gets used.
5216         (builtin_setjmp_receiver): New pattern for better clarity.
5217         (init_v4_pic): Move it into a section dealing with TOC registers.
5218
5219         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
5220
5221         * rs6000.c (toc_hash_table): New variable.
5222         (rs6000_hash_constant): New function.
5223         (toc_hash_function): New function.
5224         (toc_hash_eq): New function.
5225         (toc_hash_mark_entry): New function.
5226         (toc_hash_mark_table): New function.
5227         (output_toc): Don't output duplicate TOC entries in
5228         a single file.
5229         (rs6000_add_gc_roots): Add the hash table as a GC root.
5230         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
5231         where they clearly shouldn't be.  This may need to be fixed
5232         later when there is a GNU ar for AIX.
5233         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
5234         Don't define BOOT_LDFLAGS as it is now not necessary.
5235
5236         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
5237
5238         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
5239         for va_list on AIX.  Use unsigned_char_type_node rather than
5240         constructing our own version on svr4.
5241
5242         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
5243
5244         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
5245         since patently it's not.
5246
5247         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
5248
5249         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
5250         define_expand/define_insn pair, and handle restore of the
5251         SVR4 -fpic register.
5252
5253 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
5254
5255         * acconfig.h (HAVE_GAS_WEAK): New define.
5256         * configure.in (assembler weak support): Check for .weak support.
5257         * config.in, configure: Rebuilt.
5258         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
5259         HAVE_GAS_WEAK is defined.
5260
5261 2000-03-15  Nick Clifton  <nickc@cygnus.com>
5262
5263         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
5264         asm_fprintf().
5265
5266 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
5267
5268         * cppfiles.c (open_include_file): New function.
5269         (find_include_file, cpp_read_file): Use it.
5270
5271 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
5272
5273         * cpphash.c (dump_hash_helper): Take the slot, not the element.
5274
5275 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
5276
5277         * flow.c (verify_flow_info): Check for unconditional return.
5278
5279 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
5280
5281         * config/ia64/ia64.md (restore_stack_nonlocal): New.
5282         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
5283         (__ia64_restore_stack_nonlocal): New.
5284         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
5285
5286 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5287
5288         * cpphash.c (collect_formal_parameters): Do not complain about
5289         parameter names that just start with `__VA_ARGS__'.
5290
5291 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
5292
5293         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
5294         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
5295         * i386.c (pentiumpro_cost): Set mul cost to 4.
5296         (x86_use_movx): Set for PPro.
5297
5298 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
5299
5300         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
5301         STACK_BOUNDARY for empty frames now.
5302
5303 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
5304
5305         * stor-layout.c (layout_union): Remove.
5306         (layout_union_field): New function, split out from layout_union.
5307         (finish_union_layout): Likewise.
5308         (layout_field): Handle unions by calling layout_union_field.
5309         (finish_record_layout): Handle unions.
5310         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
5311         QUAL_UNION_TYPE handling.
5312
5313 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
5314
5315         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
5316         end of basic block is jump_insn, not barrier; use create_basic_block
5317         instead of creating basic block by hand.
5318
5319 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
5320
5321         * flow.c (reorder_basic_blocks): Account for barriers when writing
5322         over NEXT_INSN (last_bb->end).
5323         (verify_flow_info): Add check for missing barriers.
5324
5325 2000-03-14  Greg McGary  <gkm@gnu.org>
5326
5327         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
5328         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
5329         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
5330         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
5331         __unbounded, __unbounded__): New keywords.
5332         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
5333         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
5334         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
5335
5336 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
5337
5338         * cselib.h: New file.
5339         * alias.c: Include "cselib.h".
5340         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
5341         MEMs as two new arguments.
5342         (get_addr): New static function.
5343         (find_base_term): Handle VALUEs.
5344         (memrefs_conflict_p): Likewise.
5345         (true_dependence): Call get_addr on the addresses.
5346         Call fixed_scalar_and_varying_struct_p with addresses that have been
5347         passed through get_addr and canon_rtx.
5348         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
5349         with true_dependence.
5350         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
5351         * loop.c: Include "cselib.h".
5352         (load_mems): Process extended basic block that enters the loop with
5353         cselib.  Use that information to change initialization of the shadow
5354         register so that a constant equivalence is seen by later passes.
5355         * reload1.c: Include "cselib.h".
5356         (reload_cse_invalidate_regno): Delete function.
5357         (reload_cse_mem_conflict_p): Likewise.
5358         (reload_cse_invalidate_mem): Likewise.
5359         (reload_cse_invalidate_rtx): Likewise.
5360         (reload_cse_regno_equal_p): Likewise.
5361         (reload_cse_check_clobber): Likewise.
5362         (reload_cse_record_set): Likewise.
5363         (reg_values): Delete static variable.
5364         (invalidate_regno_rtx): Likewise.
5365         (reload_cse_delete_noop_set): New static function.
5366         (reload_cse_simplify): New static function, broken out of
5367         reload_cse_regs_1.
5368         (reload_cse_noop_set_p): Delete unused argument INSN.
5369         Just call rtx_equal_for_cselib_p on set source and destination.
5370         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
5371         reload_cse_delete_noop_set.  Delete code to keep track of values; use
5372         cselib functions instead.  Delete code to push/pop obstacks.
5373         (reload_cse_simplify_set): Use cselib to find equivalent values.
5374         Delete code to push/pop obstacks.
5375         (reload_cse_simplify_operands): Likewise.
5376         * rtl.def (VALUE): New rtx code.
5377         * rtl.h (union rtunion_def): New elt rt_cselib.
5378         (X0CSELIB, CSELIB_VAL_PTR): New macros.
5379         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
5380         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
5381         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
5382         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
5383         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
5384         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
5385         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
5386         cselib_record_set, cselib_record_sets): New static functions.
5387         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
5388         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
5389         references_value_p): New functions.
5390         (MAX_USELESS_VALUES, REG_VALUES): New macros.
5391         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
5392         n_useless_values, reg_values, callmem, cselib_obstack,
5393         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
5394         New static variables.
5395         * varray.h (union varray_data_tag): New elt te.
5396         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
5397         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
5398         dependencies.
5399
5400 2000-03-14  Nick Clifton  <nickc@cygnus.com>
5401
5402         * gcc.c (do_spec_1): Catch the case where %* is used in a
5403         substitution pattern, but it has not been initialised.
5404         Issue a meaningful error message if an unrecognised operator
5405         is encountered in a spec string.
5406
5407 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
5408
5409         * function.c (prepare_function_start): Correctly initialize
5410         cfun->stack_alignment_needed.
5411
5412 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
5413
5414         * cppfiles.c (find_include_file): Don't assume nshort is a
5415         substring of name.
5416
5417 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
5418
5419         * configure.in (hppa configurations): Add pa32-regs.h to the
5420         list of tm files as appropriate.
5421         * configure: Rebuilt.
5422         * pa.c (compute_frame_size): Remove explicit knowledge about FP
5423         register numbering.
5424         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
5425         (fmpyaddoperands, fmpysuboperands): Likewise.
5426         * pa.h: Remove various definitions which depend on knowing
5427         how registers are numbered.
5428         * pa32-regs.h: New file with PA32 register numbering specific
5429         definitions.
5430
5431 2000-03-14  Richard Henderson  <rth@cygnus.com>
5432
5433         * regmove.c (combine_stack_adjustments): New.
5434         (stack_memref_p, single_set_for_csa): New.
5435         (free_csa_memlist, record_one_stack_memref): New.
5436         (try_apply_stack_adjustment): New.
5437         (combine_stack_adjustments_for_block): New.
5438         * rtl.h (combine_stack_adjustments): Declare.
5439         * toplev.c (rest_of_compilation): Call it.
5440
5441         * i386.md: Revert 2000-01-16 change.
5442
5443 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5444
5445         * gccbug.in: Add web category, gcc specific classes.
5446
5447 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
5448
5449         * stor-layout.c (finalize_record_size): Fix typo.
5450
5451 2000-03-14  Stan Shebs  <shebs@apple.com>
5452
5453         * c-typeck.c (c_alignof): Error on incomplete types.
5454         * extend.texi (Alignment): Document this.
5455
5456 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
5457
5458         * cppfiles.c: Include mkdeps.h.
5459         (find_include_file, read_include_file): Remove _cpp_ prefix
5460         from name, make static.
5461         (_cpp_execute_include): New function, broken out of
5462         do_include.
5463
5464         * cpplib.c: Don't include mkdeps.h.
5465         (struct directive): Remove type field. Reorder entries.  The
5466         function takes only one argument.
5467         (struct if_stack): Make type field an int.
5468         (directive_table): Rename to dtable.  Generate it, the
5469         prototypes of the directive handlers, and the enum for the
5470         directive numbers, from a template macro.
5471         (do_ifndef, do_include_next, do_import): New functions.
5472         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
5473         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
5474         do_ident, do_assert, do_unassert, do_sccs): Take only one
5475         argument.
5476         (do_sccs): Define always, but alter behavior based on
5477         SCCS_DIRECTIVE.
5478         (_cpp_handle_directive, consider_directive_while_skipping):
5479         Restructure for new directive table layout.
5480
5481         (pass_thru_directive): Take a directive number, not a pointer
5482         to a struct directive.
5483         (parse_include): New function, broken out of do_include.
5484         (do_include, do_import, do_include_next): Use parse_include
5485         and _cpp_execute_include.
5486         (do_elif, do_else): Test for T_ELSE specifically when checking
5487         for #elif/#else after #else.
5488         (parse_ifdef): New function, broken out of do_ifdef.
5489         (validate_else): Expect a name arg without a leading #.
5490         (if_directive_name): Delete.
5491         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
5492         directive handlers with only one argument.
5493
5494         * cpphash.h: Update prototypes.
5495         (enum node_type): Remove entries for directives.
5496         * Makefile.in: Update dependencies.
5497
5498         * cpphash.c (dump_hash_helper): Only dump nodes of type
5499         T_MACRO.  Emit a newline after each definition.
5500
5501 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5502
5503         * gccbug.in: New file.
5504         * configure.in (all_outputs): Add gccbug.
5505         * Makefile.in (install-common): Install gccbug.
5506         (GCCBUG_INSTALL_NAME): New variable.
5507         * configure: Rebuilt.
5508         
5509 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
5510
5511         * function.c (put_var_into_stack): Use type_for_mode to calculate
5512         part_type.  Use MEM_SET_IN_STRUCT_P.
5513         * expr.c (store_field): Handle CONCAT.
5514         (store_constructor): Use fields_length.
5515         * tree.c (fields_length): New fn.
5516         * tree.h: Declare it.
5517
5518 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
5519
5520         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
5521         (cpplex.o): New target.
5522         * po/POTFILES.in: Add cpplex.c.
5523
5524         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
5525         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
5526         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
5527         skip_block_comment, skip_line_comment, skip_comment,
5528         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
5529         _cpp_parse_name, skip_string, parse_string,
5530         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
5531         _cpp_get_directive_token, find_position,
5532         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
5533         (maybe_macroexpand, _cpp_lex_token): New functions.
5534
5535         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
5536         parse_goto_mark): Delete.
5537         (_cpp_handle_eof): New function.
5538         (_cpp_handle_directive): Rename from handle_directive.
5539         (_cpp_output_line_command): Rename from output_line_command.
5540         (do_if, do_elif): Call _cpp_parse_expr directly.
5541         * cppfiles.c (_cpp_read_include_file): Don't call
5542         init_input_buffer here.
5543         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
5544         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
5545         here; pop the token_buffer and skip the rest of the line here.
5546         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
5547         here.
5548
5549         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
5550         Define here.
5551         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
5552         CPP_GOTO_MARK): New macros.
5553         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
5554         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
5555         _cpp_read_and_prescan, _cpp_init_input_buffer,
5556         _cpp_grow_token_buffer, _cpp_get_directive_token,
5557         _cpp_handle_directive, _cpp_handle_eof,
5558         _cpp_output_line_command): Prototype them here.
5559         * cpplib.h (enum cpp_token): Add CPP_MACRO.
5560         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
5561         quote_string, output_line_command): Remove.
5562
5563 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
5564
5565         * stmt.c (expand_end_case): RANGE may be signed, and when checking
5566         whether it is too large we must also verify that it isn't negative.
5567
5568 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
5569
5570         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
5571         (movsi_zero_liveg0): Remove.
5572         (movsf_insn_novis_liveg0): Remove.
5573         (negsi2): Remove.
5574         (negsi2_not_liveg0): Rename to negsi2.
5575         (one_cmplsi2): Remove.
5576         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
5577         (one_cmplsi2_liveg0): Remove.
5578         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
5579         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
5580         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
5581         (PREDICATE_CODES): Remove zero_operand.
5582         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
5583         TARGET_BROKEN_SAVERESTORE.
5584         (zero_operand): Remove.
5585         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
5586         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
5587         options.
5588         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
5589         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
5590         TARGET_BROKEN_SAVERESTORE): Remove.
5591         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
5592         Remove.
5593         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
5594         Remove.
5595         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
5596         Remove.
5597
5598         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
5599
5600 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
5601
5602         * cpplib.c (do_pragma_implementation): Fix off-by-one error
5603         truncating a string.  Don't assume tokens are nul terminated.
5604         Problem noted by Andreas Jaeger <aj@suse.de>
5605
5606 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
5607
5608         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
5609         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
5610         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
5611
5612 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
5613
5614         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
5615         STRUCTURE_SIZE_BOUNDARY.
5616
5617 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
5618
5619         * tree.h (record_layout_info_s): New structure.
5620         (record_layout_info): New type.
5621         (new_record_layout_info): New function.
5622         (layout_field): Likewise.
5623         (finish_record_layout): Likewise.
5624         * stor-layout.c (layout_record): Remove.
5625         (new_record_layout_info): New function.
5626         (layout_field): New function, broken out from layout_record.
5627         (finalize_record_size): Likewise.
5628         (compute_record_mode): Likewise.
5629         (finalize_type_size): New function, broken out from layout_type.
5630         (finish_record_layout): Likewise.
5631         (layout_type): Use them.
5632         
5633 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
5634
5635         * cpphash.c: Don't include version.h.
5636         (special_symbol) [case T_VERSION]: Look for the string in
5637         hp->value.cpval; don't use version_string.
5638         * cppinit.c (initialize_builtins): Set hp->value.cpval for
5639         __VERSION__ to version_string.
5640         * Makefile.in (cpphash.o): Update deps.
5641
5642 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
5643
5644         Convert cpplib to use libiberty/hashtab.c.
5645
5646         * cpplib.h (struct cpp_reader): Make hashtab and
5647         all_include_files of type 'struct htab *'.  Delete HASHSIZE
5648         and ALL_INCLUDE_HASHSIZE macros.
5649
5650         * cpphash.h: Update prototypes.
5651         (struct hashnode): Remove next, prev, and bucket_hdr members.
5652         Make length a size_t.  Add hash member.
5653         (struct ihash): Remove next member.  Add hash member.  Make
5654         name a flexible array member.
5655
5656         * cppfiles.c: Include hashtab.h.
5657         (include_hash): Delete.
5658         (IHASHSIZE): New macro.
5659         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
5660         (cpp_included): Do the hash lookup here.
5661         (_cpp_find_include_file): Rewrite.
5662         (cpp_read_file): Put the "fake" hash entry into the hash
5663         table.  Honor the control_macro, if it turns out we've seen
5664         the file before.  Don't push the buffer here.
5665         (_cpp_read_include_file): Push the buffer here.
5666         (OMODES): New macro.  Use it whenever we call open(2).
5667
5668         * cpphash.c: Include hashtab.h.
5669         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
5670         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
5671         _cpp_lookup_slot): New functions.
5672         (HASHSIZE): new macro.
5673         (hashf, _cpp_install, _cpp_delete_macro): Delete.
5674         (_cpp_lookup): Use hashtab.h routines.
5675
5676         * cppinit.c: Include hashtab.h.
5677         (cpp_reader_init): Call _cpp_init_macro_hash and
5678         _cpp_init_include_hash.  Don't allocate hashtab directly.
5679         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
5680         pfile->all_include_files.
5681         (initialize_builtins): Use _cpp_make_hashnode and
5682         htab_find_slot to add hash entries.
5683         (cpp_finish): Just call _cpp_dump_macro_hash.
5684         * cpplib.c: Include hashtab.h.
5685         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
5686         create hash entries.
5687         (do_pragma_poison, do_assert): Likewise.
5688         (do_include): Don't push the buffer here.  Don't increment
5689         system_include_depth unless _cpp_read_include_file succeeds.
5690         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
5691         or htab_remove_elt.
5692         (do_pragma_implementation): Use alloca to create copy.
5693
5694         * Makefile.in: Update dependencies.
5695
5696 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5697
5698         * cppinit.c (cl_directive_handler): More K&R fixing.
5699
5700 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
5701
5702         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
5703         STACK_BOUNDARY.
5704         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
5705
5706 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5707
5708         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
5709         Change from char[] to macros.
5710
5711 2000-03-12  Neil Booth  <NeilB@earthling.net>
5712
5713         * cppinit.c (cpp_start_read): Update indirect function
5714         call to K&R C.
5715
5716 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
5717
5718         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
5719         entry.
5720
5721         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
5722         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
5723
5724 2000-03-11  Neil Booth  <NeilB@earthling.net>
5725
5726         * cppinit.c (struct pending option): Replace undef with a 
5727         pointer to a directive handling routine.
5728         (struct cpp_pending): Replace separate assert_ and define_ 
5729         lists with one directive_ list.
5730         (new_pending_define): Rename new_pending_directive. Extra
5731         argument is the directive's handling routine.
5732         (handle_option): Update to use new_pending_directive.
5733
5734 2000-03-11  Neil Booth  <NeilB@earthling.net>
5735
5736         * cppfiles.c (file_cleanup, _cpp_find_include_file,
5737         remap_filename, _cpp_read_include_file, actual_directory,
5738         hack_vms_include_specification): Replace bcopy(), index() etc
5739         calls.  Add casts to some allocations.  Make some variables
5740         pointers to const [unsigned] char.
5741         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
5742         collect_formal_parameters): Similarly.
5743         * cppinit.c (struct pending_option, append_include_chain,
5744         cpp_options_init, cpp_reader_init, initialize_standard_includes,
5745         cpp_start_read, new_pending_define, handle_option): Similarly.
5746         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
5747         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
5748         do_pragma_implementation, detect_if_not_defined,
5749         do_ifdef, skip_if_group, cpp_get_token, parse_string,
5750         do_assert, do_unassert): Similarly.
5751         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
5752         function prototypes.
5753         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.   
5754
5755 2000-03-10  Richard Henderson  <rth@cygnus.com>
5756
5757         * builtins.c (expand_builtin_strlen): Revert last change.
5758         Use emit_insn_before if we're at the beginning of a sequence.
5759
5760 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
5761
5762         * builtins.c (expand_builtin_strlen): Make sure that we have something
5763         at the beginning of the sequence.
5764
5765         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
5766         deferred inlines.
5767
5768         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
5769
5770 2000-03-10  Richard Henderson  <rth@cygnus.com>
5771
5772         * except.c (can_throw): Use INTVAL on a CONST_INT.
5773         (reachable_handlers): Likewise.
5774         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
5775
5776 2000-03-10  Andreas Jaeger  <aj@suse.de>
5777
5778         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
5779         MD_STARTFILE_PREFIX since those are not needed on linux.
5780         (ASM_FILE_START): New, from mips/gnu.h.
5781
5782 2000-03-09  Richard Henderson  <rth@cygnus.com>
5783             Alex Samuel  <samuel@codesourcery.com> and others
5784         
5785         * Makefile.in (ssa.o): New rule.
5786         (OBJS): Add ssa.o.
5787         (STAGESTUFF): Add *.ssa and *.ussa.
5788         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
5789         * rtl.def (PHI): New RTL expression.
5790         * rtl.h (clear_log_links): New declaration.
5791         (convert_to_ssa): Likewise.
5792         (convert_from_ssa): Likewise.
5793         * flow.c (split_edge): If the entry node falls through to the
5794         split edge's source block, split the entry edge.
5795         (clear_log_links): New function.
5796         * toplev.c (ssa_dump): New variable.
5797         (flag_ssa): Likewise.
5798         (f_options): Add "ssa".
5799         (compile_file): Create SSA dump files.
5800         (rest_of_compilation): Go to and from SSA if enabled.
5801         (decide_d_option): Handle -de for SSA dump files.
5802         * ssa.c: New file.
5803         
5804 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
5805
5806         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
5807         same as VAR_DECL.
5808
5809 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
5810
5811         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
5812
5813 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
5814
5815         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
5816         (MD_STARTFILE_PREFIX_1): New macro.
5817
5818 2000-03-09  Robert Lipe  <robertl@sco.com>
5819
5820         * config/ia64/ia64.c: Include system.h.
5821
5822 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
5823
5824         * except.c (nothrow_function_p): If -fno-exceptions, just return.
5825         (init_eh_nesting_info): Likewise.
5826
5827         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
5828         (TREE_NOTHROW): Rename from TREE_RAISES.
5829         * toplev.c (rest_of_compilation): Set it.
5830         * print-tree.c (print_node): Adjust.
5831         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
5832         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
5833         * calls.c (emit_call_1): Add 'nothrow' parm.  Add 
5834         REG_EH_REGION note as appropriate.
5835         (libfunc_nothrow): New fn.
5836         (emit_library_call, emit_library_call_value): Use it.
5837         (expand_call): Check TREE_NOTHROW.
5838
5839         * varasm.c (make_decl_rtl): Skip initial '*' when setting
5840         DECL_ASSEMBLER_NAME.
5841
5842 2000-03-09  Andreas Jaeger  <aj@suse.de>
5843
5844         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
5845         (TARGET_MEM_FUNCTIONS): Define.
5846
5847 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
5848
5849         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
5850
5851         * except.c (can_throw): See through a SEQUENCE.
5852         (nothrow_function_p): New fn.
5853         * except.h: Declare it.
5854         * function.c (current_function_nothrow): New var.
5855         (prepare_function_start): Initialize it.
5856         * output.h: Declare it.
5857         * toplev.c (rest_of_compilation): Set it.
5858         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
5859
5860 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
5861
5862         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
5863         match.  (cpp_compare_defs): Count the nul separator when
5864         advancing over argument names.
5865
5866 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
5867
5868         * recog.c (preprocess_constraints): Matching constraints affect
5869         same alternative/different operand, not same operand/different
5870         alternative.
5871         
5872         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
5873         register and a constant specially.
5874
5875 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5876
5877         * libgcc2.h: New file.
5878         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
5879
5880 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
5881
5882         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
5883         * configure: Regenerate.
5884         * config/ia64: New.
5885
5886 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
5887
5888         * Makefile.in (LIBCPP_DEPS): New macro.
5889         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
5890         it to declare deps.
5891         * cpperror.c: Include cpphash.h.
5892         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
5893         dingleberry.
5894         (lex): Don't use CPP_WARN_UNDEF.
5895         (_cpp_parse_expr): Return an int, the truth value.
5896         * cppfiles.c: Include cpphash.h.
5897         (_cpp_merge_include_chains): Move to cppinit.c and make static.
5898         * cppinit.c (include_defaults_array): Disentangle.
5899         (cpp_cleanup): Don't free the if stack here.
5900         (cpp_finish): Pop off all buffers, not just one.
5901         * cpplib.c (eval_if_expr): Return int.
5902         (do_xifdef): Rename do_ifdef.
5903         (handle_directive): Don't use CPP_PREPROCESSED. 
5904         (cpp_get_token): Don't use CPP_C89.
5905         * fix-header.c: Don't use CPP_OPTIONS.
5906
5907         * cpplib.h: Move U_CHAR, enum node_type, struct
5908         file_name_list, struct ihash, is_idchar, is_idstart,
5909         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
5910         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
5911         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
5912         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
5913         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
5914         of _cpp_simplify_pathname, _cpp_find_include_file,
5915         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
5916         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
5917         cppinit.c.
5918         Change all uses of U_CHAR to be unsigned char instead.
5919         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
5920
5921 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
5922
5923         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
5924         (dwarf2out_begin_prologue): Set it.
5925         (output_call_frame_info): Don't emit EH unwind info for leaves.
5926
5927         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
5928         can occur outside of an EH region.
5929         * except.c: Correct comments about rethrow behavior.
5930         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
5931
5932 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
5933
5934         * flow.c (make_edges): Always call make_eh_edge for calls.
5935
5936 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
5937
5938         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
5939         (struct cpp_buffer): Remove fname and underflow fields.
5940         (struct cpp_reader): Remove get_token field.
5941         (struct include_hash): Rename to struct ihash.  Add typedef to
5942         IHASH.
5943         (struct if_stack): Remove fname field.
5944         (IF_STACK_FRAME): Rename to IF_STACK.
5945
5946         * cpperror.c (print_containing_files): Trust that there are no
5947         macro buffers below the top file buffer.
5948         * cppfiles.c: Replace all references to 'struct include_hash'
5949         with 'IHASH'.  Rename initialize_input_buffer to
5950         init_input_buffer.  Don't set or reference cpp_buffer->fname,
5951         use buffer->ihash->name instead.
5952         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
5953         not CPP_NULL_BUFFER.
5954         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
5955         IF_STACK_FRAME, IHASH not struct include_hash.
5956         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
5957         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
5958         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
5959         references to cpp_buffer->fname (delete entirely, or use
5960         ->ihash->name instead) and IF_STACK->fname.
5961         (cpp_push_buffer): Don't set new->underflow.
5962         (do_include): Use cpp_file_buffer.
5963
5964         * cpphash.c (collect_formal_parameters): Remove duplicate
5965         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
5966         used as a macro argument name.  Don't append "..." to namebuf
5967         for varargs macros.  After we're done scanning, go through
5968         namebuf and make it NUL separated, not comma separated.
5969         (_cpp_compare_defs): Remove register tag from variables.
5970         Expect defn->argnames to be NUL separated.
5971         (_cpp_dump_definition): Expect defn->argnames to be NUL
5972         separated and in forward order.
5973         * cpphash.h: Update documentation of argnames field.
5974
5975 2000-03-08  Richard Henderson  <rth@cygnus.com>
5976
5977         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
5978         to fail.  Don't pre-expand the source operand.
5979
5980         * i386.md (strlensi): Initialize eoschar and align before use.
5981
5982 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
5983
5984         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
5985         CONSTRUCTOR element.
5986
5987 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
5988
5989         * mips.c (mips_expand_prologue): If the last 
5990         named argument is the vararg marker "va_list", treat it as
5991         an unnamed argument.
5992
5993 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
5994
5995         * dbxout.c (dbxout_parms): When correcting for promoted 
5996         big-endian parameters, use the mode of the DECL_RTL rather 
5997         than UNITS_PER_WORD.
5998
5999 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
6000
6001         * c-common.h (make_fname_decl): Declare.
6002         * c-common.c (make_fname_decl): Define.
6003         (declare_hidden_char_array): Remove.
6004         (declare_function_name): Use make_fname_decl.
6005         * c-decl.c (c_make_fname_decl): New function.
6006         (init_decl_processing): Set make_fname_decl.
6007
6008 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
6009
6010         * cccp.c (handle_directive): Initialize backslash_newlines_p.
6011
6012 2000-03-07  Philipp Thomas  <pthomas@suse.de>
6013
6014         * po/POTFILES.in: Remove cppalloc.c from file list.
6015
6016 2000-03-07  Steve Chamberlain  <sac@pobox.com>
6017
6018         * pj.c (pj_expand_prologue): current_function->args_info is
6019         now current_function_args_info.  
6020
6021         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
6022         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
6023         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
6024
6025 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6026
6027         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
6028         output as hexadecimal rather than the default octal.
6029
6030 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
6031
6032         * cpphash.c (special_symbol): Fix thinko in previous commit.
6033
6034 2000-03-07  Neil Booth  <NeilB@earthling.net>
6035
6036         * cppexp.c (struct operation, left_shift, right_shift,
6037         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
6038         "int"s to "unsigned int"s.
6039         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
6040         Similarly.
6041         * cpplib.h: Update for above.
6042         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
6043         returned from allocations.
6044
6045         * cppinit.c (opt_comp, parse_options): New functions.
6046         (handle_option): Use parse_option to parse a single command
6047         line option, that possibly takes an argument.
6048         (cpp_handle_options): Sort the array of command line options on
6049         first invocation (non-ASCII hosts only).
6050         (print_help): Update.
6051
6052 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
6053
6054         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
6055         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
6056         
6057         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
6058         initialized.
6059         * cppinit.c (cpp_cleanup): Free imp->nshort also.
6060
6061         * cpperror.c (cpp_print_containing_files,
6062         cpp_print_file_and_line, v_cpp_message): Rename to
6063         print_containing_files, print_file_and_line, and v_message.
6064         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
6065         to _cpp_parse_expr, parse_escape, and lex.
6066         (parse_charconst): Remove broken multibyte support.
6067         * cppfiles.c (include_hash): Make static.
6068         (cpp_included): New function.
6069         (merge_include_chains, find_include_file, finclude,
6070         simplify_pathname): Rename to _cpp_merge_include_chains,
6071         _cpp_find_include_file, _cpp_read_include_file, and
6072         _cpp_simplify_pathname.
6073         * cpphash.c (cpp_lookup, free_definition, delete_macro,
6074         cpp_install, create_definition, macroexpand, compare_defs,
6075         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
6076         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
6077         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
6078         * cppinit.c (cpp_handle_option): Rename to handle_option, make
6079         static.
6080         * cpplib.c: Remove extern prototype of cpp_parse_expr.
6081
6082         * cpphash.h: Update prototypes.
6083         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
6084
6085 2000-03-07  Andrew Haley  <aph@cygnus.com>
6086
6087         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
6088         PTRDIFF_TYPE should be based solely on Pmode.
6089         (SIZE_TYPE): ditto.
6090
6091 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6092
6093         * rtl.h (rtunion_def): Constify member `rtstr'.
6094         (emit_line_note_after, emit_line_note, emit_line_note_force,
6095         emit_note, decode_asm_operands): Constify.
6096         
6097         * cse.c (canon_hash): Likewise.
6098
6099         * dbxout.c (dbxout_block): Likewise.
6100
6101         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
6102         v_warning_for_asm): Likewise.
6103
6104         * dwarfout.c (function_start_label): Likewise.
6105
6106         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
6107         emit_line_note_force): Likewise.
6108
6109         * final.c (last_filename, asm_insn_count, final_scan_insn,
6110         output_source_line): Likewise.
6111
6112         * function.h (struct emit_status): Likewise.
6113
6114         * gcse.c (hash_expr_1): Likewise.
6115
6116         * genattr.c (gen_attr, main): Likewise.
6117
6118         * genattrtab.c (struct function_unit, current_alternative_string,
6119         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
6120         attr_numeral, check_attr_test, check_attr_value,
6121         convert_set_attr_alternative, convert_set_attr,
6122         compute_alternative_mask, simplify_by_exploding, gen_attr,
6123         gen_unit): Likewise.
6124
6125         * genflags.c (gen_insn): Likewise.
6126
6127         * gengenrtl.c (type_from_format): Likewise.
6128
6129         * genopinit.c (gen_insn): Likewise.
6130
6131         * genoutput.c (n_occurrences, process_template, process_template):
6132         Likewise.
6133
6134         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
6135         Likewise.
6136
6137         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
6138         Likewise.
6139
6140         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
6141         ggc_set_mark, ggc_get_size): Likewise.
6142
6143         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
6144
6145         * optabs.c (init_one_libfunc): Likewise.
6146
6147         * output.h (assemble_start_function): Likewise.
6148
6149         * recog.c (decode_asm_operands): Likewise.
6150
6151         * toplev.c (rest_of_compilation): Likewise.
6152
6153         * tree.h (emit_line_note_after, emit_line_note,
6154         emit_line_note_force): Likewise.
6155
6156         * varasm.c (asm_output_bss, asm_output_aligned_bss,
6157         asm_emit_uninitialised, assemble_start_function,
6158         assemble_variable, const_hash, compare_constant_1,
6159         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
6160
6161         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
6162
6163         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
6164
6165         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
6166
6167         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
6168
6169         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
6170         arm_dllimport_name_p): Likewise.
6171
6172         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
6173         Likewise.
6174
6175         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
6176
6177         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6178
6179         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
6180         arm_mark_dllexport, arm_mark_dllimport,
6181         arm_pe_encode_section_info): Likewise.
6182
6183         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
6184         ASM_FINISH_DECLARE_OBJECT): Likewise.
6185
6186         * arm/thumb.c (thumb_function_prologue): Likewise.
6187
6188         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
6189
6190         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6191
6192         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
6193
6194         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
6195
6196         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
6197
6198         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6199
6200         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
6201         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
6202
6203         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
6204
6205         * i386/i386.c (asm_output_function_prefix): Likewise.
6206
6207         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
6208
6209         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6210
6211         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
6212
6213         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
6214         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
6215         ASM_OUTPUT_SECTION_NAME): Likewise.
6216
6217         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
6218
6219         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
6220
6221         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
6222
6223         * m32r/m32r.c (m32r_encode_section_info): Likewise.
6224
6225         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6226
6227         * mcore/mcore.c (mcore_encode_section_info): Likewise.
6228
6229         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6230
6231         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6232
6233         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6234
6235         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
6236
6237         * mips/mips.md (movdi, movsi): Likewise.
6238
6239         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6240
6241         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6242
6243         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6244
6245         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
6246         ASM_OUTPUT_ASCII): Likewise.
6247
6248         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
6249         output_mi_thunk, output_toc): Likewise.
6250
6251         * rs6000/rs6000.md (movsi): Likewise.
6252
6253         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
6254
6255         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
6256
6257         * v850/v850.c (print_operand, print_operand_address,
6258         v850_encode_data_area): Likewise.
6259
6260 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
6261         
6262         * config/mips/mips.md (zero_extendsidi2): Always force operand
6263         one to memory for mips16.
6264
6265 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6266
6267         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
6268         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
6269         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
6270         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
6271         (min_precision): Result is unsigned.
6272         (add_double, neg_double, mul_double): Low word is unsigned.
6273         (lshift_double, rshift_double, lrotate_double): Likewise.
6274         (rrotate_double, div_and_round_double): Likewise.
6275         (tree_floor_log2, compare_tree_int): New functions.
6276         (preserve_rtl_expr_temps): New declaration.
6277         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
6278         (decl_attributes): Use tree_log2 to find alignment.
6279         Check for TREE_INT_CST_HIGH for format args.
6280         (min_precision): Now unsigned.
6281         Use tree_floor_log2.
6282         (truthvalue_conversion): Delete long-disabled code.
6283         * c-decl.c (finish_struct): Clean up tests on field width.
6284         (finish_function): Use compare_tree_int.
6285         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
6286         * c-typeck.c (comptypes): Use tree_int_cst_equal.
6287         (default_conversion, digest_init): Use compare_tree_int.
6288         (build_binary_op): Use integer_all_onesp and compare_tree_int.
6289         Fix type errors in forming masks.
6290         * calls.c (initialize_argument_information): Use compare_tree_int.
6291         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
6292         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
6293         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
6294         (store_field): Use compare_tree_int.
6295         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
6296         (expand_expr, case ARRAY_REF): Use compare_tree_int.
6297         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
6298         (do_store_flag): Use compare_tree_int.
6299         * fold-const.c (encode, decode): Low part is always unsigned.
6300         (force_fit_type, add_double, neg_double, mul_double): Likewise.
6301         (lshift_double, rshift_double, lrotate_double): Likewise.
6302         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
6303         (fold_convert): Use compare_tree_int.
6304         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
6305         (invert_truthvalue, case INTEGER_CST): Likewise.
6306         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
6307         * mkdeps.c (deps_dummy_targets): Make I unsigned.
6308         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
6309         (lshift_double, rshift_double, lrotate_double, rrotate_double):
6310         Likewise.
6311         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
6312         (expand_end_case): Use compare_tree_int.
6313         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
6314         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
6315         (layout_decl): Likewise.
6316         (layout_record, layout_union): Make sizes unsigned.
6317         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
6318         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
6319         * tree.c (struct type_hash): hashcode is unsigned.
6320         (build_type_attribute_variant, type_hash_list): Likewise.
6321         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
6322         (attribute_hash_list, build_array_type, build_method_type): Likewise.
6323         (build_complex_type): Likewise.
6324         (real_value_from_int_cst): Remove unneeded casts.
6325         (integer_all_onesp): Add casts.
6326         (tree_floor_log2, compare_tree_int): New functions.
6327         (build_index_type): Use tree_int_cst_sgn.
6328         * varasm.c (assemble_variable): Use compare_tree_int.
6329
6330 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
6331
6332         * cpphash.c (collect_expansion): Also catch ## at start of macro.
6333
6334         * varasm.c (make_decl_rtl): Don't add a number to members of
6335         local classes.
6336         (make_function_rtl): Likewise.
6337
6338 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6339
6340         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
6341         patch from 2000-01-28.
6342
6343 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
6344
6345         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
6346         filled with an insn from the jump target.
6347
6348 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6349
6350         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
6351         (c4x_external_ref): Likewise.
6352         * config/c4x/c4x.c (struct name_list): Likewise.
6353
6354 1999-12-16  Ben Collins  <bcollins@debian.org>
6355
6356         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
6357         argument to genmultilib.
6358         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
6359         the contents into the multilib.h header.
6360         * gcc.c: Declare multilib_exclusions for the specs file.
6361         (set_multilib_dir): Use it.
6362         (print_multilib_info): Likewise.
6363         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
6364         to pass to genmultilib.
6365
6366 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6367
6368         * builtins.c (built_in_class_names, built_in_names): Constify a
6369         char*.
6370
6371         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
6372         int.
6373         (_mcleanup): Ensure value matches format specifier in sprintf.
6374
6375         * cpphash.c (special_symbol): Don't needlessly cast away
6376         const-ness.
6377
6378         * cppinit.c (base_name): Delete unused prototype.
6379
6380         * mkdeps.c (deps_init): Make definition K&R safe.
6381
6382         * tree.h (built_in_class_names, built_in_names): Constify a
6383         char*.
6384
6385 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
6386
6387         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
6388         floating point instructions for epilogue delay.
6389
6390         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
6391         to gas if it supports .register pseudo.
6392
6393         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
6394         LONG_DOUBLE_TYPE_SIZE if not defined.
6395         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
6396         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
6397         * real.c: Likewise.
6398         * gengenrtl.c: Likewise.
6399         * print-rtl.c: Likewise.
6400         * rtl.c: Likewise.
6401         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
6402         MASK_LONG_DOUBLE_128.
6403         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
6404         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
6405         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
6406         (SUBTARGET_SWITCHES): Define.
6407         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
6408         with -mlong-double-128.
6409         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
6410         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
6411         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
6412         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
6413         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
6414         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
6415         with -mlong-double-128.
6416         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
6417         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
6418         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
6419         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
6420         TARGET_LONG_DOUBLE_128): Define.
6421         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
6422         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
6423         long double on TARGET_ARCH64.
6424
6425 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
6426
6427         * function.c (free_temps_for_rtl_expr): Don't free slots
6428         that have been pushed into a higher level.
6429         
6430         Revert this patch:
6431         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
6432
6433 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
6434
6435         * basic-block.h (ALLOCA_REG_SET): Remove.
6436         (INITIALIZE_REG_SET): New macro.
6437         * flow.c (update_life_info): Use it.
6438         (calculate_global_regs_live): Likewise.
6439         (propagate_block): Likewise.
6440         * global.c (build_insn_chain): Likewise.
6441         * haifa-sched.c (schedule_region): Likewise.
6442
6443 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
6444
6445         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
6446         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
6447         (DWARF_ARANGES_PAD_SIZE): New define.
6448         (output_aranges): Use it to pad the address range header.
6449         (DWARF_ROUND): Fix for non power of 2 rounding.
6450
6451 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
6452
6453         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
6454
6455 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
6456
6457         * tree.def (RTL_EXPR): Update documentation.
6458         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
6459         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
6460         * function.c (preserve_rtl_expr_temp): New function.
6461         (preserve_rtl_expr_temps): Likewise.
6462         (preserve_rtl_expr_result): Use it.
6463
6464         Revert this patch:
6465         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
6466
6467 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
6468
6469         * regmove.c (copy_src_to_dest)  Do not create src->dest move
6470         for unchanging destination.
6471
6472 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
6473
6474         * function.h (struct sequence_stack): Remove rtl_expr.
6475         (struct emit_staus): Likewise.
6476         (seq_rtl_expr): Remove.
6477         * tree.h (free_temps_for_rtl_expr): Don't declare.
6478         (start_sequence_for_rtl_expr): Likewise.
6479         * rtl.h (preserve_rtl_expr_result): Likewise.
6480         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
6481         (start_sequence_for_rtl_expr): Remove.
6482         (push_topmost_sequence): Don't save sequence_rtl_expr.
6483         (pop_topmost_sequence): Remove comment about not restoring it.
6484         (end_sequence): Don't set seq_rtl_expr.
6485         (init_emit): Don't initialize it.
6486         (mark_sequence_stack): Don't mark it.
6487         (mark_emit_status): Likewise.
6488         * except.c (protect_with_terminate): Use
6489         start_sequence_for_rtl_expr, not start_sequence.
6490         * expr.c (expand_expr, case RTL_EXPR): Don't call
6491         preserve_rtl_expr_result or free_temps_for_rtl_expr.
6492         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
6493         (preserve_rtl_expr_result): Remove.
6494         (free_temps_for_rtl_expr): Likewise.
6495         (pop_temp_slots): Likewise.
6496         (mark_temp_slot): Don't mark the rtl_expr.
6497         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
6498         start_sequence_for_rtl_expr.
6499         
6500 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
6501
6502         * mkdeps.c, mkdeps.h: New files.
6503         * po/POTFILES.in: Add them.
6504         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
6505         (cpplib.o, cppinit.o): Depend on mkdeps.h.
6506         (mkdeps.o): New target.
6507
6508         * cppfiles.c: Delete deps_output.
6509         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
6510         OBJECT_SUFFIX, and base_name.
6511         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
6512         the include hash.
6513         (initialize_dependency_output): Use deps_init,
6514         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
6515         all the unnecessary string bashing.
6516         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
6517         level.
6518         * cpplib.c (do_include): Use deps_add_dep.
6519         * cpplib.h (struct cpp_reader): Replace deps_buffer,
6520         deps_allocated_size, deps_size, deps_column members with
6521         single pointer to a struct deps.  Delete prototype of
6522         deps_output.
6523
6524         * cppinit.c: Fix thinko in previous patch.
6525
6526 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6527
6528         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
6529         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
6530         (mode_for_size_tree): New function.
6531         (layout_decl, layout_type): Call it and clean up BLKmode checks.
6532         * tree.h (mode_for_size_tree): New declaration.
6533         
6534         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
6535
6536 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
6537
6538         * stmt.c (is_body_block): Move...
6539         * dwarfout.c, dwarf2out.c: ...from here.
6540         * tree.h: Declare it.
6541         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
6542         * final.c (final_start_function): Do call remove_unnecessary_notes
6543         when scheduling.
6544
6545 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
6546
6547         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
6548         
6549         * cpplib.h (_dollar_ok): New macro.
6550         (is_idchar, is_idstart): Use it.
6551         (IStable): Rename to _cpp_IStable.  Declare it const if
6552         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
6553         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
6554         is_space): Update for renamed IStable.
6555
6556         * cppinit.c: Delete all references to FAKE_CONST and CAT
6557         macros. Define init_IStable as empty macro if gcc >=2.7 or
6558         C99. Change TABLE() to ISTABLE and hardcode name of table.
6559         (cpp_start_read): Don't change the IStable based on
6560         dollars_in_ident.
6561
6562         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
6563         changed.  Handle '$' for char1 correctly.
6564         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
6565
6566         * cppexp.c (tokentab2): Make const.
6567         (cpp_lex): Make toktab const.
6568         * cppinit.c (include_defaults_array): Make const.
6569         (initialize_standard_includes): Make default_include const.
6570
6571 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
6572
6573         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
6574         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
6575         (gen_decl_die): Likewise.
6576         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
6577         (output_decl): Likewise.
6578
6579         * varasm.c (make_function_rtl): If we change the name used in the
6580         rtl, update DECL_ASSEMBLER_NAME accordingly.
6581         (make_decl_rtl): Likewise.
6582
6583         * toplev.c (rest_of_compilation): Tweak formatting.
6584
6585         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
6586         remove_unnecessary_notes.
6587         (debug_ignore_block): New fn.
6588         * toplev.h: Declare it.
6589         * emit-rtl.c (remove_unncessary_notes): Call it.
6590         * dwarf2out.c (dwarf2out_ignore_block): New fn.
6591         * dwarf2out.h: Declare it.
6592         * final.c (final_start_function): Don't call remove_unnecessary_notes
6593         if we did insn scheduling.
6594
6595 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
6596
6597         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
6598         * cpplib.h: Delete SET_CPP_PEDANTIC.
6599
6600 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6601
6602         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
6603         result is a RECORD_TYPE.
6604
6605 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
6606
6607         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
6608
6609 2000-03-03  Richard Henderson  <rth@cygnus.com>
6610
6611         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
6612         addition over compliments over shifts.
6613
6614 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6615
6616         * reload1.c (reload_combine_note_use): Handle return register USEs.
6617         REG case: Handle multi-hard-register hard regs.
6618
6619 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6620
6621         * md.texi: Document use of '*' in insn pattern name.
6622
6623 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
6624
6625         * calls.c (special_function_p): operator new may not be malloc-like.
6626
6627         * gcse.c (dump_hash_table): Really fix error in last change.
6628
6629 2000-03-02  Denis Chertykov  <denisc@overta.ru>
6630
6631         * avr.c (print_operand): Use print_operand_address instead of
6632         output_addr_const.
6633         * avr/libgcc.S: Cleanup code.
6634
6635 2000-03-02  Richard Henderson  <rth@cygnus.com>
6636
6637         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
6638
6639 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
6640
6641         * tree.h (TYPE_ALIGN_UNIT): New macro.
6642
6643 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
6644
6645         * i386.c: (constant_call_address_operand): Reject CONST_INT.
6646
6647 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
6648
6649         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
6650         for the buffer.
6651         (SET_CPP_PEDANTIC): New macro.
6652         * cpplib.c (do_include): Don't bother checking system_header_p.
6653         (do_warning, do_ident, do_assert, do_unassert): Likewise.
6654         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
6655
6656         * function.h (struct expr_status): Add x_arg_space_so_far.
6657         (arg_space_so_far): New macro.
6658         * expr.c (init_expr): Initialize it.
6659         * calls.c (emit_call_1): Reset it.
6660         (compute_argument_block_size, expand_call): Use it.
6661         (expand_call, store_one_arg): Increment it.
6662
6663 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6664
6665         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
6666         a UNION_TYPE.
6667
6668 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
6669
6670         * cppfiles.c (cpp_read_file): New function.
6671
6672         * cpphash.c (collect_expansion): Make sure to reset last_token
6673         to NORM when we hit a string.  Handle trailing whitespace
6674         properly when the expansion is empty.
6675         (create_definition): Disable line commands while parsing the
6676         directive line.
6677         (dump_definition): If pfile->lineno == 0, output a line
6678         command ahead of the dump, and add a trailing newline.
6679
6680         * cppinit.c (append_include_chain): Add fifth argument, which
6681         indicates whether or not system headers are C++ aware.
6682         (initialize_standard_includes): New function,
6683         broken out of read_and_prescan.  Pass 'cxx_aware' value from
6684         the include_defaults_array on to append_include_chain.
6685         (dump_special_to_buffer): Const-ify char array.
6686         (builtin_array): Don't dump __BASE_FILE__.
6687         (cpp_start_read): Use cpp_read_file.  Reorder code for
6688         clarity.  Don't output line commands here for -D/-A/-U
6689         switches.  Don't call deps_output for files included with
6690         -include or -imacros.
6691
6692         * cpplib.c (do_define): Don't pay any attention to the second
6693         argument.
6694         (cpp_expand_to_buffer): Disable line commands while scanning.
6695         (output_line_command): Work in the file buffer.
6696         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
6697         Fix formatting of comments.  Prototype cpp_read_file.
6698
6699 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6700
6701         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
6702         reference the language-equivalent of sizetype.
6703         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
6704         * fold-const.c (size_binop, size_diffop): Put back checks.
6705         * gcse.c (dump_hash_table): Fix minor error in last change.
6706         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
6707         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
6708         all sizetypes.
6709
6710 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
6711
6712         * calls.c (expand_call)  Do not attempt to combine stack adjustments
6713         with inhibit_defer_pop set.
6714
6715 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
6716
6717         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
6718         the DECL_SIZE for a FIELD_DECL.
6719
6720 2000-03-01  Bruce Korb  <bkorb@gnu.org>
6721
6722         * fixinc/inclhack.tpl: remove unused symlinks
6723         * fixinc/README: GCC Maintainer info
6724         * fixinc/inclhack.sh: regen
6725         * fixinc/fixincl.sh: regen
6726
6727 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
6728
6729         * cpphash.c (collect_expansion): Trim trailing white space
6730         from macro definitions, but don't go past the last insertion
6731         point.
6732
6733 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
6734
6735         * i386.md (mulqi3): New pattern.
6736
6737 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
6738
6739         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
6740         token types.
6741         (struct cpp_reader): Add parsing_if_directive and
6742         parsing_define_directive flags.               
6743         (struct cpp_options): Remove output_conditionals flag.
6744         (check_macro_name): Delete prototype.
6745
6746         * cpphash.h (struct macrodef): Delete.
6747         (struct reflist): Separate from struct definition.
6748         (struct definition): Remove unused fields.  Add column number.
6749         (create_definition): Returns a DEFINITION *.  Takes a
6750         cpp_reader * and an int.
6751
6752         * cpphash.c (SKIP_WHITE_SPACE): Delete.
6753         (PEEKC): Copy defn from cpplib.c.
6754         (rest_extension, REST_EXTENSION_LENGTH): Delete.
6755         (struct arg): New.
6756         (struct arglist): Simplify.
6757         (collect_expansion): Rewrite.  Get tokens by calling
6758         cpp_get_token.  Add more error checking.
6759         (collect_formal_parameters): New function, broken out of
6760         create_definition and reworked to use get_directive_token.
6761         (create_definition): All real work is now in collect_expansion
6762         and collect_formal_parameters.  do_define handles finding the
6763         macro name.  Return a DEFINITION, not a MACRODEF.
6764         (macroexpand): Replace bcopy with memcpy throughout.  Replace
6765         character-at-a-time copy loop with memcpy and pointer increments.
6766         (compare-defs): d1->argnames / d2->argnames might be null.
6767
6768         * cpplib.c (copy_rest_of_line): Delete function.
6769         (skip_rest_of_line): Do all the work ourselves.
6770         (skip_string): New function.
6771         (parse_string): Use skip_string.
6772         (get_macro_name): New function.
6773         (check_macro_name): Delete.
6774         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
6775         (cpp_skip_hspace): Use CPP_BUMP_LINE.
6776         (handle_directive): ICE if we're called on a macro buffer.
6777         (do_define): Determine macro name and type (funlike/objlike)
6778         here.  Expunge all uses of MACRODEF.
6779         (cpp_push_buffer): Set line_base to NULL.
6780         (do_undef, read_line_number): Don't worry about getting a POP token.
6781         (eval_if_expression): Set/reset parsing_if_directive around
6782         cpp_parse_expr. Don't clear only_seen_white.
6783         (skip_if_group): Remove output_conditionals logic.  Use
6784         skip_rest_of_line.
6785         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
6786         tokens under appropriate conditions.
6787         (cpp_unassert): Call do_unassert not do_assert.  Oops.
6788
6789         * cppexp.c (parse_defined): New function, break out of
6790         cpp_lex.
6791         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
6792         ourselves, with cpp_defined.
6793         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
6794
6795         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
6796         * gcc.dg/strpaste-2.c: New.
6797
6798 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
6799
6800         * fold-const.c (size_binop): Don't asert inputs are the same and
6801         have TYPE_IS_SIZETYPE set.
6802         (size_diffop): Likewise.
6803
6804 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
6805
6806         * dwarfout.c (output_block): Output abstract blocks even if they
6807         don't have TREE_ASM_WRITTEN set.
6808
6809         * calls.c (emit_library_call): Check for null REG.
6810
6811 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
6812
6813         * c-decl.c (current_function_decl): Move to toplev.c.
6814         (init_decl_processing): Don't add current_function_decl as a ggc
6815         root here.
6816         * dbxout.c (dbxout_symbol): Change return type to int.
6817         (dbxout_symbol_location, dbxout_syms): Likewise.
6818         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
6819         any locals. Use current_function_func_begin_label if set.
6820         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
6821         * dwarf2out.c (dwarf2out_begin_prologue): Set
6822         current_function_func_begin_label.
6823         * final.c (final_start_function): Reset it.
6824         * toplev.c (current_function_decl): Define it here.
6825         (current_function_func_begin_label): New variable.
6826         (main): Add both as ggc roots.
6827         * tree.h (current_function_func_begin_label): Declare.
6828
6829 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6830
6831         * gcse.c: Cleanups throughout: mostly white-space, but also
6832         some minor rearrangement of code.
6833
6834 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
6835
6836         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
6837         returns a PARALLEL.  Use emit_group_load and use_group_regs
6838         as needed.  
6839         (emit_library_call_value): Similarly.
6840
6841         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
6842         * pa/quadlib.asm: Remove.
6843         * pa/quadlib.c: New file.
6844
6845         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
6846         * configure: Rebuilt.
6847
6848 2000-02-29  Philip Blundell  <pb@futuretv.com>
6849
6850         * config/arm/conix-elf.h: New file.
6851         * configure.in (arm*-*-conix*): New configuration.
6852         * configure: Regenerate.
6853
6854 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
6855
6856         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
6857         don't have TREE_ASM_WRITTEN set.
6858
6859 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6860
6861         * Eliminate DECL_FIELD_SIZE.
6862         * builtins.c (built_in_class_names, built_in_names): New variables.
6863         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
6864         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
6865         DECL_SIZE, not DECL_FIELD_SIZE.
6866         * print-tree.c (print_node): Remove code that prints extra blank
6867         lines in some cases.
6868         Properly handle inline and builtin function cases.
6869         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
6870         * tree.h (built_in_class_named, built_in_names): New declarations.
6871         (union tree_decl): Rename internal unions to u1 and u2 and change
6872         some of their components.
6873         Add new field built_in_class.
6874         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
6875         Reflect above changes.
6876         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
6877         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
6878         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
6879         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
6880
6881 2000-02-28  Dmitri Makarov  <dim@windriver.com>
6882
6883         * extend.texi: Document ARM's support for long/short calls.
6884
6885         * invoke.texi: Document ARM's -mlong-calls command line switch.
6886         
6887         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
6888         (arm_encode_call_attribute): Add prototype.
6889         (arm_set_default_type_attribute): Add prototype.
6890         (arm_strip_name_encoding): Add prototype.
6891
6892         * config/arm/arm.c (arm_init_cumulative_args): replace
6893         initialisation og 'long_calls' field with initialisation of
6894         'call_cookie' field.
6895         (enum arm_pragma_enum): New enum.
6896         (arm_pragma_long_calls): New static variable.
6897         (arm_process_pragma): Also process "#pragma long_calls_off".
6898         (arm_valid_type_attribute_p): Accept short_call attribute.
6899         (arm_comp_type_attributes): Check long/short call attributes.
6900         (arm_encode_call_attribute):  New function:  Encode long_call
6901         or short_call attribute in function name.
6902         (arm_set_default_type_attributes): New function: Assign
6903         default attributes to newly defined type.
6904         (current_file_function_operand): New function: Return true if
6905         the symbol is a function which has already been compiled.
6906         (arm_is_longcall_p): New function: Return true if the
6907         indicated function should be called via a long call.
6908         (arm_get_strip_length): New function.  Returns number of
6909         prefix characters to be stripped from a function's name.
6910         (arm_strip_name_encoding): New function.  Strip prefix characters
6911         from a function's name.
6912
6913         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
6914         with 'call_cookie'.
6915         (SHORT_CALL_FAG_CHAR): Define.
6916         (LONG_CALL_FAG_CHAR): Define.
6917         (ENCODED_SHORT_CALL_ATTR_P): Define.
6918         (ENCODED_LONG_CALL_ATTR_P): Define.
6919         (ARM_NAME_ENCODING_LENGTHS): Define.
6920         (STRIP_NAME_ENCODING): Define.
6921         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
6922         (ARM_ENCODE_CALL_TYPE): Define.
6923         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
6924         (ARM_DECLARE_FUNCTION_SIZE): Define.
6925         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
6926
6927         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
6928         if a long call is needed.
6929         (call_value): Ditto.
6930         (call_symbol): Ditto.
6931
6932         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
6933         ARM_DECLARE_FUNCTION_SIZE.
6934
6935         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
6936         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
6937         (ARM_STRIP_NAME_ENCODING): Undefine.
6938         (STRIP_NAME_ENCODING): Undefine.
6939         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
6940         (ASM_DECLARE_FUNCTION_NAME): Ditto.
6941         (ASM_OUTPUT_COMMON): Ditto.
6942         (ASM_DECLARE_OBJECT_NAME): Ditto.
6943
6944         * config/arm/pe.c (arm_dllexport_name_p): Check for
6945         ARM_PE_FLAG_CHAR.
6946         (arm_dllimport_name_p): Ditto.
6947         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
6948         (arm_mark_dllimport): Ditto.
6949         
6950 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6951
6952         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
6953
6954 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
6955
6956         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
6957
6958 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
6959
6960         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
6961         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
6962         NO_BUILTIN_WCHAR_TYPE is not defined.
6963         (CPP_WCHAR_TYPE): Delete.
6964         * cccp.c (main): Don't change wchar_type if cplusplus.
6965         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
6966
6967 2000-02-28  Nick Clifton  <nickc@cygnus.com>
6968
6969         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
6970
6971 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
6972
6973         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
6974         (ASM_WEAKEN_LABEL): Define.
6975  
6976 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
6977
6978         * expr.c (store_constructor): Do not emit USE.
6979         * rtl.h (stupid_life_analysis): Remove.
6980
6981 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6982
6983         * function.c (number_blocks): Reset next_block_index based on
6984         what debugging format is used, not what is defined.
6985         
6986         * lcm.c: Minor reformatting throughout.
6987         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
6988         
6989         * toplev.c (rest_of_compilation): Account for time in
6990         optimize_mode_switching.
6991
6992         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
6993         if only marking labels.
6994
6995 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
6996
6997         * calls.c (expand_call): Attempt to combine stack adjustments with
6998         pending stack adjustments.
6999
7000 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7001
7002         * loop.c (reg_in_basic_block_p): Don't abort when falling through
7003         to the end of the function.
7004
7005 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
7006
7007         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
7008         blocks.
7009         * final.c (next_block_index): Remove.
7010         (max_block_depth): Likewise.
7011         (pending_blocks): Likewise.
7012         (init_final): Don't initialize them.
7013         (final_start_function): Don't set next_block_index.  Set up
7014         BLOCK_NUMBER.
7015         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
7016         * function.h (number_blocks): New function.
7017         * function.c (get_block_vector): New function.
7018         (identify_blocks): Use it.
7019         (reorder_blocks): Set NOTE_BLOCK.
7020         (number_blocks): New function.
7021         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
7022         * tree.h (BLOCK_NUMBER): New macro.
7023         (tree_block): Add block_num field.
7024         * dbxout.c (next_block_number): Remove.
7025         (dbxout_init): Don't set it.
7026         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
7027         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
7028         block numbers.
7029         * toplev.c (rest_of_compilation): Always call
7030         find_loop_tree_blocks.  Fix indentation.
7031         * dwarf2out.c (next_block_number): Remove.
7032         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
7033         to determine block numbers.
7034         (gen_inlined_subroutine_die): Likewise.
7035         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
7036         (decls_for_scope): Don't increment next_block_number.
7037         * dwarfout.c (next_block_number): Remove.
7038         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
7039         to determine block numbers. 
7040         (output_inlined_subroutine_die): Likewise.
7041         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
7042         (output_decls_for_scope): Don't increment next_block_number.
7043         * sdbout.c (next_block_number): Remove.
7044         (sdbout_block): Use BLOCK_NUMBER.
7045         (sdbout_begin_block): Simplify.
7046         * xcoffout.c (next_block_number): Remove.
7047         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
7048         (xcoffout_begin_block): Don't set next_block_number.
7049         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
7050         next_block_number.
7051         
7052 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7053
7054         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
7055         (expand_builtin_strcpy): Pass correct type to size_binop.
7056         (expand_builtin_strcmp): Likewise.
7057         Clean up conditional structure.
7058         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
7059         (complete_array_type): Don't use size_binop for MAXINDEX.
7060         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
7061         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
7062         (c_alignof): Use size_one_node.
7063         (build_unary_op): Pass arg of proper type to size_binop.
7064         (really_start_incremental_init, push_init_level): Use sizetype for
7065         constructor{,_bit,_unfilled}_index.
7066         (pop_init_label, output_init_element): Likewise.
7067         (output_pending_init_elements, process_init_element): Likewise.
7068         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
7069         * expr.c (store_expr): Use size_int.
7070         (store_constructor): Use proper types for size_binop args.
7071         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
7072         (expand_expr_unaligned): Likewise.
7073         (string_contant): Return object of sizetype.
7074         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
7075         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
7076         (ARGS_SIZE_TREE): Pass proper types to size_binop.
7077         * fold-const.c (int_const_binop): Refine when size_int is called.
7078         (fold_convert): Likewise.
7079         (size_int_wide): Rework to take KIND as arg, only take low order
7080         bits, handle new sizetype_tab datatype, and chain entries in
7081         size_table.
7082         (size_int_type_wide): New function.
7083         (size_binop): Validate types of arguments.
7084         (ssize_binop): Deleted.
7085         (size_diffop): New function.
7086         (extract_muldiv): Only fold division into multiplication for sizetypes.
7087         * function.c (assign_parms): Use size_diffop and make sure
7088         VAR field is of ssizetype; also pass proper type to size_binop.
7089         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
7090         (round_down): Deleted from here.
7091         * store-layout.c (sizetype_tab): Now an array.
7092         (sizetype_set, early_root_list): New variables.
7093         (variable_size): Use size_one_node.
7094         (round_up): Pass proper type to size_binop.
7095         (round_down): Moved to here and corrected as above.
7096         (layout_record): Pass proper arg types to size_binop.
7097         (layout_type): Likewise.
7098         If sizetype_set is zero, record the type just laid out.
7099         (make_unsigned_type): Don't call set_sizetype;
7100         (make_signed_type): Likewise; also, call fixup_signed_type.
7101         (initialize_sizetypes): New function.
7102         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
7103         set name of bitsizetype to "bit_size_type".
7104         Fix up type of sizes of all types made before call.
7105         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
7106         * tree.c (fix_sizetype): Deleted.
7107         (build_common_tree_nodes): Call initialize_sizetypes.
7108         (build_common_tree_nodes_2): Don't call fix_sizetype.
7109         * tree.h (TYPE_IS_SIZETYPE): New macro.
7110         (initialize_sizetype): New declaration.
7111         (enum size_type_kind): New type.
7112         (struct sizetype_tab): Deleted.
7113         (sizetype_tab): Now array; adjust sizetype macros.
7114         (size_diffop, size_int_type_wide): New functions.
7115         (size_int_wide): Change number of args and type; access macros changed.
7116         (ssize_int, sbitsize_int): New macros.
7117         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
7118         (ROUND_TYPE_SIZE_UNIT): New macro.
7119
7120 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
7121
7122         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
7123
7124 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7125
7126         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
7127         Mark as possibly unused.
7128
7129         * cse.c (cse_insn): Delete dead code involving tablejump.
7130         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
7131
7132         * Makefile.in (libcpp.a): Start by deleting it.
7133
7134 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7135
7136         * cpplib.h (enum file_change_code): Added rename_file.
7137         * cpplib.c (do_line): If a filename is given, set file_change to
7138         rename_file.
7139         (output_line_command): If file_change is rename_file, always
7140         output a # directive with the file name.
7141
7142         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
7143
7144 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
7145
7146         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
7147         when copying a PARM_DECL or RESULT_DECL.
7148
7149 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7150
7151         * fix-header.c (recognized_function): Also fix prototypes for
7152         functions taking "void".
7153
7154 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
7155
7156         * reload1.c (do_output_reload): Check reg_reloaded_valid before
7157         looking at reg_reloaded_contents.
7158
7159 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
7160
7161         * Makefile.in (STMP_FIXINC): New toggle.
7162         (LIBGCC2_DEPS): Delete all references.
7163         (stmp-headers): Delete target.  All references either deleted
7164         or changed to stmp-int-headers.
7165         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
7166         (LIBCPP_OBJS): Take out cppalloc.o.
7167         (cppalloc.o): Delete target.
7168         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
7169         (gen-protos, fix-header): Link with libiberty.a.
7170         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
7171         to empty.
7172
7173         * configure.in: Remove refs to strerror.
7174         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
7175         * system.h: Take out strerror stanza.
7176
7177         * cpperror.c (my_strerror): Delete function.
7178         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
7179         * cppmain.c (main): Call xmalloc_set_program_name first thing.
7180         * cppalloc.c: Delete file.
7181         * gen-protos.c: Don't provide xrealloc.
7182
7183         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
7184         xstrerror throughout.
7185
7186 2000-02-26  Bruce Korb  <bkorb@gnu.org>
7187
7188         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
7189         match for DOS headers, too.
7190         * fixinc/inclhack.sh,fixincl.x: Regenerate.
7191
7192 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
7193
7194         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
7195         is right for most ELF targets.
7196         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
7197         Let the default file use %U properly.
7198         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
7199         default.
7200
7201         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
7202         numbers.
7203
7204 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7205
7206         * toplev.c (documented_lang_options): Correct spelling error.
7207         (decode_d_option, decode_f_option, main): Likewise.
7208
7209         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
7210
7211         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
7212         to tell assembler it is permitted to expand large constants.
7213
7214 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
7215
7216         * protoize.c: (AUX_INFO_SUFFIX): New macro.
7217         (aux_info_suffix): Use.
7218         (SAVE_SUFFIX): New macro.
7219         (save_suffix): Use.
7220         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
7221         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
7222         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
7223
7224         * invoke.texi (Running Protoize): Update documentation.
7225
7226 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
7227
7228         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
7229
7230 2000-02-25  John Wehle  (john@feith.com)
7231
7232         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
7233
7234 2000-02-25  Anthony Green  <green@cygnus.com>
7235
7236         * toplev.c (rest_of_compilation): Rebuild jump labels if
7237         combine_instructions has created a new direct jump.
7238         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
7239         when appropriate.
7240         (combine_instructions): Call try_combine with new argument.
7241         Return non-null value when new direct jump instruction is created.
7242         * rtl.h: combine_instructions returns an int.
7243
7244 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
7245
7246         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
7247         jump when changing a computed jump into a jump to a known
7248         target.
7249
7250 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
7251
7252         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
7253         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
7254
7255         * i386.md (define_expand "clrstrsi"): Fix typo.
7256
7257 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
7258
7259         * rtl.texi: Fix typo.
7260
7261 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7262
7263         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
7264         UNITS_PER_WORD.  Change caller initial_elimination_offset.
7265         (rounded_frame_size): Take into account that argument pushed has
7266         changed.  Fix TARGET_ALIGN_DOUBLE problem.
7267
7268 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
7269
7270         * haifa-sched.c (schedule_block): Explain the real reason
7271         we delete REG_SAVE_NOTEs on the first insn of a block.
7272         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
7273
7274 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
7275
7276         * input.h (push_srcloc): New function.
7277         (pop_srcloc): Likewise.
7278         * toplev.c (push_srcloc): Define it.
7279         (pop_srcloc): Likewise.
7280
7281 2000-02-24  Richard Henderson  <rth@cygnus.com>
7282
7283         * flow.c (life_analysis): When collecting reg info, clear
7284         regs_ever_live.
7285
7286 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7287
7288         Fix bug exposed by reload.c no longer rounding the frame
7289         size to BIGGEST_ALIGNMENT:
7290         * sh.c (rounded_frame_size): New function.
7291         (sh_expand_prologue, sh_expand_epilogue): Use it.
7292         (initial_elimination_offset): Likewise.
7293
7294 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7295
7296         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
7297         * sh-protos.h (sh_need_epilogue): Declare.
7298         * sh.c (sh_need_epilogue_known): New static variable.
7299         (sh_need_epilogue): New function.
7300         (function_epilogue): Clear need_epilogue_known.
7301         * sh.md (return): Split into expander / insn pattern.
7302         Make the expander conditional on ! sh_need_epilogue ().
7303
7304 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
7305
7306         * machmode.h (get_mode_alignment): Declare.
7307         (GET_MODE_ALIGNMENT): Call it.
7308         * stor-layout.c (get_mode_alignment): New function. Make
7309         sure alignment is always power of 2.
7310
7311 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
7312
7313         * i386.h: Remove useless definition of "I386" and misleading
7314         comment above it.
7315
7316 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
7317
7318         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
7319         under which TREE_PERMANENT will be set.
7320         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
7321         build1): Use TREE_SET_PERMANENT.
7322         * print-tree.c (print_node): Don't report value of
7323         TREE_PERMANENT if ggc_p is true.
7324
7325         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
7326         decide whether to give a type a new alias set.
7327         * objc/objc-act.c (build_objc_string_object): Never copy the string.
7328         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
7329         of value of 'obstack'.
7330
7331
7332 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7333
7334         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
7335
7336 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7337
7338         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
7339         * cpplib.c (cpp_get_token): Produce them.
7340         * cppexp.c (cpp_lex): Handle them.
7341
7342 2000-02-23  Nick Clifton  <nickc@cygnus.com>
7343
7344         * config/arm/arm.c (arm_comp_type_attributes): Simply and
7345         comment tests on type attributes.
7346
7347 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7348
7349         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
7350         conform to documentation.
7351         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
7352         to check for special cases.
7353         * sh-protos.h (sh_loop_align): Declare.
7354         * sh.c (sh_loop_align): Define.
7355
7356 2000-02-22  Andrew Haley  <aph@cygnus.com>
7357
7358         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
7359         (SIZE_TYPE): Is 32 bits when using -mgp32.
7360         (PTRDIFF_TYPE): Ditto.
7361
7362 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7363
7364         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
7365
7366 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
7367
7368         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
7369         BIGGEST_FIELD_ALIGNMENT a constant.
7370
7371 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
7372
7373         * dwarf2out.c (output_line_info): Put the marker for the end of
7374         the line number info at the actual end.
7375         (gen_struct_or_union_type_die): Use decl_function_context 
7376         to check for local classes.
7377         * dwarfout.c (output_type): Likewise.
7378
7379 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
7380
7381         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
7382         for arguments with a mode, but no type.
7383         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
7384         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
7385         * pa/long_double.h: New file.
7386         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
7387         both have 128bit wide long doubles.
7388         * configure: Rebuilt.
7389
7390 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7391
7392         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
7393
7394         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
7395         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
7396         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
7397
7398         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
7399
7400         * integrate.c (compare_blocks, find_block): Likewise.
7401
7402         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
7403
7404         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
7405
7406         * stmt.c (stmt_status, set_file_and_line_for_stmt,
7407         expand_asm_operands): Likewise.
7408
7409 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
7410
7411         * predict.c (estimate_probability): Added the pointer heuristic to
7412         the collection of static branch predictors.
7413
7414 2000-02-21  Catherine Moore  <clm@cygnus.com>
7415
7416         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
7417         * invoke.texi (-mfix7000): Document.
7418
7419 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
7420
7421         * diagnostic.c (init_output_buffer): Make it possible to output at
7422         least 32 characters if we're given a too long prefix.
7423
7424 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
7425
7426         * varasm.c (initializer_constant_valid_p): Call
7427         lang_expand_constant to simplify the constant.
7428
7429 2000-02-20  Bruce Korb  <bkorb@gnu.org>
7430
7431         * fixinc/inclhack.def(stdio_va_list):
7432         typedef needs to be disabled.
7433         * fixinc/inclhack.sh: regen
7434         * fixinc/fixincl.x: regen
7435
7436 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
7437
7438         * print-rtl.c (print_rtx): Don't print addresses when
7439         flag_dump_unnumbered.
7440
7441 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7442
7443         * sparc.c (sparc_output_scratch_registers): Mark parameter with
7444         ATTRIBUTE_UNUSED.
7445         (sparc_va_arg, sparc_flat_output_function_prologue,
7446         sparc_flat_output_function_epilogue): Cast value to unsigned in
7447         comparison.
7448         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
7449         
7450         * sparc.md: Add default case in switch.
7451
7452 2000-02-19  Richard Henderson  <rth@cygnus.com>
7453
7454         * c-typeck.c (add_pending_init): Don't abort for multiple
7455         fields at the same offset.
7456         (pending_init_member): Test the correct member.
7457
7458 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7459
7460         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
7461         instead of SImode.
7462         (start_catch_handler) : Same.
7463
7464 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
7465
7466         * Makefile.in: Have flow.o depend on $(EXPR_H)
7467
7468 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7469
7470         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
7471         * c-decl.c (duplicate_decls, finish_enum): Likewise.
7472         (finish_decl): Remove -Wlarger-than code from here.
7473         * flags.h (id_clash_len): Now int.
7474         (larger_than_size): Now HOST_WIDE_INT.
7475         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
7476         Clean up checking to see if in table.
7477         (make_bit_field_ref): Remove extra parm to bitsize_int.
7478         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
7479         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
7480         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
7481         and for computing size of decl.
7482         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
7483         Move -Wlarger-than code to here.
7484         (layout_record): Remove extra arg to bitsize_int.
7485         Set TYPE_BINFO_SIZE_UNIT.
7486         (layout_union): Remove extra arg to bitsize_int.
7487         Use proper type for size of QUAL_UNION.
7488         (layout_type): Remove extra arg to bitsize_int.
7489         * toplev.c (id_clash_len): Now int.
7490         (larger_than_size): Now HOST_WIDE_INT.
7491         (decode_W_option): Clean up id-clash and larger-than- cases.
7492         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
7493         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
7494         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
7495         (struct tree_decl): New field size_unit.
7496         (size_int_wide): No HIGH operand; NUMBER is now signed.
7497         (size_int_2): Deleted.
7498         (size_int, bitsize_int): Don't use it and rework args.
7499         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
7500
7501 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
7502
7503         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
7504
7505 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
7506
7507         * invoke.texi (Warning Options): Add an explanation of why
7508         you might want the -Wfloat-equal flag.
7509
7510 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7511
7512         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
7513         * cppinit.c (new_pending_define): Add cast to avoid warning.
7514         * expmed.c (extract_bit_field): Likewise.
7515         * flow.c (enum reorder_skip_type): New type.
7516         (skip_insns_between_blcok): New it.
7517         Rework to avoid warning about possibly undefined variable.
7518         * function.c (assign_parms): Make thisparm_boundary unsigned.
7519         * genrecog.c (write_switch): Cast XWINT result to int.
7520         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
7521         * mips-tfile.c (init_file): Make two versions of FDR intializer:
7522         one for MIPS and one for Alpha.
7523         (get_tag, copy_object): Add casts to avoid warnings.
7524         * optabs.c (init_one_libfunc): Cast NAME to (char *).
7525         * reload.c (find_reloads): Make TYPE enum reload_type.
7526         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
7527         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
7528         * varasm.c (compare_constant_1): Add cast to avoid warning.
7529         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
7530         to (char *).
7531         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
7532         Cast switch operand of size to int.
7533         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
7534         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
7535         in unhandled case.
7536
7537 2000-02-18  Nick Clifton  <nickc@cygnus.com>
7538
7539         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
7540         anything for an alignment of zero.
7541
7542         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
7543         anything for an alignment of zero.
7544
7545 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
7546
7547         * gcc.texi (Bug Reporting): Refer to bugs.html.
7548         (Bug Lists): Likewise.
7549         * system.h (GCCBUGURL): New preprocessor define.
7550         * rtl.c (fancy_abort): Use it.
7551         * gcc.c (main): Likewise.
7552
7553 2000-02-18  Richard Henderson  <rth@cygnus.com>
7554
7555         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
7556         (life_analysis_1): Subsume into ...
7557         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
7558         Use update_life_info for the relaxation.
7559         (update_life_info): Update REG_BASIC_BLOCK for registers live on
7560         entry and regs_live_at_setjmp.
7561         (set_noop_p): Simplify.
7562         (notice_stack_pointer_modification_1): Renamed from s/_1//.
7563         (record_volatile_insns): Split into ...
7564         (delete_noop_moves): ... here,
7565         (notice_stack_pointer_modification): ... here,
7566         (insn_dead_p): ... and here.
7567         (propagate_block): Don't query INSN_VOLATILE.
7568         (mark_used_regs): Mind !PROP_REG_INFO.
7569         * toplev.c (rest_of_compilation): Call mark_constant_function here,
7570         not in life_analysis.
7571
7572 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
7573
7574         * loop.c (canonicalize_condition): New function,
7575         broken out of get_condition.
7576         (get_condition): Use it.
7577         * expr.h (canonicalize_condition): Prototype it.
7578
7579         * tree.h (tree_int_cst_msb): Declare.
7580         * tree.c (tree_int_cst_msb): New function.
7581
7582 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
7583
7584         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
7585         isn't set.
7586
7587         * invoke.texi (-fmessage-length=n): Document.
7588
7589 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
7590
7591         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
7592
7593 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
7594
7595         * function.c (thread_prologue_and_epilogue_insns): Put a line note
7596         after the prologue.
7597
7598 2000-02-17  Nick Clifton  <nickc@cygnus.com>
7599
7600         * config/arm/thumb.c: Replace includes of system headers with
7601         #include "system.h".
7602
7603 2000-02-16  Richard Henderson  <rth@cygnus.com>
7604
7605         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
7606         Add crtbeginS.o and crtendS.o.
7607         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
7608         (ENDFILE_SPEC): Use crtendS.o.
7609         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
7610
7611         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
7612         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
7613         shared and present.
7614         (__dso_handle): New variable.
7615         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
7616         bias to __CTOR_END__.
7617         
7618 2000-02-16  Richard Henderson  <rth@cygnus.com>
7619
7620         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
7621
7622 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7623
7624         * longlong.h (__clz_tab): Declare as static to match definition.
7625
7626 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
7627         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
7628         (XREF_FILE_NAME): Define.
7629
7630         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
7631         (EH_FRAME_SECTION_ASM_OP): Define.
7632         (IDENT_ASM_OP): Define.
7633         (TEXT_SECTION_ASM_OP): Define.
7634         (CPP_SPEC): Define.
7635         (CTORS_SECTION_ASM_OP): Define.
7636         (CTOR_SECTION_FUNCTION): Use it.
7637         (DTORS_SECTION_ASM_OP): Define.
7638         (DTOR_SECTION_FUNCTION): Use it.
7639
7640 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
7641
7642         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
7643         NOTE_BASIC_BLOCK.
7644
7645         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
7646         debug_bb_n): New functions.
7647         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
7648         * basic-block.h: Prototype new functions.
7649
7650 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
7651
7652         * configure.in: Add support for avr target.
7653         * configure: Rebuilt.
7654
7655         * invoke.texi: Add AVR invocation docs.
7656         * install.texi: Add information about AVR.
7657         * md.texi: Add AVR constraint letters description.
7658         * extend.texi: Add description for AVR specific attributes.
7659
7660 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
7661
7662         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
7663
7664 2000-02-16  Nick Clifton  <nickc@cygnus.com>
7665
7666         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
7667         (make_insn_raw): Move RTL check here.
7668
7669 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7670
7671         * version.c: Include gansidecl.h and version.h.
7672
7673         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
7674         
7675         * configure.in (gcc_version): When setting, narrow search to
7676         lines containing `version_string'.
7677
7678         * Makefile.in (mainversion): Likewise. 
7679         (GCC_H): New variable.
7680         (gcc.h): Delete target.
7681         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
7682         (version.o): Depend on version.h.
7683         (dbxout.o): Don't depend on gcc.h.
7684
7685 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7686                           Michael Meissner  <meissner@cygnus.com>
7687
7688         * md.texi (Simple Constraints): Add item about whitespace.
7689         * genoutput.c (strip_whitespace): New.
7690         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
7691         strip_whitespace for constraints.
7692         Test pointer using NULL, not 0.
7693
7694 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7695
7696         * cpplib.c (do_line): Pedwarn for #line > 32767.
7697
7698         * c-lex.c (readescape): Warn about '\x', but do not reject it.
7699
7700 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
7701
7702         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
7703         to default cpp spec.
7704         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
7705         * cpp.texi: Document __GNUC_PATCHLEVEL__.
7706         * cpp.1: Likewise.
7707
7708         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
7709         default spec.
7710
7711 2000-02-15  Denis Chertykov  <denisc@overta.ru>
7712
7713         * configure.in: Add support for avr target.
7714
7715 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7716
7717         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
7718         (sh_addr_diff_vec_mode): Don't declare.
7719         * sh.c (sh_addr_diff_vec_mode): Delete.
7720
7721 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7722
7723         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
7724
7725 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7726
7727         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
7728         (smulsi3_highpart_i): Name.
7729         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
7730         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
7731         (smulsi3_highpart, umulsi3_highpart): Likewise.
7732
7733         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
7734         correctly independent of endianness.
7735         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
7736         confuse the optimizers.
7737         (mulsidi3+1, umulsidi3+1): New define_split.
7738
7739 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
7740
7741         * config/sh/sh.md: Guard insn splits against illegal registers.
7742         * config/sh/sh.h: Correct comment about macros.
7743
7744 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7745                           Andrew MacLeod  <amacleod@cygnus.com>
7746
7747         * Makefile.in (lcm.o): Depend on insn-attr.h.
7748         * basic-block.h (optimize_mode_switching): Declare.
7749         * lcm.c (tm_p.h, insn-attr.h): #include.
7750         (seginfo, bb_info): New structs.
7751         (antic, transp, comp, delete, insert) : New file-scope static variables.
7752         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
7753         (reg_becomes_live, optimize_mode_switching): Likewise.
7754         * tm.texi: Add description of mode switching macros.
7755         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
7756
7757         * sh-protos.h (remove_dead_before_cse): Remove prototype.
7758         (fldi_ok, fpscr_set_from_mem): New prototypes.
7759         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
7760         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
7761         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
7762         (sh_flag_remove_dead_before_cse): Remove declaration.
7763         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
7764         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
7765         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
7766         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
7767         (barrier_align): Allow for JUMP_INSNS containing a parallel.
7768         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
7769         (fldi_ok): New function.
7770         (get_fpscr_rtx): Add fpscr_rtx as GC root.
7771         (emit_sf_insn): Only generate fpu switches when optimize < 1.
7772         (emit_df_insn): Likewise.
7773         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
7774         (sh_flag_remove_dead_before_cse): Delete.
7775         (get_free_reg, fpscr_set_from_mem): New functions.
7776         * sh.md (movdf, movsf): Remove no_new_pseudos code.
7777         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
7778
7779 2000-02-15  Loren Rittle  <ljrittle@acm.org>
7780
7781         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
7782
7783 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7784
7785         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
7786         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
7787
7788         * cccp.c: Include version.h and/or don't declare `version_string'.
7789         * collect2.c: Likewise.
7790         * alpha.c: Likewise.
7791         * arm/aof.h: Likewise.
7792         * arm/coff.h: Likewise.
7793         * arm/elf.h: Likewise.
7794         * arm/pe.h: Likewise.
7795         * arm/tcoff.h: Likewise.
7796         * arm/telf.h: Likewise.
7797         * arm/tpe.h: Likewise.
7798         * arm/vxarm.h: Likewise.
7799         * convex/convex.c: Likewise.
7800         * i386/dgux.c: Likewise.
7801         * i386/sun386.h: Likewise.
7802         * m88k/m88k.c: Likewise.
7803         * mcore/mcore-pe.h: Likewise.
7804         * mips/mips.h: Likewise.
7805         * romp/romp.h: Likewise.
7806         * sh/sh.c: Likewise.
7807         * cpphash.c: Likewise.
7808         * cppinit.c: Likewise.
7809         * dwarf2out.c: Likewise.
7810         * dwarfout.c: Likewise.
7811         * gcc.c: Likewise.
7812         * gcc.h: Likewise.
7813         * mips-tfile.c: Likewise.
7814         * protoize.c: Likewise.
7815         * toplev.c: Likewise.
7816         * tree.h: Likewise.
7817         
7818         * version.c (version_string): Constify a char*.
7819
7820         * version.h: New file.
7821
7822 2000-02-14  Nick Clifton  <nickc@cygnus.com>
7823
7824         * configure.in: Add mcore-elf and mcore-pe targets.
7825         * configure: Regenerate.
7826
7827         * NEWS: Add note that MCore port has been contributed.
7828
7829         * invoke.texi: Document command line switches for MCore port.
7830         * install.texi: Add MCore to list of supported targets.
7831
7832 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
7833
7834         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
7835         then we will need to import the frame handling functions.
7836         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
7837         to import the frames themselves.
7838
7839 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
7840                           Jason Eckhardt  <jle@cygnus.com>
7841
7842         * basic_block.h: Added prototype for reorder_basic_blocks.
7843         * toplev.c: Changes to add -freorder-blocks and graph dump after
7844         block reordering is done.
7845         * flow.c (reorder_block_def): New structure for use during block
7846         reordering.
7847         (REORDER_BLOCK_*): New macros to access members of above structure.
7848         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
7849         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
7850         functions for block reordering.
7851
7852 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7853
7854         * gcc.texi (Passes): Fix typo.
7855         * md.texi (Standard Names): Ditto.
7856         * tm.texi (Storage Layout): Ditto.
7857
7858 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
7859
7860         * cpplib.c (do_define): Only free the old definition if it
7861         actually had one.
7862
7863 2000-02-13   Neil Booth  <NeilB@earthling.net>
7864
7865         * cppfiles.c (read_and_prescan): When emitting deferred
7866         newlines, test speccase[] again instead of checking each
7867         possible whitespace character in turn.  When we encounter \r,
7868         look behind for \n first, then ahead.
7869
7870 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
7871
7872         * cse.c (cse_altered): New internal flag.
7873         (cse_insn): Set it if we changed an insn.
7874         (cse_main): Clear cse_altered before each basic block.
7875         Only garbage collect if cse_altered is true afterward.
7876
7877 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7878
7879         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
7880
7881 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
7882
7883         * combine.c (simplify_comparison): Fix typo.
7884
7885 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
7886
7887         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
7888         consistently.
7889
7890 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7891
7892         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
7893         previously inserted node instead of root node.  Caller changed.
7894
7895 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7896
7897         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
7898
7899 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7900
7901         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
7902         __dereg_frame_dtor): Add prototype argument.
7903
7904         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
7905
7906         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
7907
7908         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
7909
7910         * gthr-vxworks.h (__gthread_once): Likewise.
7911
7912         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
7913
7914 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
7915
7916         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
7917         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
7918         stack pointer in functions w/o saved registers, output LEAVE more often
7919         on TARGET_USE_LEAVE machines.
7920
7921 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
7922
7923         * config/arm/arm.c (arm_init_cumulative_args); New function:
7924         Initlaise the CUMULATIE_ARGS strcuture for a function
7925         defintion. 
7926         (arm_function_arg): New function: Determine where to place a
7927         function's argument.  Also handles deciding the function's
7928         call cookie.
7929         (current_file_function_operand): New function: Return true if
7930         the symbol is a function which has already been compiled.
7931         (arm_is_long_call_p): New function: Return true if the
7932         indicated function should be called via a long call.
7933         (arm_valid_type_attribute_p): New function: Return true if the
7934         attribute is a valid, arm specific, attribute.
7935         (arm_comp_type_attribute): New function: Return true if the
7936         two types have compatable, arm specific, attributes.
7937
7938         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
7939         structure.
7940         (FUNCTION_ARG): Redefine to call arm_function_arg.
7941         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
7942         structure field.
7943         (INIT_CUMULATIVE_ARGS): Redefine to call
7944         arm_init_cumulative_args.
7945         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
7946         field. 
7947         (SETUP_INCOMING_VARARGS): Redefine to use correct structure 
7948         field. 
7949         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
7950         functions.
7951         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
7952         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
7953         (COMP_TYPE_ATTRIBUTES): Define.
7954
7955         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
7956         if a long call is needed.
7957         (call_value): Call arm_is_long_call_p to decide if a long call
7958         is needed.
7959         (call_symbol): Call arm_is_long_call_p to decide if a long call
7960         is needed.
7961
7962         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
7963
7964 2000-02-11  Denis Chertykov  <denisc@overta.ru>
7965
7966         * README.AVR: New file with information about the avr ports.
7967         * config/avr: New directory with avr port files.
7968
7969 2000-02-11  Andreas Jaeger  <aj@suse.de>
7970
7971         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
7972
7973 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
7974
7975         * cpphash.c: Fix formatting, update commentary.
7976         (dump_definition): Take three separate arguments instead of a
7977         MACRODEF structure argument.
7978         * cpphash.h: Update prototype of dump_definition.
7979         * cppinit.c (cpp_finish): Update call of dump_definition.
7980
7981         * cpplib.c (do_define): Always create new hash entry with
7982         T_MACRO type.  Remove redundant check for redefinition of
7983         poisoned identifier.  Update call of dump_definition.
7984         (do_undef): Don't call check_macro_name.  Rename sym_length to
7985         len.
7986         (do_error, do_warning): Don't use copy_rest_of_line or
7987         SKIP_WHITE_SPACE.
7988         (do_warning): Don't use pedwarn for the actual warning,
7989         only the notice about its not being in the standard.  (Fixes
7990         bug with #warning in system headers.)
7991         (do_ident): Stricter argument checking - accept only a single
7992         string after #ident.  Also, macro-expand the line.
7993         (do_xifdef): Use cpp_defined.  De-obfuscate.
7994
7995         (do_pragma): Split out specific pragma handling to separate
7996         functions.  Use get_directive_token.  Update commentary.  Do
7997         not pass on #pragma once or #pragma poison to the front end.
7998         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
7999         do_pragma_default): New.
8000
8001 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
8002
8003         * jump.c (jump_optimize_1): The first operand in a relational
8004         can be a CONST_INT.
8005         * optabs.c (emit_conditional_move): Handle relationals which
8006         have a known true/false result.
8007
8008 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
8009
8010         * function.c (thread_prologue_and_epilogue_insns): Don't insert
8011         a RETURN insn into a block which already ends with a jump.
8012
8013 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
8014
8015         * haifa-sched.c (BUF_LEN): Increase a lot.
8016
8017 2000-02-11  Nick Clifton  <nickc@cygnus.com>
8018
8019         * configure.in: Add tm_p_file specification for thumb targets.
8020         * configure: Regenerate.
8021
8022         * config/arm/thumb-protos.h: New file: Prototypes for exported
8023         functions defined in thumb.c.
8024
8025 2000-02-11  Robert Lipe  <robertl@sco.com>
8026
8027         * Makefile.in (bootstrap-lean): Remove additional files.
8028         (bootstrap2-lean): Likewise.
8029         (VOL_FILES): List of files for above.
8030
8031 2000-02-11  Nathan Sidwell  <nathan@acm.org>
8032
8033         * cpphash.c (special_symbol): Remove spurious argument to
8034         cpp_lookup.
8035
8036 2000-02-11  Joel Sherrill (joel@OARcorp.com>
8037
8038         * configure.in: (i*86-*-rtems*): Swapped elf and coff
8039         stanzas.
8040         * configure: Rebuilt.
8041
8042 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
8043         
8044         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
8045
8046 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
8047
8048         * pa.c, pa.h: Remove trigraph sequences within comments.
8049
8050 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
8051
8052         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
8053
8054 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
8055
8056         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
8057
8058 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8059         
8060         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
8061
8062 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8063
8064         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
8065         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
8066         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
8067         (ASM_FILE_END): Use c4x_file_end.
8068         * config/c4x/c4x.c (c4x_global_label): New function.
8069         (c4x_external_ref, c4x_file_end): Likewise.
8070
8071         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
8072         (c4x_external_ref, c4x_end_file): Likewise.
8073
8074 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
8075
8076         * cppexp.c: Don't include cpphash.h.
8077         (parse_charconst, cpp_lex): Use cpp_defined.
8078         (cpp_lex): Use get_directive_token throughout.  Remove
8079         unnecessary cases from switch.  Move assertion-handling code
8080         down to OTHER case.
8081         (cpp_parse_expr): If we see '+' or '-', check the context to
8082         determine if they are unary or binary operators.  Streamline
8083         the jumps a bit.  Do not call skip_rest_of_line.
8084
8085         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
8086         static.  Export get_directive_token.  Update commentary.
8087         (cpp_defined): New function.
8088         (do_define): Remove reference to T_PCSTRING.  Call
8089         free_definition to release memory for old definition, when
8090         redefining a macro.
8091         (eval_if_expression): Set only_seen_white to 0 before calling
8092         cpp_parse_expr.  Call skip_rest_of_line after it returns.
8093         (cpp_read_check_assertion): Don't preserve a pointer into the
8094         token buffer across a call to cpp_get_token.
8095
8096         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
8097         * cppfiles.c (redundant_include_p): Use cpp_defined.
8098         * cpphash.c (free_definition): New function.
8099         (delete_macro): Use it.  Update commentary.
8100         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
8101         free_definition.
8102         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
8103         from enum node_type.  Prototype cpp_defined and get_directive_token.
8104         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
8105
8106         * fix-header.c (check_macro_names): Use cpp_defined.
8107         (read_scan_file): Set inhibit_warnings and inhibit_errors in
8108         the options structure.
8109
8110 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8111
8112         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
8113
8114 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
8115
8116         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
8117         rather than die->die_tag.
8118
8119 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8120
8121         * combine.c (make_extraction, force_to_mode): Avoid warning on
8122         mixed-signedness conditionals.
8123         (make_field_assignment, nonzero_bits): Likewise.
8124         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
8125         (store_split_bit_field, extract_split_bit_field): Likewise.
8126         (extract_fixed_bit_field, store_bit_field, 
8127         * expr.c: Change alignment to be unsigned everywhere.
8128         (move_by_pieces, store_constructor_field, store_constructor): 
8129         Alignment parm is unsigned.
8130         (emit_block_move, emit_group_load, emit_group_store): Likewise.
8131         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
8132         (do_compare_rtx_and_jump): Likewise.
8133         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
8134         Compare align with GET_MODE_ALIGNMENT.
8135         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
8136         (get_inner_reference): Likewise.
8137         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
8138         (expand_assignment): Local vars for alignment now unsigned.
8139         (store_constructor, store_field, expand_expr, do_jump): Likewise.
8140         (do_compare_and_jump): Likewise.
8141         (store_field): Call new function expr_align.
8142         * expr.h (emit_block_move, emit_group_load, emit_group_store):
8143         Alignment arg now unsigned.
8144         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
8145         (do_compare_rtx_and_jump, store_bit_field): Likewise.
8146         (extract_bit_field): Likewise.
8147         * fold-const.c (add_double): Add cast to eliminate signedness warning.
8148         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
8149         (get_best_mode): Alignment arg is unsigned.
8150         * rtl.h (move_by_pieces): Likewise.
8151         * store-layout.c (maximum_field_alignment, set_alignment):
8152         Now unsigned.
8153         (layout_decl): Alignment arg is now unsigned.
8154         Remove unneeded casts.
8155         (layout_record, layout_union, layout_type): Remove unneeded casts.
8156         Local alignment variables now unsigned.
8157         (get_best_mode): Alignment arg now unsigned.
8158         * tree.c (expr_align): New function.
8159         * tree.h (expr_align): Likewise.
8160         (maximum_field_alignment, set_alignment): Now unsigned.
8161         (get_inner_reference): Alignment argument is now pointer to unsigned.
8162         * varasm.c (assemble_variable): Add cast to eliminate warning.
8163
8164 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
8165
8166         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
8167         then store directly into op0.
8168
8169         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
8170         the CALL_INSN, and emit the note immediately after it.
8171
8172 2000-02-10  Nick Clifton  <nickc@cygnus.com>
8173
8174         * config/arm/thumb.md (epilogue): Include a (return) in the
8175         generated insn, and emit it using emit_jump_insn not
8176         emit_insn. 
8177
8178 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
8179
8180         * function.c (assign_temp): Change zero-sized arrays to size 1.
8181         * integrate.c (expand_inline_function): Do not update
8182         stack_alignment_needed
8183         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
8184         add some sanity checking, remove optimization for function with
8185         zero frame size.
8186
8187 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8188
8189         * flow.c (mark_regs_live_at_end): Delete unused variables.
8190
8191         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
8192
8193         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
8194         in macro FRAME_GROWS_DOWNWARD.
8195
8196         * stmt.c (expand_end_bindings): Delete unused variable.
8197
8198         * unroll.c (iteration_info): Mark parameter `loop' with
8199         ATTRIBUTE_UNUSED.
8200
8201 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8202
8203         * fixinc/server.c (load_data): Return NULL if the marker line is
8204         not found.
8205         (run_shell): If load_data returns NULL, retry the command once, in
8206         a new shell.
8207
8208         * configure: Rebuilt.
8209
8210 2000-02-09  Bruce Korb  <bkorb@gnu.org>
8211
8212         * gcc/fixincludes:  ** DELETED **
8213         * gcc/fixcpp:  ** DELETED **
8214         * gcc/fixinc-nt.sed:  ** DELETED **
8215         * gcc/just-fixinc:  ** DELETED **
8216         * gcc/Makefile.in:  Removed out-dated commentary
8217         * gcc/configure.in: Removed fast-fixincludes disablement.
8218         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
8219
8220 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
8221         * function.c (thread_prologue_and_epilogue_insns): Uncomment
8222         last change.
8223
8224 2000-02-09  Richard Henderson  <rth@cygnus.com>
8225
8226         * jump.c (delete_insn): Don't delete user labels at -O0.
8227
8228 2000-02-09  Robert Lipe  <robertl@sco.com>
8229
8230         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
8231         Don't link with HOST_LIBS. 
8232
8233 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
8234
8235         * configure.in: Correct --help text for --with-dwarf2.
8236         Put tm-dwarf2.h after other tm files, if it's requested.
8237         * configure: Regenerate.
8238         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
8239         defining it.
8240
8241 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
8242
8243         * cpplib.h: Provide HASHNODE typedef and forward decl of
8244         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
8245         DEFINITION, struct hashnode, struct macrodef, struct
8246         definition, scan_decls prototype, default defn of
8247         INCLUDE_LEN_FUDGE moved elsewhere.
8248
8249         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
8250         definition, and struct hashnode moved here. Remove the unused
8251         'predefined' field from struct definition.  Replace the 'args'
8252         union with its sole member.  All users updated (cpphash.c).
8253         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
8254         multiple include guard.
8255
8256         * cpphash.c (hashf): Make static; use better algorithm; drop
8257         HASHSIZE parameter; return an unsigned int.
8258         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
8259         used. Calculate HASHSIZE modulus here.
8260         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
8261         here.
8262         (create_definition): Drop PREDEFINITION parameter.
8263         * cpplib.c (do_define): Don't calculate a hash value here.
8264         Don't pass (keyword == NULL) to create_definition.
8265
8266         * scan.h: Prototype scan_decls here.
8267         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
8268         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
8269         callers of cpp_lookup and cpp_install updated.
8270         
8271         * cpphash.c (macarg): Hoist all the flag diddling out of the
8272         function...
8273         (macroexpand): ... and out of the loop that calls macarg.
8274         Skip over the initial paren before macro arguments with
8275         cpp_get_non_space_token; point may be some distance before
8276         that paren.  Abort if it's not there.
8277
8278         * cpplib.c (parse_clear_mark): Delete function.
8279         (parse_set_mark, parse_goto_mark): Make static.
8280         (ACTIVE_MARK_P): New macro.
8281         (skip_block_comment, skip_line_comment): Do not bump the line
8282         if ACTIVE_MARK_P is true.
8283         (cpp_pop_buffer): The buffer to be popped may not have an
8284         active mark.
8285         (cpp_get_token): When looking for the initial paren before
8286         macro arguments, only set a mark in a file buffer, Always
8287         return to that mark before proceeding to call macroexpand or
8288         return a NAME token.
8289
8290         * cpplib.h: Remove prototypes of parse_set_mark,
8291         parse_clear_mark, parse_goto_mark.
8292         (struct cpp_options): Rename 'put_out_comments' to
8293         'discard_comments' and invert its sense.
8294         * cppinit.c, cpphash.c, cpplib.c: All users of
8295         put_out_comments changed to use discard_comments, with
8296         opposite sense.
8297
8298 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
8299
8300         * function.c (thread_prologue_and_epilogue_insns): Don't delete
8301         the edge from a block that both jumps and falls through to the
8302         fallthru block.
8303
8304 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
8305
8306         * config/arm/arm.md (movsi): In PIC mode, make sure that a
8307         constant source address is legitimate.
8308
8309 2000-02-09  Philip Blundell  <pb@futuretv.com>
8310
8311         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
8312         correctly.
8313
8314         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
8315         generating PIC.
8316         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
8317
8318 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
8319
8320         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
8321         ends with a newline and a NUL.  Don't be so clever manipulating
8322         strings.
8323
8324 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
8325
8326         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
8327         not to BIGGEST_ALIGNMENT.
8328
8329 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
8330
8331         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
8332         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
8333         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
8334         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
8335         * frame.c (execute_cfa_insn): Handle 
8336         DW_CFA_GNU_negative_offset_extended.
8337
8338 2000-02-08  Richard Henderson  <rth@cygnus.com>
8339
8340         * flow.c (tidy_fallthru_edges): Split out from ...
8341         (delete_unreachable_blocks): ... here.
8342         (find_basic_blocks): Use it.
8343
8344 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8345
8346         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
8347
8348 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
8349
8350         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
8351         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
8352         (fix-header.o): Don't depend on cpphash.h.
8353
8354         * scan.c (hashstr): New function. 
8355         * scan.h: Prototype it.
8356         * fix-header.c: Don't include cpphash.h.  Use hashstr.  
8357         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
8358         hashstr.  Report hash table statistics.  Add private     
8359         definition of xrealloc.
8360
8361 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8362
8363         * i386.h (TARGET_SWITCHES): Fix typo in option name.
8364
8365 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
8366
8367         * function.c (thread_prologue_and_epilogue_insns): Don't replace
8368         jumps with returns unless they are jumps to the fallthru block.
8369
8370 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
8371
8372         * i386.md (addqi3_cc): Fix contraints.
8373
8374 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8375
8376         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
8377
8378 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
8379
8380         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
8381         carriage return after a macro name.
8382
8383 2000-02-07  Fred Fish  <fnf@be.com>
8384
8385         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
8386         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
8387
8388 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
8389
8390         * cppfiles.c (deps_output): Count spacers in deps_column.
8391
8392 2000-02-07  Neil Booth  <NeilB@earthling.net>
8393
8394         * cppinit.c (initialize_dependency_output): If there is no
8395         suffix, don't try to look for known suffixes.  Use strrchr.
8396         (cpp_start_read): Remove duplicate initialization.
8397
8398 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
8399
8400         * calls.c (compute_argument_block_size): New argument
8401         preferred_stack_boundary.
8402         (expand_call): update cfun->preferred_stack_boundary, update call of
8403         compute_argument_block_size
8404         (emit_library_call): Increate cfun->preferred_stack_boundary
8405         to PREFERRED_STACK_BOUNDARY
8406         (emit_library_call_value): Likewise.
8407         * explow.c (allocate_dynamic_stack_spave): Likewise.
8408         * function.c (prepare_function_start): Set
8409         cfun->preferred_stack_boundary
8410         * function.h (struct function): Add preferred_stack_boundary field.
8411         * integrate.c (expand_inline_function): Update
8412         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
8413         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
8414         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
8415
8416 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
8417
8418         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
8419         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
8420         cpp_pedwarn, cpp_pedwarn_with_line,
8421         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
8422         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
8423         v_cpp_error_with_line, v_cpp_warning_with_line,
8424         cpp_message_from_errno, cpp_perror_with_name): Delete.
8425
8426         * cpperror.c (cpp_print_containing_files): Take starting
8427         buffer as argument.
8428         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
8429         (v_cpp_message): Now called directly by all entry points.
8430         Remove -1 case.
8431         (cpp_pfatal_with_name, cpp_message): Delete.
8432         (cpp_notice_from_errno, cpp_ice): New functions.
8433         (cpp_notice): Is now for reporting error conditions, just
8434         without an associated file.
8435         (cpp_error, cpp_error_with_line): Don't do anything if
8436         opts->inhibit_errors is on.
8437         (cpp_pedwarn_with_file_and_line): Take column argument also.
8438
8439         * cpplib.h: Update prototypes of exported functions.
8440         (struct cpp_options): Add inhibit_errors.
8441
8442         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
8443         non-error messages.  Include intl.h.
8444
8445         * cppinit.c, cppmain.c: Likewise.  Also, use
8446         cpp_notice_from_errno instead of cpp_perror_with_name or
8447         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
8448
8449         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
8450         report internal errors.
8451
8452         * cpplib.c (do_define): Switch bcopy to memcpy.
8453         Give cpp_pedwarn_with_file_and_line a dummy column argument.
8454
8455         * cpplib.c (copy_rest_of_line): Revert previous change: don't
8456         bail out early if we hit a line comment.
8457
8458 2000-02-06  Richard Henderson  <rth@cygnus.com>
8459
8460         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
8461         * basic-block.h: Declare them.
8462         * emit-rtl.h (active_insn_p): New.
8463         (next_active_insn, prev_active_insn): Use it.
8464         * rtl.h: Declare it.
8465         * function.c (emit_return_into_block): New.
8466         (thread_prologue_and_epilogue_insns): Insert return insns instead
8467         of epilogues when possible.
8468         * jump.c (jump_optimize_1): Remove code to insert a return insn
8469         on the fallthru to the exit block.
8470
8471         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
8472         and for non-empty stack frames.
8473         * i386.md (return): Expand to return-pop as needed.
8474
8475 2000-02-06  Richard Henderson  <rth@cygnus.com>
8476
8477         * simplify-rtx.c (simplify_relational_operation): Canonicalize
8478         constant to op1 for testing.
8479
8480 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8481
8482         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
8483         (fixuns_truncqfqi2): Use it.
8484
8485 2000-02-06  Richard Henderson  <rth@cygnus.com>
8486
8487         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
8488         as a TYPE_LEA insn.
8489
8490         * i386.md (widening and peepholes): Mask the constant instead of
8491         using gen_lowpart.
8492
8493 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
8494
8495         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
8496         input pointer before possibly branching off to the backslash
8497         code.
8498         * cpphash.c (macroexpand): Correctly delete \r escapes when
8499         stringifying parameters.
8500         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
8501         if we can; bail out early if we hit a line comment.
8502         (handle_directive): Treat '# 123' in an .S file just like
8503         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
8504         Return 1 for '# not_a_directive'.
8505         (get_directive_token): Pop macro buffers here, so that
8506         cpp_get_token can't sneakily move past a newline.
8507         Add sanity checks. 
8508         (cpp_get_token): goto randomchar if handle_directive returns 0.
8509
8510         * cppalloc.c: Update copyright.
8511         * cpplib.c: Merge all the static function prototypes into one
8512         block.
8513         * cpplib.h: Remove #if 0 block.
8514
8515         * cpperror.c: Remove #ifdef EMACS block.
8516         * cppmain.c: Likewise.
8517         * cpphash.c: Remove #if 0 blocks.
8518         * cppinit.c: Remove #if 0 blocks, and the -lint option.
8519         * cpplib.c: Remove #if 0 blocks and code referencing
8520         pcp_inside_if or for_lint.  Remove duplicate error message.
8521         Fix error messages for #else after #else or #elif.  Reformat.
8522         Remove archaic TODO list.
8523         * cpplib.h: Remove pcp_inside_if and for_lint flags.
8524
8525 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
8526
8527         * i386/osf1elf.h: Add missing backslash to multiline string.
8528
8529 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8530
8531         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
8532
8533 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8534
8535         * Makefile.in (c-common.o): Depend on $(EXPR_H).
8536
8537         * c-common.c: Include expr.h.
8538
8539         * c-pragma.c (mark_align_stack): Add prototype.
8540
8541         * caller-save.c (add_stored_regs): Likewise.
8542
8543         * combine.c (record_promoted_value): Likewise.
8544
8545         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
8546         Likewise.
8547
8548         * cppinit.c (new_pending_define): Likewise.
8549
8550         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
8551
8552         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
8553         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
8554         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
8555         class_scope_p): Likewise.
8556
8557         * dwarf2out.h (dwarf2out_set_demangle_name_func,
8558         dwarf2out_add_library_unit_info): Likewise.
8559
8560         * ggc.h (ggc_page_print_statistics): Likewise.
8561
8562         * haifa-sched.c (propagate_deps): Likewise.
8563
8564         * reg-stack.c (next_flags_user, record_label_references): Likewise.
8565
8566         * rtl.h (set_stack_check_libfunc): Likewise.
8567
8568         * toplev.h (set_fatal_function): Likewise.
8569
8570         * toplev.c (set_fatal_function): Delete prototype.
8571         
8572         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
8573         
8574 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
8575
8576         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
8577         (FUNC_END): Likewise.
8578
8579 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8580
8581         * caller-save.c: Include tm_p.h.
8582
8583 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8584
8585         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
8586
8587 2000-02-04  Neil Booth  <NeilB@earthling.net>
8588
8589         * cccp.c (main): Check 'dir' for a NULL pointer before passing
8590         it to strcmp.
8591
8592 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
8593
8594         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
8595         * genflags.c: Use the max_operand_1 logic from genemit.c to
8596         calculate how many arguments gen_insn prototypes have.  Remove
8597         NO_MD_PROTOTYPES ifdefs from the generated file.
8598         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
8599         file.  Cast gen_insn initializers to insn_gen_fn.
8600         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
8601         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
8602
8603 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8604
8605         * fixinc/Makefile.in (HDR): Add machname.h.
8606         (clean): Likewise.
8607
8608 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8609
8610         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
8611         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
8612         (c4x_cpu_version): Ditto.
8613         * config/c4x/c4x-protos.h: ... here.
8614
8615 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
8616
8617         * dwarf2out.c (add_abstract_origin_attribute): Don't call
8618         gen_abstract_function on our context if we're a nested function.
8619
8620 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8621
8622         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
8623         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
8624
8625 2000-02-04  Bruce Korb  <bkorb@gnu.org>
8626
8627         * fixinc/genfixes(machname.h):
8628         Move the functionality from gen-machine.h into this file.
8629         UNdef MN_NAME_PAT if there are no names to change.
8630         Also, be a little kinder when AutoGen is not present.
8631
8632         * fixinc/Makefile.in(machname.h):
8633         Change the generation rule to use genfixes.
8634
8635         * fixinc/fixfixes.c(machine_name):
8636         machine_name_fix's functionality now dependent upon whether
8637         MN_NAME_PAT is defined.
8638
8639         * fixinc/fixtests.c(machine_name):
8640         ditto.
8641
8642         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
8643         of MN_NAME_PAT.
8644
8645         * fixinc/fixlib.h(mn_get_regexps):
8646         ditto
8647
8648         * fixinc/gen-machine.h: DELETED
8649
8650 2000-02-04  Jan Hubicka  <jh@suse.cz>
8651             Richard Henderson  <rth@cygnus.com>
8652
8653         * i386.c (SAVE_REGS_FIRST): Remove.
8654         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
8655         (ix86_compute_frame_size): Likewise.
8656         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
8657         (ix86_emit_restore_regs): Remove.
8658         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
8659         when a frame pointer is in use.
8660         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
8661         instead of pop to restore a register when profitable; emit leave
8662         when profitable.
8663         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
8664         as a TYPE_LEA insn.
8665         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
8666         * i386.md (prologue_allocate_stack): Remove.
8667         (epilogue_deallocate_stack): Remove.
8668         (pro_epilogue_adjust_stack): New.
8669
8670 2000-02-04  Richard Henderson  <rth@cygnus.com>
8671
8672         * function.c (diddle_return_value): Rework to use a callback function.
8673         Use current_function_return_rtx if it's been set up.
8674         (do_clobber_return_reg, clobber_return_register): New.
8675         (do_use_return_reg, use_return_register): New.
8676         (expand_function_end): Use them.
8677         * stmt.c (expand_null_return): Likewise.
8678         * function.h: Declare them.
8679         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
8680         (mark_reg): Change arguments as appropriate for callback.
8681         * integrate.c (expand_inline_function): Revert 19 Jan change.
8682
8683 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8684
8685         * tm.texi (Values in Registers): Fix typo: "fo" "for".
8686         (Misc): Say the scheduler, not the Haifa scheduler.
8687
8688 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
8689
8690         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
8691         when in_mem is set.  Update all callers.
8692
8693 2000-02-04  Richard Henderson  <rth@cygnus.com>
8694
8695         * i386/openbsd.h (INT_ASM_OP): Define.
8696
8697 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8698
8699         * tm.texi: Fix various typos.
8700
8701 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
8702
8703         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
8704         (MD_STARTFILE_PREFIX_1): New macro.
8705
8706 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
8707
8708         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
8709         destination when needed.
8710         (strmovsi, strsetsi): New expander.
8711         (strmovsi_1, strsetsi_1): New pattern.
8712         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
8713         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
8714         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
8715         * invoke.texi (align-stringops, inline-all-stringops): Document.
8716
8717 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
8718
8719         * i386/netbsd.h (INT_ASM_OP): Define.
8720
8721 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
8722
8723         * cpplib.h (cpp_reader): Add new flag, no_directives.
8724         * cpphash.c (macarg): Set it.
8725         * cpplib.c (handle_directive): If no_directives is on and we
8726         find a directive, issue an error and discard the line.
8727
8728 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
8729
8730         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
8731         FP constants.  Add ! TARGET_FPU check for FP constants.
8732
8733 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
8734         
8735         * flow.c (find_basic_blocks): Don't kill label_value_list
8736         here.
8737         (cleanup_cfg): Kill it here.
8738
8739 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8740
8741         * expr.c (store_field): Ensure ALIGN is no stricter than the
8742         alignment of EXP.
8743
8744 2000-02-02  Richard Henderson  <rth@cygnus.com>
8745
8746         * jump.c (delete_insn): Partially revert 19 Jan change; 
8747         don't convert unused code labels to notes at -O0.
8748
8749 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8750
8751         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
8752         split_all_insns to recreate REG_LABEL notes for flow2 pass.
8753
8754 2000-02-01  Richard Henderson  <rth@cygnus.com>
8755
8756         * i386.c (general_no_elim_operand): New.
8757         (nonmemory_no_elim_operand): New.
8758         (ix86_expand_move): Copy eliminable operands before a push.
8759         * i386-protos.h: Declare new functions.
8760         * i386.h (CAN_ELIMINATE): Simplify.
8761         (PREDICATE_CODES): Update.
8762         * i386.md (push insns): Don't allow eliminable register operands.
8763
8764 2000-02-01  Richard Henderson  <rth@cygnus.com>
8765
8766         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
8767         replace BLKmode with DECL_RTL's mode.
8768
8769 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
8770
8771         * frame.c (find_fde): Convert for loop to do-while so compiler
8772         sees it's always executed at least once.
8773         * libgcc2.c (BBINBUFSIZE): Kill.
8774         (__bb_init_prg): Use fgets.
8775         (__bb_exit_trace_func): Don't paste strings.
8776         * unroll.c (unroll_loop): Initialize unroll_type, not
8777         unroll_number, and tweak logic to match.
8778
8779         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
8780         all failure paths.
8781         (ix86_flags_dependant): Likewise.  Disentangle control flow.
8782         (ix86_sched_reorder): Break guts out to
8783         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
8784         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
8785         any possible use.
8786
8787         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
8788         use string concatenation.  Don't save and restore esi.
8789
8790         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
8791         (machname.h): Remove script to separate file.  Use two-step
8792         sequence so target is not created if script fails.
8793         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
8794         identifiers are defined.
8795         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
8796         an empty string, machine_name doesn't need to do anything at
8797         all.
8798         (is_cxx_header): Add more cases to regexp.
8799         * fixinc/fixlib.h: Update prototype.
8800         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
8801         mn_get_regexps.
8802         * fixinc/fixincl.c: Define NO_BOGOSITY.
8803
8804         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
8805         (hp_sysfile): Add missing comma.
8806         (math_exception): Put the wrapper ifdefs at the beginning and
8807         the end of the file.
8808         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
8809
8810 2000-02-01  Richard Henderson  <rth@cygnus.com>
8811
8812         * sparc.c (fp_zero_operand): Turn into a normal predicate.
8813         Use CONST0_RTX.  Update all callers.
8814         * sparc.h, sparc-protos.h: Update accordingly.
8815         * sparc.md (fp mov insns): Use fp_zero_operand directly
8816         where applicable.
8817
8818 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8819
8820         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
8821         example.
8822
8823 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8824
8825         * Makefile.in (specs.ready): New target.
8826         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
8827
8828 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8829
8830         * fixinc.irix: Use unique filenames for writing into /tmp,
8831         * fixinc.ptx: Likewise.
8832         * fixinc.sco: Likewise.
8833         * fixinc.svr4: Likewise.
8834         * fixinc.winnt: Likewise.
8835
8836 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8837
8838         * tsystem.h: New file.
8839
8840         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
8841         s-crtS): Depend on tsystem.h.
8842
8843         * crtstuff.c: Include tsystem.h.
8844         * frame.c: Likewise.
8845         * libgcc2.c: Likewise.
8846
8847 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
8848
8849         * builtins.c (expand_builtin_memset): Expand for variable sized
8850         lengths too.
8851
8852 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au> 
8853
8854         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
8855         on ABI.
8856
8857 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8858
8859         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
8860
8861         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
8862
8863 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
8864
8865         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
8866         case 3->2 combining (combining with splitting) in which 2 is CC0
8867         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are 
8868         checked at the begining of the function with the aid of calling 
8869         function 'can_combine_p'. 
8870
8871 2000-01-31  Dave Brolley  <brolley@redhat.com>
8872
8873         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
8874
8875 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
8876
8877         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
8878         new label.
8879
8880 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8881
8882         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
8883         
8884         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
8885         PROTO -> PARAMS.
8886
8887 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
8888
8889         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
8890         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
8891         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
8892         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
8893         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
8894         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
8895         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
8896         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
8897         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
8898         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
8899         
8900         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
8901         Add %(cpp_cpu) to CPP_SPEC.
8902
8903         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
8904         Add %(cc1_cpu) to CC1_SPEC.
8905
8906 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
8907
8908         * c-decl.c (c_decode_option): Accept optional numeric argument to
8909         -Wformat and set warn_format.
8910         * c-common.c: Don't emit warning about non-constant printf format
8911         string unless warn_format > 1.
8912
8913 2000-01-30  Richard Henderson  <rth@cygnus.com>
8914
8915         * alpha.md (return_internal): Allow after reload only.
8916
8917 2000-01-30  Richard Henderson  <rth@cygnus.com>
8918
8919         * i386.c (ix86_compute_frame_size): Omit padding1 if the
8920         local frame size is zero.
8921
8922 2000-01-30  Richard Henderson  <rth@cygnus.com>
8923
8924         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
8925         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
8926         * alpha.md (return): Turn into an expander.
8927         (return_internal): Don't use $26.
8928         (epilogue): Emit the return insn.
8929
8930 2000-01-30  Richard Henderson  <rth@cygnus.com>
8931
8932         * alpha.md (negtf2, abstf2): Fix word order thinko.
8933         (extendsftf2): New.
8934         (trunctfsf2): Avoid intermediate rounding errors.
8935
8936 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
8937
8938         * cppfiles.c (find_position): Drop 'colp' argument, return the
8939         new line base.
8940         (read_and_prescan): Adjust to match.  Don't ever manipulate
8941         line or line_base except via find_position.
8942
8943 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
8944
8945         * c-parse.in: Apply Ulrich's changes from c-parse.y.
8946         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
8947         Regenerate.
8948
8949 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
8950
8951         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
8952         just print "<command line>".  If 'filename' is null or an
8953         empty string, print "<stdin>" for the filename.
8954         * cpplib.c (do_define): Don't print the 'location of the
8955         previous definition' message if we're still parsing the
8956         command line.
8957         (cpp_pedwarn_with_file_and_line): Always call
8958         cpp_file_line_for_message.
8959
8960 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
8961
8962         * flow.c (mark_regs_live_at_end): Fix typo.
8963
8964 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
8965
8966         * c-common.c: Adjust variable names, comments, help strings to c99.
8967         * c-lex.c: Likewise.
8968         * c-parse.y: Likewise.
8969         * c-tree.h: Likewise.
8970         * cccp.c: Likewise.
8971         * cpplib.h: Likewise.
8972         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
8973         * cppinit.c: Likewise.
8974
8975 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8976
8977         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
8978         * c4x.c: Define the optab rtx values.
8979         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
8980         (c4x_emit_libcall): Use new optab rtx values.
8981         (c4x_emit_libcall3): Likewise.
8982         (c4x_emit_libcall_mulhi): Likewise.
8983         * c4x-protos.h: Add prototypes for optab rtx values and change
8984         prototypes for above c4x_emit_libcall functions.
8985
8986 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8987
8988         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
8989         syntax is used.
8990         (c4x_function_prologue): Use regnames intead of float_reg_names when
8991         TI syntax is used.
8992         (c4x_function_epilogue): Likewise.
8993         (c4x_print_operand): Likewise.
8994         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
8995         * c4x.md (set_high): Disable for TARGET_TI.
8996
8997 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8998
8999         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
9000         of framepointer + constant to ADDR_REGS class.
9001         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
9002         * c4x.c (std_or_reg_operand): New function.
9003         * c4x-protos.h (std_or_reg_operand): Prototype it.
9004
9005 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9006
9007         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
9008                 object names as libgcc2.c.
9009         * libgcc.S: Use newly defined names.
9010
9011 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
9012         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
9013         function.
9014         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
9015         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
9016         (FLOW_LOOP_LAST_BLOCK): Likewise.
9017
9018 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9019
9020         * basic-block.h (struct loop): New fields 'first' and 'last'.
9021         * flow.c (flow_loops_find): Compute loop->first and loop->last.
9022         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
9023         and loop->last to check for NOTE_INSN_LOOP_END.
9024
9025 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
9026
9027         * predict.c (estimate_probability): Use the new FIRST and LAST fields
9028         of the loop descriptor rather than HEADER and LATCH. Also added
9029         missing break statements as well making some coding style modifications
9030         as suggested by Michael Hayes.
9031
9032 2000-01-28  Richard Henderson  <rth@cygnus.com>
9033
9034         * flow.c (find_basic_blocks): Remove do_cleanup argument.
9035         Break out that code ...
9036         (cleanup_cfg): ... here.
9037         (commit_one_edge_insertion): Detect a return instruction being
9038         emitted to an edge.  Emit a barrier following; clear fallthru.
9039         (commit_edge_insertions): Verify CFG consistency.
9040         * function.c (expand_function_start): Kill unused variable.
9041         (expand_function_end): Likewise.
9042         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
9043         to insert the epilogue.
9044
9045         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
9046         (delete_null_pointer_checks): Likewise.
9047         * output.h: Likewise.
9048         * reg-stack.c (reg_to_stack): Likewise.
9049         * toplev.c (rest_of_compilation): Likewise.  Run
9050         thread_prologue_and_epilogue_insns after rebuilding the CFG.
9051
9052 2000-01-28  Richard Henderson  <rth@cygnus.com>
9053
9054         * Makefile.in (flow.o): Revert 24 Jan change.
9055         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
9056         FUNCTION_VALUE result to DECL_RESULT's mode.
9057
9058         * haifa-sched.c (schedule_insns): Don't recompute reg info
9059         after reload.
9060
9061 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
9062
9063         * configure.in: Make --enable-cpplib the default.
9064         * configure: Regenerate.
9065         * gcc.dg/990119-1.c: No longer expected to fail.
9066
9067 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
9068
9069         * jump.c (jump_optimize_1): Delete an optimization that is also done
9070         by merge_blocks in flow.
9071
9072 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9073
9074         * diagnostic.c (build_message_string, output_printf,
9075         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
9076         (build_location_prefix): Fix non-literal format string.
9077
9078 2000-01-27  Richard Henderson  <rth@cygnus.com>
9079
9080         * alpha.md (trunctfsf2): New.
9081
9082 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
9083
9084         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
9085
9086 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
9087
9088         * cppinit.c (cpp_handle_option): Recognize C++ comments under
9089         -std=gnu89.
9090         * cpplib.c (skip_block_comment, skip_line_comment): Split code
9091         out of...
9092         (skip_comment) ... here.  Permit C++ comments in system
9093         headers always.  Warn about C++ comments in user code under
9094         -std=gnu89 -pedantic.
9095         (copy_comment): Use skip_comment.
9096         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
9097         return EOF.
9098         (consider_directive_while_skipping, do_else, do_endif): Call
9099         validate_else unconditionally.
9100         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
9101         text after the conditional in a system header.
9102         * cpplib.h (struct cpp_buffer): Add flag
9103         warned_cplusplus_comments.
9104
9105 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
9106
9107         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
9108         Use unshare_all_rtl_1.
9109         (unshare_all_rtl_again): New function.
9110         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
9111
9112         * function.c (purge_addressof_1): Use unshare_all_rtl_again
9113         rather than resetting the 'used' flags ourself.
9114
9115         * toplev.c (rest_of_compilation): Add current_function_decl
9116         to the unshare_all_rtl call.
9117         * tree.h: Prototype unshare_all_rtl.
9118         * rtl.h: Prototype unshare_all_rtl_again here.
9119
9120 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
9121
9122         * genoutput.c (output_prologue): Include ggc.h in generated
9123         files.
9124         * Makefile.in (insn-output.o): Depends on ggc.h.
9125
9126 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
9127             Hans-Peter Nilsson  <hp@bitrange.com>
9128
9129         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
9130         Remove redundant include of xm-ns32k.h.
9131         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
9132         Remove redundant include of xm-ns32k.h.
9133         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
9134         Remove redundant include of xm-ns32k.h.
9135         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
9136
9137         * ns32k/ns32k.h: Update comment on multiply-add instructions.
9138         (TARGET_SWITCHES): Add documentation strings.
9139         (DWARF_FRAME_REGNUM): Override default definition.
9140         (REG_CLASS_CONTENTS): Add comments.
9141         (SUBSET_P): Format to reduce line length.
9142         (SMALL_REGISTER_CLASSES): Make a run time option.
9143         (GO_IF_NONINDEXED_ADDRESS): Reformat.
9144         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
9145         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
9146         (regclass_map): fix typo in comment.
9147         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
9148         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
9149         (trace, reg_or_mem_operand): Delete, unused function.
9150         (calc_address_cost): Small offsets are cheaper than large ones.
9151         (expand_block_move): Generate more efficient code when bytes is a
9152         known at compile time.
9153         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
9154         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
9155         instead of reg_or_mem_operand.
9156
9157         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
9158         not general_operand.  Similarly use "=rm" or stricter, not "=g".
9159         For input operands, use stricter constraints than "g" if not
9160         general_operand.  Similarly use stricter predicate than
9161         "general_operand" when stricter constraints than "g" are present,
9162         except for matching constraints.
9163         (movstrsi): Use "memory_operand" for operands 0 and 1.
9164         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
9165         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
9166         not reg_or_mem_operand.
9167         (udivmoddisi4): Ditto.
9168         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
9169         Use nonimmediate_operand for operand 3, not register_operand.
9170         (udivmoddiqi4_internal): Use register_operand for operand 1, not
9171         reg_or_mem_operand.
9172
9173 2000-01-27  Fred Fish  <fnf@be.com>
9174
9175         * gthr-posix.h: Fix typo; compatibily -> compatibility.
9176         * gthr-single.h: Likewise.
9177         * gthr-solaris.h: Likewise.
9178         * gthr-vxworks.h: Likewise.
9179         * gthr-win32.h: Likewise.
9180         * gthr.h: Likewise.
9181
9182 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
9183
9184         * cppinit.c: Add " (cpplib)" to end of string printed by
9185         -v / --version.
9186
9187 2000-01-27  Richard Henderson  <rth@cygnus.com>
9188
9189         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
9190         testing for a signed comparison.
9191         (alpha_emit_floatuns): New.
9192         * alpha-protos.h: Declare it.
9193         * alpha.md (floatunsdisf2, floatunsdidf2): New.
9194         (extendsfdf2): Tidy.
9195
9196 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
9197
9198         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
9199         no -g option specifying debugging format, default to -gstabs+.
9200
9201 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
9202
9203         * calls.c (special_function_p): New argument fork_or_exec.
9204         (expand_call): When profile_arc_flag is set and the function
9205         is in the fork_or_exec group, call __bb_fork_func first.
9206         * libgcc2.c, _bb module (__bb_fork_func): New function.
9207         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
9208         output file.
9209         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
9210         * tree.h (special_function_p): Update prototype.
9211
9212 2000-01-26  Richard Henderson  <rth@cygnus.com>
9213
9214         * alpha.c (alpha_split_tfmode_pair): New.
9215         * alpha-protos.h: Declare it.
9216         * alpha.md (abstf2, negtf2): New.
9217         (movtf insn): Add input G constraint.
9218         (movtf splitter): Use alpha_split_tfmode_pair.
9219
9220 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9221
9222         * i386/cygwin.h: PROTO -> PARAMS.
9223
9224 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
9225
9226         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
9227         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
9228         using _Qp_cmp/_Q_cmp and testing the return value.
9229         (print_operand): Call reverse_condition_maybe_unordered if
9230         we are handling CCFPmode or CCFPEmode.
9231         Handle ORDERED, UN* and LTGT comparisons.
9232         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
9233         if not TARGET_HARD_QUAD.
9234         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
9235         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
9236         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
9237         Adjust gen_b* calls so that they reflect return comparison of
9238         sparc_emit_float_lib_cmp.
9239
9240 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9241
9242         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
9243         incoming operands array is large enough for one more operand.
9244         (alpha_emit_xfloating_arith): Likewise.
9245
9246 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
9247
9248         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
9249         file with one line and no trailing newline.
9250         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
9251         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
9252         checking if the match is on the line.
9253         * fixinc/gnu-regex.c: Provide regerror not __regerror.
9254
9255 2000-01-25  Richard Henderson  <rth@cygnus.com>
9256
9257         * sparc.c (output_cbranch): Fix accidental squashing of the
9258         fp branch pre-delay nop.
9259
9260 2000-01-25  Richard Henderson  <rth@cygnus.com>
9261
9262         * tree.def (UNNE_EXPR): Remove.
9263         * c-typeck.c (build_binary_op): Don't handle it.
9264         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
9265
9266         * rtl.def (UNNE): Remove.
9267         (LTGT): Add.
9268         * jump.c (reverse_condition): Update accordingly.
9269         (swap_condition): Likewise.
9270         (comparison_dominates_p): Handle unordered comparisons.
9271         (reverse_condition_maybe_unordered): New.
9272         * rtl.h (reverse_condition_maybe_unordered): Declare.
9273
9274         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
9275         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
9276         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
9277         * sparc.md (bltgt): New.
9278
9279 2000-01-25  Nick Clifton  <nickc@redhat.com>
9280
9281         * emit-rtl.c (emit_insn): Only check machine class insns for
9282         improper emission of a RETURN.
9283
9284 2000-01-25  Richard Henderson  <rth@cygnus.com>
9285
9286         * Makefile.in (flow.o): Depend on $(EXPR_H).
9287         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
9288         duplicate the structure of diddle_return_value for keeping regs live.
9289
9290 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9291
9292         * loop.c (current_loop_info): Delete.
9293         (consec_sets_invariant_p): Add loop argument, update callers.
9294         (get_condition_for_loop): Likewise.
9295         (count_nonfixed_reads, update_giv_derive): Likewise.
9296         (simplify_giv_expr, general_induction_var): Likewise.
9297         (consec_sets_giv, recombine_givs): Likewise.
9298         (move_movables): Delete loop_start and loop_end arguments,
9299         add loop argument, and update callers.
9300         (find_mem_givs, check_final_value): Likewise.
9301         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
9302         (loop_invariant_p): Rename from invariant_p, add loop argument, and
9303         update callers.
9304         (basic_induction_var): Add loop argument, delete loop_level argument,
9305         and update callers.
9306         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
9307         add loop argument, and update callers.
9308         (find_splittable_regs, find_splittable_givs): Likewise.
9309         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
9310         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
9311         (biv_total_increment): Delete loop_start and loop_end arguments;
9312         update callers.
9313         (precondition_loop_p): Delete loop_start and loop_info arguments;
9314         update callers.
9315         * loop.h (get_condition_for_loop): Add loop argument.
9316         (biv_total_increment): Delete loop_start and loop_end arguments.
9317         (precondition_loop_p): Delete loop_start and loop_info arguments;
9318         add loop argument.
9319         (final_biv_value): Delete loop_start and loop_end arguments;
9320         add loop argument.
9321         (final_giv_value, back_branch_in_range_p): Likewise.
9322
9323 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
9324
9325         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
9326
9327 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
9328
9329         * Makefile.in (c-gperf.h) : Change the "See" pointer to
9330         point to the new "generated_files" doc.
9331
9332 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
9333
9334         * config/fp-bit.c (_unord_f2): Fix typo.
9335
9336 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
9337
9338         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
9339         c-typeck.c, objc/objc-act.c: Remove all references to obstack
9340         functions obsoleted by GC, such as push_obstacks_nochange,
9341         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
9342         and code which existed only to decide whether or not to call
9343         them.  Remove now-unused NESTED argument from start_function;
9344         all callers changed.  Do not change behavior based on ggc_p.
9345         The use of the ixp_obstack in c-iterate.c and the util_obstack
9346         in objc/objc-act.c remain; these are not obsoleted by garbage
9347         collection.
9348         * c-tree.h: Update prototype for start_function.
9349
9350         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
9351
9352 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
9353
9354         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
9355         mips16.
9356
9357 2000-01-25  Richard Henderson  <rth@cygnus.com>
9358
9359         * sparc-protos.h (select_cc_mode): Declare.
9360         * sparc.c (select_cc_mode): New.  Handle unordered compares.
9361         (output_cbranch): Always reverse via code change.  Handle
9362         unordered compares.  Factor tests and string updates.
9363         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
9364         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
9365         * sparc.md (bunordered, bordered): New.
9366         (bungt, bunlt, buneq, bunge, bunle): New.
9367
9368 2000-01-25  Richard Henderson  <rth@cygnus.com>
9369
9370         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
9371         * ggc-common.c (ggc_add_rtx_varray_root): New.
9372         (ggc_mark_rtx_varray): New.
9373         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
9374         functions down below ggc_mark_foo.
9375         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
9376
9377 2000-01-25  Richard Henderson  <rth@cygnus.com>
9378
9379         * alpha.c (secondary_reload_class): Don't allocate a secondary
9380         for integral mode memories into FLOAT_REGS.  Rearrange the more
9381         complicated memory expression inward.
9382
9383 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
9384
9385         * inclhack.def: Fixes to play nicer with FreeBSD, and
9386         corrections to comments.
9387         (cxx_unready): Add select expression.
9388         (irix_sockaddr): Add bypass expression.
9389         (machine_ansi_h_va_list): New fix.
9390         (stdio_va_list): No need to edit _BSD_VA_LIST_.
9391         Split out addition of "#include <stdarg.h>" to...
9392         (stdio_stdarg_h): ... here.
9393         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
9394         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
9395         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
9396         size_t.
9397         (ultrix_ifdef): Tighten up select expression.
9398
9399         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
9400         re_ct and max_mach to avoid use of shell.  Make printed names
9401         match names in inclhack.def.  Use static copyright date.
9402         Don't count c_test and test expressions as requiring regex_t
9403         slots.  Add some commentary.
9404         * inclhack.tpl: Do not include the 'This script contains N
9405         fixup scripts' line if PROGRAM is defined.  Use static
9406         copyright date.
9407
9408 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
9409
9410         * dwarf2out.c: include "varray.h", not dyn-string.h.
9411         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
9412         (addr_const_to_string, addr_to_string): Lose.
9413         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
9414         (struct dw_val_struct): val_addr is now an rtx.
9415         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
9416         (used_rtx_varray): New varray.
9417         (dwarf2out_init): Initialize it.
9418         (save_rtx): New fn.
9419         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
9420         addr_to_string.
9421         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
9422         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
9423         * Makefile.in (dwarf2out.o): Update dependencies.
9424
9425 2000-01-24  Richard Henderson  <rth@cygnus.com>
9426
9427         * i386.c (i386_dwarf_output_addr_const): New.
9428         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
9429
9430         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
9431         if defined.
9432         * dwarfout.c (output_mem_loc_descriptor): Likewise.
9433         * i386.c (i386_simplify_dwarf_addr): New.
9434         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
9435
9436 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
9437
9438         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
9439         TYPE_STUB_DECL is NULL.
9440
9441 2000-01-24  Richard Henderson  <rth@cygnus.com>
9442
9443         * builtins.c (expand_tree_builtin): Move ...
9444         * c-common.c (expand_tree_builtin): ... here.
9445
9446 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9447
9448         * loop.h (LOOP_INFO): New accessor macro.
9449         * basic-block.h (struct loop): Rename field `info' to `aux'.
9450         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
9451         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
9452         * unroll.c (loop_iterations, unroll_loop): Likewise.
9453
9454 2000-01-24  Christopher Faylor <cgf@cygnus.com>
9455
9456         * config/i386/t-cygwin: Accomodate new winsup directory layout
9457         when searching for include files.
9458
9459 2000-01-24  Richard Henderson  <rth@cygnus.com>
9460
9461         * rtl.def: Add unordered fp comparisions.
9462         * tree.def: Likewise.
9463         * tree.h: Add ISO C 9x unordered fp comparision builtins.
9464
9465         * builtins.c (expand_tree_builtin): New function.
9466         * c-typeck.c (build_function_call): Use it.
9467         (build_binary_op): Support unordered compares.
9468         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
9469
9470         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
9471         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
9472         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
9473         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
9474         * jump.c (reverse_condition): Don't abort for UNLE etc, but
9475         return UNKNOWN.
9476         (swap_condition): Handle unordered compares.
9477         (thread_jumps): Check can_reverse before reversing.
9478         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
9479         reversed for FP.
9480
9481         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
9482         setcc is present before acking for cmp_optab.  Update all callers.
9483         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
9484         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
9485         * expr.c (expand_expr): Likewise.  Support unordered compares.
9486         (do_jump, do_store_flag): Likewise.
9487         * expr.h (enum libfunc_index): Add unordered compares.
9488
9489         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
9490         (DPBIT_FUNCS): Add _unord_df.
9491         * config/fp-bit.c (_unord_f2): New.
9492         * fp-test.c (main): Try unordered compare builtins.
9493
9494         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
9495         * alpha.c (alpha_comparison_operator): Check mode properly.
9496         (alpha_swapped_comparison_operator): Likewise.
9497         (signed_comparison_operator): Likewise.
9498         (alpha_fp_comparison_operator): New.
9499         (alpha_emit_conditional_branch): Handle unordered compares.
9500         * alpha.h (PREDICATE_CODES): Update.
9501         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
9502         (bunordered, bordered): New.
9503
9504 2000-01-24  Richard Henderson  <rth@cygnus.com>
9505
9506         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
9507         * alpha.md (movtf): New expander, insn, and splitter.
9508
9509 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
9510
9511         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
9512         dead registers.
9513
9514 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
9515
9516         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
9517         (FIXED_REGISTERS, CALL_USED_REGISTERS,
9518          REG_ALLOC_ORDER): Add frame pointer
9519         (FRAME_POINTER_REGNUM): Set to 20
9520         (HARD_FRAME_POINTER_REGNUM): New macro.
9521         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
9522         to HARD_FRAME_POINTER.
9523         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
9524         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
9525         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
9526         (HI_REGISTER_NAMES): Add "frame".
9527         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
9528         (debug_reg): Handle FRAME_POINTER_REGNUM.
9529         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
9530         GENERAL_REGS and INDEX_REGS.
9531         * i386.c (SAVED_REGS_FIRST): new macro.
9532         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
9533         (ix86_decompose_address, memory_address_length): Likewise.
9534         (regclass_map): Add frame pointer.
9535         (call_insn_operand): Handle frame_pointer_rtx.
9536         (reg_no_sp_operand): Likewise.
9537         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
9538         (print_operand, legitimize_pic_address): Fix formating.
9539         (ix86_compute_frame_size): Make static, update prototype, new
9540         parameters padding1, padding2, use ix86_nsaved_regs, use
9541         stack_alignment_needed.
9542         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
9543         to HARD_FRAME_POINTER_REGNUM conversions.
9544         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
9545         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
9546         (print_reg): Abort on FRAME_POINTER_REGNUM
9547
9548 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
9549
9550         * i386.h (PREDICATE_CODES): Add aligned_operand.
9551         * i386.c (aligned_operand): New function.
9552         (ix86_aligned_p): Kill.
9553         * i386.md (movhi_1): Emit mov for aligned operands.
9554         (promoting peep2s): Use aligned_operand.
9555
9556 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
9557
9558         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
9559         expression to allow underscores in macro names.
9560         (fix_char_macro_defines): Increment scanning pointer.
9561
9562 2000-01-23  Richard Henderson  <rth@cygnus.com>
9563
9564         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
9565         * alpha/osf5.h: New file.
9566         * configure.in (alpha-*-osf5): Add it to tm_file.
9567
9568         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
9569
9570         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
9571         (alpha_emit_xfloating_cvt, function_arg): Declare.
9572         * alpha.c (alpha_emit_conditional_branch): Call
9573         alpha_emit_xfloating_compare for TFmode compares.
9574         (alpha_lookup_xfloating_lib_func): New.
9575         (alpha_compute_xfloating_mode_arg): New.
9576         (alpha_emit_xfloating_libcall): New.
9577         (alpha_emit_xfloating_arith): New.
9578         (alpha_emit_xfloating_compare): New.
9579         (alpha_emit_xfloating_cvt): New.
9580         (print_operand): Add default abort case.
9581         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
9582         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
9583         (BIGGEST_ALIGNMENT): Increase to 128 bits.
9584         (RETURN_IN_MEMORY): True for TF/TCmode.
9585         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
9586         (FUNCTION_ARG): Move to function_arg.
9587         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
9588         (ASM_OUTPUT_LONG_DOUBLE): New.
9589         (ASM_OUTPUT_DOUBLE): Always output bits.
9590         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
9591         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
9592         (extenddftf2, trunctfdf2): New.
9593
9594 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9595
9596         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
9597         * config/sparc/sol2.h: ... here.
9598
9599 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9600
9601         * basic-block.h (struct loops): New field `levels'.
9602         * flow.c (flow_loops_level_compute): Traverse all outer loops.
9603         (flow_loop_level_compute): Initialise level to 1.
9604         (flow_loops_find): Set loops->levels.
9605         (flow_loops_dump): Print loops->levels.
9606
9607 2000-01-23  Richard Henderson  <rth@cygnus.com>
9608
9609         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
9610         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
9611
9612 2000-01-23  Richard Henderson  <rth@cygnus.com>
9613
9614         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
9615         * i386.h (DBX_REGISTER_NUMBER): Use them.
9616         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
9617         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
9618         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
9619         * i386/sequent.h: Kill incorrect comment.
9620
9621 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
9622
9623         * ggc-page.c (struct page_entry): Make `context_depth' an
9624         `unsigned short'.
9625         (struct globals): Likewise.
9626
9627 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
9628
9629         * loop.c (check_dbra_loop): When checking a loop for
9630         reversability, check the source of any stores to ensure
9631         they don't depend on an initial value.
9632
9633 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9634
9635         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
9636
9637 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
9638
9639         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
9640         'pz_scan' into scope of entire function.  Only affects
9641         compiles with -DDEBUG.
9642
9643 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
9644
9645         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
9646         section naming to that prior to 2000-01-07 patch.
9647         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
9648         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
9649         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
9650         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
9651         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
9652
9653 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
9654
9655         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
9656         constant.
9657
9658 2000-01-21  Jim Wilson  <wilson@cygnus.com>
9659
9660         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
9661         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
9662
9663 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
9664
9665         * cpphash.c (change_newlines): Delete function.
9666         (struct argdata): Delete 'newlines' and 'use_count' fields.
9667         (macroexpand): Remove code referencing those fields.
9668
9669 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9670
9671         * loop.c (loops_info): New variable.
9672         (loop_optimize): Allocate loops->array and free it on exit.
9673         Allocate memory for loops_info and assign to each loop,
9674         replacing alloca.
9675         (find_and_verify_loops): Do not allocate loops->array.
9676
9677 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
9678
9679         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
9680
9681 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
9682
9683         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
9684         pseudos if expanded after first flow.
9685         (movdi_pic_label_ref): Likewise.
9686
9687 2000-01-20  Richard Henderson  <rth@cygnus.com>
9688
9689         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
9690
9691 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
9692
9693         * Makefile.in (fixinc.sh): Depend on specs.
9694         * fixinc/Makefile.in: Add rule to create machname.h.
9695         (fixlib.o): Depend on machname.h.
9696         * fixinc/fixtests.c (machine_name): New test.
9697         * fixinc/fixfixes.c (machine_name): New fix.
9698         * fixinc/fixlib.c (mn_get_regexps): New helper function for
9699         the machine_name test and fix.
9700         * fixinc/fixlib.h: Prototype it.
9701         * fixinc/inclhack.def (machine_name): Use the C test and fix.
9702         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
9703
9704         * gcc.c (do_spec_1) [case P]: Take care not to create
9705         identifiers with three leading or trailing underscores.
9706
9707         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
9708         (fixincl): Don't specify libraries twice on link line.
9709         (gnu-regex.o): Remove special rule.
9710         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
9711         defined by config.h.  Do not define _REGEX_RE_COMP.
9712         (regcomp): Allocate and initialize a fastmap.
9713         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
9714
9715 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
9716
9717         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
9718
9719 2000-01-19  Richard Henderson  <rth@cygnus.com>
9720
9721         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
9722         arguments with BB.  Update all callers.  Tidy line wrapping.
9723
9724 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
9725
9726         * emit-rtl.c (try_split): Return last_insn if we split the
9727         last_insn.
9728
9729 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
9730
9731         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
9732         (ix86_initial_elimination_offset): Declare.
9733         * i386.c (ix86_nsaved_regs): Break out from ...
9734         (ix86_can_use_return_insn_p): ... here.
9735         (ix86_emit_save_regs): Break out from ...
9736         (ix86_expand_prologue): ... here.
9737         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
9738         out from ...
9739         (ix86_expand_epilogue): ... here.
9740         (ix86_compute_frame_size): Make static, add prototype.
9741         (ix86_initial_elimination_offset): Break out from ...
9742         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
9743
9744 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9745
9746         * recog.h (OUT_FCN): Delete.
9747
9748         * vax.md: Call `get_insn_template' instead of OUT_FCN.
9749
9750 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9751
9752         * cppalloc.c: PROTO -> PARAMS.
9753         * cpperror.c: Likewise.
9754         * cppfiles.c: Likewise.
9755         * cpplib.c: Likewise.
9756         * cpplib.h: Likewise.
9757
9758         * config/arm/arm-protos.h: PROTO -> PARAMS.
9759         * config/arm/arm.c: Likewise.
9760         * config/c4x/c4x.c: Likewise.
9761         * config/fr30/fr30-protos.h: Likewise.
9762         * config/nextstep.c: Likewise.
9763         * config/pa/pa.c: Likewise.
9764         * config/pj/pj.c: Likewise.
9765         * config/rs6000/rs6000.c: Likewise.
9766         * config/v850/v850-protos.h: Likewise.
9767         * config/v850/v850.c: Likewise.
9768
9769 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9770
9771         * i370-protos.h: New file.
9772
9773         * i370.c: Include tm_p.h.  Fix compile time warnings.
9774
9775         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
9776         warnings.
9777
9778         * i370.md: Likewise.
9779
9780 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9781
9782         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
9783         (target_isinf, target_isnan, eisnan): Mark parameter with
9784         ATTRIBUTE_UNUSED.
9785         (eiisinf): Wrap in INFINITY.
9786         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
9787         (ibmtoe): Remove unused variable `rndsav'.
9788
9789 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9790
9791         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
9792         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
9793
9794 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
9795
9796         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
9797         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
9798         (fix_char_macro_defines, fix_char_macro_uses): New functions.
9799
9800         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
9801         Recognize Emacs mode markers also.
9802         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
9803         C++ comments in C++ headers.  Call is_cxx_header only if
9804         necessary.
9805
9806         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
9807         bypass for ncurses.
9808         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
9809         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
9810         ... these, which use the new C fixes.
9811         (math_exception): Escape literal '+' in bypass expression.
9812
9813         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
9814         Regenerate.
9815
9816 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
9817
9818         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
9819         inside the MEM.
9820
9821 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9822
9823         * loop.c (loop_optimize): Allocate loop_info structure for each loop
9824         prior to calling scan_loop.
9825
9826 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9827
9828         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
9829         (split_branches, calc_live_regs): Likewise.
9830
9831 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9832
9833         * sh.md (fpu_single, fp_mode): New attributes.
9834
9835 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9836
9837         * loop.c (current_loop_info): Renamed from loop_info_data
9838         and changed to a pointer.
9839         (loop_optimize): Allocate loop_info structure for each loop
9840         and initialise to zero.
9841         (scan_loop): Set current_loop_info.
9842
9843         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
9844         on iteration_var.
9845
9846 2000-01-19  Richard Henderson  <rth@cygnus.com>
9847
9848         * stupid.c: Die die die.
9849         * Makefile.in (OBJS): Remove stupid.o.
9850         (stupid.o): Likewise.
9851
9852         * except.c (emit_eh_context): Don't emit USEs for stupid.
9853         * explow.c (probe_stack_range): Likewise.
9854         * flags.h (obey_regdecls): Remove.
9855         * flow.c (find_basic_blocks): Don't run try_merge_blocks
9856         when not optimizing.
9857         (life_analysis): Limit data collection when not optimizing.
9858         (mark_regs_live_at_end): Always mark the return value registers.
9859         (mark_used_regs): Remove dummy RETURN case.
9860         (print_rtl_with_bb): Don't consult obey_regdecls.
9861         * function.c (use_variable, use_variable_after): Remove.
9862         (assign_parms): Consult optimize not obey_regdecls.
9863         (expand_function_start): Don't emit USEs for stupid.
9864         (expand_function_end): Likewise.
9865         * global.c (build_insn_chain): Export.
9866         * integrate.c (expand_inline_function): Kill return-value USE
9867         handling code.
9868         * jump.c (jump_optimize_1): Do simple jump optimizations and
9869         dead code elimination.
9870         (calculate_can_reach_end): Remove check_deleted argument.
9871         (delete_insn): Patch out insns even when not optimizing.
9872         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
9873         * rtl.h (use_variable, use_variable_after): Remove declarations.
9874         (build_insn_chain): Declare.
9875         * stmt.c (expand_value_return): Don't emit USEs for stupid.
9876         (expand_end_bindings): Likewise.
9877         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
9878         * toplev.c (obey_regdecls): Remove.
9879         (rest_of_compilation): Don't set it.  Kill stupid in favour of
9880         flow1, local-alloc, and reload.
9881         (main): Don't set obey_regdecls.
9882
9883         * config/nextstep.c (handle_pragma): Likewise.
9884
9885         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
9886
9887         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
9888
9889 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9890
9891         * alpha-protos.h: PROTO -> PARAMS.
9892         * alpha.c: Likewise.
9893         * elf.h: Likewise.
9894         * h8300.c: Likewise.
9895         * i386-protos.h: Likewise.
9896         * i386.c: Likewise.
9897         * m32r-protos.h: Likewise.
9898         * m32r.c: Likewise.
9899         * mips.c: Likewise.
9900         * mips.md: Likewise.
9901         * gmon-sol2.c: Likewise.
9902         * sparc.c: Likewise.
9903
9904 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9905
9906         * ns32k-protos.h: New file.
9907
9908         * ns32k.c: Fix compile time warnings.
9909
9910         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
9911         warnings.
9912
9913         * ns32k.md: Likewise.
9914
9915 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9916
9917         * vax-protos.h: New file.
9918
9919         * vax.c: Fix compile time warnings.
9920
9921         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
9922         warnings.
9923
9924         * vax.md: Likewise.
9925
9926         * vaxv.md: Likewise.
9927
9928 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9929
9930         * romp-protos.h: New file.
9931
9932         * romp.c: Fix compile time warnings.
9933
9934         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
9935         warnings.
9936
9937         * romp.md: Likewise.
9938
9939 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9940
9941         * we32k-protos.h: New file.
9942
9943         * we32k.c: Fix compile time warnings.
9944
9945         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
9946         warnings.
9947
9948 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9949
9950         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
9951
9952         * except.c (eh_regs): Likewise.
9953
9954         * final.c (output_operand): Likewise.
9955
9956         * fold-const.c (target_isinf, target_isnan): Likewise.
9957
9958 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
9959
9960         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
9961         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
9962
9963         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
9964         when optimize_size.
9965         (clrstrsi): Rewrite.
9966         (strsethi, strsetqi): New expanders.
9967         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
9968         (cmpstrsi): Emit compare insn before cmpstrsi_1
9969         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
9970         (strlensi_1): Likewise.
9971         (cmpstrsi_1): Likewise; do not output compare.
9972         (strlen expander): Do not unroll when optimizing for size.
9973         (*subsi3_carry): Rename to subsi3_carry
9974         (addqi3_cc): New pattern.
9975         * i386.h (processor_costs): Add move_ratio field.
9976         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
9977         * i386.c (*_cost): Set move_ratio.
9978         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
9979         (x86_expand_strlensi_1): Rewrite the main loop.
9980
9981 2000-01-17  Richard Henderson  <rth@cygnus.com>
9982
9983         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
9984         * cse.c (find_comparison_args, fold_rtx): Likewise.
9985         * integrate.c (subst_constants): Likewise.
9986         * loop.c (get_condition): Likewise.
9987
9988         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
9989
9990         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
9991
9992 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9993
9994         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
9995         (RESTORE_WARN_FLAGS): Unpack it.
9996         Change semantic type of extension to ttype.
9997         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
9998         * c-parse.y, c-parse.c, objc/objc-parse.y,
9999         objc/objc-parse.c: Regenerate.
10000
10001 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
10002
10003         * fixinc/fixlib.c: Add copyright notice.
10004         (compile_re): New function.
10005         * fixinc/fixlib.h: Prototype compile_re.
10006
10007         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
10008         Use compile_re to compile regular expressions.
10009
10010         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
10011         where the pattern matched.
10012
10013         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
10014         use 'replace'.
10015         (ultrix_ansi_compat): Likewise.
10016         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
10017         add egrep test.
10018         (interactv_add2, interactv_add3): Delete.
10019         (x11_sprintf): Don't use filename glob.
10020         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
10021         Regenerate.
10022
10023 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10024
10025         * print-rtl.c: PROTO -> PARAMS.
10026         * real.c: Likewise.
10027         * reg-stack.c: Likewise.
10028         * resource.c: Likewise.
10029         * sdbout.h: Likewise.
10030         * simplify-rtx.c: Likewise.
10031         * stor-layout.c: Likewise.
10032         * stupid.c: Likewise.
10033         * xcoffout.c: Likewise.
10034         * xcoffout.h: Likewise.
10035
10036 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10037
10038         * toplev.c: PROTO -> PARAMS.
10039         * toplev.h: Likewise.
10040         * tree.c: Likewise.
10041         * tree.h: Likewise.
10042         * unroll.c: Likewise.
10043         * varasm.c: Likewise.
10044         * varray.c: Likewise.
10045         * varray.h: Likewise.
10046
10047 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10048
10049         * reload.c: PROTO -> PARAMS.
10050         * reload.h: Likewise.
10051         * reload1.c: Likewise.
10052         * reorg.c: Likewise.
10053         * resource.h: Likewise.
10054         * rtl.c: Likewise.
10055         * rtl.h: Likewise.
10056         * rtlanal.c: Likewise.
10057         * sbitmap.h: Likewise.
10058         * sdbout.c: Likewise.
10059         * stack.h: Likewise.
10060         * stmt.c: Likewise.
10061         * system.h: Likewise.
10062
10063 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10064
10065         * machmode.h: PROTO -> PARAMS.
10066         * mbchar.h: Likewise.
10067         * mips-tdump.c: Likewise.
10068         * mips-tfile.c: Likewise.
10069         * optabs.c: Likewise.
10070         * output.h: Likewise.
10071         * prefix.c: Likewise.
10072         * profile.c: Likewise.
10073         * protoize.c: Likewise.
10074         * real.h: Likewise.
10075         * recog.c: Likewise.
10076         * recog.h: Likewise.
10077         * regclass.c: Likewise.
10078         * regmove.c: Likewise.
10079         * regs.h: Likewise.
10080
10081 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10082
10083         * ggc-common.c: PROTO -> PARAMS.
10084         * ggc-page.c: Likewise.
10085         * ggc-simple.c: Likewise.
10086         * ggc.h: Likewise.
10087         * global.c: Likewise.
10088         * graph.c: Likewise.
10089         * gthr-win32.h: Likewise.
10090         * haifa-sched.c: Likewise.
10091         * halfpic.h: Likewise.
10092         * integrate.c: Likewise.
10093         * integrate.h: Likewise.
10094         * jump.c: Likewise.
10095         * lcm.c: Likewise.
10096         * local-alloc.c: Likewise.
10097         * loop.c: Likewise.
10098         * loop.h: Likewise.
10099
10100 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10101
10102         * genattr.c: PROTO -> PARAMS.
10103         * genattrtab.c: Likewise.
10104         * gencheck.c: Likewise.
10105         * gencodes.c: Likewise.
10106         * genconfig.c: Likewise.
10107         * genemit.c: Likewise.
10108         * genextract.c: Likewise.
10109         * genflags.c: Likewise.
10110         * gengenrtl.c: Likewise.
10111         * genopinit.c: Likewise.
10112         * genoutput.c: Likewise.
10113         * genpeep.c: Likewise.
10114         * genrecog.c: Likewise.
10115
10116 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
10117
10118         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
10119
10120 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10121
10122         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
10123         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
10124         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
10125         * configure, config.in: Rebuilt.
10126
10127 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
10128
10129         * config/i386/i386.md: Add peephole to merge successive stack
10130         adjusts.
10131
10132 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
10133
10134         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
10135         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
10136         when walking backwards to find all the parameter loads when
10137         the basic block ends in a call.
10138
10139 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10140
10141         * loop.c (this_loop_info): Delete.
10142         (uid_loop): Add in place of uid_loop_num.  All uses updated.
10143         (loop_number_exit_count): Delete and replace with entry in loop
10144         structure.  All uses updated.
10145         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
10146         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
10147         (loop_outer_loop): Likewise.
10148         (loop_invalid, loop_number_exit_labels): Likewise.
10149         (loop_used_count_register): Delete and replace with entry in
10150         loop_info structure.
10151         (find_and_verify_loops): Add loops argument.
10152         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
10153         loop_end, etc. arguments with loop structure pointer.  All callers
10154         changed.
10155         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
10156         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
10157         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
10158         (insert_bct): Likewise.
10159         (basic_induction_var): New argument level.
10160         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
10161         vtop, and cont.  Add used_count_register.
10162         (uid_loop): Delete declaration.
10163         (loop_number_exit_count): Likewise.
10164         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
10165         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
10166         (loop_outer_loop, loop_used_count_register): Likewise.
10167         (loop_invalid, loop_number_exit_labels): Likewise.
10168         (unroll_loop): Replace loop_start and loop_end arguments
10169         with loop structure pointer.
10170         (loop_precondition_p, loop_iterations): Likewise.
10171         Include basic-block.h.
10172         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
10173         with loop structure pointer.
10174         (loop_precondition_p, loop_iterations): Likewise.
10175         * basic-block.h (struct loop): New entries vtop, cont,
10176         cont_dominator, start, end, top, scan_start, exit_labels,
10177         exit_count.
10178         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
10179
10180 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10181
10182         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
10183
10184 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
10185
10186         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
10187
10188 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10189
10190         * pdp11-protos.h: New file.
10191
10192         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
10193         time warnings.
10194
10195         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
10196         warnings.
10197
10198         * pdp11.md: Likewise.
10199
10200         * 2bsd.h: Likewise.
10201
10202 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10203
10204         * mn10300-protos.h: New file.
10205
10206         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
10207         time warnings.
10208
10209         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
10210         warnings.
10211
10212         * mn10300.md: Likewise.
10213
10214 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10215
10216         * mn10200-protos.h: New file.
10217
10218         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
10219         time warnings.
10220
10221         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
10222         warnings.
10223
10224         * mn10200.md: Likewise.
10225
10226 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10227
10228         * h8300-protos.h: New file.
10229
10230         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
10231         time warnings.
10232
10233         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
10234         warnings.
10235
10236         * h8300.md: Likewise.
10237
10238 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10239
10240         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
10241         (asm_emit_uninitialised): Likewise.
10242
10243 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
10244
10245         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
10246         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
10247
10248 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10249
10250         * config/mips/mips.c (override_options): Don't turn on extra
10251         alignment for mips16.
10252
10253 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10254
10255         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
10256         eabi, and make sure queued POSTINCREMENT rtl is emitted at
10257         the right point.
10258
10259 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10260
10261         * builtins.c (PAD_VARARGS_DOWN): Define.
10262         (std_expand_builtin_va_arg): Use the above macro.
10263         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
10264         * tm.texi (Register Arguments): Document the above macro.
10265
10266 2000-01-14  Nick Clifton  <nickc@cygnus.com>
10267
10268         * emit-rtl.c (emit_insn): If checking is enabled, make sure
10269         that this function has not been used to emit a jump
10270         instruction.
10271
10272         * jump.c (return_jump_1): Cope with being passed a null rtx.
10273
10274 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10275
10276         * eh-common.h: PROTO -> PARAMS.
10277         * emit-rtl.c: Likewise.
10278         * errors.c: Likewise.
10279         * errors.h: Likewise.
10280         * except.c: Likewise.
10281         * except.h: Likewise.
10282         * explow.c: Likewise.
10283         * expmed.c: Likewise.
10284         * expr.c: Likewise.
10285         * expr.h: Likewise.
10286         * final.c: Likewise.
10287         * fix-header.c: Likewise.
10288         * flow.c: Likewise.
10289         * fold-const.c: Likewise.
10290         * function.c: Likewise.
10291         * function.h: Likewise.
10292         * gcc.c: Likewise.
10293         * gcov-io.h: Likewise.
10294         * gcov.c: Likewise.
10295         * gcse.c: Likewise.
10296
10297 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10298
10299         * sh-protos.h: New file.
10300
10301         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
10302         Add static prototypes.  Fix compile time warnings.
10303
10304         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
10305         * sh.md: Likewise.
10306         * elf.h: Likewise.
10307
10308 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10309
10310         * arc-protos.h: New file.
10311
10312         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
10313         time warnings.
10314
10315         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
10316         warnings.
10317
10318         * arc.md: Likewise.
10319
10320 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10321
10322         * dsp16xx-protos.h: New file.
10323
10324         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
10325         time warnings.
10326
10327         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
10328         warnings.
10329
10330         * dsp16xx.md: Likewise.
10331
10332 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10333
10334         * convex-protos.h: New file.
10335
10336         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
10337         time warnings.
10338
10339         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
10340         warnings.
10341
10342 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10343
10344         * elxsi-protos.h: New file.
10345
10346         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
10347         time warnings.
10348
10349         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
10350         warnings.
10351
10352         * elxsi.md: Likewise.
10353
10354 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10355
10356         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
10357         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
10358         match the comment for MIPS16.
10359
10360 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
10361
10362         * flow.c (split_edge): Do not call set_block_for_insn if we
10363         do not have a basic_block_for_insn structure.
10364
10365         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
10366         and destination functions are 32bit aligned within the trampoline.
10367         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
10368         (TRAMPOLINE_ALIGNMENT): Define.
10369
10370         * cse.c (cse_insn): When changing (set (pc) (reg)) to
10371         (set (pc) (label_ref)), verify the change creates a valid insn.
10372
10373         * fr30.c (call_operand): Tighten and rework to match rules for
10374         call RTL expressions.
10375         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
10376         * fr30.md (call patterns): Improve constraints.
10377
10378 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
10379
10380         * fr30.c (fr30_expand_epilogue): Revert last change.
10381         Use emit_jump_insn for the return insn.
10382
10383 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
10384                           Stan Cox  <scox@cygnus.com>
10385
10386         * predict.c: New file. Preliminary infrastructure work for static
10387         branch prediction and basic block reordering.
10388         * basic-block.h: Add prototype for estimate_probability.
10389         * Makefile.in: Add rules for predict.o.
10390
10391 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
10392
10393         * fixincludes (va_list): Use __not_va_list__ for the dummy.
10394         * fixinc/*: Likewise.
10395
10396 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10397
10398         * cccp.c: PROTO -> PARAMS.
10399         * cexp.y: Likewise.
10400         * collect2.c: Likewise.
10401         * combine.c: Likewise.
10402         * convert.h: Likewise.
10403         * cse.c: Likewise.
10404         * dbxout.c: Likewise.
10405         * dbxout.h: Likewise.
10406         * diagnostic.c: Likewise.
10407         * doprint.c: Likewise.
10408         * dwarf2out.c: Likewise.
10409         * dwarf2out.h: Likewise.
10410         * dwarfout.c: Likewise.
10411         * dwarfout.h: Likewise.
10412         * dyn-string.h: Likewise.
10413
10414 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10415
10416         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
10417         macro conditionals guarding use.
10418
10419         * dwarf2out.c: Include "tm_p.h".
10420
10421         * function.c (locate_and_pad_parm): Mark parameter with
10422         ATTRIBUTE_UNUSED.
10423         (expand_function_end): Likewise for variable `context'.
10424
10425         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
10426
10427 2000-01-13  Nick Clifton  <nickc@cygnus.com>
10428
10429         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
10430         register to prevent compile time warnings.
10431
10432 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
10433
10434         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
10435         to avoid -Wtraditional warning.
10436
10437 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10438
10439         * 1750a-protos.h: New file.
10440
10441         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
10442         time warnings.
10443
10444         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
10445         warnings.
10446
10447         * 1750a.md: Likewise.
10448
10449 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10450
10451         * a29k-protos.h: New file.
10452
10453         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
10454         time warnings.
10455
10456         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
10457         warnings.
10458
10459 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10460
10461         * clipper-protos.h: New file.
10462
10463         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
10464         time warnings.
10465
10466         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
10467         warnings.
10468
10469 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10470
10471         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
10472
10473 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
10474
10475         * configure.in (--enable-new-gxx-abi): New option.
10476         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
10477         * Makefile.in (GXX_ABI_FLAG): New variable.
10478         * configure: Regenerate.
10479
10480 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10481
10482         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
10483         * tm.texi (FORCE_STRUCT_BLK): Document.
10484         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
10485
10486 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
10487
10488         * config/ns32k/ns32k.md: Revert Jan 9 change.
10489
10490         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
10491         to a mode-test, if the predicate is address_operand.
10492
10493 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
10494
10495         * combine.c (if_then_else_cond): Be careful about what kinds
10496         of RTL expressions are passed to operand_subword.
10497
10498         * flow.c (split_edge): If we have to insert a new jump, make
10499         sure to associate it with a basic block.
10500
10501         * flow.c (commit_one_edge_insertion): A block with one successor
10502         can end in a JUMP_INSN that is not a simplejump.
10503
10504 2000-01-12  Robert Lipe  <robertl@sco.com>
10505
10506         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
10507         (BUILD_VA_LIST_TYPE): Define.
10508         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
10509         with crtstuff.c.
10510
10511 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
10512
10513         * cccp.c (do_pragma): Add cast to (char *).
10514
10515 2000-01-12  Richard Henderson  <rth@cygnus.com>
10516             Fred Fish  <fnf@be.com>
10517             Jason Merrill  <jason@cygnus.com>
10518
10519         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
10520         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
10521         * i386/beos-elf.h, i386/beos-pe.h: New files.
10522
10523         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
10524         * cross-make (SYSTEM_HEADER_DIR): Define using
10525         CROSS_SYSTEM_HEADER_DIR.
10526
10527         * gcc.c (LIBRARY_PATH_ENV): Provide default.
10528         (process_command): Use it.
10529         (main): Likewise.  Kill trailing = from env vars.
10530         (build_search_list): Put it back.
10531         * collect2.c (main): Use LIBRARY_PATH_ENV.
10532
10533         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
10534         * toplev.c: Use NEED_DECLARATION_ENVIRON.
10535
10536         * tm.texi (Frame Layout): Document SMALL_STACK.
10537         * c-common.c (c_common_nodes_and_builtins): Check it.
10538
10539         * system.h: Undef alloca after including glibc's <stdlib.h>,
10540         if USE_C_ALLOCA is defined.
10541
10542         * gcc.c (set_input): New fn.
10543         (main): After all input files are compiled, reset the input file
10544         info to the first.
10545
10546         * aclocal.m4 (rindex, index): If already defined, don't attempt
10547         to redefine.
10548
10549         * ginclude/varargs.h: (__va_list__): Define ifndef.
10550         * ginclude/stdarg.h: Likewise.
10551
10552         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
10553         instead of unsigned char.
10554
10555         * hash.h (true, false, boolean): Undef before enum.
10556
10557         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
10558         proper type of "HOST_WIDE_INT *", rather than their natural type of
10559         "unsigned HOST_WIDE_INT *".
10560
10561 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10562
10563         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
10564
10565         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
10566
10567         * regclass.c (choose_hard_reg_mode): Likewise.
10568
10569         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
10570
10571         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
10572
10573 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10574
10575         * c-common.c: PROTO -> PARAMS.
10576         * c-common.h: Likewise.
10577         * c-decl.c: Likewise.
10578         * c-iterate.c: Likewise.
10579         * c-lang.c: Likewise.
10580         * c-lex.c: Likewise.
10581         * c-lex.h: Likewise.
10582         * c-parse.in: Likewise.
10583         * c-pragma.c: Likewise.
10584         * c-pragma.h: Likewise.
10585         * c-tree.h: Likewise.
10586         * c-typeck.c: Likewise.
10587         * objc/objc-act.c: Likewise.
10588         * objc/objc-act.h: Likewise.
10589
10590 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10591
10592         * m88k-protos.h: New file.
10593
10594         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
10595         time warnings.
10596
10597         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
10598
10599         * m88k.md: Likewise.
10600
10601         * tekXD88.h: Likewise.
10602
10603 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10604
10605         * m68k-protos.h: New file.
10606
10607         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
10608         time warnings.
10609
10610         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
10611
10612         * mot3300.h: Likewise.
10613
10614 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
10615
10616         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
10617         extract_bitlst.
10618         (extract_bitlist): Declare bitlen.
10619
10620 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
10621
10622         * cccp.c: Accept and ignore -lang-fortran.
10623
10624         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
10625         qualifiers don't match at any level of pointerness.
10626
10627 2000-01-12  Robert Lipe  <robertl@sco.com>
10628
10629         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
10630
10631 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
10632
10633         * reload1.c (reload_reg_unavailable): New static variable.
10634         (reload_reg_free_p): Test it.
10635         (reload_reg_free_for_value_p): Test it instead of
10636         reload_reg_used.
10637         (choose_reload_regs_init): Compute it.
10638
10639 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
10640
10641         * reorg.c (fill_slots_from_thread): Check modified_in_p
10642         before replacing.
10643
10644 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
10645
10646         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
10647         these nodes even if INTERNALS is not set.
10648
10649 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
10650
10651         * gcse.c (delete_null_pointer_checks_1): Cope when
10652         get_condition cannot determine the condition.
10653
10654 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
10655
10656         * toplev.h (set_message_length): Declare.
10657
10658         * diagnostic.c (obstack_chunk_alloc): Define macro.
10659         (obstack_chunk_free): Likewise.
10660         (struct output_buffer): New data structure.
10661         (vmessage): Remove.
10662         (output_maximum_width): New variable.
10663         (doing_line_wrapping, set_message_length, init_output_buffer,
10664         get_output_prefix, output_space_left, emit_output_prefix,
10665         output_newline, output_append, output_puts, dump_output,
10666         vbuild_message_string, build_message_string, build_location_prefix,
10667         voutput_notice, output_printf, line_wrapper_printf,
10668         vline_wrapper_message_with_location):  New functions. Implement
10669         automatic line wrapping.
10670         (v_message_with_decl): Make it handle automatic line wrapping.
10671         (v_error_with_file_and_line): Likewise.
10672         (v_warning_with_file_and_line): Likewise.
10673         (announce_function): Likewise.
10674         (default_print_error_function): Likewise.
10675
10676 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
10677
10678         * cpplib.h (struct cpp_options): Change lang_asm to char.
10679         Add lang_fortran.
10680         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
10681         done in cpp_handle_option now.
10682         (initialize_builtins): Take out special case code used only by
10683         __STDC_VERSION__.
10684         (cpp_handle_option): Turn off trigraphs and trigraph warnings
10685         if -traditional.  Recognize -lang-fortran and set
10686         lang_fortran, also turn off cplusplus_comments.
10687         (print_help): Document -lang-fortran.
10688         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
10689         lang_asm. Ignore all directives other than `# 123 "file"' if
10690         CPP_PREPROCESSED.
10691         (cpp_get_token): If -traditional, don't recognize directives
10692         unless the # is in column 1.
10693         (parse_string): If lang_fortran or lang_asm, silently
10694         terminate strings ('' or "") at end of line.
10695         Remove unnecessary braces.
10696
10697 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10698             Richard Henderson  <rth@cygnus.com>
10699
10700         * resource.c (mark_referenced_resources): Mark a set strict_low_part
10701         as used.
10702         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
10703         strict_low_part when possible.
10704
10705 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10706
10707         * alias.c: PROTO -> PARAMS.
10708         * basic-block.h: Likewise.
10709         * bitmap.c: Likewise.
10710         * bitmap.h: Likewise.
10711         * builtins.c: Likewise.
10712         * c-aux-info.c: Likewise.
10713         * caller-save.c: Likewise.
10714         * calls.c: Likewise.
10715
10716 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10717
10718         * Makefile.in (toplev.o): Depend on regs.h.
10719
10720         * output.h (tdesc_section): Prototype.
10721
10722         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
10723
10724         * sdbout.c: Include "tm_p.h".
10725
10726         * toplev.c: Include "regs.h".
10727
10728 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
10729
10730         * unroll.c (unroll_loop): Add EH support.
10731
10732 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10733
10734         * pa-protos.h: New file.
10735
10736         * pa.c: Include recog.h and tm_p.h.
10737         (compute_zdepwi_operands, compute_movstrsi_length,
10738         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
10739         find_addr_reg, import_milli): Add static prototypes.
10740         (pa_cpu_string, pa_arch_string): Constify a char*.
10741         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
10742         (read_only_operand): Add argument `mode'.
10743         (singlemove_string, output_move_double, output_fp_move_double,
10744         output_block_move, output_and, output_ior, output_ascii,
10745         remove_useless_addtr_insns, milli_names, output_mul_insn,
10746         output_div_insn, output_mod_insn, output_arg_descriptor,
10747         output_cbranch, output_bb, output_bvb, output_dbra, ,
10748         output_millicode_call, output_call, hppa_encode_label,
10749         output_parallel_movb, output_parallel_addb): Constify a char*.
10750         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
10751         (output_parallel_addb): Remove extra arg to `constrain_operands'
10752
10753         * pa.h:  Move all prototypes to pa-protos.h.
10754         (pa_cpu_string, pa_arch_string): Constify a char*.
10755         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
10756
10757         * pa.md: Call `function_label_operand' with mode argument.
10758         Likewise for `read_only_operand'.
10759         Fix nesting of parens in call to `symbolic_operand'.
10760
10761 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10762
10763         * i860-protos.h: New file.
10764
10765         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
10766         time warnings.
10767
10768         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
10769
10770         * i860.md: Likewise.
10771
10772 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
10773
10774         * i386.md (movstrsi expander): Rewrite.
10775         (movstrsi_1 insn): Deleted.
10776         (strmovhi, strmovqi expander): New expanders.
10777         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
10778         * i386.c (x86_single_stringop): New global variable.
10779         * i386.h (x86_single_stringop): Declare.
10780         (TARGET_SINGLE_STRINGOP): New macro.
10781
10782 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
10783
10784         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
10785         integer vararg POSTINCREMENT before the destination of the jump
10786         for the hard fp case.
10787         (function_arg_pass_by_reference): Pass a copy of CUM to
10788         FUNCTION_ARG.
10789
10790         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
10791         for CONSTANT_ADDRESS_P above while loop for subreg.
10792
10793 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
10794
10795         * flow.c (propagate_block): When a prologue/epilogue insn
10796         is marked dead, unconditionally clear libcall_is_dead and
10797         insn_is_dead, and only dump rtl if warnings aren't being
10798         suppressed.
10799
10800 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
10801
10802         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
10803         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
10804         (FIXED_REGISTERS): Set dirflag as fixed.
10805         (CALL_USED_REGISTERS): Set dirflag as used.
10806         (REG_ALLOC_ORDER): Set dirflag as last one.
10807         (DIRFLAG_REG): New macro.
10808         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
10809         (HI_REGISTER_NAMES): Add dirflag.
10810         (DEBUF_PRINT_REG): Handle dirflag.
10811         * i386.md (type attribute): New cld and str types.
10812         (length_opcode attribute): Set cld and str to 1.
10813         (memory attribute): Set str to unknown - it is not clear from the
10814         patterns.
10815         (pent_np function unit): Prefixed string operations takes 12 cycles
10816         minimally; cld takes 2 cycles.
10817         (ppro_uops attribute): Str is "many" and cld is "few".
10818         (ppro_p0 unit): Handle cld here.
10819         (k6_alux unit): Handle cld and str types.
10820         (k6_load unit): It is ocupied by str opcodes.
10821         (k6_store unit): It is ocupied by str opcodes.
10822         (athlon_decode): Str is vector decoded.
10823         (athlon_ieu): Handle str and cld.
10824         (cld pattern): New.
10825         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
10826         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
10827         cmpstrsi_nz_1 insn): Do not output cld instruction
10828
10829 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
10830
10831         * gcc.texi (G++ and GCC): Add Java and Chill.
10832         (Bug Critera): Don't list languages.
10833
10834         * gcc.texi (Incompatibilities): No longer claim most C compilers
10835         are K&R.
10836
10837         * gcc.texi (G++ and GCC): Update other front-ends list.
10838
10839 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
10840
10841         * i386.c (ix86_expand_setcc): Fix typo.
10842         (ix86_expand_movcc): Similarly.
10843
10844         * Band-aid until haifa's bitset implementation is nuked.
10845         * haifa-sched.c (extract_bitlst): New parameter for size of the
10846         bitset in bits.  All callers changed.  Avoid looking at undefined
10847         bits in the bitset.
10848         (edgeset_bitsize): New variable.
10849         (schedule_region): Initialize edgeset_bitsize.
10850
10851 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10852
10853         * Makefile.in (optabs.o): Depend on real.h
10854         (resource.o): Depend on insn-attr.h
10855
10856         * builtins.c (result_vector): Wrap prototype in macro conditions
10857         governing definition and use.
10858
10859         * c-common.c: Include tm_p.h.
10860
10861         * c-lex.c: Likewise.
10862
10863         * elfos.h: Constify a char*.
10864
10865         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
10866         (get_attr_length, shorten_branches, profile_after_prologue): Mark
10867         parameter with ATTRIBUTE_UNUSED.
10868
10869         * fold-const.c (exact_real_inverse): Wrap variable `i' in
10870         CHECK_FLOAT_VALUE.
10871
10872         * haifa-sched.c (schedule_insns): Mark parameter with
10873         ATTRIBUTE_UNUSED.
10874
10875         * optabs.c: Include real.h.
10876
10877         * real.h (ereal_atof): Add prototype arguments.
10878
10879         * resource.c: Include insn-attr.h.
10880
10881         * sdbout.c (sdbout_queue_anonymous_type,
10882         sdbout_dequeue_anonymous_types): Wrap in macro
10883         SDB_ALLOW_FORWARD_REFERENCES.
10884         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
10885         ATTRIBUTE_UNUSED.
10886
10887         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
10888
10889         * stupid.c: Include tm_p.h.
10890
10891         * tree.c (real_value_from_int_cst): Mark parameter with
10892         ATTRIBUTE_UNUSED.
10893
10894 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10895
10896         * i960-protos.h: New file.
10897
10898         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
10899         time warnings.
10900
10901         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
10902
10903 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10904
10905         * combine.c (expand_field_assignment): Do not discard SUBREGs
10906         while computing nonzero_bits.
10907
10908 2000-01-09  Nick Clifton  <nickc@cygnus.com>
10909
10910         * config/arm/arm.c: Fix compile time warnings about signed vs
10911         unsigned constants.
10912         * config/arm/arm.h: Fix compile time warnings about signed vs
10913         unsigned constants.
10914
10915 2000-01-09  Philip Blundell  <philb@gnu.org>
10916
10917         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
10918         than `ldm' with only one register.
10919         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
10920         only one register.
10921
10922         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
10923         clobbered.
10924
10925 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
10926
10927         * config/ns32k/ns32k.md (load or push effective address): Operand 1
10928         must have SImode.
10929
10930 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10931
10932         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
10933         assignment used as truth value.
10934
10935         * function.c (assign_temp): Mark parameter `dont_promote' with
10936         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
10937         PROMOTE_FOR_CALL_ONLY.
10938
10939         * genrecog.c (write_subroutine): Mark variable `operands' with
10940         ATTRIBUTE_UNUSED.
10941
10942         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
10943         ATTRIBUTE_UNUSED.
10944
10945         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
10946         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
10947
10948         * toplev.c (note_deferral_of_defined_inline_function): Likewise
10949         for `decl'.
10950
10951 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10952
10953         * config/c4x.h: Tidy up comments.
10954         * config/c4x.c: Likewise.
10955
10956 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
10957
10958         * fold-const.c (lshift_double, rshift_double): Handle
10959         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
10960
10961 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10962
10963         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
10964         in prepare_function_start().
10965
10966 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
10967
10968         * config/v850/v850.c (expand_epilogue): Interrupt functions no
10969         longer allocate extra stack for function calls.
10970
10971 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10972
10973         * config/c4x/c4x.md (*subqf3_set): Fix typo.
10974
10975 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10976
10977         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
10978
10979 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
10980
10981         * rs6000.c (processor_target_table): Add power3 as alias for 630.
10982         * aix43.h: Revert Aug 2 change.
10983         (HAS_INIT_SECTION): Define, not visible yet.
10984         (LD_INIT_SWITCH): Define, not visible yet.
10985         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
10986
10987         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
10988
10989         * collect2.c (main): Expand ld2 size further.
10990         (export_object_lst): Cast assignment to avoid warning.
10991         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
10992         (scan_prog_file, COFF): Do not collect initialization or
10993         finalization functions generated for entire shared object if
10994         init/fini support present.
10995
10996 2000-01-07  Nick Clifton  <nickc@cygnus.com>
10997
10998         * config/elfos.h: Tidy up formatting of marcos.  Make sure
10999         that .section directives are always prefixed by a tab.
11000
11001         * config/svr4.h: Add #include "elfos.h" and remove duplicate
11002         definitions.
11003
11004 2000-01-07  Matt Austern  <austern@sgi.com>
11005
11006         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
11007         expon.
11008
11009 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
11010
11011         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
11012         crtstuff.c.
11013         (crtbegin.o, s-crtS): Likewise.
11014
11015 2000-01-06  Richard Henderson  <rth@cygnus.com>
11016
11017         * alpha.md (adddi_2+1): Limit offset such that it will be
11018         loadable with a single ldah+lda pair.
11019         (adddi_2+2): Explicitly fail split if we can't make it work.
11020
11021 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
11022
11023         * protoize.c: Conditionally include unistd.h.
11024         (IS_SAME_PATH_CHAR): New macro.
11025         (IS_SAME_PATH): New macro.
11026         (CPLUS_FILE_SUFFIX): New macro.
11027         (cplus_suffix): New static variable.
11028         (is_abspath): New static function.
11029         (in_system_include_dir): Handle DOS style pathnames.
11030         (file_could_be_converted): Likewise.
11031         (file_normally_convertible): Likewise.
11032         (directory_specified_p): Likewise.
11033         (file_excluded_p): Likewise.
11034         (abspath): Likewise.
11035         (shortpath): Likewise.
11036         (referenced_file_is_newer): Likewise.
11037         (save_def_or_dec): Likewise.
11038         (do_processing): Likewise.
11039         (main): Likewise.
11040         (edit_file): Likewise. Use rename instead of link.
11041         (rename_c_file): Likewise. Don't rename syscalls file.
11042         (munge_compile_params): Define null device for DOS based systems.
11043         (process_aux_info_file): Use binary mode if appliable.
11044         (edit_file): Likewise.
11045         * invoke.texi (Running Protoize): Document C++ suffixes used.
11046
11047         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
11048         IS_DIR_SEPARATOR macros.
11049         * collect2.c: Likewise.
11050         * cppinit.c: Likewise.
11051         * dwarf2out.c: Likewise.
11052         * gcc.c: Likewise.
11053         * gcov.c: Likewise.
11054         * prefix.c: Likewise.
11055         * rtl.c: Likewise.
11056         * toplev.c: Likewise.
11057         * system.h: And move to here.
11058
11059         * prefix.c (update_path): Fix typo in variable name.
11060
11061 2000-01-06  Richard Henderson  <rth@cygnus.com>
11062
11063         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
11064         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
11065         (count_reg_sets_1, count_reg_references): Likewise.
11066         (flow_loops_level_compute): Start counting actual loop depth at 1.
11067         (flow_loops_find): Likewise.
11068         * local-alloc.c (update_equiv_regs): Likewise.
11069         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
11070
11071 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
11072
11073         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
11074         FIRST_PSEUDO_REGISTER
11075         * dwarf2out.c: Don't include frame.h
11076         * dwarfout.c: Likewise
11077         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
11078         frame.h
11079
11080 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
11081
11082         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
11083         dead registers.
11084
11085         * i386.c (movsf splitter): Fix typo in my last checkin.
11086
11087 2000-01-05  Nick Clifton  <nickc@cygnus.com>
11088
11089         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
11090         own definition of this macro.
11091         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
11092         flag_data_sections or UNIQUE_SECTION_P are true.
11093
11094         * tm.texi (UNIQUE_SECTION): Document that it can be called for
11095         unitialised data decls.
11096
11097         * config/i386/winnt.c (i386_pe_unique_section): Cope with
11098         being called for uninitialised data.
11099
11100         * config/i386/interix.c (i386_pe_unique_section): Cope with
11101         being called for uninitialised data.
11102
11103         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
11104         for uninitialised data.
11105
11106         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
11107         for uninitialised data.
11108
11109         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
11110         for uninitialised data.
11111
11112         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
11113         (UNIQUE_SECTION_P): Always generate a unique section if
11114         flag_data_sections is true.
11115         (UNIQUE_SECTION): Also generate unique sections for
11116         uninitialised data.
11117         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
11118         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
11119         named_section().
11120
11121 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11122
11123         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
11124         SI, or DI.
11125
11126 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11127
11128         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
11129         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
11130         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
11131         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
11132         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
11133
11134         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
11135
11136 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
11137
11138         * c-decl.c (finish_enum): Simplify code to determine minimum and
11139         maximum values of the enum, and calculate the type.  Remove check
11140         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
11141         the DECL_INITIAL of each enumeration constant with a copy converted
11142         to the enumeration type.  When updating variant types, don't bother
11143         updating the type itself.
11144
11145         * c-typeck.c (build_binary_op): Simplify conditional expressions
11146         when weeding out spurious signed-unsigned warnings.  Add new
11147         spurious warning category: if the unsigned quantity is an enum
11148         and its maximum value fits in signed_type(result_type).  Update
11149         commentary.
11150         (build_conditional_expr): Warn here if one alternative is signed
11151         and the other is unsigned.
11152
11153 2000-01-05  Nick Clifton  <nickc@cygnus.com>
11154
11155         * config/fr30/fr30.h: Remove extraneous comments.
11156
11157 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
11158
11159         * reload1.c (choose_reload_regs): When disabling a reload, also
11160         set reload_spill_index to -1.
11161
11162 2000-01-04  Joel Sherrill (joel@OARcorp.com>
11163
11164         * configure.in (m68*-*-rtemscoff*): New target, formal name for
11165         old m68*-*-rtems*.
11166         (m68*-*-rtemself*): New target.
11167         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
11168         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
11169         (sparc*-*-rtemself*): New target.
11170         (sparc*-*-rtems*): Now elf not a.out.
11171         * config/i386/rtems.h: Include config/rtems.h.
11172         * config/i386/rtemself.h: Include config/rtems.h.
11173         * config/i960/rtems.h: Include config/rtems.h.
11174         * config/m68k/rtems.h: Include config/rtems.h.
11175         * config/m68k/rtemself.h: Include config/rtems.h.
11176         * config/mips/rtems64.h: Include config/rtems.h.
11177         * config/pa/rtems.h: Include config/rtems.h.
11178         * config/rs6000/rtems.h: Include config/rtems.h.
11179         * config/sh/rtems.h: Include config/rtems.h.
11180         * config/sh/rtemself.h: Include config/rtems.h.
11181         * config/sparc/rtems.h: Include config/rtems.h.
11182         * config/sparc/rtemself.h: Include config/rtems.h
11183
11184 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
11185
11186         * final.c (shorten_branches): Correctly compute length of
11187         asms without operands.
11188
11189 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
11190
11191         * configure.in: Add pj target.
11192         * configure: Regenerate.
11193         * config/pj: New directory.
11194         * config/pj/lib1funcs.S: New file.
11195         * config/pj/linux.h: New file.
11196         * config/pj/pj.c: New file.
11197         * config/pj/pj.md: New file.
11198         * config/pj/pjl.h: New file.
11199         * config/pj/t-pj: New file.
11200         * config/pj/xm-pj.h: New file
11201
11202 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
11203
11204         * toplev.c (rest_of_compilation): Run shorten-branches before
11205         reg-stack for now.
11206
11207 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11208
11209         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
11210         macros so that they're consistent with their names.
11211         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
11212         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
11213
11214 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11215
11216         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
11217         modified inadvertently.
11218
11219 2000-01-04  Joel Sherrill <joel@OARcorp.com>
11220
11221         * configure.in (v850*-*-rtems*): New target.
11222         * configure: Regenerate.
11223         * config/v850/rtems.h: New file.
11224
11225 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
11226
11227         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
11228         (__gthread_key_create): Likewise.
11229         (__gthread_key_dtor):  Likewise.
11230         (__gthread_once): Fix logic.
11231         (__gthread_key_delete): Cast away constness.
11232
11233         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
11234         * invoke.texi: Document.
11235         * i386/mingw32.h (CPP_SPEC): Use.
11236         (LIBGCC_SPEC): Likewise.
11237         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
11238
11239 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
11240
11241         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
11242         (HANDLE_PRAGMA_PACK): Undefine.
11243         (SLOW_UNALIGNED_ACCESS): Define.
11244
11245 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
11246
11247         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
11248         to default definition.
11249         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
11250         (store_fixed_bit_field): Call macro with word_mode and alignment.
11251         (extract_bit_field): Call macro with relevant mode and alignment.
11252         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
11253         to default definition.
11254         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
11255         and alignment.
11256         (move_by_pieces_ninsns): Likewise.
11257         (clear_by_pieces): Likewise.
11258         (emit_push_insn): Likewise.
11259         (store_field): Call macro with relevant mode and alignment.
11260         (expand_expr): Likewise.
11261         (expand_expr_unaligned): Likewise.
11262
11263         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
11264         (SLOW_UNALIGNED_ACCESS): Define.
11265         (CASE_VECTOR_MODE): Always use 32-bit offsets.
11266         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
11267         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
11268         (toc_section): Likewise and .toc pseudo-op.
11269         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
11270         64-bit mode.
11271         (TEXT_SECTION_ASM_OP): Likewise.
11272         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
11273         32-bit offsets.
11274
11275         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
11276         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
11277         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
11278         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
11279         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
11280
11281 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
11282
11283         * regclass.c: Revert my Jan 4 change to loop cost computation.
11284
11285 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
11286
11287         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
11288         compilation.
11289
11290 2000-01-04  Stan Cox  <scox@cygnus.com>
11291
11292         * haifa-sched.c (build_control_flow): Change unreachable simple
11293         loop test to check if current block has only one predecessor.
11294         (find_rgns): Initialize degree.  Use dest as degree index, not src.
11295
11296 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11297
11298         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
11299
11300         * calls.c (expand_call): Likewise for
11301         `old_stack_arg_under_construction'.
11302
11303         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
11304
11305         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
11306         `save_constant'.
11307
11308         * gcc.c (execute): Likewise for `ut' and `st'.
11309
11310         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
11311
11312         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
11313
11314         * jump.c (jump_optimize_1): Likewise for `temp2'.
11315
11316         * local-alloc.c (block_alloc): Likewise for `r1'.
11317
11318         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
11319
11320         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
11321         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
11322
11323         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
11324         and `set2'.
11325
11326         * reload.c (find_reloads): Likewise for `goal_alternative_number'
11327         and `goal_earlyclobber'.
11328
11329         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
11330
11331         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
11332
11333         * stupid.c (stupid_life_analysis): Likewise for `chain'.
11334
11335         * unroll.c (copy_loop_body): Likewise for `copy'.
11336
11337         * varasm.c (output_constructor): Likewise for `byte'.
11338
11339 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
11340
11341         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
11342         all FP constants for constant->reg moves.
11343         (ix86_split_to_parts): Try to convert memory address into immediate
11344         when available in the constant pool.
11345         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
11346         moves.
11347         (LEGITIMATE_CONSTANT_P): Return 1.
11348         * i386.md (pushsf): New splitter to convert constant pool memory
11349         reference to immediate.
11350         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
11351         reload.
11352
11353 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
11354
11355         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
11356         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
11357         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
11358         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
11359         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
11360
11361 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
11362
11363         * ginclude/stdbool.h:  Support compilation as C++.
11364
11365 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11366
11367         * fold-const.c (make_range): Don't try to reverse an unbounded range.
11368
11369 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
11370
11371         * regclass.c (regclass): Properly compute loop_cost.  Adjust
11372         comments.
11373
11374         * regclass.c: Fix minor whitespace problems.
11375
11376 2000-01-03  Anthony Green  <green@cygnus.com>
11377
11378         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
11379         Restore the pic register if required.
11380
11381 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
11382
11383         * c-common.c (format_char_info): Update comment.
11384         (check_format_info): Recognize 'z' modifier in the same way 'Z'
11385         was recognized.  Emit warning for formats new in ISO C99 only
11386         if flag_isoc9x is not set.
11387
11388 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
11389
11390         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
11391
11392 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
11393
11394         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
11395         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
11396         (make_compound_operation): Choose cheaper alternative between
11397         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
11398
11399         * regclass.c (op_costs): Remove global variable.
11400         (record_reg_classes): New parameter "op_costs" and "reg_pref".
11401         (record_operand_costs): Break out from ...
11402         (scan_one_insn): ... here.
11403         (dump_regclass): Make dumps nicer.
11404         (regclass): Dump preferrences choosed and changes done during passes.
11405
11406 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
11407
11408         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
11409
11410 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
11411
11412         * config/sparc/sparc.c (gen_df_reg): New function.
11413         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
11414         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
11415         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
11416         movtf_cc_reg_sp64+1): Use it.
11417
11418 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
11419
11420         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
11421         copied LABEL_DECLs.
11422
11423 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11424
11425         * config/i386/i386.c (ix86_expand_unary_operator): Function
11426         definition made void.
11427         (ix86_expand_binary_operator): Update outdated preceding comment.
11428         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
11429         prototype.
11430
11431         * config/i386/i386.c (override_options): Fix option-name typo.
11432
11433 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
11434
11435         * system.h (CEIL): Define.
11436         * builtins.c (CEIL): Remove.
11437         * expmed.c (CEIL): Likewise.
11438         * expr.c (CEIL): Likewise.
11439         * stor-layout.c (CEIL): Likewise.
11440
11441 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11442
11443         * expr.c (store_constructor_field): Fix typo introduced with last
11444         gcc2 merge.
11445
11446 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
11447
11448         * tree.h (BINFO_N_BASETYPES): New macro.
11449
11450 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
11451
11452         * expmed.c (emit_store_flag): Prevent losing a pending stack
11453         adjust the same way we prevent losing queued increments.
11454
11455 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11456
11457         * function.c (update_temp_slot_address): Handle case where sum of
11458         temporary address plus offset in register is a valid address.
11459
11460 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11461
11462         * genrecog.c (change_state) Corrected typo.
11463
11464 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11465
11466         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
11467         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
11468         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
11469
11470 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
11471
11472         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
11473         case, expand GT comparisons correctly.  Fix a comment before this
11474         part of the code.
11475
11476 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
11477
11478         * dwarfout.c: Include "frame.h"
11479         * dwarf2out.c: Likewise.
11480         * Makefile.in (dwarfout.o): Depend on frame.h
11481         (dwarf2out.o): Likewise.
11482
11483 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
11484
11485         Restore i386 binary compatibility in Dwarf EH info.
11486         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
11487         value of FIRST_PSEUDO_REGISTER.
11488         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
11489         (struct frame_state): Use DWARF_FRAME_REGISTERS.
11490         * dwarfout.c (output_reg_number): Ditto.
11491         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
11492         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
11493
11494 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
11495
11496         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
11497         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
11498         (<hack>_RE_CT): not needed
11499         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
11500         rewritten to scan the file text once only
11501         "template<..." test added
11502         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
11503         (is_cxx_header): declaration added
11504         * fixinc/fixtests.c(is_cxx_header): removed
11505         (apply_fix_p_t): removed
11506         (double_slash_test): is_cxx_header is only called once now
11507         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
11508         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
11509         within the templates.
11510         The borken spelling of "broken" was fixed.
11511         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
11512         The default level depends on FIXINC_DEBUG.
11513
11514 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11515
11516         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
11517         Otherwise provide a declaration for atexit.
11518         (init_dummy): Make sure dummy call to atexit is nevertheless
11519         called with correct number of args.
11520
11521         * frame.c: Update comments referring to other files.
11522
11523         * libgcc2.c: Likewise.
11524
11525 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11526
11527         * cse.c (free_element, get_element): Remove unused prototypes.
11528
11529         * fold-const.c (extract_muldiv): Initialize variables `op0' and
11530         `op1'.
11531
11532         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
11533         `else' clauses.
11534
11535 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
11536
11537         * configure.in,configure: case arm for mn10200-*-* now sets
11538         float_format=i32 so that float.h will correctly claim "double"
11539         to be 32 bits. Ran autoconf to generate configure from .in file.
11540
11541 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
11542
11543         * pa.md (conditional zero): If op1 is a register, force it into
11544         the same register as op0.
11545
11546 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
11547
11548         * tree.h (BINFO_BASETYPES): Improve documentation.
11549
11550 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11551
11552         * configure.in (--enable-checking): Use a more portable `for'
11553         loop syntax.
11554
11555 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11556
11557         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
11558         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
11559
11560         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
11561         Delete files.
11562
11563         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
11564         Delete descriptions.
11565
11566         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
11567         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
11568         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
11569         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
11570         xm-svr4.h: Remove all instances of sys_siglist handling.
11571
11572 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
11573
11574         * config/sparc/sparc.md (cmp_zero_qi,
11575         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
11576         cmp_zero_extendqidi2_andcc_set): New patterns.
11577
11578 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
11579
11580         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
11581         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
11582         (fpgnulib.c, xfgnulib.c): Add rules.
11583         * m68k/t-mot3300-gas: Likewise.
11584
11585 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
11586
11587         * configure.in: Avoid [[ by using test and changequote.  Add
11588         changequote required by 1999-12-14 change.
11589         * configure: Rebuild.
11590
11591 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
11592
11593         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
11594
11595 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
11596
11597         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
11598         * flow.c (find_use_as_address): Likewise.
11599         * function.c (fixup_var_refs_1): Likewise.
11600         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
11601         * jump.c (invert_exp, redirect_exp): Likewise.
11602         * loop.c (replace_call_address): Likewise.
11603         (count_nonfixed_reads): Likewise.
11604         * rtlanal.c (modified_between_p): Likewise.
11605         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
11606         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
11607         * unroll.c (remap_split_bivs): Likewise.
11608
11609 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11610
11611         * diagnostic.c (v_message_with_decl): Use .* format specifier
11612         instead of building the format specifier width manually.
11613
11614         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
11615         determining whether to provide a prototype.  Remove the
11616         sys_siglist clause in the conditional.
11617
11618 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11619
11620         * fold-const.c (operand_equal_p): Use memcmp to compare string
11621         constants.
11622         Suggested by D. J. Bernstein
11623
11624 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
11625
11626         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
11627         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
11628         compiling libgcc2.
11629         * config/mips/mips.h (TARGET_64BIT): Likewise.
11630         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
11631         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
11632         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
11633         dsps.  Give routines proper names if SI/DI modes are not used.
11634         * longlong.h: Use DWunion instead of DIunion.
11635
11636 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
11637
11638         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
11639         GC_CHECKING, GC_ALWAYS_COLLECT.
11640         * configure.in: Allow --enable-checking with an argument
11641         listing check modes to enable.
11642         * config.in, configure: Rebuilt.
11643         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
11644         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
11645         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
11646         ENABLE_GC_ALWAYS_COLLECT.
11647         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
11648         throughout.
11649         * tree.h, tree.c: Change ENABLE_CHECKING to
11650         ENABLE_TREE_CHECKING throughout.
11651
11652 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11653
11654         * fold-const.c (fold_truthop): Properly check for FP RHS.
11655
11656 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
11657
11658         * toplev.h (note_deferall_of_defined_inline_function): Declare.
11659         * toplev.c (note_deferral_of_defined_inline_function): New
11660         function, split out from ...
11661         (rest_of_compilation): ... here.  Use it.
11662
11663 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11664
11665         * expr.c (store_constructor): Don't call clear_storage if size is
11666         variable.
11667
11668 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11669
11670         * Makefile.in (toplev.o): Depend on loop.h.
11671
11672         * dwarfout.c: Include tm_p.h.
11673
11674         * emit-rtl.c (restore_emit_status): Mark parameter with
11675         ATTRIBUTE_UNUSED.
11676
11677         * final.c (final_scan_insn): Likewise.
11678
11679         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
11680         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
11681         flow_depth_first_order_compute, flow_loop_pre_header_find,
11682         flow_loop_tree_node_add, flow_loops_tree_build,
11683         flow_loop_level_compute, flow_loops_level_compute,
11684         flow_loop_outside_edge_p): Add prototypes.
11685         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
11686
11687         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
11688         Mark with ATTRIBUTE_NORETURN.
11689
11690         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
11691
11692         * local-alloc.c (no_conflict_p): Likewise.
11693
11694         * loop.c (insert_bct): Hide definitions of variables with hidden
11695         usage.
11696         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
11697
11698         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
11699         with ATTRIBUTE_UNUSED.
11700         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
11701         (reg_scan): Likewise.
11702
11703         * reload.c (find_reloads): Remove unused variables `changed'.
11704
11705         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
11706         away const-ness.
11707         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
11708         Remove unused variable `insn'.
11709
11710         * toplev.c: Include loop.h.
11711         (report_file_and_line): Remove unnecessary prototype.
11712
11713         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
11714
11715         * unroll.c (biv_total_increment): Likewise.
11716
11717 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11718
11719         * reload1.c (emit_input_reload_insns): Restore old behaviour
11720         wrt. 'special' reloads.
11721
11722 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
11723
11724         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
11725         hash.h.  (cse.c): Don't depend on hashtab.h.
11726
11727         * cse.c: Don't include hashtab.h.
11728         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
11729         of dead functions.
11730         * ggc-simple.c: Don't include hash.h.
11731
11732 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
11733
11734         * dwarf2out.c (add_abstract_origin_attribute): Call
11735         gen_abstract_function on our function context.
11736
11737 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
11738
11739         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
11740
11741 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11742
11743         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
11744         case in switch.
11745
11746 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11747
11748         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
11749         constraints to "a!r".
11750
11751 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
11752
11753         * Makefile.in (calls.o): Depend on function.h.
11754         (alias.o): Likewise.
11755
11756 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
11757
11758         * reload1.c (emit_reload_insns): Break out code and variables into...
11759         (input_reload_insns, other_input_address_reload_insns,
11760         other_input_reload_insns, input_address_reload_insns,
11761         inpaddr_address_reload_insns, output_reload_insns,
11762         output_address_reload_insns, outaddr_address_reload_insns,
11763         operand_reload_insns, other_operand_reload_insns,
11764         other_output_reload_insns): ... new static variables, and...
11765         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
11766         do_output_reload): ... new functions.
11767
11768 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11769
11770         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
11771
11772 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11773
11774         * md.texi: Add c4x constraints documentation.
11775
11776 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11777
11778         * config/i386/dgux.c (struct option): Rename to
11779         lang_independent_option.
11780         (struct m_options): Add description field.
11781         (output_options): Rename option type, add sep declaration, output
11782         ix86_cpu_string and ix86_arch_string only if set.
11783         (output_file_start): Rename option type.
11784
11785 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
11786
11787         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
11788         stmp-int-hdrs.
11789         (libgcc2.a): Similarly.
11790
11791 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
11792
11793         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
11794         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
11795         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
11796
11797 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
11798
11799         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
11800         Remove redundant initialization of "frexpon" and "expon".
11801
11802 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11803
11804         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
11805
11806         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
11807         (store_constructor_field, expand_expr): Pass new arg.
11808
11809 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
11810
11811         * Makefile.in (explow.o): Depend on function.h.
11812
11813         * stor-layout.c (set_sizetype): Fix typo.
11814
11815 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
11816
11817         * function.c (cfun): Renamed from current_function.  All users
11818         changed.
11819         * function.h (cfun): Rename declaration as well.
11820
11821         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
11822         to be of type regset_head, not regset.  All users changed by adding
11823         address operator.
11824         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
11825
11826 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11827
11828         * config/c4x/rtems.h: New file.
11829
11830 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
11831
11832         * reload1.c (spill_failure): Take class of failed reload as argument
11833         and print it.  Caller changed.
11834
11835 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11836
11837         * rs6000.h (SUBTARGET_DEFAULT): New macro.
11838         (TARGET_SWITCHES): Allow subtargets to default switches.
11839         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
11840
11841 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
11842
11843         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
11844         in a main program.
11845
11846 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
11847
11848         * cccp.c (main): Define __STDC_VERSION__ as necessary.
11849         * cppinit.c (cpp_handle_option): Likewise.
11850
11851         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
11852         determine when to define.
11853
11854 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
11855
11856         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
11857         cmove with mismatched test and data modes.
11858
11859 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
11860
11861         * c-typeck.c (c_expand_start_case): Don't warn for long switch
11862         in system headers.
11863
11864 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11865
11866         * alias.c: Minor reformatting.
11867         * flow.c: Likewise.
11868         * regs.h: Likewise.
11869         * stor-layout.c: Likewise.
11870         * fold-const.c: Likewise.
11871         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
11872         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
11873         not arg itself.
11874         (size_int_wide): Cache nodes even if garbage collecting.
11875         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
11876         of SAVE_EXPR has no side effects.
11877         * cse.c: Move a comment.
11878         * tree.c: Minor reformatting.
11879         (int_size_in_bytes): Return -1 if constant overflows.
11880
11881 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11882
11883         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
11884
11885 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
11886
11887         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
11888         after any change to c-parse.in, even if objc-parse.y didn't
11889         change.  Oops.
11890
11891 1999-12-18  David S. Miller  <davem@redhat.com>
11892
11893         * toplev.c (rest_of_compilation): Restore BLOCK tree
11894         reconstruction and branch shortening changes lost in
11895         December 18th change.
11896
11897 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
11898
11899         * config/arm/linux-elf.h: Change all instances of
11900         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
11901         * config/arm/uclinux-elf.h: Likewise.
11902
11903 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
11904
11905         * toplev.c (notice, vmessage, v_message_with_file_and_line,
11906         v_message_with_decl, file_and_line_for_asm,
11907         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
11908         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
11909         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
11910         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
11911         pfatal_with_name, fatal_io_error, need_error_newline,
11912         last_error_function, last_error_tick, announce_function,
11913         default_print_error_function, print_error_function,
11914         report_error_function, fnotice, error_with_file_and_line,
11915         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
11916         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
11917         warning_with_decl, warning_for_asm, warning, pedwarn,
11918         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
11919         diagnostic.c
11920         (compile_file): Use fnotice instead of notice.  Adjust call.
11921
11922         * diagnostic.c: New file.
11923
11924         * Makefile.in (OBJS): Include diagnostic.o
11925         (diagnostic.o): Define dependence.
11926
11927 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11928
11929         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
11930         Tweak formatting.
11931
11932 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11933
11934         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
11935
11936 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
11937
11938         * fixtests.c (is_cxx_header): New fn, split out of
11939         double_slash_test.
11940         (else_endif_label): Allow "#endif // comment" in C++ headers,
11941         as determined by is_cxx_header.
11942         * fixfixes.c (else_endif_label_fix): Update comment.
11943         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
11944         a tty.
11945         * genfixes: Correct double thinko in commandline parsing.
11946         * hackshell.tpl: Generate correct sh syntax for bypass
11947         entries.
11948
11949         * inclhack.def (all): Whenever an inserted preprocessor
11950         conditional is split over multiple lines, use double
11951         backslashes in this file so the fixed header will be readable.
11952
11953         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
11954         and add bypass entry for correct version of this header.
11955         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
11956         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
11957
11958         (hpux8_bogus_inlines): New fix, split from...
11959         (ultrix_atof_param) ... here.
11960         (math_expression): Add bypass entry keyed to glibc comment
11961         indicating the problem has been dealt with; disable
11962         unnecessary sed operations; update commentary.
11963         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
11964         add select and bypass entries, simplify shell operation.
11965         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
11966
11967         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
11968          ultrix_atof_param): Add select entry.
11969         (stdio_va_list, sunos_mather_decl): Add bypass entry.
11970         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
11971         comments with the fixes they describe.
11972
11973         * c-parse.in (string action): Do not warn about ANSI string
11974         concatenation in system headers.  Affects C parser only.
11975         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
11976
11977 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
11978
11979         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
11980         compiling libgcc2 the macro depends always on arch cpp defines.
11981
11982 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
11983
11984         * loop.c (insert_loop_mem): Don't record MEMs from inside
11985         EXPR_LISTs.
11986
11987 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
11988
11989         * regclass.c (regclass): Do not use flowgraph when not optimizing.
11990
11991         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
11992         notes too, create one when replacement failed, attempt to simplify
11993         resulting notes.
11994         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
11995         or REG_EQUIV notes.
11996
11997 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
11998
11999         * crtstuff.c (__dso_handle): Declare.
12000         (__cxa_finalize): Likewise.
12001         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
12002         non-NULL.
12003
12004         * invoke.texi: Document -fuse-cxa-atexit.
12005
12006         * tree.h (ptr_type_node): Document.
12007         (const_ptr_type_node): Likewise.
12008
12009 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12010
12011         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
12012         (optimize_reg_copy_2): Likewise.
12013         (optimize_reg_copy_3): Likewise.
12014         (fixup_match_2): Likewise.
12015         (regmove_optimize): Likewise.
12016         (fixup_match_1): Liekwise.
12017
12018         * i386.md (HI to SImode promoting splitters): Rewrite.
12019         (pushsf mem peep2): New.
12020         (testhi to andhi peep2): Remove.
12021         * i386.h (x86_promote_QImode): New.
12022         (TARGET_PROMOTE_QImode): New.
12023         (PREDICATE_CODES): Add promotable_binary_operator.
12024         * i386.c (x86_promote_QImode0: New.
12025         (promotable_binary_operator): New.
12026         * i386-protos.h (promotable_binary_operator): New.
12027
12028         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
12029         condition.
12030         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
12031
12032 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
12033
12034         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
12035         * function.c (insert_block_after_note): Remove.
12036         (retrofit_block): Likewise.
12037         (identify_blocks): Fix indentation.
12038         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
12039         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
12040         * function.h (insert_block_after_note): Remove prototype.
12041         (retrofit_block): Likewise.
12042         * integrate.c (expand_inline_function): Don't call
12043         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
12044         just expand_start_bindings.  Use the block_map to remap old
12045         NOTE_BLOCKs to new ones.
12046         (integrate_decl_tree): Keep track of remapped blocks.
12047         * integrate.h (struct inline_remap): Add block_map.
12048         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
12049         NOTE_BLOCK on the notes.
12050         (expand_start_bindings): Rename to ...
12051         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
12052         (expand_end_bindings): Set NOTE_BLOCK.
12053         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
12054         reconstruct the BLOCK tree.
12055         * tree.h (expand_start_bindings): Macroize.  Call ...
12056         (expand_start_bindings_and_block): New function.
12057
12058 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
12059
12060         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
12061         to match the format.
12062
12063 1999-12-16  David S. Miller  <davem@redhat.com>
12064
12065         * expr.c (emit_move_insn_1): Only emit clobbers if one of
12066         the outputs is a SUBREG.
12067         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
12068         change.
12069
12070         * config/sparc/sparc.c (epilogue_renumber): Add default case
12071         to switch stmt.
12072
12073 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12074
12075         * toplev.c (rest_of_compilation): Run branch shortening after
12076         reg-stack.
12077
12078         * regclass.c (loop_depth): Remove
12079         (scan_one_insn): Do not handle LOOP_NOTE insns.
12080         (regclass): Go through basic blocks and set loop_cost
12081
12082 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
12083
12084         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
12085
12086 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12087
12088         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
12089         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
12090         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
12091
12092 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
12093
12094         * loop.c (insert_loop_mem): Ignore memory clobbers.
12095
12096         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
12097         to (OP A B).
12098
12099 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
12100
12101         * profile.c: Remove redundant #include "output.h".
12102
12103         * h8300.md (HImode preinc peephole): Fix typo.
12104
12105 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
12106
12107         * function.c (retrofit_block): Abort if we don't find a suitable insn.
12108         (insert_block_after_note): Abort if we don't have a previous block.
12109         Remove FN parameter.
12110         * function.h: Adjust.
12111
12112 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
12113
12114         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
12115         argument more than once.
12116
12117 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
12118
12119         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
12120
12121 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
12122
12123         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
12124
12125 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12126
12127         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
12128         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
12129         update stack_alignment_needed.
12130         (prepare_function_start): Initialize stack_alignment_needed
12131         * function.h (struct function): Add field stack_alignment_needed.
12132
12133 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12134
12135         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
12136         Handle live_throughout / dead_or_set instead of live_before /
12137         live_after.
12138         (save_call_clobbered_regs): Get register livenessinformation from
12139         chain->live_throughout.
12140         (add_stored_regs): New function.
12141         (insert_restore, insert_save): Add restored / saved registers to
12142         dead_or_set.
12143         * global.c (reg_dies): New parameter chain.
12144         (reg_becomes_live): Third parameter is regs_set now.
12145         Changed all callers.
12146         (reg_dies): New parameter chain.  Changed all callers.
12147         (build_insn_chain): Set live_throughout instead of
12148         live_before / live_after.
12149         * reload.h (struct insn_chain): Replace members live_before /
12150         live_after with live_throughout / dead_or_set.
12151         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
12152         instead of live_before / live_after.
12153         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
12154         (order_regs_for_reload, find_reg, finish_spills): Likewise.
12155         (choose_reload_regs_init): Likewise.
12156         * stupid.c (current_chain, find_clobbered_regs): Delete.
12157         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
12158         instead of chain->live_before / chain->live_after.
12159         (mark_hard_ref): New function.
12160         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
12161
12162 1999-12-15  David S. Miller  <davem@redhat.com>
12163
12164         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
12165
12166 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12167
12168         * flow.c (calculate_loop_depth): Make global, remove prototype,
12169         rewrite to use new loop infrastructure.
12170         (find_basic_block): Remove calculate_loop_depth call.
12171         * toplev.c (rest_of_compilation): Call find_basic_block.
12172         * output.h (calculate_loop_depth): Declare.
12173
12174         * flow.c (dump_flow_info): Dump loop_depth.
12175         (flow_loops_nodes_find): Increase loop_depth for basic block in the
12176         body.
12177         (flow_loops_find): Initialize the loop_depth for each basic block.
12178
12179 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
12180
12181         * tree.c (decl_function_context): Handle virtual functions.
12182
12183         * tlink.c (scan_linker_output): Don't look in demangled name when
12184         looking for linker output keywords.
12185
12186         * dwarfout.c (output_type): We can defer namespace-scope classes.
12187
12188 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
12189
12190         * regclass.c (record_reg_classes): Update comment for merging
12191         register class preferences in reg->reg copies.  Tighten conditions
12192         for merging register class preferences in reg->reg copies.
12193
12194 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
12195
12196         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
12197
12198 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
12199
12200         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
12201         (INIT_SECTION_ASM_OP): Delete.
12202         (FINI_SECTION_ASM_OP): Delete.
12203         (STARTFILE_SPEC): Define to hold just crtbegin.o.
12204
12205 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
12206
12207         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
12208         the abstract origin wasn't emitted.
12209
12210         * dwarf2out.c (class_scope_p): New fn.
12211         (gen_subprogram_die): Use it.
12212         (gen_variable_die): Use it.  Tweak logic.
12213         (gen_struct_or_union_type_die): Check context_die to determine
12214         if we're function-local.
12215         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
12216
12217 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12218
12219         * loop.c (check_dbra_loop): Can't reverse a biv that has
12220         maybe_multiple set.
12221
12222 1999-12-14  Nick Clifton  <nickc@cygnus.com>
12223
12224         * config/arm/arm.c: Add support for -mcpu=arm720 command line
12225         switch.
12226
12227 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12228
12229         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
12230         for givs made from biv increments.
12231
12232 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
12233
12234         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
12235         * alpha.c (override_options): Recognize -mcpu=ev67.
12236         * alpha.h (CPP_CPU_EV67_SPEC): New.
12237         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
12238         (EXTRA_SPECS): Update.
12239
12240 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
12241
12242         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
12243         appropriate for -lang-c89 and -std=*.
12244         * cppinit.c (cpp_handle_option): Likewise.
12245         (new_pending_define): New, split out from cpp_handle_option.
12246         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
12247         or enable trigraphs for -ansi/-std=*.
12248
12249         * ginclude/stdarg.h (__va_copy): New.
12250         (va_copy): Don't define for C89.
12251
12252 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
12253
12254         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
12255         for long long multiply-accumulate.
12256
12257 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12258
12259         * regclass.c (scan_one_insn): Set loop_cost to 1 when
12260         optimizing for size.
12261
12262 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12263
12264         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
12265         if something changed.  Back out that part of yesterday's changes.
12266
12267         * loop.c (loop_max_reg): New static variable.
12268         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
12269         max_reg_num.
12270         (scan_loop): Call reg_scan_update whenever we may have added new
12271         registers, and update loop_max_reg.
12272
12273 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12274
12275         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
12276         when source does not die.
12277
12278         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
12279
12280 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
12281
12282         * config/sparc/linux64.h (TARGET_LIVE_G0,
12283         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
12284         variants on Linux.
12285         * config/sparc/linux.h (TARGET_LIVE_G0,
12286         TARGET_BROKEN_SAVERESTORE): Likewise.
12287         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
12288         TARGET_BROKEN_SAVERESTORE): Likewise.
12289
12290         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
12291         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
12292         not %g2.
12293         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
12294         as sparc64 block profiling register.
12295         * config/sparc/sparc.c (sparc_override_options): Allow block
12296         profiling with -m32.
12297         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
12298         profiling register.
12299         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
12300         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
12301         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
12302
12303         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
12304         for sparc64.
12305         * config/sparc/sparc.h: Likewise.
12306         * config/sparc/xm-sysv4-64.h: Likewise.
12307         * config/float-sparc.h: Likewise.
12308         * glimits.h: Likewise.
12309         * longlong.h: Likewise.
12310
12311         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
12312         (ASM_IDENTIFY_GCC): Remove.
12313
12314 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12315
12316         * combine.c (combine_simplify_rtx): Don't make shared rtl.
12317         (simplify_logical): Likewise.
12318
12319 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
12320
12321         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
12322         * cppfiles.c (INO_T_EQ): Likewise.
12323
12324 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
12325
12326         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
12327         * i386/mingw32.h (LIB_SPEC): Likewise.
12328         (STARTFILE_SPEC): Likewise.
12329         * i386/uwin.h (LIB_SPEC): Likewise.
12330         (STARTFILE_SPEC): Likewise.
12331
12332         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
12333         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
12334
12335 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
12336
12337         * combine.c (combine_simplify_rtx): Fix order of checks for
12338         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
12339
12340 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
12341
12342         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
12343         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
12344
12345 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
12346
12347         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
12348         defined.
12349         * regclass.c (inv_reg_alloc_order): New array.
12350         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
12351
12352         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
12353         counted_for_groups, counted_for_nongroups.  Add fields rld and
12354         n_reloads.
12355         * reload.c (push_secondary_reload): Don't set nongroup field of
12356         new reloads.
12357         (push_reload): Likewise.
12358         (find_reloads): Delete code to compute nongroup fields.
12359         * reload1.c (reload_insn_firstobj): New static variable.
12360         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
12361         users changed.
12362         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
12363         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
12364         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
12365         functions.
12366         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
12367         functions.
12368         (struct hard_reg_n_uses): Deleted.
12369         (potential_reload_regs): Deleted.
12370         (init_reload): Initialize spilled_pseudos and pseudos_counted.
12371         (reload): Don't try to allocate reload registers if we already know
12372         we have to make another pass.  Call select_reload_regs.  Free memory
12373         starting with reload_firstobj when starting another pass.
12374         Don't allocate spilled_pseudos.
12375         (calculate_needs_all_insns): Call copy_reloads for an insn that
12376         needs reloads; don't call calculate_needs.
12377         (spill_cost): New static array.
12378         (used_spill_regs_local): New static variable.
12379         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
12380         to compute potential_reload_regs.
12381         (find_reload_regs): Completely rewritten to use find_reg.
12382         (allocate_reload_reg): Don't test counted_for_groups or
12383         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
12384         all cllers changed.
12385         (choose_reload_regs): Add fallback code that uses the existing
12386         register allocation from find_reload_regs.
12387
12388 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
12389
12390         * flow.c (create_edge_list): Cast xmalloc return value.
12391
12392 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
12393
12394         * doprnt.c: Remove incorrect comment closure.
12395
12396         * cse.c: Fix a few minor whitespace goofs.
12397
12398 1999-12-13  Don Bowman  <don@pixstream.com>
12399
12400         * mips/vxworks.h: Fix problem with comment termination.
12401         (EXTRA_SECTIONS): Add in_sbss.
12402         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
12403
12404 1999-12-12  David S. Miller  <davem@redhat.com>
12405
12406         * cse.c (struct cse_reg_info): Add hash_next member,
12407         reorder rest of struct for better packing on 64-bit
12408         hosts.
12409         (cse_reg_info_tree): Kill.
12410         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
12411         REGHASH_FN): New custom pow2 hash mechanism.
12412         (NBUCKETS): Kill.
12413         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
12414         use a pow2 hash table.
12415         (get_cse_reg_info): Rework to use new REGHASH.
12416         (new_basic_block): Likewise, use HASH_SIZE, and inline
12417         free_element call.
12418         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
12419         and inline free_element call.
12420         (lookup_as_function, insert, flush_hash_table, invalidate,
12421         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
12422         invalidate_for_call, use_related_value, find_comparison_args,
12423         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
12424         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
12425         get_element): Kill.
12426
12427 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
12428
12429         * cse.c (cse_basic_block): Free qty_table consistently.
12430
12431 1999-12-12  David S. Miller  <davem@redhat.com>
12432             Jakub Jelinek    <jakub@redhat.com>
12433
12434         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
12435         SUBREGs by hand, gen the appropriate hard reg directly.
12436         (movtf reg/mem split): Likewise and alter_subreg on destination
12437         if necessary.
12438         (movtf mem/reg split): Similarly.
12439         (movdf_cc_sp64): Rename from hidden pattern.
12440         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
12441         (movtf_cc_sp64, following split): New pattern and splitter.
12442         (movdf_cc_reg_sp64): Rename from hidden pattern.
12443         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
12444         TARGET_HARD_QUAD.
12445         (movtf_cc_reg_sp64, following split): New pattern and splitter.
12446
12447 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
12448
12449         * loop.c (load_mems): Don't hoist written floating point mem
12450         if -ffloat-store.
12451
12452 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
12453
12454         * except.h (struct eh_queue): Add `next' pointer.
12455         (struct eh_status): Make x_ehqueue a pointer.
12456         (push_ehqueue):  Declare.
12457         (pop_ehqueue): Likewise.
12458         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
12459         pointer.
12460         (expand_fixup_region_end): Likewise.
12461         (expand_leftover_cleanups): Likewise.
12462         (push_ehqueue): Define.
12463         (pop_ehqueue): Likewise.
12464         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
12465         than doing it inline.
12466         (expand_start_all_catch):  Adjust now that ehqueue is a
12467         pointer.
12468         (mark_eh_queue): Mark all level of the queue.
12469         (mark_eh_status):  Adjust now that ehqueue is a
12470         pointer.
12471         (init_eh_for_function): Allocate ehqueue.
12472         (free_eh_status): Free it.
12473         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
12474         expansion for a fixup.
12475
12476 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12477
12478         * gthr-single.h (__gthread_active_p): Add prototype arguments.
12479
12480         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
12481         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
12482         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
12483         function_ptr, getpagesize, __enable_execute_stack,
12484         __enable_execute_stack, __clear_insn_cache,
12485         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
12486         _cleanup, _exit, __default_terminate, __terminate_func,
12487         __terminate, __empty, __throw, new_eh_context,
12488         eh_context_initialize, eh_context_static, eh_context_specific,
12489         get_eh_context, __get_eh_context, __get_eh_info,
12490         init_reg_size_table, eh_threads_initialize,
12491         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
12492         __unwinding_cleanup, throw_helper, __throw, __rethrow,
12493         __pure_virtual): Add prototype arguments.
12494         (__bb_exit_func): Cast a sizeof to long when comparing against one.
12495         Cast a signed value to unsigned long when comparing against one.
12496         (new_eh_context): Wrap in _GTHREADS macro.
12497         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
12498         declaration.
12499         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
12500         (throw_helper): Initialize variables `handler_p' and `pc_p'.
12501
12502 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12503
12504         * combine.c (record_promoted_value): Remove unused variable
12505         `links2'.
12506
12507         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
12508
12509         * global.c (record_conflicts): Likewise for `j'.
12510
12511         * genoutput.c (output_insn_data): Don't unnecessarily cast away
12512         const-ness.
12513
12514 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12515
12516         * i386-protos.h (output_387_binary_op, output_fix_trunc,
12517         output_fp_compare): Constify a char*.
12518
12519         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
12520         static prototypes.
12521         (override_options, ix86_comp_type_attributes, print_operand,
12522         output_387_binary_op, output_fix_trunc, output_fp_compare):
12523         Constify a char*.
12524         (ix86_sched_reorder): Mark parameter `clock_var' with
12525         ATTRIBUTE_UNUSED.
12526
12527         * i386.h (DEBUG_PRINT_REG): Constify a char*.
12528
12529 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12530
12531         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
12532         operand, for use in the Java front-end.
12533
12534 1999-12-10  Ben Collins  <bcollins@debian.org>
12535
12536         * configure.in: Fix typo for "-64" in 64bit as check.
12537         * configure: Rebuilt.
12538
12539 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
12540
12541         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
12542         appropriate.
12543
12544 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12545
12546         * c-parse.in (string): With -Wtraditional, warn if ANSI string
12547         concatenation is utilized.
12548
12549         * invoke.texi (-Wtraditional): Document it.
12550
12551 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12552
12553         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
12554         Cast a ptrdiff_t to long and pass it to printf with %ld.
12555
12556 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
12557
12558         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
12559         68881, we have no 68881 registers at all.
12560         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
12561         value in a 68881 register if it is available.
12562
12563 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
12564
12565         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
12566         for long long multiply-accumulate.
12567
12568 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
12569
12570         * loop.c (insert_loop_mem): Undo last change.
12571
12572 1999-12-10  David S. Miller  <davem@redhat.com>
12573
12574         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
12575         New functions.
12576         * config/sparc/sparc-protos.h: Add them.
12577         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
12578         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
12579         constraints which use those helpers.
12580         (EXTRA_CONSTRAINT): Use this new macro.
12581         * md.texi: Update sparc target constraints documentation.
12582         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
12583         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
12584         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
12585         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
12586         (movsf high/lo_sum split): Rework for new patterns.
12587         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
12588
12589 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
12590
12591         * c-common.c (c_common_nodes_and_builtins):
12592         Create __builtin_ptrdiff_t and __builtin_size_t.
12593
12594 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
12595
12596         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
12597
12598 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12599
12600         * regclass.c (globalize_reg): Re-instate test that allows
12601         fixed registers to be declared as a variable even after functions
12602         are defined.
12603
12604 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12605
12606         * i386.md (cpu attribute): Add "athlon".
12607         (athlon_decode): New attribute.
12608         (Athlon scheduling units definitions): New.
12609         (fcmp and shld patterns): Set athlon_decode to "vector".
12610         * i386.c (athlon_cost): New.
12611         (m_ATHLON): New.
12612         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
12613         x86_use_sahf): Set for Athlon.
12614         (x86_use_fiop): Unset for Athlon.
12615         (override_options): Define Athlon alignments and "athlon" name.
12616         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
12617         * i386.h (TARGET_ATHLON): New.
12618         (enum processor_type): Add PROCESSOR_ATHLON.
12619         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
12620         for CPU_DEFAULT==5
12621         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
12622
12623 1999-12-09  Andreas Jaeger  <aj@suse.de>
12624
12625         * loop.c (record_biv): Declare parameter as int.
12626
12627         * config/i386/i386-protos.h: Declare long_memory_operand.
12628
12629 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
12630
12631         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
12632         EXPR_WITH_FILE_LOCATION.
12633
12634 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
12635
12636         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
12637         in expander.
12638
12639         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
12640
12641         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
12642         updating code.
12643
12644 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
12645
12646         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
12647         default on linux64 again.
12648         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
12649         models for multilibing.
12650         * genmultilib: Accept | as alternative separator within a set in
12651         MULTILIB_OPTIONS.
12652
12653         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
12654
12655         * calls.c (precompute_arguments): Make sure initial_value contains
12656         value pseudo which CSE expects.
12657         * cse.c (struct set): New entry orig_src.
12658         (cse_insn): Set it early on entry, use it for libcall EQUIV note
12659         replacement.
12660
12661 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
12662
12663         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
12664
12665 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
12666
12667         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
12668
12669 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
12670
12671         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
12672         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
12673
12674         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
12675         if TARGET_ARCH32.
12676
12677         * longlong.h: Merge in changes from glibc.
12678         Also don't clobber %g2 register in 32bit SPARC assembly, so that
12679         -mno-app-regs libgcc can be compiled.
12680         * libgcc2.c: Add defines so that the updated longlong.h
12681         can be used in libgcc2.a. Also, make sure on most architectures
12682         (at least on all which have optimized code in longlong.h defined
12683         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
12684
12685 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12686
12687         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
12688         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
12689         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
12690         is GNU ld.
12691         * configure: Rebuilt.
12692
12693 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
12694
12695         * alpha.c (secondary_reload_class): For !BWX, sub-simode
12696         outputs require a register.
12697
12698 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
12699
12700         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
12701         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
12702         functions like dptoul will be resolved.
12703         (libgcc2.a): Make sure that the object files from DPBIT are named
12704         differently (prefix `_dp') from those that would be coming from
12705         FPBIT.
12706
12707 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
12708
12709         * configure.in: When target is sparc* and tm_file contains 64,
12710         test for 64bit support in assembler.  If not supported, remove
12711         sparc/t-sol2-64 from target-dependent Makefile fragments.
12712         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
12713         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
12714         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
12715         * acconfig.h (AS_SPARC64_FLAG): Added.
12716         * configure, config.in: Rebuilt.
12717         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
12718         support.  Use AS_SPARC64_FLAG.
12719
12720 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
12721
12722         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
12723         suitable for holding OFmode values so that gcc works with complex
12724         quad long doubles.
12725         (hard_64bit_mode_classes): Likewise.
12726
12727         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
12728         so that it is actually matched.
12729         (sethi_di_medlow): Likewise.
12730
12731         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
12732         as legitimate constant if -mvis.
12733         * config/sparc/sparc.md (movtf): Likewise.
12734         (clear_sf): Use const_double_operand.
12735         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
12736
12737         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
12738         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
12739         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
12740         routines, _Qp_* cannot be handled like that now.
12741         (INIT_TARGET_OPTABS): Likewise.
12742         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
12743         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
12744         sparc_emit_float_lib_cmp if ARCH64 and soft float.
12745         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
12746         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
12747         divtf3, sqrttf3): New expanders.
12748         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
12749         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
12750         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
12751         non-_hq patterns.
12752
12753         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
12754         * configure: Rebuilt.
12755         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
12756         -mcpu is given and we're doing 64bit compiles.
12757
12758 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
12759
12760         * loop.h (struct induction): Add multi_insn_incr.
12761         * loop.c (basic_induction_var): New multi_insn_incr argument.
12762         Set it if we search back through previous insns for the biv.
12763         (record_biv): New multi_insn_incr argument; fill in struct induction.
12764         (strength_reduce): Discard an iv with multiple bivs, any of
12765         which require multiple insns to increment.
12766
12767 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12768
12769         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
12770         documentation.
12771
12772 1999-12-06  David S. Miller  <davem@redhat.com>
12773
12774         * combine.c (check_promoted_subreg): Do not conditionalize this upon
12775         PROMOTE_FUNCTION_RETURN.
12776
12777 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
12778
12779         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
12780         and handle REG_UNUSED note on insn.
12781
12782         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
12783         inner_mask instead of mask.
12784
12785 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
12786
12787         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
12788         zero if there was an error.
12789
12790 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
12791
12792         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
12793         output string.
12794
12795         * longlong.h: Fix clobbers in SPARC asm statements.
12796
12797         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
12798         valid sethi operations when TARGET_ARCH64.
12799
12800         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
12801         always use move_by_pieces to avoid infinite recursion.
12802         (restore_fixed_argument_area): Likewise.
12803
12804         * combine.c (check_promoted_subreg, record_promoted_value): New
12805         functions.
12806         (combine_instructions): Use them to retain nonzero and sign bit
12807         information after SUBREGs are eliminated by optimizations in
12808         this pass if PROMOTE_FUNCTION_RETURN.
12809
12810         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
12811         .register declaration. Don't use variables with __ prefixes.
12812
12813 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12814
12815         * fold-const.c (optimize_bit_field_compare): Only use one mode
12816         for both RHS and LHS in non-constant case.
12817
12818 1999-12-06  Nathan Sidwell  <nathan@acm.org>
12819
12820         * frame.c (start_fde_sort): Only allocate erratic array, if
12821         linear one was allocated. Return allocated flag.
12822         (fde_insert): Only insert, if there's a valid array.
12823         (fde_end_sort): Split, sort and merge if linear and erratic
12824         arrays exist, else just sort linear one.
12825         (search_fdes): New function. Linear search through original fde
12826         structure.
12827         (frame_init): Permit multiple initializations. Cope with
12828         memory shortages.
12829         (find_fde): Fallback on linear search, if failed to sort array.
12830         (__deregister_frame_info): Only free sorted array, if we
12831         allocated it.
12832
12833 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
12834
12835         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
12836
12837 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
12838
12839         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
12840
12841 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
12842
12843         * tree.h (special_function_p): Declare.
12844         * calls.c (special_function_p): Make it global.  Don't take `name'
12845         as a parameter.  Fix typo in 1999-11-28 change.
12846         (expand_cal): Adjust.
12847
12848 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
12849
12850         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
12851         * tree.h (EXPR_WFL_FILENAME): Define in terms of
12852         EXPR_WFL_FILENAME_NODE.
12853         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
12854         the TREE_CHAIN.
12855         * print-tree.c (print_note): Print TREE_PRIVATE and
12856         TREE_PROTECTED.
12857
12858         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
12859         the original die cannot be found.
12860
12861         * varray.h (varray_head_tag): Add elements_used.
12862         (VARRAY_PUSH): New macro.
12863         (VARRAY_POP): Likewise.
12864         (VARRAY_TOP): Likewise.
12865         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
12866         types.
12867         * varray.c (varray_init): Initialize elements_used.
12868         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
12869         (INTEGRATE_H): New variable.
12870         (integrate.o): Depend on INTEGRATE_H.
12871         (unroll.o): Likewise.
12872
12873         * function.h (insert_block_after_note): Declare.
12874         * function.c (insert_block_after_note): Split out from ...
12875         (retrofit_block): ... here.
12876
12877         * stmt.c (expand_fixup): Fix typo in comment.
12878
12879 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12880
12881         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
12882         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
12883         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
12884         (regmove_optimize, fixup_match_1): Likewise.
12885
12886 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12887
12888         * flow.c (flow_loops_dump): Add missing argument when calling
12889         flow_loop_nested_p.
12890
12891 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
12892             Greg McGary  <gkm@gnu.org>
12893
12894         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
12895         (init_attributes): Add A_NO_LIMIT_STACK.
12896         (decl_attributes): Handle A_NO_LIMIT_STACK.
12897         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
12898         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
12899         Handle stack bounds checking.
12900         * flags.h (flag_stack_check): Use the word 'probe' rather than
12901         'check', because the flag doesn't actually cause any checking to
12902         be done.
12903         * function.c (expand_function_start): Set
12904         current_function_limit_stack.
12905         * function.h (struct function): Add limit_stack.
12906         (current_function_limit_stack): Define.
12907         * invoke.texi (Code Gen Options): Document new options.
12908         * rtl.h: Declare stack_limit_rtx.
12909         * toplev.c (stack_limit_rtx): New variable.
12910         (decode_f_option): Handle new options -fstack-limit-register=REG,
12911         -fstack-limit-symbol=IDENT, -fno-stack-limit.
12912         (main): Add stack_limit_rtx as GC root.
12913         * tree.h (DECL_NO_LIMIT_STACK): New macro.
12914         (struct tree_decl): New member no_limit_stack.
12915
12916         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
12917         stack_limit_rtx.
12918         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
12919         (conditional_trap+1): Get new mnemonic correct.
12920         (conditional_trap+2): New pattern for DImode traps.
12921
12922         * config/m68k/m68k.c (output_function_prologue): Handle
12923         stack_limit_rtx.
12924         * config/m68k/m68k.md (trap): New insn.
12925         (conditional_trap): New insn.
12926         * md.texi (Standard Names): Document `trap' and
12927         `conditional_trap'.
12928         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
12929         so a cc0 setter doesn't get emitted at some random place in the
12930         function.
12931
12932         * config/i960/i960.md (trap): New insn.
12933         (conditional_trap): New expander.
12934         (conditional_trap+1, conditional_trap+2): New insns for signed
12935         and unsigned cases.
12936         * config/i960/i960.c (i960_function_prologue): Use
12937         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
12938
12939 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
12940                           Geoffrey Keating  <geoffk@cygnus.com>
12941
12942         * flags.h (warn_padded, warn_packed): Add global var decls.
12943         * toplev.c (warn_padded, warn_packed): Add global var defns.
12944         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
12945         * stor-layout.c (layout_record): Add local variable `type'
12946         to hold often-used TREE_TYPE (field).  Add local variable
12947         `unpacked_align' to hold alignment that would be in force
12948         if no `packed' attribute were present.  Warn if `packed' attribute
12949         is unnecessary, or even harmful.  Warn when gcc inserts padding
12950         to satisfy alignment requirements of members.  Use NULL_TREE
12951         when checking whether var_size is set.
12952         * invoke.texi: Document new flags.
12953
12954 1999-12-03  Nathan Sidwell  <nathan@acm.org>
12955
12956         * frame.c (fde_split): Reimplement to avoid variable sized array.
12957
12958 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12959
12960         * combine.c (try_combine): Before fixing up LOG_LINKS for the
12961         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
12962
12963 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
12964
12965         * invoke.texi: Document the mips option -mno-crt0
12966
12967 1999-12-02  Mike Karr  <mkarr@mathworks.com>
12968
12969         * cccp.c (argdata): Added free_ptr member.
12970         (macroexpand): Initialize free_ptr of each argument. When an
12971         argument's buffers are freed, if the argument's free_ptr corresponds
12972         to a buffer on the input stack, then return the free_ptr to that stack
12973         frame, otherwise, free it.
12974         (macarg): If an argument begins and ends on the same input stack level,
12975         then transfer the free_ptr of that buffer to the argument in case
12976         the stack is popped during the processing of a subsequent argument.
12977
12978 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
12979
12980         * loop.c (note_reg_stored): New function.
12981         (struct note_reg_stored_arg): New structure.
12982         (try_copy_prop): Change to be more conservative; only replace within
12983         one extended basic block and stop replacing if a store to the
12984         replacement reg is seen.
12985
12986 1999-12-02  Nick Clifton  <nickc@cygnus.com>
12987
12988         * config/fp-bit.c: Initialise all fields of the NAN
12989         constants.
12990
12991         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
12992         to HANDLE_PRAGMA.
12993
12994 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
12995
12996         * i386.md (extend?f?f2): Force the input into a register, not
12997         the output.
12998
12999 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
13000
13001         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
13002         regclass' sake.
13003         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
13004         alternative because setting up 64bit constant is usually costly,
13005         especially when reload is in progress or completed.
13006         (movdf_const_intreg_sp64): Likewise.
13007         (movdf_const_intreg split): Fix building up constants when
13008         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
13009
13010 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
13011
13012         * combine.c (if_then_else_cond): Use const_true_rtx instead of
13013         const1_rtx for return values in EQ/NE comparison against (const_int 0)
13014         case.
13015
13016         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
13017         (asm_file_start): Emit .am33 into assembly file when compiling for
13018         the AM33.
13019         (print_operand_address): Handle POST_INC addresses.
13020         (can_use_return_insn, initial_offset): Check AM33 registers too.
13021         (expand_prologue): Check & save AM33 registers too.
13022         (expand_epilogue): Similarly.
13023         (secondary_reload_class): Handle AM33 specific secondary reloads.
13024         (output_tst): Emit efficient code for the AM33 too.
13025         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
13026         (TARGET_SWITCHES): Add -mam33 switch.
13027         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
13028         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
13029         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
13030         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
13031         (enum reg_class, REG_CLASS_NAMES): Likewise.
13032         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
13033         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
13034         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
13035         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
13036         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
13037         (HAVE_POST_INCREMENT): Define.
13038         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
13039         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
13040         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
13041         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
13042         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
13043         (zero_extend to SI from QI/HI): Likewise.
13044         (sign_extend to SI from QI/HI): Likewise.
13045         (mulsidi3, umulsidi3): New patterns for the AM33.
13046         (tstsi with zero extension from QI/HI): Add AM33 variants.
13047         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
13048         (return_internal_regs, store_movm): Handle new AM33 registers.
13049         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
13050         (LIBGCC, INSTALL_LIBGCC): Likewise.
13051         * invoke.texi: Document new flags.
13052
13053 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13054
13055         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
13056         (addsi3_carry): Likewise.
13057         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
13058         (sbbsi3_carry): Likewise.
13059         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
13060         (mulhi3): Likewise.
13061         (test?i_1): Ensure that only one operand is memory.
13062         (conditional move patterns): likewise.
13063         (shift and rotate patterns): Rewrite to expander, add
13064         "binary_operator_ok" to the condition.
13065
13066         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
13067         * i386.h (procesor_costs): Add movzbl_load field.
13068         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
13069         non-Q registers, accept DImode registers anywhere.
13070         (Q_CLASS_P): New.
13071         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
13072         * i386.c (*_cost): Set value for movxbl_load field.
13073
13074         * (addsi): New add to lea splitter.
13075         (ashlsi): Likewise.
13076         (lea to add/shift peep2): New.
13077
13078 1999-12-01  Mark Salter <msalter@cygnus.com>
13079
13080         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
13081         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
13082         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
13083
13084 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13085
13086         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
13087         * i386.md (movsi_xor): New.
13088         (movsi_or): New.
13089         (movsi_1, movhi_1, movqi_1): Remove.
13090         (movsi_2): Rename to movsi_1.
13091         (movhi_2): Rename to movhi_1.
13092         (movqi_2): Rename to movqi_1.
13093         (movdi_1): Remove; remove splitter.
13094         (movdi_2): Rename to movdi_1.
13095         (divmodsi4 splitter): Do not emit clobbers for move patterns.
13096         (long move peep2): Do not create QI or HI mode mov0s
13097         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
13098
13099         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
13100         rewrite splitters.
13101
13102         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
13103         (abs?f2_if): Likewise.
13104
13105 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
13106
13107         * ggc.h (ggc_test_and_set_mark): New macro.
13108         (ggc_mark_rtx): Use ggc_test_and_set_mark.
13109         (ggc_mark_tree): Likewise.
13110         (ggc_mark_rtvec): Likewise.
13111         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
13112
13113 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
13114
13115         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
13116         containing types.
13117         (decl_scope_table): Just an array of trees now.
13118         (push_decl_scope): Simplify.
13119         (dwarf2out_init): Adjust.
13120         (local_scope_p): New fn.
13121         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
13122         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
13123         (gen_typedef_die): Likewise.
13124         (gen_lexical_block_die): Don't call push/pop_decl_scope.
13125         (gen_inlined_subroutine_die): Likewise.
13126         (gen_abstract_function): Set current_function_decl temporarily.
13127         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
13128         Handle block extern declarations.  Don't call push/pop_decl_scope.
13129         (gen_decl_die): Fix logic for block externs.
13130
13131 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13132
13133         * calls.c (special_function_p): Remove `realloc' and add `strdup'
13134         to the list of functions which have attribute malloc by default.
13135
13136 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13137
13138         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
13139         integer constant does not match the traditional type, limit the
13140         warnings to cases where the base of the type is ten.
13141
13142         * invoke.texi (-Wtraditional): Document it.
13143
13144 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13145
13146         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
13147         * rs6000.md: Only access a CONST_INT with INTVAL
13148
13149 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
13150
13151         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
13152         (compute_nearerout): Likewise.
13153         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
13154         size_t to unsigned long for formatting.
13155
13156 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
13157
13158         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
13159         Allow the user to override call-used/fixed state of %g2-5
13160         registers from the command line (with the exception of %g4 for
13161         embedded model).
13162         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
13163         there is a higher chance of having a leaf function.
13164         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
13165         for ARCH64 which has %ccr register.
13166         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
13167         patterns.
13168         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
13169         insn accept into delay slot any insn which does not use %[ol]
13170         registers.  Accept some LO_SUM and shift left by 1 for the normal
13171         restore case.
13172         (output_function_epilogue): Likewise.
13173         (epilogue_renumber): Added argument which inhibits any renumbering
13174         and just tests if the rtx does not use any %[ol] registers.
13175         (output_return): Reflect above change.
13176
13177 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
13178
13179         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
13180         aggregate passing for sizes <= 16 bytes.
13181
13182 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
13183
13184         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
13185         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
13186         * reload.c (find_dummy_reload): Likewise.
13187         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
13188         * reload1.c (reload_as_needed): Likewise.
13189         * stupid.c (stupid_find_reg): Likewise.
13190         * tm.texi (Obsolete Register Macros): Delete section.
13191         * gmicro.h: Remove all traces of the two macros.
13192         * i386.h: Likewise.
13193         * m88k.h: Likewise.
13194         * mips.h: Likewise.
13195
13196 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
13197
13198         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
13199         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
13200         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
13201         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
13202         units for the sparclite86x chip.
13203         (flush): Revert October 14th change; add SImode specifically.
13204         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
13205         * invoke.texi: Document it.
13206
13207 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
13208
13209         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
13210         psimode_truncation_operand.
13211
13212         * config/mn10200/mn10200.c (psimode_truncation_operand): New
13213         function.  Return true if the operand is either a MEM valid
13214         for a PSImode address or not a MEM at all.
13215
13216         * config/mn10200/mn10200.md (truncsipsi2): Use
13217         psimode_truncation_operand.
13218
13219 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13220
13221         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
13222         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
13223         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
13224         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
13225         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
13226         (flow_loop_level_compute, low_loops_level_compute): Likewise.
13227         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
13228         * basic-block.h: Protect from multiple inclusion.
13229         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
13230         (struct loops, struct loop): Define structures.
13231         * sbitmap.c (sbitmap_a_subset_b_p): New function.
13232         * sbitmap.h: Protect from multiple inclusion.
13233         (sbitmap_a_subset_b_p): Add prototype.
13234         * Makefile.in (LOOP_H): New macro.
13235         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
13236
13237 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
13238
13239         * cppinit.c (CAT): The argument list of this macro may not contain
13240         spaces !
13241
13242 1999-11-29  David S. Miller  <davem@redhat.com>
13243
13244         Move quantity tables and register equivalence chains into
13245         per-qty and per-register structure arrays respectively.
13246         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
13247         qty_const_insn, qty_comparison_code, qty_comparison_const,
13248         qty_comparison_qty): Delete, replace with...
13249         (qty_table): this structure table.
13250         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
13251         (reg_eqv_table): this structure table.
13252         (make_new_qty): Add argument MODE.  Caller updated.
13253         Update to use qty_table and reg_eqv_table.
13254         (make_regs_eqv, delete_reg_equiv, insert_regs,
13255         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
13256         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
13257         cse_process_notes, cse_main, cse_basic_block): Likewise.
13258
13259 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13260
13261         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
13262         operation if C is negative.
13263         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
13264         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
13265         law for some divisions if constant is negative and change other
13266         divisions to the opposite rounding.
13267
13268         * expr.c (store_constructor_field): If bit position is not multiple
13269         of alignment of TARGET's mode, use BLKmode.
13270
13271         * expr.c (expand_expr_unaligned): Add more code from full case
13272         that is needed when OP0 is in a register.
13273
13274 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13275
13276         * dwarfout.c (field_byte_offset): Size can be zero if there was
13277         an error.
13278
13279 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
13280
13281         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
13282         (associate_trees): Delete unused var TEM.
13283         (extract_muldiv): Delete unused var CANCEL_P.
13284
13285         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
13286         (target_isinf, target_isnan, target_negative): Add return types to
13287         function definitions.
13288
13289 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
13290
13291         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
13292         * fixinc/hackshell.tpl: ditto
13293         * fixinc/fixtests.c(double_slash_test): more C++ header testing
13294         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
13295
13296 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
13297
13298         * reload.c (push_reload): When looking for a register to put into
13299         reg_rtx, make sure all hard regs in a multi-reg register are in the
13300         right class and nonfixed.
13301
13302         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
13303         pending_read_insns, pending_write_insns, pending_read_mems,
13304         pending_write_mems, pending_list_length, last_pending_memory_flush,
13305         last_function_call, sched_before_next_call): Move static variables
13306         into a structure.
13307         (bb_ prefixed versions): Replace with single array bb_deps.
13308         (struct deps): New structure.
13309         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
13310         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
13311         argument of type "struct deps *"; use that instead of global
13312         variables.  All callers changed.
13313         (init_rgn_data_dependencies): Delete function.
13314         (init_rtx_vector): Delete function.
13315         (init_deps): New function.
13316
13317         (free_pending_lists): Simplify, we always use the bb_deps array even
13318         if only one basic block.
13319         (compute_block_backward_dependences): Likewise.
13320         (schedule_region): Likewise.
13321
13322         (propagate_deps): New function, broken out of
13323         compute_block_backward_dependences.
13324         (compute_block_backward_dependences): Use it.
13325
13326         * alpha.md: Delete useless patterns that tried to work around
13327         register elimination problems.
13328
13329         * unroll.c (loop_iterations): Don't abort if iteration variable
13330         was made by loop.
13331
13332         From Joern Rennecke:
13333         * reload1.c (reloads_conflict): Reverse test comparing operand
13334         numbers when testing for conflict between output/outaddr reloads.
13335
13336 1999-11-29  David S. Miller  <davem@redhat.com>
13337
13338         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
13339         arg.
13340         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
13341
13342 1999-11-28  Robert Lipe  <robertl@cygnus.com>
13343
13344         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
13345         table from .fini into .dtor.
13346
13347 1999-11-28  Anthony Green  <green@cygnus.com>
13348
13349         * tree.h (struct tree_decl): Add malloc_flag.
13350         (DECL_IS_MALLOC): Define.
13351         * c-common.c (attrs): Add A_MALLOC attribute.
13352         (init_attributes): Add this attribute to the table.
13353         (decl_attributes): Handle malloc attribute.
13354         * calls.c (special_function_p): Check for the malloc attribute.
13355         * extend.texi (Function Attributes): Document malloc attribute.
13356
13357 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
13358
13359         * pa.md (reload shift-add patterns): Remove.
13360
13361 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13362
13363         * reorg.c (dbr_schedule) Print more statistics. Corrected
13364         problem when printing info when 3 delay slots are filled.
13365
13366 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
13367
13368         * combine.c (setup_incoming_promotions): Pass an outgoing
13369         regno to FUNCTION_ARG_REGNO_P which it expects.
13370
13371 1999-11-28  Andreas Jaeger  <aj@suse.de>
13372
13373         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
13374
13375 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
13376
13377         * cccp.c (do_include): Avoid initialization of automatic variable.
13378
13379         * integrate.c (mark_stores): Function definition made void, to match
13380         previous declaration.
13381         * regclass.c (dump_regclass): Ditto.
13382         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
13383
13384 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13385
13386         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
13387         known to be multiple of divisor.
13388
13389         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
13390
13391         * combine.c (try_combine): Add code to try to merge a set of a
13392         two-word pseudo to a constant with a setting of one of those words
13393         to a constant.
13394
13395         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
13396         (split_tree): Completely rework to make more general.
13397         (make_range, fold): Call negate_expr.
13398         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
13399         (fold, associate): Call new split_tree and associate_trees.
13400         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
13401
13402 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
13403
13404         * loop.c (try_copy_prop): Avoid GNU C extension.
13405
13406 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
13407
13408         * except.c (init_eh_for_function): Still zero eh_return_context,
13409         eh_return_stack_adjust, and eh_return_handler.
13410
13411         * except.h (eh_status): Adjust documentation for x_protect_list.
13412         (begin_protect_partials): New function.
13413         * except.c (enqueue_eh_entry): Fix formatting.
13414         (get_first_handler): Add consistency check.
13415         (add_partial_entry): Adjust usage of protect_list.
13416         (emit_cleanup_handler): Save and restore ehqueue.
13417         (expand_start_all_catch): Add comment.
13418         (begin_protect_partials): New function.
13419         (end_protect_partials): Adjust usage of protect_list.
13420         (init_eh_for_function): Use xcalloc.
13421
13422 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13423
13424         * c-common.c (check_format_info): Don't call a variadic function
13425         with a non-literal format string.
13426
13427         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
13428
13429         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
13430         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
13431         Likewise.
13432
13433         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
13434         Likewise.
13435
13436         * collect2.c (collect_wait): Likewise.
13437
13438         * dbxout.c (dbxout_type): Likewise.
13439
13440         * gcc.c (do_spec_1): Likewise.
13441
13442         * genemit.c (gen_insn, gen_expand): Likewise.
13443
13444         * genrecog.c (write_switch, write_subroutine): Likewise.
13445
13446         * mips-tfile.c (catch_signal, botch): Likewise.
13447
13448         * print-rtl.c (print_rtx): Likewise.
13449
13450         * toplev.c (default_print_error_function, report_error_function,
13451         _fatal_insn): Likewise.
13452
13453 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
13454
13455         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
13456
13457 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13458
13459         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
13460         operations when needed.
13461         * i386.md (fop_?f_comm): New.
13462         (fop_?f_1): Do not accept commutative operands.
13463
13464 1999-11-25  Andreas Jaeger  <aj@suse.de>
13465
13466         * config/mips/mips.md (casesi_internal): Add missing brace.
13467
13468 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
13469
13470         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
13471         (splice_child_die): Handle moving a child DIE from the declaration
13472         DIE of a class to its specification.
13473         (gen_struct_or_union_type_die): Use 'complete' consistently.
13474         (gen_decl_die): Generate the virtual context DIE first.
13475         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
13476
13477 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
13478
13479         * config/mips/mips.md (call_value_multiple_interanal1): New.
13480
13481 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
13482
13483         * dwarf2out.c (free_AT, free_die): New fns.
13484         (remove_children): Call them.
13485         (output_line_info): Disable removal of duplicate notes.
13486
13487         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
13488         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
13489         means pretend the type isn't defined.
13490         Don't defer emitting types.
13491         (gen_type_die_for_member): New fn.
13492         (gen_decl_die): Call it.
13493         (splice_child_die): New fn.
13494         (gen_member_die): Call it rather than generate duplicate dies.
13495
13496         Defer emitting information for the abstract instance of an inline
13497         until we either inline it or emit an out-of-line copy.
13498         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
13499         from output_inline_function if DECL_ABSTRACT is also set.
13500         (block_ultimate_origin): Likewise.
13501         (gen_abstract_function): New fn.
13502         (gen_decl_die, gen_inlined_subroutine_die): Call it.
13503         (gen_subprogram_die):  An abstract instance is not a declaration
13504         just because it doesn't match current_function_decl.  Don't abort
13505         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
13506         has an abstract origin.
13507         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
13508         abstract instance here.
13509
13510 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
13511
13512         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
13513         where we need to reload fpul from a system register.
13514
13515 1999-11-24  Andreas Jaeger  <aj@suse.de>
13516
13517         * config/mips/linux.h (CPP_PREDEFINES): Added.
13518         (LINK_SPEC): Remove -Y since this is only needed on sparc.
13519
13520 1999-11-24  Andreas Jaeger  <aj@suse.de>
13521
13522         * config/mips/linux.h (TARGET_VERSION): Added.
13523         (HANDLE_SYSV_PRAGMA): Added.
13524         (DEFAULT_VTABLE_THUNKS): Added.
13525
13526 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13527
13528         * local-alloc.c (qty): New structure and static variable.
13529         (qty_phys_reg): Remove, all references changed to qty.
13530         (qty_n_refs): Likewise.
13531         (qty_min_class): Likewise.
13532         (qty_birth): Likewise.
13533         (qty_death): Likewise.
13534         (qty_size): Likewise.
13535         (qty_mode): Likewise.
13536         (qty_n_calls_crossed): Likewise.
13537         (qty_alternate_class): Likewise.
13538         (qty_changes_size): Likewise.
13539         (qty_first_reg): Likewise.
13540         (alloc_qty): Rename variable QTY to QTYNO.
13541         (finf_free_reg): Likewise.
13542         (local_alloc): Allocate qty, do not allocate the removed variables.
13543
13544 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
13545
13546         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
13547         when -membedded-pic is passed.
13548
13549         * config/mips/mips.md (casesi): Handle 64-bit case too.
13550         (casesi_internal_di): New insn.
13551
13552         * config/mips/mips.c (embedded_pic_offset): Always make the
13553         embedded-pic subtractions relative to the name of the current
13554         function by use of the magic string "..CURRENT_FUNCTION".
13555         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
13556
13557 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
13558
13559         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
13560         of (const_int 0), when what we really care about is
13561         whether it's a zero constant anyway.
13562         (div_trap_mips16): Likewise.
13563
13564 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
13565
13566         * loop.c (loop_optimize): Always find_loop_tree_blocks and
13567         unroll_block_trees when generating debuggable code.
13568
13569         * tree.h (unsave_expr_1): New function.
13570         (lang_unsave): New variable.
13571         (get_callee_fndecl): New function.
13572         * tree.c (unsave_expr_now_r): New function.
13573         (lang_unsave): Define.
13574         (unsave_expr_1): Likewise.
13575         (unsave_expr_now_r): Split out from unsave_expr_now.
13576         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
13577         call unsave_expr_now_r.
13578         (get_callee_fndecl): Define.
13579
13580         * Makefile.in (gencheck): Don't depend on lang_tree_files.
13581         (gencheck.o): Do depend on lang_tree_files.
13582
13583         * integrate.h (copy_decl_for_inlining): New declaration.
13584         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
13585         (copy_decl_for_inlining): New function.
13586         (integrate_parm_decls): Use it.
13587         (integrate_decl_tree): Likewise.
13588
13589 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
13590
13591         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
13592         the second two from the first.
13593         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
13594         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
13595         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
13596         ISA_HAS_FP4.
13597         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
13598         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
13599         ISA_HAS_FP4.
13600
13601 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
13602
13603         * pa.md (call_internal_symref, call_value_internal_symref): No mode
13604         needed on the address operand.
13605         * pa.c (call_operand_address): Check for the correct mode.
13606
13607 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
13608
13609         * loop.c: Include "basic-block.h".
13610         (try_copy_prop, replace_loop_reg): New functions.
13611         (load_mems): Detect registers that just hold copies of the hoisted
13612         mem, and call try_copy_prop to eliminate them.
13613         * Makefile.in (loop.o): Update dependencies.
13614
13615 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
13616
13617         * Makefile.in (gencheck.o): Depend on gencheck.h.
13618         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
13619         (insn-peep.o): Depend on except.h and function.h.
13620         (insn-attrtab.o): Depend on RECOG_H.
13621         (insn-output.o): Depend on toplev.h and flags.h.
13622         (gengenrtl.o): Depend on real.h.
13623         (gen-protos.o): Depend on cpplib.h and cpphash.h.
13624         Unify all dependencies to be on RECOG_H rather than recog.h.
13625
13626 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13627
13628         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
13629         * configure.in: Try building a bi-arch 32/64-bit compiler on
13630         sparc-*-solaris2.7 and higher.
13631         * configure: Rebuild.
13632
13633 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
13634
13635         * config/freebsd.h: New, FreeBSD architecture independent file.
13636         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
13637         independent pieces.
13638         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
13639         directly by i386/freebsd.h.
13640         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
13641         independent configuration file.
13642         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
13643         directly by i386/freebsd.h.
13644         * configure: Rebuilt.
13645
13646         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
13647         which is in the user's namespace.
13648         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
13649         `i386' which is not in our namespace.
13650
13651 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
13652
13653         * invoke.texi (ARM Options): Add in -mno-alignment-traps
13654
13655 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
13656
13657         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
13658         (add_dwarf_attr, add_child_die): Just push onto the front.
13659         (reverse_die_lists): New fn.
13660         (add_sibling_attributes): Use it.
13661         (push_decl_scope): Reorganize.
13662         (add_name_and_src_coords_attributes): Don't set file and line for
13663         an artificial decl.
13664         (gen_subprogram_die): An artificial function doesn't need to match
13665         file and line.
13666         (gen_compile_unit_die): Return the generated die.  Only add
13667         AT_comp_dir if the filename is relative.
13668         (remove_AT): Simplify loop.  Also free string values.
13669         (output_die): A DIE ref can't be null.
13670         (output_value_format, value_format): Take a dw_attr_ref.
13671         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
13672         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
13673         AT_addr, AT_lbl): New fns.
13674         (various): Use them.
13675         (various): Constify.
13676
13677 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13678
13679         * combine.c (combine_simplify_rtx): When handling a SUBREG,
13680         take SUBREG_WORD into account.
13681         (if_then_else_cond): Likewise.
13682
13683 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
13684
13685         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
13686         clause from BSD license, pursuant with
13687
13688           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
13689
13690 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
13691
13692         * loop.c (load_mems): Reformat slightly.
13693         * basic-block.h (regset_head): New typedef.
13694         (INIT_REG_SET): New macro.
13695
13696 1999-11-22  Bruce Korb  <autogen@linuxbox.com
13697
13698         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
13699         (mips-dec-bsd*): non-functional code
13700         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
13701
13702         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
13703         added three replacement fixes
13704         (no_double_slash): removed comments that are not (any longer) pertinent
13705         (bad_lval): this fix currently runs against many files.
13706         The comment seems to indicate that we should select for files
13707         containing 'pragma extern_prefix'.
13708
13709         * fixinc/fixinc.x86-linux-gnu: deleted
13710         * fixinc/inclhack.sh:  regen
13711         * fixinc/fixincl.x:  regen
13712         * fixinc/fixincl.sh:  regen
13713
13714 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
13715
13716         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
13717         its code is INSN and it has no notes.
13718
13719 1999-11-22  Andrew Haley  <aph@cygnus.com>
13720
13721         * varasm.c (function_defined): Remove.
13722         (make_function_rtl): Don't set function_defined.
13723         (make_decl_rtl): Remove global register warning.
13724         * regclass.c (no_global_reg_vars): New variable.
13725         (globalize_reg): Warn if function has already been defined.
13726         (regclass_init): Set no_global_reg_vars.
13727
13728 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13729
13730         * regclass.c (reg_pref): New structure and static variable
13731         (prefclass): Delete.
13732         (altclass): Delete.
13733         (all uses of prefclass and altclass): Use reg_pref instead.
13734
13735 1999-11-21  Nick Clifton  <nickc@cygnus.com>
13736
13737         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
13738         -malignment-traps.
13739         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
13740         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
13741         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
13742
13743 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
13744
13745         * varasm.c (output_constructor): Solve problem with long long
13746         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
13747
13748 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13749
13750         * global.c (allocno): New structure and static variable.
13751         (allocno_reg): Remove, all references replaced by allocno.
13752         (allocno_size): Likewise.
13753         (hard_reg_conflicts): Likewise.
13754         (hard_reg_preferences): Likewise.
13755         (hard_reg_copy_preferences): Likewise.
13756         (hard_reg_full_preferences): Likewise.
13757         (regs_someone_prefers): Likewise.
13758         (allocno_calls_crossed): Likewise.
13759         (allocno_n_refs): Likewise.
13760         (allocno_live_length): Likewise.
13761         (find_reg): Rename ALLOCNO to NUM.
13762
13763         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
13764         references updated.
13765         (may_move_out_cost): New variable.
13766         (init_reg_sets_1): Initialize may_move_out_cost.
13767         (record_reg_classes): Use may_move_out_cost.
13768
13769         * regclass.c (dump_regclass): New function.
13770         (regclass): New parameter DUMP, call DUMP_REGCLASS.
13771         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
13772         pass rtl_dump_file to regclass.
13773         * rtl.h (regclass): Update prototype.
13774
13775 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13776
13777         * i386.md (neg, not and abs patterns): Revmap to use
13778         ix86_expand_unary_operator and ix86_unary_operator_ok.
13779         (add?f and sub?f expanders): Force operand 1 to register.
13780         * i386.c (ix86_expand_unary_operator): Rewrite.
13781         (ix86_unary_operator_ok): Ensure that memory operands
13782         match real opcode.
13783         (ix86_binary_operator_ok): Do not allow operand 1 to
13784         come into memory and operand 0 not.
13785         (ix86_expand_binary_operator): Ensure that
13786         src1 is not non-matching memory.
13787
13788         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
13789         to support integer registers and memory.
13790         (abss?2_integer): Likewise.
13791
13792         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
13793         (REG_CLASS_NAMES): Likewise.
13794         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
13795         and GENERAL_REGS.
13796         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
13797         (movsf): Likewise; unify 4th and 5th alternative.
13798         (pushdf): Likewise.
13799         (movdf_1): Likewise; rename to movdf_integer.
13800         (pushxf): Likewise; rename to pushxf_integer; fix output template;
13801         remove redundant splitter.
13802         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
13803         (movdf_nointeger): New.
13804         (movxf_nointeger): New.
13805         (pushxf_nointeger): New.
13806
13807         * i386.md (extend?f?f): Split to expander and pattern, refuse two
13808         memory operands in patterns.
13809         (fop*): Refuse two memory operands.
13810
13811         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
13812         on !TARGET_USE_CLTD CPUs.
13813
13814 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
13815
13816         * extend.texi: Document C++ restricted pointers and references.
13817
13818 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
13819
13820         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
13821         (invalidate_skipped_set): Call it unconditionally.
13822         (cse_set_around_loop): Likewise.
13823
13824 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
13825
13826         * rtl.texi (mem): Add documentation for alias-set argument
13827         to RTX `mem'.
13828
13829 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13830
13831         * i386.h (struct_processor_costs): New fields int_load, int_store,
13832         fp_move, fp_load and fp_store
13833         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
13834         fp->int moves
13835         (MEMORY_MOVE_COST): New macro.
13836         * i386.c (386_cost): Define new fields.
13837         (i486_cost): Likewise.
13838         (pentium_cost): Likewise.
13839         (pentiumpro_cost): Likewise.
13840         (k6_cost): Likewise.
13841
13842 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
13843                           Geoffrey Keating  <geoffk@cygnus.com>
13844
13845         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
13846
13847         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
13848         MASK_ALIGN_INT.
13849
13850         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
13851         (TARGET_STRICT_ALIGNMENT): New macro.
13852         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
13853         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
13854         * invoke.texi (M680x0 Options): Document -mstrict-align.
13855
13856 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
13857                           Richard Henderson  <rth@cygnus.com>
13858
13859         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
13860         (ix86_split_long_move): Declare.
13861         * i386.c (split_xf, ix86_split_movdi): Remove.
13862         (ix86_split_to_parts, ix86_split_long_move): New.
13863         * i386.md (dimode move splitters): Use ix86_split_long_move.
13864         (dfmode move splitters): Likewise.
13865         (xfmode move splitters): Likewise.
13866         (movsf_1): Allow F->r.
13867         (movdf_1, movxf_1): Allow F->ro.
13868
13869 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
13870
13871         * except.h (struct eh_entry): Add goto_entry_p.
13872         (eh_region_from_symbol): Remove prototype.
13873         * except.c (find_func_region_from_symbol): New function.
13874         (emit_cleanup_handler): Likewise.
13875         (eh_region_from_symbol): Make it static.
13876         (add_new_handler): Verify the argument.
13877         (find_func_region): Update comment.
13878         (expand_eh_region_end): Expand handlers here, rater than waiting
13879         until expand_leftover_cleanups or start_all_catch.
13880         (expand_leftover_cleanups): Don't expand here.
13881         (expand_start_all_catch): Or here.
13882         (expand_rethrow): Check the return value from find_func_region.
13883         * function.c (expand_function_end): Emit the catch_clauses.
13884
13885 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
13886
13887         * integrate.c (expand_inline_function): Add necessary check for NULL.
13888
13889 1999-11-18  Nick Clifton  <nickc@cygnus.com>
13890
13891         * toplev.c (main): Correctly detect an unrecognised option.
13892
13893         * cppinit.c (cpp_handle_option): Do not claim to have consumed
13894         a -f option if it has not been recognised.
13895
13896 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
13897
13898         * basic-block.h (update_life_extent): Remove trailing comma on
13899         enumeration type list.
13900
13901 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13902
13903         * varasm.c (output_constructor) Solved problem with long long
13904         bitfields. Corrected calculating this_time and shift. Also
13905         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
13906
13907 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
13908
13909         * flow.c (split_edge): Take looping structure into account when
13910         determining where to put the new block note.
13911
13912 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
13913
13914         * Makefile.in (ggc-none.o): Provide host specific version if
13915         needed.
13916
13917 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
13918
13919         * cse.c (delete_trivially_dead_insns): Identify no-op insns
13920         containing subregs too.
13921
13922 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
13923
13924         * invoke.texi: Add documentation for -muninit-const-in-rodata.
13925         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
13926         (TARGET_UNINIT_CONST_IN_RODATA): Define.
13927         (text_section): Add switches -munint-const-in-rodata and
13928         -mno-uninit-const-in-rodata.
13929         (ASM_OUTPUT_COMMON): Remove.
13930         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
13931         const objects should be placed in read-only data. Otherwise declare
13932         them in common.
13933
13934 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
13935
13936         * jump.c (jump_optimize_1): Revert last change.
13937
13938 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
13939
13940         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
13941         test if optimizing for size.
13942
13943 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
13944
13945         * Makefile.in (toplev.o): Depend on except.h.
13946         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
13947
13948 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13949
13950         * i386.md (divmodsi4): Rewrite to expander.
13951         (*divmodsi4_nocltd): New.
13952         (*divmodsi4_cltd): New.
13953         (divmodsi4 splitter): Handle the case when input comes in edx.
13954         (udivmodhi4): Do not use constraints in exander.
13955         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
13956
13957 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
13958
13959         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
13960         for the common case.
13961
13962 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
13963
13964         * explow.c (hard_function_value): Add outgoing argument.
13965         * expr.h (hard_function_value): Declare it.
13966         * calls.c (expand_call, emit_library_call_value): Update callers.
13967         * function.c (aggregate_value_p): Ditto.
13968         (diddle_return_value): Must look at the outgoing registers
13969         on archs with register windows.
13970
13971 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
13972
13973         * alpha.c (alpha_build_va_list): Use make_lang_type and
13974         initialize TYPE_NAME for the va_list record.
13975
13976         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
13977
13978         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
13979         for printing.
13980         * ggc.h (struct ggc_statistics): Rearrange elements for better
13981         packing on 64-bit hosts.
13982         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
13983         (compute_nearerout): Likewise.
13984
13985 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
13986
13987         * config/rs6000/rs6000.c (first_reg_to_save): Save
13988         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
13989
13990 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
13991
13992         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
13993         notion of nesting to find the DIE for a type or function.
13994         DIEs can go in limbo even if we got a context_die.
13995         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
13996         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
13997         for local type.
13998         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
13999         (gen_type_die): Writing out the context doesn't cause member class
14000         template instantiations to be written out as well.
14001
14002 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
14003
14004         * rs6000.h (ASM_OUTPUT_DEF): New.
14005         Based on proposed addition from David Edelsohn.
14006
14007 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
14008             Bruce Korb  <autogen@linuxbox.com>
14009
14010         * fixinc/inclhack.def
14011         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
14012         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
14013                 in net/inet.h.
14014         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
14015         (svr4_endian): enabled with SVR5
14016         (svr4_mkdev): simplified syntax and enabled with SVR5
14017
14018 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
14019
14020         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
14021         * configure: Rebuilt.
14022         * config/t-freebsd-thread: New file.
14023
14024 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
14025
14026         * i386.c (ix86_decompose_address): Verify the base is a REG
14027         before trying to examine its register number.
14028
14029         * basic-block.h: Remove all #defines and prototypes related to
14030         integer lists.
14031         (free_bb_mem, compute_preds_succs): Remove prototype.
14032         * rtl.h (free_bb_mem): Remove prototype.
14033         * flow.c (alloc_int_list_node); Remove function.
14034         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
14035         (compute_preds_succs, free_bb_mem): Likewise.
14036         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
14037         * toplev.c (rest_of_compilation): Likewise.
14038         * haifa-sched.c (build_control_flow): Use flow generated edge
14039         list to build the haifa specific edge list.
14040         (find_rgns): Use new CFG data structures instead of pred/succ lists.
14041         (schedule_insns): Do not build pred/succ lists anymore.  Instead
14042         build the edge table.
14043
14044         * basic-block.h (dump_bb_data): Remove declaration.
14045         * flow.c (dump_bb_data): Remove function.
14046         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
14047         (sbitmap_union_of_predsucc): Likewise.
14048
14049         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
14050         argument.  All callers changed.
14051         (delete_null_pointer_checks_1): No longer need to compute the
14052         pred/succ lists.
14053
14054         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
14055         All callers changed.
14056         (pre_expr_reaches_here_p_work): Likewise.
14057         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
14058         * lcm.c (compute_laterin): Fix initialization of LATER.
14059         (compute_nearerout): Similarly for NEARER.
14060
14061 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14062
14063         * cse.c (set_nonvarying_address_components): Delete unused function.
14064         (refers_to_p): Likewise.
14065
14066 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
14067
14068         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
14069         needed.
14070
14071 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14072
14073         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
14074         definition in do while (0).
14075
14076 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
14077
14078         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
14079
14080 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
14081
14082         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
14083
14084 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
14085
14086         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
14087         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
14088         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
14089         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
14090
14091         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
14092         saved on the stack.  Output more accurate stack frame statistics
14093         into assembler file.
14094
14095 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
14096
14097         * genextract.c (record_insn_name): New function.
14098         (get_insn_name): No longer a stub.
14099         (main): Call record_insn_name for each insn.  After each label
14100         written, print the insn name in a comment.
14101
14102 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14103
14104         * output.h (const_section, init_section, fini_section): Add
14105         prototypes.
14106
14107         * alpha/elf.h (const_section): Delete declaration.
14108
14109         * svr4.h (const_section): Likewise.
14110
14111 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
14112
14113         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
14114         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
14115         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
14116         expressions.
14117         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
14118         variable-sized array bounds.
14119
14120 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
14121
14122         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
14123         ASM_OUTPUT_LABEL.
14124
14125 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14126
14127         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
14128         addresses the same way GO_IF_LEGITIMATE_INDEX does.
14129
14130 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14131
14132         * cse.c (hash_arg_in_struct): Delete.
14133         (struct table_elt): Delete elt in_struct.
14134         (struct set): Delete elt src_in_struct.
14135         (merge_equiv_classes): Don't set either hash_arg_in_struct or
14136         the corresponding in_struct elts.
14137         (canon_hash): Likewise.
14138         (safe_hash): Likewise.
14139         (find_best_addr): Likewise.
14140         (record_jump_cond): Likewise.
14141         (cse_insn): Likewise.
14142
14143 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
14144
14145         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
14146
14147         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
14148         unsigned types.
14149
14150 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
14151
14152         * function.c (diddle_return_value): Put back check that the DECL_RTL
14153         for the function is a register.
14154
14155         * function.c (diddle_return_value): Use hard_function_value to
14156         get an rtx suitable for use in the USE/CLOBBER insn.
14157
14158         * global.c (global_conflicts): Update comments.
14159         (record_conflicts): No need to record conflicts between pseudos here.
14160
14161 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
14162
14163         * fixinc/fixincl.c: Added verbose levels for status messages
14164
14165 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14166
14167         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
14168         operand as argument to expand_and or expand_binop.
14169
14170 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
14171
14172         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
14173         gcc_add_string_root.
14174
14175 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
14176
14177         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
14178
14179 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
14180
14181         * flow.c (compute_flow_dominators): Initially put all blocks on
14182         the worklist.
14183         * lcm.c (compute_antinout_edge, compute_available): Similarly.
14184         * gcse.c (compute_cprop_avinout): Remove.
14185         (compute_cprop_data): Use compute_available.
14186         (delete_null_pointer_checks_1): Use compute_available.
14187
14188         * basic-block.h (compute_available): Returns a void now.
14189         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
14190         to return a value anymore.
14191         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
14192         worklists.  Fix boundary cases. Compute maximal solutions.
14193         (compute_laterin, compute_nearerout): Similarly.
14194
14195         * dwarf2out.c (add_AT_location_description): Allow
14196         (mem (plus (pseudo) (...)) too.
14197
14198 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
14199
14200         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
14201
14202 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
14203                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14204
14205         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
14206
14207         * gansidecl.h: Likewise.
14208
14209         * rtl.c: Likewise.
14210
14211         * rtl.h: Likewise.
14212
14213         * toplev.h: Likewise.
14214
14215         * tree.c: Likewise.
14216
14217         * tree.h: Likewise.
14218
14219         * varray.c: Likewise.
14220
14221         * varray.h: Likewise.
14222
14223 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
14224
14225         * gcov.c (struct arcdata): Add hits and total, remove prob.
14226         (output_branch_counts): New.
14227         (process_args): Set output_branch_counts if -c.
14228         (calculate_branch_probs): Store hits and total instead of
14229         percentage.
14230         (output_data): Emit counts if output_branch_counts is true.
14231         * gcov.texi (Invoking Gcov): Document -c switch..
14232
14233 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
14234
14235         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
14236         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
14237
14238 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
14239
14240         * invoke.texi (C Dialect Options): Add missing builtins from
14241         c-common.c to list.
14242         * extend.texi (Other Builtins): Copy to this list.
14243
14244 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14245
14246         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
14247         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
14248         redundant bitmap.h.
14249
14250 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
14251
14252         * flow.c (compute_flow_dominators): No longer treat basic block 0
14253         or (n_basic_blocks - 1) specially.  Clear the AUX field before
14254         starting computation of doms/pdoms.  Fix initial state for pdoms.
14255
14256 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14257
14258         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
14259         match rtl.o's: added ggc.h and toplev.h
14260         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
14261         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
14262         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
14263
14264 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
14265
14266         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
14267         from HAVE_DOS_BASED_FILESYSTEM.
14268         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
14269         HAVE_DOS_BASED_FILESYSTEM.
14270         (main): Likewise.
14271         (split_directories): Only special-case DOS file names if
14272         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
14273         instead of explicit tests.  Conditionalize on !VMS.
14274         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
14275         tests.  Conditionalize on !VMS.
14276         (process_command): Only use make_relative_prefix if !VMS.
14277         (free_split_directories): Conditionalize on !VMS.
14278         (DIR_UP): Conditionalize on !VMS.
14279
14280 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
14281
14282         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
14283
14284 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
14285
14286         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
14287         case.
14288
14289 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
14290
14291         * invoke.texi (Environment Variables): Document relative path
14292         lookup.
14293         * gcc.c (DIR_UP): If not defined, define as "..".
14294         (standard_bindir_prefix): New static, holds target location to
14295         install binaries.
14296         (split_directories): New function to split a filename into
14297         component directories.
14298         (free_split_directories): New function, release memory allocated
14299         by split_directories.
14300         (make_relative_prefix): New function, make a relative pathname if
14301         the compiler is not in the expected location.
14302         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
14303         can figure out an appropriate prefix from argv[0].
14304         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
14305         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
14306         STANDARD_BINDIR_PREFIX.
14307
14308 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14309
14310         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
14311         in c4x.c.
14312         * config/c4x/c4x.h: Moved prototypes to c4x.h.
14313         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
14314         c4x_secondary_memory_needed) Delete.
14315         (fp_zero_operand): Add mode argument.
14316
14317 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
14318
14319         * reload1.c (reload_reg_free_for_value_p): Don't use a register
14320         that is in reload_reg_used.
14321
14322 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
14323
14324         * config/arm/arm-protos.h: New file: Prototypes for functions
14325         defined in arm.c and pe.c.
14326         * config/arm/arm.h: Fix compile time warnings.
14327         * config/arm/arm.c: Fix compile time warnings.
14328         * config/arm/pe.h: Fix compile time warnings.
14329         * config/arm/aout.h: Fix compile time warnings.
14330
14331 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
14332
14333         * config/m32r/m32r-protos.h: New file: Prototypes for functions
14334         defined in m32r.c
14335
14336         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
14337         Add support for subtargets.
14338         Add prototypes for new predicates.
14339         Add scheduling macros.
14340
14341         * config/m32r/m32r.c: Fix compile time warnings.
14342         (int8_operand): New predicate function.
14343         (reg_or_cmp_int16_operand): New predicate function.
14344         (extend_operand): New predicate function.
14345         (m32r_adjust_code): New scheduling function.
14346         (m32r_adjust_priorty): New scheduling function.
14347         (m32r_sched_init): New scheduling function.
14348         (m32r_sched_reorder): New scheduling function.
14349         (m32r_sched_variable_issue): New scheduling function.
14350         (direct_return): New codegen function.
14351         (m32r_not_same_reg): New rtl testsing function.
14352
14353         * config/m32r/m32r.md: Fix compile time warnings.
14354         Add support for pre decrement and post increment memory
14355         references.
14356         Add S<cc> patterns.
14357         Add fabs patterns.
14358
14359 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14360
14361         * global.c (EXECUTE_IF_CONFLICT): Don't define.
14362         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
14363         (find_reg): Likewise.
14364
14365 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
14366
14367         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
14368         to avoid assembler errors.
14369
14370 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
14371
14372         * config/v850/v850-protos.h: New file: Prototypes for functions
14373         defined in v850.c
14374         * config/v850/v850.h: Move prototypes to v850-protos.h
14375         * config/v850/v850.c: Move prototypes to v850-protos.h
14376         * config/v850/v850.md: Fix compile time warnings.
14377
14378         * config/fr30/fr30-protos.h: New file: Prototypes for functions
14379         defined in fr30.c
14380         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
14381         * config/fr30/fr30.c: Fix compile time warnings.
14382         * config/fr30/fr30.md: Fix compile time warnings.
14383
14384 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
14385
14386         * tree.h (get_containing_scope): Declare it.
14387         * tree.c (get_containing_scope): New fucntion.
14388         (decl_function_context): Use it.
14389         * toplev.c (rest_of_compilation): Use get_containing_scope.
14390
14391 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14392
14393         * Makefile.in (rtl.o): Depend on toplev.h.
14394
14395 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
14396
14397         * cse.c (delete_trivially_dead_insns): Replace alloca with
14398         xmalloc/xcalloc.
14399         * except.c (update_rethrow_references): Likewise.
14400         (init_eh_nesting_info): Likewise.
14401         * function.c (identify_blocks): Likewise.
14402         * gcse.c (dump_hash_table): Likewise.
14403         * graph.c (print_rtl_graph_with_bb): Likewise.
14404         * loop.c (combine_movables): Likewise.
14405         (move_movables): Likewise.
14406         (count_loop_regs_set): Likewise.
14407         (strength_reduce): Likewise.
14408         * profile.c (compute_branch_probabilities): New function, split
14409         out from ...
14410         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
14411         * regclass.c (regclass): Likewise.
14412         * regmove.c (regmove_optimize): Likewise.
14413         * toplev.c (compile_file): Likewise.
14414         (main): Don't mess with the stack rlimit.
14415
14416 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
14417
14418         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
14419         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
14420
14421 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
14422
14423         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
14424
14425 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
14426
14427         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
14428         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
14429         macro expansion.
14430
14431 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
14432
14433         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
14434
14435 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
14436
14437         * gcse.c (post_dominators): Kill.
14438         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
14439         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
14440         pass in a pdom array since we do not need pdoms.
14441         * haifa-sched.c (schedule_insns): Similarly.
14442         * flow.c (compute_dominators): Remove dead function.
14443         (compute_flow_dominators): Do not compute doms or pdoms if the
14444         caller does not request them.  Split up loop to build doms and
14445         pdoms.  Use a worklist to compute doms and pdoms.
14446         * basic-block.h (compute_dominators): Remove prototype.
14447
14448 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
14449
14450         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
14451         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
14452         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
14453         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
14454         (cant_move, fed_by_spec_load, is_load_insn): Remove.
14455         (schedule_region): Remove unused variable.
14456         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
14457
14458 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
14459
14460         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
14461         (update_equiv_regs): Likewise.
14462         (block_alloc): Likewise.
14463         * reg-stack.c (reg_to_stack): Likewise.
14464         (convert_regs_2): Likewise.
14465         * reload1.c (reload_as_needed): Likewise.
14466
14467 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
14468
14469         * Makefile.in (dbxout.o): Depend on ggc.h.
14470         (dwarf2out.o): Likewise.
14471         (xcoffout.o): Likewise.
14472         * dbxout.c: Include ggc.h.
14473         (dbxout_init): Register lastfile as a root.
14474         * dwarf2out.c: Include ggc.h.
14475         (dwarf2out_line): Register lastfile as a root.
14476         * xcoffout.c: Include ggc.h.
14477         (xcoffout_source_line): Register xcoff_lastfile as a root.
14478
14479 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
14480
14481         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
14482
14483 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
14484
14485         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
14486         defined.
14487         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
14488
14489 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14490
14491         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
14492         (EXECUTE_IF_CONFLICT): Likewise.
14493         (ALLOCNO_LIVE_P): Avoid signed division.
14494         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
14495         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
14496         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
14497
14498 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
14499
14500         * haifa-sched.c (schedule_block): Don't crash if there's no
14501         next insn for an interblock movement.
14502         (add_branch_dependences): Don't allow clobber insns to move either.
14503
14504 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
14505
14506         * i386.c (split_xf): New.
14507         * i386-protos.h: Declare it.
14508         * i386.md (movxf_1): Add general regs alternatives.
14509         (movxf_1+1): New splitter for same.
14510
14511 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
14512
14513         * function.c (purge_addressof_1): Add missing return values.
14514
14515 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
14516
14517         * function.c (is_addressof): New function.  Returns true if
14518         the given piece of RTL is an ADDRESSOF.
14519         (purge_addressof_1): Make boolean.  Return false if the
14520         ADDRESSOFs could not be purged.
14521         (purge_addressof): If ADDRESSOFs could not be purged from the
14522         notes attached to an insn, remove the offending note(s),
14523         unless they are attached to a libcall.
14524
14525 1999-11-05  Andreas Jaeger  <aj@suse.de>
14526
14527         * genoutput.c (null_operand =): Initialize all fields.
14528
14529         * errors.h: Add extern to prototypes.
14530
14531 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
14532
14533         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
14534         * configure: Rebuilt.
14535
14536 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14537
14538         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
14539         (mirror_conflicts): New function.
14540         (global_alloc): Call it.
14541         (expand_preferences): Remove redundant CONFLICTP test.
14542         (find_reg, dump_conflicts): Likewise.
14543         (prune_preferences): Process conflicts one word at a time.
14544
14545 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
14546
14547         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
14548         instead of an explicit loop.
14549
14550 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
14551
14552         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
14553         if REG_RETVAL check succeeds, then put classp in src_elt.
14554
14555 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
14556
14557         * function.c (pad_to_arg_alignment): Only update argument_pad
14558         if the argument's alignment is greater than STACK_BOUNDARY.
14559
14560 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
14561
14562         * bitmap.h (BITMAP_XFREE): New.
14563         * flow.c (life_analysis): Use it.
14564         (life_analysis_1): Free blocks.
14565
14566         * combine.c (undo_commit): New.
14567         (try_combine): Use it.  Don't zap undobuf.undos.
14568         (combine_instructions): Don't zap undobuf.undos; free the
14569         undobuf.frees list.
14570
14571         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
14572
14573         * stmt.c (cost_table_): New.
14574         (estimate_case_costs): Use it instead of xmalloc.
14575
14576         * toplev.c (compile_file): Reuse dumpname memory instead
14577         of strdup'ing it.
14578
14579 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
14580
14581         * reg-stack.c (convert_regs_1): Initialize target_stack->top
14582         after verifying an EH edge.
14583
14584         * haifa-sched.c (init_rgn_data_dependences): Correctly
14585         size bb_pending_lists_length when zeroing.
14586
14587 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
14588
14589         * function.c (diddle_return_value): New.
14590         (expand_function_end): Use it.
14591         * stmt.c (expand_null_return): Likewise.
14592         (expand_value_return): Likewise.
14593
14594         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
14595
14596         * reload1.c (reload): Don't remove return value clobbers.
14597
14598 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
14599
14600         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
14601
14602 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
14603
14604         * cse.c (cse_main): Use xmalloc, not alloca.
14605         (cse_basic_block): Likewise.
14606         * local-alloc.c (local_alloc): Likewise.
14607
14608 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
14609                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14610
14611         * rtl.c: Include toplev.h.
14612         (fatal): Remove declaration.
14613
14614 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
14615
14616         * haifa-sched.c (schedule_block): Fix thinko.
14617
14618 1999-11-03  James McKelvey <mckelvey@fafnir.com>
14619
14620         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
14621         S_IR* defined values
14622
14623 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
14624
14625         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
14626         call `malloc' instead.
14627
14628 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
14629
14630         * flags.h (flag_renumber_insns): Declare.
14631         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
14632         renumbering table.
14633         * rtl.h (renumber_insns): Change prototype.
14634         * toplev.c (flag_renumber_insns): Define.
14635         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
14636
14637 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
14638
14639         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
14640         and fpsqrtd.  Use them and create fdiv function unit to more
14641         accurately represent fpu sqrt pipeline semantics on UltraSparc.
14642         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
14643
14644 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
14645
14646         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
14647         3 on UltraSparc.
14648         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
14649         insn into ready list, do not use just a raw swap.
14650
14651 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
14652
14653         * rtl.h (renumber_insns): New function.
14654         (remove_unnecessary_notes): Likewise.
14655         * emit-rtl.c (renumber_insns): Define.
14656         (remove_unncessary_notes): Likewise.
14657         * toplev.c (rest_of_compilation): Remove dead code.
14658         Use renumber_insns and remove_unncessary_notes.
14659
14660         * gcse.c (struct null_pointer_info): New type.
14661         (get_bitmap_width): New function.
14662         (current_block): Remove.
14663         (nonnull_local): Likewise.
14664         (nonnull_killed): Likewise.
14665         (invalidate_nonnull_info): Take a null_pointer_info as input.
14666         (delete_null_pointer_checks_1): New function.
14667         (delete_null_pointer_checks): Use it.
14668
14669         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
14670         (split_edges): Likewise.
14671         (schedule_block): Likewise.
14672         (compute_block_backward_dependencies): Likewise.
14673         (schedule_region): Likewise.
14674         (schedule_insns): Likewise.
14675
14676 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
14677
14678         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
14679         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
14680         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
14681         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
14682         * jump.c (delete_unreferenced_labels): Don't delete if
14683         LABEL_ALTERNATE_NAME is set.
14684         * print-rtl.c (print_rtx): Dump alternate name.
14685         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
14686         * rtl.h (LABEL_ALTERNATE_NAME): Define.
14687         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
14688         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
14689
14690 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14691
14692         * fix-header.c (recognized_extern, recognized_function): Constify
14693         a char*.
14694
14695         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
14696         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
14697         (compute_available): Remove unused variable `last'.
14698         (compute_nearerout): Remove unused variable `temp_bitmap'.
14699         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
14700         Remove unused variable `x'.
14701
14702         * scan.h (recognized_function, recognized_extern): Constify a
14703         char*.
14704
14705         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
14706
14707 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14708
14709         * varasm.c (decode_rtx_const): Use XSTR to access the string
14710         of a SYMBOL_REF.
14711
14712 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
14713
14714         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
14715
14716 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14717
14718         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
14719
14720 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
14721
14722         * pa.c (ireg_operand): New function.
14723         * pa.h (PREDICATE_CODES): Handle ireg_operand.
14724         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
14725         Fix out of date comment.
14726
14727         * pa.md (negdi2): Turn into expander + anonymous pattern.
14728
14729         * reload.c (find_reloads): Fix typos in recent change.
14730
14731         * dwarf2out.c: Do not include ctype.h.
14732
14733 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14734
14735         * regclass.c (record_reg_classes): Always use may_move_cost when
14736         seeing how operand fits with various register classes.
14737
14738 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
14739
14740         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
14741         * toplev.c: Revert Nov 1 13:22 change.
14742
14743 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
14744
14745         * config/pa/pa.md (height reduction patterns): Add checks for
14746         overlapping operands to avoid semantic-destroying splits for
14747         height reduction patterns.
14748
14749 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14750
14751         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
14752         have been an hyphen, fixed.
14753         * configure: Rebuilt.
14754
14755 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
14756
14757         * config/arm/tpe.h: Add prototypes for exported functions.
14758         * config/arm/pe.c: Fix compile time warnings.
14759         * config/arm/semi.h: Fix compile time warnings.
14760         * config/arm/arm.c: Fix compile time warnings.
14761         * config/arm/arm.h: Fix compile time warnings.
14762         * config/arm/arm.md: Fix compile time warnings.
14763         * config/arm/thumb.c: Fix compile time warnings.
14764         * config/arm/thumb.h: Fix compile time warnings.
14765         * config/arm/thumb.md: Fix compile time warnings.
14766
14767 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
14768
14769         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
14770         detection code
14771
14772         * unroll.c (unroll_loop): Remove LOOP notes when loop is
14773         completely unrolled.
14774
14775 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14776
14777         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
14778
14779 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
14780
14781         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
14782         * rtl.h (rtx_equal_p): Move prototype.
14783         * rtl.c (rtx_equal_function_value_matters): Move from
14784         rtlanal.c
14785         (rtx_equal_p): Likewise.
14786         * rtlanal.c (rtx_equal_function_value_matters): Delete.
14787         (rtx_equal_p): Likewise.
14788
14789 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
14790
14791         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
14792         ! HAS_INIT_SECTION.
14793
14794 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
14795
14796         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
14797
14798         * pa.h (ADDR_VEC_ALIGN): Define.
14799
14800         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
14801         notes when presented with "if (foo) break; end_of_loop" and
14802         the break sequence gets moved out of the loop.
14803
14804         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
14805         Remove explicit zero initializations of entries within MAP.
14806
14807 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
14808
14809         * reg-stack.c (convert_regs_1): Handle EH edges specially.
14810
14811 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
14812
14813         * bitmap.h (BITMAP_XMALLOC): New macro.
14814         * flow.c (CLEAN_ALLOCA): Remove.
14815         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
14816         (life_analysis): Likewise.
14817         (update_life_info): Don't use CLEAN_ALLOCA.
14818         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
14819         (calculate_global_regs_live): Likewise.
14820         (print_rtl_with_bb): Likewise.
14821         (verify_flow_info): Likewise.
14822         * global.c (global_alloc): Likewise.
14823         (global_conflicts): Likewise.
14824         * integrate.c (save_for_inline_nocopy): Likewise.
14825         (expand_inline_function): Likewise.
14826         * jump.c (jump_optimize_1): Likewise.
14827         (duplicate_loop_exit_test): Likewise.
14828         (thread_jumps): Likewise.
14829         * loop.c (loop_optimize): Likewise.
14830         (combine_givs): Likewise.
14831         (recombine_givs): Likewise.
14832         * reorg.c (dbr_schedule): Likewise.
14833         * unroll.c (unroll_loop): Likewise.
14834
14835         * combine.c (combine_instructions): Use xmalloc instead of alloca.
14836
14837 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
14838
14839         * toplev.c (rest_of_compilation): Don't optimize the CFG
14840         when rebuilding, just before dbr.
14841
14842 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14843
14844         * output.h (assemble_end_function, assemble_destructor,
14845         assemble_constructor, assemble_gc_entry, assemble_global,
14846         assemble_label, output_constant_pool) Constify a char*.
14847
14848         * varasm.c (assemble_destructor, assemble_constructor,
14849         assemble_gc_entry, assemble_end_function, assemble_global,
14850         assemble_label, output_constant_pool): Likewise.
14851
14852 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
14853
14854         * config/arm/thumb.c (thumb_expand_prologue): Add comments
14855         explaining what is goin on in this function.
14856
14857 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14858
14859         * regclass.c (record_reg_classes): In matching case, recompute
14860         costs since the direction of movement is different.
14861
14862 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
14863
14864         * resource.c (mark_target_live_regs): For unconditional branches,
14865         the resources found at the branch target should be added to the
14866         resources found so far, not intersected.
14867
14868 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
14869
14870         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
14871         old cpp's.
14872         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
14873         (sys/mman.h): Include this file only if #HAVE_MMAP.
14874         (run_compiles): Initialize `esac_fmt' with one old KR string, not
14875         with automatically concatenated ANSI strings.
14876
14877 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
14878
14879         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
14880         (DIV_ROUND_UP): Robustify.
14881         (ggc_recalculate_in_use_p): New function.
14882         (release_pages): Don't inline it.
14883         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
14884         outer contexts.
14885         (ggc_pop_context): Use ggc_recalculate_in_use_p.
14886         (clear_marks): Always save in_use_p.
14887         (sweep_pages): Use ggc_recalculate_in_use_p.
14888         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
14889         Release pages before counting statistics.
14890
14891 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
14892
14893         * toplev.c (rest_of_compilation): Fix thinko in this change:
14894
14895         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
14896
14897         (rest_of_compilation): If inside an inlined external function,
14898         pretend we are just being declared.
14899
14900 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
14901
14902         * flow.c (calculate_global_regs_live): Fix thinko.
14903
14904         * integrate.c (expand_inline_function): Fix bugs in previous
14905         change from Oct 28, 1999.
14906
14907 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
14908
14909         * stmt.c (expand_value_return): Fix typo in this change:
14910
14911         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14912         (expand_value_return): Correctly convert VAL when promoting function
14913         return; support RETURN_REG being a PARALLEL.
14914
14915 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
14916
14917         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
14918
14919 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14920
14921         * hard-reg-set.h (reg_names): Constify a char*.
14922
14923         * regclass.c  (reg_names): Likewise.
14924
14925         * regs.h (reg_names): Likewise
14926
14927         * a29k/a29k.c (reg_names): Delete declaration.
14928
14929         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
14930
14931         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
14932         arc_output_function_epilogue): Likewise.
14933
14934         * elxsi/elxsi.c (reg_names): Likewise.
14935
14936         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
14937
14938         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
14939         Likewise.
14940
14941         * m88k/m88k.c (output_function_profiler): Likewise.
14942
14943         * sparc/sparc.c (sparc_flat_output_function_prologue,
14944         sparc_flat_output_function_epilogue): Likewise.
14945
14946 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
14947
14948         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
14949         warning from -Wuninitialized and put it under -W.
14950         * function.c (uninitialized_vars_warning): Warn only when the
14951         corresponding flag is set.
14952
14953 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
14954
14955         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
14956         is nonzero and the single set does not have an elt, then assign
14957         it an elt.
14958
14959         * simplify-rtx.c: New file.
14960         * Makefile.in (OBJS): Add simplify-rtx.o
14961         (simplify-rtx.o): Add dependencies.
14962         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
14963         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
14964         (cse_gen_binary, simplify_unary_operation): Delete.
14965         (simplify_binary_operation, simplify_plus_minus): Likewise.
14966         (check_fold_consts, simplify_relation_operation): Likewise.
14967         (simplify_ternary_operation): Likewise.
14968         (delete_trivially_dead_insns): Simplify the contents of the
14969         REG_EQUAL note before trying to substitute it into the source
14970         of the reg-reg copy at the end of a libcall sequence.
14971
14972         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
14973         references/callers changed.
14974
14975         * mn10200.c (mn10200_va_arg): Force the return value into a
14976         register.
14977
14978         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
14979
14980         * cccp.c (macroexpand): Avoid out of range accesses for omitted
14981         arguments.
14982
14983 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
14984
14985         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
14986
14987 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
14988
14989         * fold-const.c (fold): Fix thinko when optimizing comparisons
14990         against -0.0.
14991
14992 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
14993
14994         * gcc.texi (Passes): Update front-end files to their current
14995         location.
14996
14997 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
14998
14999         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
15000         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
15001         (PREDICATE_CODES): Add addition_operation.
15002         * alpha-protos.h (addition_operation): Declare.
15003         (secondary_reload_class): Likewise.
15004         * alpha.c (addition_operation): New.
15005         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
15006         * alpha.md (adddi3): Turn into expander.
15007         (*lda, *adddi_2): New.
15008         (movsf, movdf patterns): Don't preference integer regs.
15009         (movsi, movdi patterns): Don't preference fp regs.
15010
15011 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
15012
15013         * genrecog.c (write_switch): Check for duplicate CODE cases.
15014
15015 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
15016
15017         * ggc-common.c: Update pre-function commentary.
15018         * ggc-page.c: Likewise.
15019         (poison): Remove.
15020         (poison_pages): Use memset directly.
15021         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
15022         (ggc_collect): Poison before sweeping.
15023         * ggc-simple.c: Update pre-function commentary.
15024         (ggc_alloc_obj): Poison non-zeroed memory.
15025
15026 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
15027
15028         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
15029         match format string, even on 64-bit hosts.
15030         * gcc-page.c (ggc_page_print_statistics): Likewise.
15031
15032 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
15033
15034         * config/i386/i386.c (ix86_cpu): Revert last patch.
15035         * config/i386/i386.h (ix86_cpu): Ditto.
15036
15037 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
15038
15039         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
15040         TYPE_SIZE, convert type of result to sizetype.
15041
15042 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
15043
15044         * flow.c (count_or_remove_death_notes): Equate NULL with the
15045         universal set.
15046
15047         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
15048         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
15049         dbr_schedule.
15050
15051         * i386.c (pic_label_no): Delete.
15052         (ix86_attr_length_default): Don't use single_set to peek
15053         inside a parallel.
15054
15055         * recog.c (peephole2_optimize): Allow recog_next_insn to index
15056         the first insn after bb->end.
15057         * i386.md (push mem peeps): Scratch is live after evaluation
15058         of the memory.
15059         (cmp mem peep): Similarly.
15060
15061 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
15062
15063         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
15064         * function.c (pad_to_arg_alignment): Add missing braces.
15065
15066 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15067
15068         * alpha/alpha-protos.h (literal_section): Add prototype.
15069         (alpha_need_linkage, alpha_start_function,alpha_end_function):
15070         Constify a char*.
15071
15072         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
15073         prototype.
15074         (alpha_start_function, alpha_end_function, float_strings,
15075         alpha_need_linkage): Constify a char*
15076
15077         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
15078
15079         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
15080
15081         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
15082
15083         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
15084
15085 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15086
15087         * flow.c (debug_flow_info): Add prototype.
15088
15089         * gcc.c (main): Likewise.
15090
15091         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
15092         Likewise.
15093
15094         * reload1.c (failed_reload, set_reload_reg): Likewise.
15095
15096         * mips-tfile.c (main): Likewise.
15097         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
15098         with ATTRIBUTE_NORETURN.
15099
15100 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
15101
15102         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
15103         DECL is not a memory ref.
15104
15105 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
15106
15107         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
15108         * config/i386/i386.c (ix86_cpu): Add extern attribute.
15109
15110 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
15111
15112         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
15113         * config/mips/elf64.h: ditto.
15114
15115 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
15116
15117         * expr.c (emit_push_insn): New argument alignment_pad.
15118         Update all callers.  Adjust stack pointer based on alignment pad.
15119         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
15120         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
15121         (locate_and_pad_parm): New argument alignment_pad.  Update all
15122         callers.
15123         * expr.h (emit_push_insn): Update prototype.
15124         (locate_and_pad_parm): Update prototype.
15125         * calls.c (arg_data):  Add new field alignment_pad.
15126         (initialize_argument_information): Initialize alignment_pad.
15127
15128 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
15129
15130         * except.c (free_eh_nesting_info): Free the info itself.
15131         * function.c (free_after_compilation): Don't free NULL.
15132         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
15133         (pre_edge_insert): Free inserted.
15134         * stmt.c (free_stmt_status): Don't free NULL.
15135
15136 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
15137
15138         * gcov.c (DIR_SEPARATOR): Provide default.
15139         (output_data): Add test for MS-DOS format absolute filename.
15140         (fancy_abort): Correct program name.
15141         (open_files): Open all files in binary mode.
15142         * libgcc2.c (__bb_exit_func): Likewise.
15143
15144         * profile.c (init_branch_prob): Specify binary when opening files.
15145
15146         * flags.h (flag_unwind_tables): New decl.
15147         * toplev.c (flag_unwind_table): New definition.
15148         (f_options): Add -funwind-tables.
15149         (decode_g_option): Clarify warning when unknown -g option is given.
15150         (rest_of_compilation): If inside an inlined external function,
15151         pretend we are just being declared.
15152
15153         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
15154         (dwarf2out_frame_finish): Likewise.
15155
15156 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
15157
15158         * fold-const.c (merge_ranges): If not in0, but in1, handle
15159         upper bounds equal like subset case.
15160
15161 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
15162
15163         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
15164         passed in a register but moved to the stack.
15165
15166 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
15167
15168         * gcc.c (pass_exit_codes, greatest_status): New variables.
15169         (struct option_map): Add entry for "--pass-exit-codes".
15170         (execute): Update greatest_status if error.
15171         (display_help): Add documentation for -pass-exit-codes.
15172         (process_command): Handle -pass-exit-codes.
15173         (main): Look at pass_exit_codes and greatest_status on call to exit.
15174
15175 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15176
15177         * reload.c (find_reloads): Refine test for no input reload
15178         case to not includes reloads emitted after insn.
15179
15180         * function.c (find_temp_slots_from_address): Handle sum involving
15181         a register that points to a temp slot.
15182         (update_temp_slot_address): Make recursive call if both old and
15183         new are PLUS with a common operand.
15184         * calls.c (expand_call): Mark temp slot for result as having
15185         address taken.
15186
15187         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
15188
15189         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
15190         component as well as "BINUTILS".
15191
15192         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
15193         * integrate.c (copy_rtx_and_substitute): Likewise.
15194         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
15195         All callers changed.
15196         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
15197
15198         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
15199         gdb extensions, write size of type; also be more consistent
15200         in using references when this is a subtype.
15201
15202         * pa.md (extv, extzv, insv): Use define_expand to reject constant
15203         that is out of range.
15204
15205         * loop.c (unknown_constant_address_altered): New variable.
15206         (prescan_loop): Initialize it.
15207         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
15208         (invariant_p, case MEM): Remove handling for volatile and readonly;
15209         check new variable if readonly.
15210         (check_dbra_loop): Chdeck unknown_constant_address_altered.
15211
15212         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
15213         (addr_affects_sp_p): Removed from note_mem_written and only
15214         define #ifdef AUTO_INC_DEC.
15215
15216         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
15217
15218         * regclass.c (record_reg_classes): Properly handle register move
15219         directions.
15220
15221         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
15222         Don't think valid if both operands are invalid.
15223         (struct constant_descriptor): New field RTL.
15224         (mark_const_hash_entry): Mark it.
15225         (record_constant{,_rtx}): Initialize it.
15226         (output_constant_def): Allocate RTL in permanent obstack and
15227         save in table.
15228         ({record,compare}_constant_1): Modes must match for
15229         CONSTRUCTOR of ARRAY_TYPE.
15230
15231         * c-common.h (initializer_constant_valid_p): Delete decl from here.
15232         * output.h (initializer_constant_valid_p): Move decl to here.
15233         * c-common.c (initializer_constant_valid_p): Delete function from here.
15234         * varasm.c (initializer_constant_valid_p): Move function to here.
15235
15236         * tree.h (STRIP_SIGN_NOPS): New macro.
15237         * fold-const.c (optimize_minmax_comparison): New function.
15238         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
15239         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
15240         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
15241         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
15242         widening conversions.
15243         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
15244         to look at size of mode, not precision of type; also add missing cases.
15245         (optimize_bit_field_compare, decode_field_reference): Don't try to
15246         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
15247
15248         * dwarf2out.c (ctype.h): Include.
15249         (dwarf2out_set_demangle_name_func): New function.
15250         (size_of_line_info): Deleted.
15251         (output_line_info): Compute size of line info table from difference
15252         of labels.
15253         (base_type_die, add_name_attribute): Call demangle function, if any.
15254         (field_byte_offset): Use bits per word for variable length fields.
15255         (gen_array_type_die): Add array name.
15256         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
15257         (dwarf2out_add_library_unit_info): New function.
15258
15259         * explow.c (set_stack_check_libfunc): New function.
15260         (stack_check_libfunc): New static variable.
15261         (probe_stack_range): Allow front-end to set up a libfunc to call.
15262
15263         * combine.c (simplify_comparison): When making comparison in wider
15264         mode, check for having commuted an AND and a SUBREG.
15265         (contains_muldiv): New function.
15266         (try_combine): Call it when dividing a PARALLEL.
15267         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
15268         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
15269         a PLUS.
15270         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
15271         use one of the CLOBBERs instead.
15272         (if_then_else_cond): If comparing against zero, just return thing
15273         being compared.
15274
15275         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
15276         Don't generate shifts and subtract if have conditional arithmetic.
15277
15278         * rtl.h (delete_barrier): New declaration.
15279         * jump.c (jump_optimize): Set up to handle conditional call.
15280         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
15281         (delete_barrier): New function.
15282
15283         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
15284
15285         * recog.c (nonmemory_operand): Accept ADDRESSOF.
15286
15287         * tree.c (build_type_attribute_variant): Push to obstack of
15288         ttype around type_hash_canon call.
15289
15290         * expr.c (placeholder_list): Move decl to file scope.
15291         (expand_expr): Don't force access to volatile just because its
15292         address is taken.
15293         If ignoring reference operations, just expand the operands.
15294         (expand_expr, case COMPONENT_REF): Propagate
15295         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
15296         Refine test for using bitfield operations vs pointer punning.
15297         (expand_expr, case CONVERT_EXPR): If converting to
15298         BLKmode UNION_TYPE from BLKmode, just return inner object.
15299         Use proper mode in store_field call.
15300         Properly set sizes of object to store and total size in store_field
15301         call for convert to union.
15302         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
15303         memory (like for ADDR_EXPR).  Also, don't put constant in register if
15304         we'll want it in memory.
15305         (readonly_fields_p): New function.
15306         (expand_expr, case INDIRECT_REF): Call it if LHS.
15307         (expand_assignment): Handle a RESULT_DECL where
15308         DECL_RTL is a PARALLEL.
15309         (do_jump, case WITH_RECORD_EXPR): New case.
15310         (get_inner_reference): Always go inside a CONVERT_EXPR
15311         and NOP_EXPR if both modes are the same.
15312         (store_field): Use bitfield operations if size of bitsize is not same
15313         as size of RHS's type.
15314         Check for bitpos not a multiple of alignment in BLKmode case.
15315         Do block move in largest possible alignment.
15316         (store_constructor): Set BITSIZE to -1 for variable size and properly
15317         in case of array of BLKmode.
15318         (expand_expr_unaligned): New function.
15319         (do_compare_and_jump): Call it.
15320
15321         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
15322         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
15323         does not include 'o'.
15324
15325         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
15326         both SET_DEST and SET_SRC reference a virtual register.
15327         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
15328
15329         * integrate.c (expand_inline_function): Handle case of setting
15330         virtual stack vars register (from built in setjmp); when parameter
15331         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
15332         (subst_constant): Add new parm, MEMONLY.
15333         (expand_inline_function, integrate_parm_decls): Pass new parm.
15334         (integrate_decl_tree): Likewise.
15335         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
15336         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
15337         (copy_rtx_and_substitute, case SET): Add explicit calls to
15338         copy_rtx_and_substitute for both sides.
15339
15340         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
15341         constraints.
15342         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
15343         within INDEX_TYPE, instead of before.
15344         (fixup_gotos): Use f->target_rtl, not the next insn,
15345         since latter may be from a later fixup.
15346         (expand_value_return): Correctly convert VAL when promoting function
15347         return; support RETURN_REG being a PARALLEL.
15348         (expand_return): When checking for result in regs and having
15349         cleanup, consider PARALLEL in DECL_RTL as being in regs.
15350
15351 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
15352
15353         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
15354         last_nominal_fname): Mark const.
15355         (struct include_hash: name, nshort, control_macro): Mark
15356         const.
15357         (struct macrodef: symnam): Mark const.
15358         (struct if_stack: fname): Mark const.
15359         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
15360         (IStable): New character-syntax array which encompasses all
15361         the old is_foo arrays.
15362         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
15363         is_space): New macros for interrogating IStable.
15364         (check_macro_name): Kill last argument.  All callers changed.
15365
15366         * cppinit.c (initialize_char_syntax): Delete.
15367         (is_idchar, is_idstart, is_hor_space, is_space,
15368         trigraph_table): Delete.
15369         (IStable): New.  Initialize with clever macros to avoid
15370         information duplication.
15371         (builtin_array): Table of builtins to get rid of explicit list
15372         in initialize_builtins.
15373         (initialize_builtins): Use builtins_array.
15374         (cpp_start_read): Call init_IStable, and set IStable['$'] if
15375         opts->dollars_in_ident.
15376
15377         * cppexp.c: Change all refs to is_xyz[] arrays to use new
15378         is_xyz() macros.
15379         (cpp_parse_expr): Avoid 'format string is not constant'
15380         warning. Use ISGRAPH to identify printable chars.
15381         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
15382         is_xyz() macros.
15383         (read_and_prescan): Map trigraphs to chars with open-coded
15384         if-else-if-... sequence, not a lookup table.
15385         * cpphash.c: Change all refs to is_xyz[] arrays to use new
15386         is_xyz() macros.
15387         * cpplib.c: Change all refs to is_xyz[] arrays to use new
15388         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
15389         (check_macro_name): Remove ability to report an invalid
15390         assertion name, which is never used.
15391         (do_line): Constify a couple of char *'s.
15392         * cppmain.c (main): Call cpp_cleanup before returning.
15393
15394 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
15395
15396         * ggc.h (struct ggc_statistics): New type.
15397         (ggc_get_size): New function.
15398         (ggc_print_statistics): Likewise.
15399         * ggc-common.c (ggc_stats): New variable.
15400         (ggc_mark_rtx_children): Keep statistics.
15401         (ggc_mark_tree_children): Likewise.
15402         (ggc_print_statistics): New function.
15403         * ggc-page.c (struct globals): Add bytes_mapped field.
15404         (alloc_anon): Update it.
15405         (release_pages): Likewise.
15406         (ggc_get_size): New function.
15407         (ggc_page_print_statistics): New function.
15408         * ggc-simple.c (ggc_get_size): New function.
15409
15410 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
15411
15412         * flow.c (propagate_block): When the last reference to a label
15413         before an ADDR_VEC is deleted because the reference is a dead
15414         store, delete the ADDR_VEC.
15415
15416 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
15417
15418         * resource.c (find_free_register): Don't use the frame pointer
15419         if frame_pointer_needed.
15420
15421 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
15422
15423         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
15424         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
15425
15426         * config/i960/i960.c (i960_va_start): New locals base, num.
15427         Use INDIRECT_REF instead of ARRAY_REF on valist.
15428         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
15429
15430 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
15431
15432         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
15433
15434 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
15435
15436         * tree.def (PLACEHOLDER_EXPR): Update comments.
15437
15438 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15439
15440         * c-common.c (check_format_info): Avoid non-literal format string
15441         warnings when `first_arg_num' is zero.
15442
15443 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15444
15445         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
15446
15447 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
15448
15449         * arm.md (casesi_insn): Add a clobber of the condition code
15450         register.
15451
15452 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
15453
15454         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
15455         used by both cc1 and cc1plus.
15456
15457 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
15458
15459         * config/arm/arm.c: Initialise arm_structure_size_boundary to
15460         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
15461         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
15462         to the value 32 if it has not already been defined.
15463         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
15464         Override definition in arm.h with a value of 8.
15465
15466 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
15467
15468         * c-pragma.c (push_alignment): Don't check the return value
15469         of xmalloc.
15470
15471 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
15472
15473         * sparc.h (ADJUST_COST): Fix thinko.
15474
15475 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
15476
15477         * cccp.c (rescan): Fixed obp pointer handling around call to
15478         check_expand subroutine.
15479
15480 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
15481
15482         * gcse.c (delete_null_pointer_checks): Only record non-null info
15483         for pseudos when examining stores.
15484
15485         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
15486         splitters for these patterns.  Use "#" for output templates.
15487         (addsi3_carryin_shift): New pattern.
15488
15489 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
15490
15491         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
15492         of the function return register into a plain REG until
15493         after function inlining is done.
15494
15495 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
15496
15497         * jump.c (jump_optimize_1): If we did cross-jumping, and
15498         the data will matter, rebuild the CFG.
15499         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
15500         not optimizing.  Don't run shorten_branches.
15501         * toplev.c (rest_of_compilation): Run shorten_branches after
15502         reg_to_stack.
15503
15504 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
15505
15506         * rtl.h (note_stores): Add additional paramter.
15507         * rtlanal.c (reg_set_p_1): Take additional paramter.
15508         (reg_set_last_1): Likewise.
15509         (reg_set_p): Adjust call to note_stores.
15510         (reg_set_last): Likewise.
15511         (note_stores): Pass data parameter to worker function.
15512         * alias.c (record_set): Take additional parameter.
15513         (init_alias_analysis): Pass it.
15514         * caller-save.c (mark_set_regs): Take additional parameter.
15515         (save_call_clobbered_regs): Pass NULL to note_stores.
15516         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
15517         parameter.
15518         (record_dead_and_set_regs_1): Likewise.
15519         (reg_dead_at_p_1): Likewise.
15520         (combine_instructions): Adjust calls to note_stores.
15521         (try_combine): Likewise.
15522         (record_dead_insn): Remove.
15523         (record_dead_and_set_regs): Adjust calls to note_stores.
15524         (reg_dead_at_p): Likewise.
15525         * cse.c (invalidate_skipped_set): Take additional parameter.
15526         (cse_check_loop_start): Likewise.
15527         (cse_check_loop_start_value): Remove.
15528         (cse_set_around_loop): Adjust calls to note_stores.
15529         * flow.c (notice_stack_pointer_modification): Take additional
15530         parameter.  Remove duplicate declaration.
15531         (record_volatile_insns): Adjust calls to note_stores.
15532         * gcse.c (record_set_info): Take additional parameter.
15533         (record_last_set_info): Likewise.
15534         (invalidate_nonnull_info): Likewise.
15535         (record_set_insn): Remove.
15536         (compute_sets): Adjust calls to note_stores.
15537         (last_set_insn): Remove.
15538         (compute_hash_table): Adjust calls to note_stores.
15539         (insert_insn_end_bb): Likewise.
15540         (delete_null_pointer_checks): Likewise.
15541         * global.c (mark_reg_store): Take additional parameter.
15542         (mark_reg_clobber): Likewise.
15543         (reg_becomes_live): Likewise.
15544         (global_conflicts): Adjust calls to note_stores.
15545         (build_insn_chain): Likewise.
15546         * integrate.c (note_modified_parmregs): Take additional parameter.
15547         (mark_stores): Likewise.  Make it static.
15548         (save_for_inline_nocopy): Adjust calls to note_stores.
15549         (try_constants): Likewise.
15550         * integrate.h (mark_stores): Remove declaration.
15551         * jump.c (mark_modified_reg): Take additional parameter.
15552         (thread_jumps): Adjust calls to note_stores.
15553         * local-alloc.c (validate_equiv_mem_from_store): Take additional
15554         parameter.
15555         (no_equiv): Likewise.
15556         (reg_is_set): Likewise.
15557         (validate_equiv_mem): Adjust calls to note_stores.
15558         (update_equiv_regs): Likewise.
15559         (block_alloc): Likewise.
15560         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
15561         (note_addr_stored): Take additional parameter.
15562         (note_set_pseudo_multiple_uses): Likewise.
15563         (record_initial): Likewise.
15564         (prescan_loop): Adjust calls to note_stores.
15565         (strength_reduce): Likewise.
15566         (check_dbra_loop): Likewise.
15567         * regmove.c (flags_set_1): Take additional paramter.
15568         (mark_flags_life_zones): Adjust calls to note_stores.
15569         * reload1.c (mark_not_eliminable): Take additional parameter.
15570         (forget_old_reloads_1): Likewise.
15571         (reload_cse_invalidate_rtx): Likewise.
15572         (reload_cse_check_clobber): Likewise.
15573         (reload_combine_note_store): Likewise.
15574         (move2add_note_store): Likewise.
15575         (reload): Adjust calls to note_stores.
15576         (reload_as_needed): Likewise.
15577         (emit_reload_insns): Likewise.
15578         (reload_cse_regs_1): Likewise.
15579         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
15580         (reload_combine): Adjust calls to note_stores.
15581         * resource.c (update_live_status): Take additional paramter.
15582         (mark_target_live_regs): Adjust calls to note_stores.
15583         * stupid.c (find_clobbered_regs): Take additional parameter.
15584         (stupid_life_analysis): Adjust calls to note_stores.
15585
15586 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
15587
15588         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
15589         definition.
15590
15591         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
15592         definition.
15593
15594         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
15595         of the variable arm_structure_size_boundary.
15596
15597 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
15598
15599         * alias.c (init_alias_analysis): Allocate reg_known_value and
15600         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
15601         and reg_seen.
15602         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
15603         * cse.c (cse_main): Call end_alias_analysis.
15604         * haifa-sched.c (schedule_insns): Likewise.
15605         * local-alloc. (update_equiv_regs): Likewise.
15606         * reload1.c (reload_cse_regs): Likewise.
15607
15608 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15609
15610         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
15611         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
15612         mapping from MASK_FPU.
15613
15614 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
15615
15616         * sparc.md (call): Don't bound structure return size to 0xfff.
15617
15618 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
15619
15620         * resource.c (mark_target_live_regs): Check that the target
15621         insn wasn't created after compute_bb_for_insn.
15622
15623 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
15624
15625         * ggc-page.c (poison_pages): Don't be overzealous.
15626
15627 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
15628
15629         * alias.c: Update comments for ADDRESS.
15630         (nonlocal_reference_p): Look inside the ADDRESS to determine if
15631         it is a local memory reference.
15632
15633         * c-typeck.c (build_function_call): Check that the built-in
15634         function is of class BUILT_IN_NORMAL before trying to recongize
15635         it as BUILT_IN_ABS.
15636         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
15637         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
15638
15639 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
15640
15641         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
15642         of alloca.
15643         (pre_gcse): Likewise.
15644         (hoist_expr_reaches_here_p): Likewise.
15645         (hoist_code): Likewise.
15646         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
15647         code to ...
15648         (pre_expr_reaches_here_p_work): ... here.
15649         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
15650         code to ...
15651         (expr_reaches_here_p_work): ... here.
15652
15653 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
15654
15655         * resource.c (find_basic_block): Delete.
15656         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
15657         (init_resource_info): Call compute_bb_for_insn.
15658
15659 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
15660
15661         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
15662         with already adjacent blocks, but no fallthru.
15663         (merge_blocks_move_successor_nojumps): Simplify.
15664         (debug_flow_info): New.
15665
15666         * toplev.c (rest_of_compilation): Open jump1 dump file before
15667         jump and close after, as opposed to just using dump_rtl.
15668
15669 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15670
15671         * reload.h (earlyclobber_operand_p): Declare.
15672         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
15673         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
15674         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
15675         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
15676
15677 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
15678                           Richard Henderson  <rth@cygnus.com>
15679
15680         * emit-rtl.c (emit_block_insn_before): New.
15681         (emit_block_insn_after): New.
15682         * basic-block.h: Declare them.
15683
15684         * bitmap.h: Protect from multiple inclusion.
15685
15686         * recog.c (scratch_operand): Handle VOIDmode correctly.
15687
15688         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
15689
15690         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
15691         * function.c (assign_parms): Likewise.
15692         * global.c (global_conflicts): Clarify STACK_REGS commentary.
15693
15694         * reg-stack.c (max_uid): Remove.
15695         (blocks, block_begin, block_end, block_drops_in): Remove.
15696         (block_stack_in, block_out_reg_set, block_number): Remove.
15697         (struct block_info_def, BLOCK_INFO): New.
15698         (enum emit_where): New.
15699         (current_block): New.
15700         (BLOCK_NUM): Remove.
15701         (mark_regs_pat, record_label_references): Remove.
15702         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
15703         (nan): New.
15704         (goto_block_pat, print_blocks, dump_stack_info): Remove.
15705         (reg_to_stack): Simplified test for existance of fp code.  Use
15706         flow.c code.  Call shorten_branches after cross-jump opt.
15707         (check_asm_stack_operands): Renamed from record_asm_reg_life.
15708         Return false if the asm doesn't use stack regs.  Don't do life
15709         analysis on the asm.
15710         (emit_pop_insn): Replace function pointer arg `when' with
15711         enum `where'.  Update all callers.
15712         (change_stack): Likewise.  Update basic block end.
15713         (emit_swap_insn): Use current_block->head to limit reverse search
15714         for start of block.  Use emit_block_insn_after.
15715         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
15716         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
15717         structure assignment instead of bcopy.
15718         (print_stack): New.
15719         (convert_regs_entry, convert_regs_exit): New.
15720         (convert_regs_1, convert_regs_2): Split out from convert_regs.
15721         Work on basic blocks and the CFG.
15722         (convert_regs): Use them.
15723
15724         * i386.c (output_fix_trunc): Remove code for DImode input operand
15725         not at top-of-stack.
15726         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
15727         appropriate mode.
15728         (fix_truncdi_1): Allow any mode scratch.
15729
15730 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
15731
15732         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
15733         * linux.h, netbsd.h, vms.h: Not here.
15734
15735 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
15736
15737         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
15738         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
15739         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
15740         CONDITIONAL_REGISTER_USEAGE): Use them.
15741         * config/mips/mips.c (mips_move_1word,mips_move_2words,
15742         gen_conditional_branch,override_options) : Use them.
15743         * config/mips/mips.md : Use them.
15744
15745 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
15746
15747         * i386.md (zero_extendqihi2): Use SImode register name with andl.
15748
15749 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
15750
15751         * integrate.c (function_cannot_inline_p): Don't allow inlining
15752         if setjmp is used.
15753
15754 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15755
15756         * c-parse.in (cast_expr): Constify.
15757
15758         * cccp.c (special_symbol): Likewise.
15759
15760         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
15761
15762         * dwarf2out.c (base_type_die): Likewise.
15763
15764         * global.c (allocno_compare): Likewise.
15765
15766         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
15767
15768         * regclass.c (fix_register): Likewise.
15769
15770         * rtl.h (fix_register): Likewise.
15771
15772         * stupid.c (stupid_reg_compare): Likewise.
15773
15774         * toplev.c (decode_f_option): Likewise.
15775
15776         * tree.c (build_complex_type): Likewise.
15777
15778 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
15779
15780         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
15781
15782 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15783
15784         * reload.c (find_reloads): Compute mode and nregs fields of all
15785         reloads.
15786         * reload1.c (calculate_needs_all_insns): Simplify a bit.
15787         (calculate_needs): Use precomputed mode/nregs values.
15788         (allocate_reload_reg): Likewise.
15789         Break out two...
15790         (failed_reload, set_reload_reg): ... new functions.
15791         (choose_reload_regs_init): New function, mostly broken out from...
15792         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
15793         Also lose one #if 0 block.
15794
15795 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
15796
15797         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
15798         substitution.
15799
15800 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
15801
15802         * tree.h (BLOCK_TYPE_TAGS): Remove.
15803         (BLOCK_END_NOTE): Likewise.
15804         (BLOCK_LIVE_RANGE_FLAG): Likewise.
15805         (BLOCK_LIVE_RANGE_START): Likewise.
15806         (BLOCK_LIVE_RANGE_END): Likewise.
15807         (tree_block): Remove live_range_flag, live_range_var_flag, and
15808         type_tags.  Remove end_note, live_range_start, and live_range_end.
15809         (remember_end_note): Remove prototype.
15810         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
15811         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
15812         remember_end_note.
15813         * ggc-common.c (ggc_mark_tree_children): Don't mark
15814         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
15815         * integrate.c (adjust_copied_decl_tree): Remove.
15816         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
15817         * stmt.c (last_block_end_note): Remove.
15818         (init_stmt): Don't add a GC root for it.
15819         (expand_fixup): Don't set it.
15820         (remember_end_note): Remove.
15821         (expand_end_bindings): Don't set last_block_end_note.
15822
15823 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15824
15825         * reload1.c (reload_reg_free_for_value_p): Show
15826         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
15827         reloads.
15828
15829 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
15830
15831         * expmed.c (extract_bit_field): Allow for the case of non-integer
15832         objects that are smaller than a word (like SFmode on a 64-bit
15833         machine).
15834
15835         * loop.c (basic_induction_var): A non-integer variable which is
15836         being set by a paradoxical subreg is probably not a biv.
15837
15838 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15839
15840         * prefix.c (translate_name) Check for empty prefix string.
15841
15842 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
15843
15844         * Makefile.in (CPP_CROSS_NAME): New variable.
15845         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
15846         xcpp.
15847         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
15848         names of the files to be uninstalled.
15849
15850 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
15851
15852         * collect2.c (IS_DIR_SEPARATOR): Define.
15853         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
15854
15855         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
15856         functions too.
15857
15858         * haifa-sched.c (add_dependence): Update the true dependency
15859         cache the first time we add a true dependence to the LOG_LINKS chain.
15860
15861 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
15862
15863         * fold-const.c (fold): Fix comment.
15864
15865 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15866
15867         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
15868         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
15869         dbxout_start_new_source_file, dbxout_source_file,
15870         dbxout_source_line, dbxout_finish, dbxout_type_fields,
15871         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
15872         Constify a char*.
15873         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
15874         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
15875         (dbxout_block): Initialize variable `blocknum'.
15876
15877         * dbxout.h (dbxout_init, dbxout_finish,
15878         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
15879         dbxout_args, dbxout_source_line): Constify a char*.
15880
15881         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
15882         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
15883         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
15884         low_pc_attribute, high_pc_attribute, body_begin_attribute,
15885         body_end_attribute, comp_dir_attribute, sf_names_attribute,
15886         src_info_attribute, mac_info_attribute, producer_attribute,
15887         lookup_filename, generate_macinfo_entry, fundamental_type_code,
15888         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
15889         dwarfout_undef): Constify a char*.
15890         (add_incomplete_type, retry_incomplete_types): Add prototypes.
15891
15892         * dwarfout.h (dwarfout_define, dwarfout_undef,
15893         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
15894
15895 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
15896
15897         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
15898         (MULTILIB_ISA_DEFAULT): New.
15899         (MULTILIB_DEFAULTS): Use it.
15900         * config/mips/mips.c (): Remove the now unnecessary definition
15901         of MIPS_ISA_DEFAULT.
15902         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
15903         unnecessary definition.
15904
15905 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
15906
15907         * arm.md (pic_load_addr): Add constraints to operand 1.
15908
15909 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
15910
15911         * fixinc/genfixes:  Provide a means for specifying -D options to
15912         AutoGen
15913
15914 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
15915
15916         * arm.c (arm_override_options): Correct initialization of
15917         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
15918         arm_is_strong, and arm_is_6_or_7.
15919
15920         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
15921         (note_set_pseudo_multiple_uses): New function.
15922         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
15923         if a pseudo set in the loop exit is used elsewhere.
15924
15925 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
15926
15927         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
15928
15929 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
15930
15931         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
15932         a single load-address pattern.
15933
15934 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
15935
15936         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
15937         depending on whether or not line-number notes are present.
15938
15939 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15940
15941         * cccp.c (progname, file_buf, default_include, include_file,
15942         macrodef, definition, hashval, wchar_type, user_label_prefix,
15943         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
15944         expand_to_temp_buffer, is_system_include, base_name,
15945         absolute_filename, read_name_map, open_include_file,
15946         record_control_macro, check_precompiled, check_preconditions,
15947         pcfinclude, pass_thru_directive, create_definition,
15948         check_macro_name, comp_def_part, collect_expansion,
15949         check_assertion, read_token_list, assertion_install,
15950         assertion_lookup, eval_if_expression, conditional_skip,
15951         validate_else, skip_quoted_string, quote_string, macarg1,
15952         error_from_errno, install, lookup, hashf, dump_defn_1,
15953         perror_with_name, pfatal_with_name, main, trigraph_pcp,
15954         check_white_space, rescan, handle_directive, monthnames,
15955         special_symbol, do_include, remap_include_file, write_output,
15956         arglist, do_assert, do_unassert, do_line, do_error, do_once,
15957         do_ident, do_sccs, do_xifdef, skip_if_group,
15958         output_line_directive, macroexpand, macarg, change_newlines,
15959         initialize_builtins, make_definition): Constify a char*.
15960
15961         * pcp.h (stringdef): Likewise.
15962
15963 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
15964
15965         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
15966         not of pattern.
15967
15968 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
15969                           Richard Henderson  <rth@cygnus.com>
15970
15971         * alias.c: Include ggc.h.
15972         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
15973         (record_set): Verify enough room in reg_base_value.
15974         (init_alias_analysis): Allocate reg_base_value with xcalloc.
15975         Register it as a GC root.
15976         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
15977         * Makefile.in (alias.o): Depend on ggc.h.
15978
15979         * unroll.c (unroll_loop): Verify the insn before a barrier
15980         is a JUMP_INSN before checking JUMP_LABEL.
15981
15982 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15983
15984         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
15985         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
15986         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
15987         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
15988         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
15989         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
15990
15991 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15992
15993         * output.h (ctors_section, dtors_section, bss_section): Prototype.
15994
15995         * alpha/alpha-interix.h (text_section): Delete prototype.
15996         * alpha/elf.h (text_section): Likewise.
15997         * arm/linux-elf.h (text_section): Likewise.
15998         * arm/linux-telf.h (text_section): Likewise.
15999         * c4x/c4x.h (text_section): Likewise.
16000         * dsp16xx/dsp16xx.h (bss_section): Likewise.
16001         * elfos.h (text_section): Likewise.
16002         * i386/aix386ng.h (text_section): Likewise.
16003         * i386/i386-interix.h (text_section): Likewise.
16004         * i386/sco5.h (text_section): Likewise.
16005         * i386/svr3gas.h (text_section): Likewise.
16006         * nextstep.h (text_section): Likewise.
16007         * psos.h (text_section): Likewise.
16008         * ptx4.h (text_section): Likewise.
16009         * svr3.h (text_section): Likewise.
16010         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
16011
16012 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16013
16014         * final.c (peephole): Delete prototype.
16015
16016         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
16017         (pre_insert_copies): Remove unused variable `bb'.
16018
16019         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
16020         prototypes.
16021
16022         * output.h (peephole): Add prototype.
16023
16024 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
16025
16026         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
16027         -O0.
16028
16029 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
16030
16031         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
16032         for inlined declarations.
16033
16034 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
16035
16036         * arm.c (logical_binary_operator): New fucntion.
16037         * arm.h (logical_binary_operator): Declare it.
16038         (PREDICATE_CODES): Handle logical_binary_operator.
16039         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
16040         output constraints.  Add appropriate splitters.
16041         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
16042         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
16043         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
16044
16045 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16046
16047         * genoutput.c (struct operand_data): New elt eliminable.
16048         (output_operand_data): Write it.
16049         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
16050         (compare_operands): Take it into account.
16051         * recog.h (struct insn_operand_data): New elt eliminable.
16052         * reload1.c (check_eliminable_occurrences, elimination_effects): New
16053         functions.
16054         (old_asm_operands_vec, new_asm_operands_vec): Delete.
16055         (eliminate_regs): Move code that detects changes to elimination
16056         target regs into new function elimination_effects.
16057         Delete one #if 0 block.
16058         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
16059         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
16060         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
16061         Only call eliminate_regs for real operands of the insn, not for parts
16062         of its structure or parts matched by things like match_operator.
16063         Use elimination_effects and check_eliminable_occurrences.  Use
16064         copy_insn to duplicate the pattern when not in the final pass.
16065
16066 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
16067
16068         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
16069         and fld.
16070
16071 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
16072
16073         * fixinc/README: document the "mach" machine matching test
16074         * fixinc/fixfixes.c: Implement the #else/#endif label fix
16075         * fixinc/fixtests.c: Implement the #else/#endif label test
16076         * fixinc/inclhack.def: utilize these tests and fixes
16077         * fixinc/inclhack.sh:  regen
16078         * fixinc/fixincl.x:  regen
16079         * fixinc/fixincl.sh:  regen
16080
16081 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
16082
16083         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
16084         depend on ggc.h.
16085
16086 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
16087
16088         * gcc.1: Document exit codes.
16089
16090 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16091
16092         * calls.c: Include tm_p.h later, so everything we need is defined.
16093         * expr.c: Likewise.
16094         * function.c: Likewise.
16095
16096         * except.c: Include tm_p.h.
16097
16098         * sparc.c: Likewise.
16099         (dwarf2out_cfi_label): Don't prototype.
16100         (check_return_regs, epilogue_renumber,
16101         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
16102         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
16103         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
16104         ultra_schedule_insn): Add static prototype.
16105         (data_segment_operand, text_segment_operand): Call itself with the
16106         proper number of arguments.
16107         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
16108
16109         * sparc.h: Move all declarations to sparc-protos.h.
16110         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
16111         symbolic_operand.
16112
16113         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
16114
16115         * config/svr4.h (text_section, ctors_section, dtors_section): Add
16116         Prototypes.
16117         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
16118         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
16119         ASM_OUTPUT_ASCII): Constify a char*.
16120
16121         * sparc-protos.h: New file for sparc prototypes.
16122
16123 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16124
16125         * function.c (record_insns, contains): Always declare and define.
16126         (record_insns): Mark with ATTRIBUTE_UNUSED.
16127
16128 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
16129
16130         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
16131         to .section when outputting a .bss section to deal with multiple
16132         .bss input sections (as happens with -fdata-sections)
16133         Also output %progbits, not @progbits so the assembler doesn't treat as
16134         a comment.
16135         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
16136
16137         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
16138         thumb parts even when building with non-thumb CPUs, by forcing
16139         thumb mode.
16140
16141 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
16142
16143         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
16144         (movdf_const_intreg_sp64): Similarly.
16145
16146         * local-alloc.c (update_equiv_regs): Check the correct insn
16147         for pre-existing REG_EQUIV notes.
16148
16149 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
16150
16151         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
16152         block reached by a branch if we're not going to actually process
16153         this block.
16154
16155 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
16156
16157         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
16158         a local extern function declaration.
16159
16160 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
16161
16162         * i386.c (ix86_expand_prologue): Properly wrap USE around
16163         reg for CALL_INSN_FUNCTION_USAGE.
16164
16165 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
16166
16167         * config/mips/mips.md (movdf_internal1a): Allow floating-point
16168         move between GP_REGs.
16169
16170 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
16171
16172         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
16173         the mode size when finding out if an offset is legal.
16174
16175 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
16176
16177         * basic-block.h (PROP_*): Move constants from ...
16178         * flow.c: ... here.
16179         (compute_bb_for_insn): Free the array before reallocating.
16180         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
16181         (allocate_reg_life_data): Reset all reg variables collected by
16182         propagate_block.
16183         (get_block_head_tail): Don't convert from bb to block.
16184         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
16185         (find_insn_reg_weight): Take block not bb.
16186         (schedule_block): Don't set block num for moved insns.
16187         (schedule_region): Don't update_life_info or find_insn_reg_weight.
16188         (schedule_insns): Do it here instead.
16189         * combine.c (combine_instructions): Invoke compute_bb_for_insn
16190         before update_life_info.
16191         * recog.c (split_all_insns, peephole2_optimize): Update for
16192         new arg to update_life_info.
16193         * rtlanal.c (remove_note): Cope with NULL note.
16194         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
16195         if we did sched1.
16196
16197 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
16198
16199         * jump.c (jump_optimize_1): More accurately detect casesi insns.
16200
16201         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
16202         block records so that merge_blocks_nomove will clean up correctly.
16203         (split_edge): Handle casesi insns.
16204
16205         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
16206
16207 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
16208
16209         * pa.md (call, call_value): Do not emit a blockage after restoring
16210         the PIC register.
16211
16212 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
16213
16214         * c-typeck.c (c_expand_asm_operands): Fix typo.
16215
16216 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16217
16218         * arm.c (fpu_rhs_operand): Verify modes.
16219         (fpu_add_operand): Likewise.
16220         (di_operand): Likewise.
16221         (soft_df_operand): Likewise.
16222
16223 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
16224
16225         * arm.c (arm_return_in_memory): APCS rules state that the elements
16226         of a structure returned in a register must be 'integer-like'.
16227
16228 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
16229
16230         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
16231         in the source tree when the generated targets are out of date
16232         * fixinc/genfixes: Alter it to run individual fixes for make.
16233         * fixinc/README: rewrite
16234         * fixinc/inclhack.def: moved initial comments to README
16235
16236 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
16237
16238         * toplev.c (main): Do not generate an error message if an
16239         unrecognised command line switch is recognisable by another
16240         language.  If extra_warnings are enabled, then generate a
16241         warning message instead.
16242
16243 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
16244
16245         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
16246         (insert_pack_attributes): Delete prototype.
16247
16248         * c-pragma.c (default_alignment): New static variable.
16249         (push_alignment): Initialize to current effective alignment.
16250         (pop_alignment): Use to set new alignment.
16251         (insert_pack_attributes): Delete function.
16252         (handle_pragma_token): Set default_alignment as well each time
16253         a #pragma pack(<n>) is encountered.
16254
16255 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
16256
16257         * reg-stack.c (stack_result): Aggregates are not returned in
16258         stack registers.
16259
16260 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
16261
16262         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
16263
16264 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
16265
16266         * basic-block.h (set_block_num): Declare.
16267         * flow.c (update_life_info): Don't call compute_bb_for_insn
16268         or free_basic_block_vars.
16269         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
16270         (insn_orig_block): Remove.
16271         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
16272         (schedule_block): Keep BLOCK_NUM up-to-date.
16273         (schedule_insns): Use compute_bb_for_insn.
16274         * recog.c (split_all_insns): Likewise.
16275         (peephole2_optimize): Likewise.
16276
16277 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
16278
16279         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
16280         if the pic register is used.
16281
16282 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16283
16284         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
16285         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
16286         if that tests TREE_PERMANENT.
16287
16288 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
16289
16290         * cse.c (invalidate_for_call): Do not remove memory references from
16291         the table here.  It's handled elsewhere.
16292
16293         * haifa-sched.c (add_dependence): Protect references to the
16294         true dependency cache with #ifdef INSN_SCHEDULING.
16295         (remove_dependence): Similarly.
16296
16297         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
16298         to the cfg code that this is a return instruction.
16299         * mn10300.md (return_internal): Similarly.
16300
16301         * combine.c (get_last_value): If the last set of a register
16302         is after subst_low_cuid, then we can not use it to determine
16303         the register's last value.
16304
16305 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
16306
16307         * Makefile.in: Back out previous change.
16308
16309 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
16310
16311         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
16312
16313         * haifa-sched.c (add_dependence): Only check/update the cache
16314         if it exists.
16315         (remove_dependence): Likewise.
16316         (schedule_insns): Only create the true_dependency_cache if the
16317         average number of instructions in a basic block is very large.
16318
16319 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
16320
16321         * Makefile.in (ggc-common.o): Depend on genrtl.h.
16322         (ggc-simple.o): Likewise.
16323         (ggc-page.o): Likewise.
16324
16325 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
16326
16327         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
16328         Prototype for exported functions.
16329         (pre_lcm, pre_rev_lcm): Remove prototypes.
16330         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
16331         (compute_available): Move to lcm.c, and change parameter order.
16332         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
16333         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
16334         (gcse_main): No longer call compute_preds_succs.  Rebuild the
16335         set table after reach pre pass.
16336         (pre_insert_map, pre_delete_map, edge_list): New.
16337         (alloc_pre_mem): Allocate edge vectors.
16338         (free_pre_mem): Delete edge vectors.
16339         (compute_pre_data): Call new edge based lcm routines.
16340         (process_insert_insn): New function.
16341         (insert_insn_end_bb): Use it.
16342         (pre_edge_insert): New function.
16343         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
16344         needed.
16345         (pre_insert_copies): Revamp using new edge based lcm outputs.
16346         (pre_delete): Likewise.
16347         (one_pre_gcse_pass): Insert & remove fake edges to the exit
16348         block.
16349         (compute_code_hoist_vbeinout): New new edge based routines.
16350         * lcm.c: Remove all the old LCM functions.  Replace with new ones
16351         that work with the new cfg datastructures and work with edges
16352         instead of blocks.
16353
16354 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16355
16356         * reload.h (struct reload): Add new fields "mode" and "nregs".
16357         * reload1.c: Change all occurrences of reload_mode and reload_nregs
16358         to reference the "mode" and "nregs" field within struct reload.
16359
16360 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
16361
16362         * haifa-sched.c (true_dependency_cache): New.
16363         (add_dependence): Use the true dependency cache to avoid expensive
16364         walks down the LOG_LINKS dependency list.  Add entries to the
16365         cache as necessary.
16366         (remove_dependence): Remove entries from the true dependency cache
16367         as needed.
16368         (schedule_insns): Allocate and initialize and free the true
16369         dependency cache.
16370
16371         * haifa-sched.c (schedule_insns): Do not remove inter-block
16372         dependencies anymore.
16373
16374 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
16375
16376         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
16377         * i386/t-winnt: Likewise.
16378
16379 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
16380
16381         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
16382
16383 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
16384
16385         * Makefile.in (LANGUAGES): Omit "proto".
16386         (clean): Remove stale comment about removing unprotoize.c.
16387
16388 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16389
16390         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
16391         using arithmetic on void pointers.
16392
16393 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
16394
16395         * haifa-sched.c (compute_block_forward_dependencies): Only check
16396         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
16397
16398 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
16399
16400         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
16401         (expr_equiv_p): Reject memories with different alias sets.
16402
16403 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
16404
16405         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
16406         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
16407         (f_options): Add "bounded-pointers" and "bounds-check" entries.
16408         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
16409         (lang_init): Set default for flag_bounds_check if still "unspecified".
16410
16411 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16412
16413         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
16414
16415 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16416
16417         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
16418         instructions.
16419
16420 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16421
16422         * config/c4x/c4x.md (*db_noclobber,
16423         *decrement_and_branch_until_zero_noclobber): New patterns and
16424         associated splitters.
16425
16426 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16427
16428         * config/c4x/c4x.md (parallel instruction patterns): Rework
16429         constraints to keep reload happy.
16430
16431 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16432
16433         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
16434         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
16435         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
16436         Add new patterns and associated post-reload splitters.
16437
16438 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16439
16440         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
16441
16442 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16443
16444         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
16445         if appropriate.
16446         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
16447
16448 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16449
16450         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
16451         memory mode.
16452
16453 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
16454
16455         * pa.c (move_operand): Rely on memory_address_p to determine the
16456         validity of non-indexed memory addresses.
16457         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
16458         operand in DFmode and SFmode when generating PA2.0 code.
16459
16460 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
16461
16462         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
16463
16464 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
16465
16466         * mips.c (function_prologue): Fix argument types.
16467         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
16468         (casesi_internal): Write to the scratch register.
16469
16470 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
16471
16472         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
16473         to U_CHAR **.
16474         (parse_charconst): Delete unnecessary cast when calling
16475         cpp_parse_escape.
16476         (cpplib.h): Kill prototype of cpp_parse_escape.
16477
16478 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
16479
16480         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
16481         * unroll.c (unroll_loop): Cast return value of alloca.
16482         * i370/i370.c: Include function.h and toplev.h.
16483         (i370_label_scan): Remove c++ commented abort.
16484         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
16485         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
16486         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
16487         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
16488
16489 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
16490
16491         * config/t-freebsd: Do not override USER_H.
16492         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
16493
16494 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
16495                           Mumit Khan  <khan@xraylith.wisc.edu>
16496
16497         * c-parse.in (component_decl): Support anonymous struct/union.
16498         (%expect): Update.
16499         * c-parse.y: Regenerate.
16500         * c-parse.c: Likewise.
16501         * objc/objc-parse.y: Likewise.
16502         * objc/objc-parse.c: Likewise.
16503         * c-decl.c (finish_struct): Don't sort the fields.
16504         (field_decl_cmp): Delete unused function.
16505
16506 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
16507
16508         * sparc.md (movsf_const_intreg): Revert last constraint change.
16509         (movdf_const_intreg_sp32): Likewise.
16510
16511 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
16512
16513         * cse.c: Include hashtab.h instead of splay-tree.h
16514         (struct cse_reg_info): No longer use variant union.  Add new
16515         field "regno".  All references changed to avoid union.
16516         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
16517         (free_cse_reg_info): Remove.
16518         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
16519         (get_cse_reg_info): Revamp to use expandable hash tables instead
16520         of splay trees.  Initialize new fields in cse_reg_info structure.
16521         (new_basic_block): Similarly.
16522
16523 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
16524
16525         * genrecog.c (message_with_line): Prototype.
16526         (validate_pattern): Pass along the set for the dest, not a flag.
16527         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
16528         Check for PC/CC0 as sources.
16529         (nodes_identical): Check for children position match before
16530         allowing the combination.
16531
16532         * rtl.c (read_rtx): Track line number across \\\n.
16533
16534 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
16535
16536         * mips.h (SPECIAL_MODE_PREDICATES): New.
16537         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
16538         (movdi+1, movsi+1): Add output reload constraint.
16539         (casesi_internal): Likewise.  Fix commentary.
16540         (return_internal): Use pmode_register_operand.
16541
16542 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
16543
16544         * 1750a.md (movstrqi): Add missing output reload constraint.
16545         (call_value): Likewise.
16546         * a29k.md (cpxxx patterns): Add missing match_operator mode.
16547         (jmpfdec): Add missing inout reload constraint.
16548         * elxsi.md (addsi patterns): Add missing output reload constraint.
16549         (move from sp): Use @ alternates.
16550         (call_value): No constraint on output.
16551         * fr30.md (movsi_pop): Add missing output reload constraint.
16552         (movsf_constant_store): Likewise.
16553         (splits): Remove constraints.
16554         (subsi3): Add missing mode.
16555         * i370.md (cmpstrsi+1): Add missing output reload constraint.
16556         (call_value): Likewise.
16557         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
16558         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
16559         * m32r.md (movsicc_internal): Add output reload constraint.
16560         (movstrsi_internal): Add inout reload constraints.
16561         * m88k.h (reg_names): Don't declare.
16562         (SPECIAL_MODE_PREDICATES): New.
16563         * m88k.md (*): Use register_operand not reg_or_0_operand
16564         on destinations.
16565         * mn10200.h (PREDICATE_CODES): New.
16566         * ns32k.md (ffs pattern): Add output reload constraint.
16567         * pdp11.md (sob pattern): Add inout reload constraint.
16568         * sh.md (splits): Remove constraints.
16569         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
16570         * v850.md (pattern_is_ok_for_epilogue): Likewise.
16571         * vax.md (jgequ pattern): Add inout reload constraint.
16572
16573 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
16574
16575         * configure.in (djgpp): Revert previous patch.
16576         * configure: Rebuit.
16577         * config/i386/djgpp.h: Revert previous patch.
16578
16579 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
16580
16581         * fixinc/inclhack.def: Restore patch lost during last merge of
16582         "no_bogosity" branch.
16583         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
16584
16585 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
16586
16587         * fixincludes: Add a HPUX 11 fix for inttypes.h.
16588         * fixinc/inclhack.def: Same.
16589         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
16590
16591 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
16592
16593         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
16594         as the base of a PLUS.
16595
16596 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16597
16598         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
16599         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
16600
16601 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
16602
16603         * pa.md (post_stw+1): Use pmode_register_operand.
16604         (dcacheflush, icacheflush): Likewise.
16605
16606         * i386.md (movstricthi_1): Allow r/r.
16607
16608 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
16609
16610         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
16611         to (not (and (arg0) (arg1))). Similary for and.
16612
16613         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
16614         fallthrough to associate code.
16615         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
16616         bits in common.
16617
16618         * combine.c (simplify_logical): Convert XOR to IOR if operands have
16619         no bits in common; remove XOR to ROTATE conversion.
16620
16621 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16622
16623         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
16624
16625 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16626
16627         * config/c4x/c4x.c (dst_operand): New.
16628         (PREDICATE_CODES): Update.
16629         * config/c4x/c4x.h (dst_operand): Declare it.
16630         * config/c4x/c4x.md:  Define mode for each unspec usage.
16631         (move patterns):  Use dst_operand predicate instead of src_operand.
16632         (movqi_update, movqf_update): Delete.
16633
16634 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
16635
16636         * recog.c (pmode_register_operand): New.
16637         * recog.h: Declare it.
16638         * genrecog.c (pred_codes): Likewise.
16639         (special_mode_pred_table): Likewise.
16640         (validate_pattern): Don't warn no mode for address_operand.
16641
16642         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
16643         if the operand is not insn-like.
16644
16645 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
16646                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
16647
16648         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
16649
16650 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
16651
16652         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
16653         instead of general_operand in a SET_DEST.  Use const_double_operand
16654         instead of an explicit test against CONST_DOUBLE.
16655         (movsf_const_lo): Add missing register mode.
16656         (goto_handler_and_restore): Add auxiliary test for Pmode.
16657         (flush): Adjust to use address_operand.
16658         (return_sf_no_fpu): Add missing output constraint.
16659
16660 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
16661
16662         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
16663         for call return value.
16664         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
16665
16666 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
16667
16668         * toplev.c (main): Only warn about options for other languages.
16669         * collect2.c (main): Pass -w to sub-gcc.
16670
16671 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
16672
16673         * flow.c (propagate_block): Add call-clobbered registers to
16674         significant too.
16675
16676         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
16677         zapping mem_set_list.
16678         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
16679         (mark_set_1, mark_used_regs): Likewise.
16680
16681 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
16682
16683         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
16684
16685 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16686
16687         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
16688         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
16689         options. Also add a new item "C-only Warning Options" to the
16690         option summary.
16691
16692 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
16693
16694         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
16695         from multiple calls.
16696
16697 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
16698
16699         * i386.md (call value patterns): Move to the end of the file.
16700         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
16701
16702 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
16703
16704         * configure.in (djgpp configuration): Define extra_objects..
16705         * configure: Rebuilt.
16706         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
16707         (DTORS_SECTION_ASM_OP): Define.
16708         (INIT_SECTION_ASM_OP): Define.
16709         (FINI_SECTION_ASM_OP): Define.
16710         (DATA_SECTION_ASM_OP): Define.
16711         (TEXT_SECTION_ASM_OP): Define.
16712         (EH_FRAME_SECTION_ASM_OP): Define.
16713         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
16714         (STARTFILE_SPEC): Add crtbegin.o.
16715         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
16716         to here from LINK_COMMAND_SPEC.
16717         (DO_GLOBAL_CTORS_BODY): Define.
16718         (CRTSTUFF_USE_FINI_SECTION): Define
16719         (HAS_INIT_SECTION): Delete.
16720
16721 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
16722
16723         * Makefile.in (all.cross): Depend on xcpp$(exeext).
16724
16725 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
16726
16727         * pa.h (PREDICATE_CODES): New.
16728
16729         * genrecog.c (validate_pattern): Condense the destination
16730         non-lvalue message.
16731
16732 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
16733
16734         * alpha.md (call-1): Supply missing mode for operator.
16735         (*): Add missing output reload constraints.  Remove constraints
16736         from define_splits.
16737
16738         * i386.h (SPECIAL_MODE_PREDICATES): New.
16739         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
16740         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
16741         (addsi_lea_3): Add missing mode for op 3.
16742         (prologue_set_got, prologue_get_pc): Add missing modes.
16743         (*) Add missing output reload constraints.
16744
16745 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
16746
16747         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
16748         check for member bit-size overflow and use var_size if it occurs.
16749         (layout_record): Use bitsize_int() to define the type size in bits.
16750         Likewise for computation and assignment to DECL_FIELD_BITPOS.
16751         (layout_decl): Likewise when assigning to DECL_SIZE.
16752
16753 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
16754
16755         * genrecog.c (validate_pattern): Typo last change.  Verify
16756         that output operands have output reloads.
16757
16758 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
16759
16760         * genrecog.c (special_mode_pred_table): New.
16761         (NUM_SPECIAL_MODE_PREDS): New.
16762         (find_operand): New.
16763         (validate_pattern): New argument `insn'.  Warn for assignment to
16764         any predicate accepting non-lvalues.  Conditionaly warn for
16765         match_operand without a mode.  Try much harder to match source
16766         and destination modes on a set.
16767         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
16768
16769 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
16770
16771         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
16772
16773 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
16774
16775         * combine.c (simplify_logical): Recognize xor pattern that encodes
16776         rotation.
16777
16778 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16779
16780         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
16781         alignment.
16782
16783 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
16784
16785         * ggc-page.c (MAP_FAILED): Provide default.
16786
16787 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
16788
16789         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
16790         * sparc.h (PREDICATE_CODES): Update.
16791
16792 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
16793
16794         * alpha.c (some_ni_operand): New.
16795         * alpha-protos.h: Declare it.
16796         * alpha.h (PREDICATE_CODES): Update.
16797         * alpha.md (sXaddq reload insns): Use some_ni_operand
16798         for SET_DEST instead of some_operand.
16799
16800 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
16801                           Jim Wilson  <wilson@cygnus.com>
16802
16803         * genrecog.c (maybe_both_true_2): Don't compare modes of
16804         two DT_pred tests.
16805         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
16806         after find_afterward.
16807         (debug_decision_1): Dump next and afterward codes.
16808
16809 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
16810
16811         * rtl.c (dump_and_abort): Remove.
16812         (fatal_with_file_and_line): New.
16813         (fatal_expected_char): New.
16814         (read_rtx_lineno, read_rtx_filename): New.
16815         (read_skip_spaces): Track line number.
16816         (read_name): Use fatal_with_file_and_line.
16817         (read_rtx): Use fatal_expected_char.  Track line number.
16818         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
16819
16820         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
16821         if it isn't a CODE_LABEL.
16822
16823         * genattr.c (main): Set read_rtx_filename.
16824         * genattrtab.c (main): Likewise.
16825         * gencodes.c (main): Likewise.
16826         * genconfig.c (main): Likewise.
16827         * genemit.c (main): Likewise.
16828         * genextract.c (main): Likewise.
16829         * genflags.c (main): Likewise.
16830         * genopinit.c (main): Likewise.
16831         * genoutput.c (main): Likewise.
16832         * genpeep.c (main): Likewise.
16833
16834         * genrecog.c (decision_test.u.insn): Add `lineno'.
16835         (pattern_lineno, error_count): New variables.
16836         (message_with_line): New.
16837         (add_to_sequence): Break out checking code to ...
16838         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
16839         (merge_insn): Use message_with_line.
16840         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
16841         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
16842
16843 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16844
16845         * expr.c (store_constructor): Clear union if constructor is empty.
16846
16847 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
16848
16849         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
16850         Add !endian checks.  Change %{...} to %(...).
16851
16852 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
16853
16854         * i386.md (*addsi3_cc): Renamed from addcsi3.
16855         (*addsi3_carry): Renamed from addxsi3.
16856         (*subsi3_cc): Renamed from subcsi3.
16857         (*subsi3_carry): Renamed from subxsi3.
16858         (*xorqi_cc_1): Renamed from xorcqi_1.
16859         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
16860         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
16861
16862 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
16863
16864         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
16865         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
16866
16867 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
16868
16869         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
16870         climb up the chain of insns.
16871
16872 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
16873
16874         * genrecog.c (write_subroutine): Careful for null trees.
16875         (process_tree): Don't elide empty functions.
16876
16877 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
16878
16879         * Makefile.in (genrtl.o): Depend on ggc.h.
16880         * configure.in (valloc): Probe for it.
16881         (with-gc): Use ggc-page if valloc present.
16882         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
16883         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
16884         (ggc_alloc_string): Moved from ggc-page.c.
16885         * ggc-none.c (ggc_alloc_obj): New.
16886         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
16887         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
16888         (struct globals): Likewise for dev_zero_fd.
16889         (init_ggc): Likewise for it's initialization.
16890         (ggc_allocated_p): Move careful dereference from ...
16891         (ggc_lookup_page_table): ... here.  Delete.
16892         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
16893         (alloc_anon): Use valloc if no mmap.
16894         (release_pages): Use free if using valloc.
16895         (ggc_alloc_obj): Renamed from alloc_obj.
16896         (ggc_set_mark): Renamed from mark_obj.
16897         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
16898         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
16899         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
16900         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
16901         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
16902         (ggc_collect): Use fp printing instead of our own rounding.
16903         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
16904         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
16905         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
16906         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
16907         (struct ggc_string, struct ggc_any): Delete.
16908         (offsetof): Provide default definition.
16909         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
16910         (PTR_KEY): New.
16911         (struct ggc_mem): New, from corpse of ggc_any.
16912         (struct ggc_status): Delete.
16913         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
16914         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
16915         (n_strings_collected, n_anys_collected): Delete.
16916         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
16917         (ggc_alloc_string, ggc_alloc): Delete.
16918         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
16919         (ggc_free_string, ggc_free_any): Delete.
16920         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
16921         (ggc_compare_addresses, ggc_mark_string): Delete.
16922         (ggc_mark_string_if_gcable, ggc_mark): Delete.
16923         (search_data): Delete.
16924         (struct globals): New.
16925         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
16926         (tree_insert, tree_lookup): New.
16927         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
16928         (clear_marks, sweep_objs): New.
16929         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
16930         (init_ggc): Set allocated_last_gc.
16931         (ggc_push_context): Gut.  Use G.context.
16932         (ggc_pop_context): Likewise.
16933         (ggc_pop_context_1): New.
16934         (debug_ggc_tree): New.
16935         (debug_ggc_balance, tally_leaves): New.
16936         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
16937         (ggc_mark_string_if_gcable): Remove decl.
16938         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
16939         (ggc_mark_rtvec_children): New.
16940         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
16941         (ggc_mark_if_gcable): New decl.
16942         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
16943         (ggc_alloc_tree, ggc_alloc): Likewise.
16944         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
16945         (ggc_alloc_obj): New decl.
16946         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
16947         (ggc_alloc_tree, ggc_alloc): Likewise.
16948         (ggc_set_mark): New decl.
16949         * rtl.h (struct rtx_def): Remove gc_mark.
16950         (struct rtvec_def): Likewise.
16951         * tree.h (struct tree_common): Likewise.
16952
16953 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
16954
16955         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
16956         float_format and thread_file definitions.
16957         * configure: Rebuilt.
16958
16959 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
16960
16961         * extend.texi (Function Names): Document types of function names.
16962
16963 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16964
16965         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
16966         an earlyclobbered output conflict with RELOAD_INPUT reloads.
16967
16968 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16969
16970         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
16971
16972 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16973
16974         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
16975
16976 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
16977
16978         * collect2.c (main): Do prelimnary link on AIX if rflag.
16979
16980 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
16981
16982         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
16983         __CTOR_LIST__ in opposite order, which is the correct order for sorted
16984         constructors.
16985         (__do_global_dtors): similarly for __DTOR_LIST__.
16986
16987 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16988                                 Diego Novillo <dnovillo@cygnus.com>
16989
16990         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
16991         FPUL_REGS.
16992
16993 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
16994
16995         * fixincl/*: Merged "no_bogosity" branch
16996         * fixincl/fixlib.h: protect against doubly defining t_bool
16997         * fixincl/server.h: protect against doubly defining t_bool
16998
16999 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
17000
17001         * genoutput.c: Include toplev.h.
17002
17003 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
17004
17005         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
17006         Undef.
17007         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
17008         * configure: Regenerate.
17009
17010 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
17011
17012         * gcse.c (delete_null_pointer_checks): Returns void.
17013
17014 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17015
17016         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
17017         * emit-rtl.c (copy_insn_1): Likewise.
17018
17019 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
17020
17021         * config/mips/mips.c (mips_build_va_list): Correct
17022         TREE_CHAIN setting when hard-float.
17023         (mips_va_start): Use corrected setting.
17024         (mips_va_arg): Likewise.  Also pass a tree to build of
17025         POSTINCREMENT_EXPR rather than a naked 'int'.
17026
17027 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
17028
17029         * ggc.h (ggc_push_context): Fix comment.
17030         (ggc_pop_context): Likewise.
17031         (mark_string_if_gcable): Likewise.
17032         * ggc-common.c (ggc_mark_rtx_children): Use
17033         ggc_mark_string_if_gcable.
17034         * ggc-page.c (ggc_lookup_page_table): New function.
17035         (ggc_allocated_p): Likewise.
17036         (mark_obj): Fix formatting.
17037         (ggc_mark_string_if_gcable): New function.
17038         * ggc-simple.c (ggc_allocated_strings): New variable.
17039         (ggc_strings_used): Likewise.
17040         (ggc_compare_addresses): New function.
17041         (ggc_pop_context): Pop the `any' memory too.
17042         (ggc_mark_string_if_gcable): New function.
17043         (ggc_collect): Initialize and tear down ggc_allocated_strings.
17044
17045 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
17046
17047         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
17048         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
17049         * rs6000.c (expand_block_move): Match movstrsi_?reg register
17050         changes.
17051
17052 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
17053
17054         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
17055         (sched_reg_live_length, sched_reg_basic_block): Delete.
17056         (current_block_num, bb_live_regs, old_live_regs): Delete.
17057         (dead_notes, struct sometimes): Delete.
17058         (sched_note_set, birthing_insn_p): Delete.
17059         (adjust_priority): Gut useless reg lifetime code.
17060         (create_reg_dead_note, attach_deaths): Delete.
17061         (attach_deaths_insn, new_sometimes_live): Delete.
17062         (finish_sometimes_live): Delete.
17063         (find_pre_sched_live, find_post_sched_live): Delete.
17064         (update_reg_usage): Delete.
17065         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
17066         (schedule_insns): Delete reg lifetime code.
17067         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
17068         (unlink_other_notes): Adjust REG_NOTE commentary.
17069         (reemit_notes): Use REG_SAVE_NOTE.
17070         (schedule_block): Likewise.
17071         (schedule_region): Allocate bitmap of blocks in region.  Use
17072         count_or_remove_death_notes.  Use update_life_info.
17073
17074         * rtl.h (REG_SAVE_NOTE): New.
17075         * rtl.c (reg_note_name): Update.
17076
17077 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
17078
17079         * combine.c (refresh_blocks, need_refresh): New.
17080         (combine_instructions): Allocate refresh_blocks.  Invoke
17081         update_life_info if needed.
17082         (distribute_notes): Mark refresh_blocks instead of installing
17083         USE insns.
17084         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
17085         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
17086
17087         * Makefile.in (recog.o): Depend on basic-block.h.
17088
17089 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
17090
17091         * genrecog.c (add_to_sequence): Thinko last change: delete
17092         shadowing allow_const_int variable.
17093
17094 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17095
17096         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
17097         __GNUC__ and __GNUC_MINOR__.
17098
17099         * gansidecl.h: Likewise.
17100
17101         * rtl.c: Likewise.
17102
17103         * rtl.h: Likewise.
17104
17105         * toplev.h: Likewise.
17106
17107         * tree.c: Likewise.
17108
17109         * tree.h: Likewise.
17110
17111         * varray.c: Likewise.
17112
17113         * varray.h: Likewise.
17114
17115 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17116
17117         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
17118         use one before a jump table.
17119
17120         * rtl.def (ADDRESS): Change documentation to match reality.
17121         * md.texi: Don't document it.
17122         * gmicro.md (load address pattern): Use 'p' constraint, delete use
17123         of ADDRESS rtx.
17124
17125         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
17126
17127 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
17128
17129         * genrecog.c (add_to_sequence): Move allow_const_int test outside
17130         known predicate block; default allow_const_int true.
17131         (debug_decision_list): New.
17132
17133 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
17134
17135         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
17136
17137 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
17138
17139         * gcse.c (gcse_main): Avoid global optimizations if we have a
17140         large number of basic blocks and the ratio of edges to blocks
17141         is high.
17142         (delete_null_pointer_checks): Likewise.
17143
17144 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
17145
17146         * c-common.c (check_format_info): Warn if format string isn't a
17147         string literal.
17148
17149 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
17150
17151         * configure.in (arm*-*-*): Don't let autoconf remove brackets
17152         * configure: regenerate
17153
17154 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
17155
17156         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
17157         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
17158         (peepholes): Re-enable.
17159
17160 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
17161
17162         * Makefile.in (flow.o): Depend on TREE_H.
17163         * basic-block.h (REG_SET_EQUAL_P): New.
17164         (XOR_REG_SET): New.
17165         (n_edges): Declare.
17166         (free_regset_vector): Remove declaration.
17167         (flow_delete_insn_chain): Declare.
17168         (enum update_life_extent): New.
17169         (update_life_info, count_or_remove_death_notes): Declare.
17170         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
17171         Verify register live at bb->global_live_at_start before adding USE.
17172         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
17173         (CLEAN_ALLOCA): New.
17174         (n_edges): New.
17175         (PROP_*): New flags.
17176         (find_basic_blocks_1): Use alloc_EXPR_LIST.
17177         (clear_edges): Zero n_edges.
17178         (make_edge): Increment n_edges.
17179         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
17180         (flow_delete_insn_chain): Export.
17181         (delete_block): Decrement n_edges.
17182         (merge_blocks_nomove): Likewise.
17183         (life_analysis): Give life_analysis_1 PROP flags.
17184         (verify_wide_reg_1, verify_wide_reg): New.
17185         (verify_local_live_at_start): New.
17186         (update_life_info): Rewrite to call into propogate_block.
17187         (mark_reg): New.
17188         (mark_regs_live_at_end): After reload, if epilogue as rtl,
17189         always mark stack pointer.  Conditionally mark PIC register.
17190         After reload, mark call-saved registers, return regsiters.
17191         (life_analysis_1): Accept PROP flags not remove_dead_code.
17192         Call mark_regs_live_at_end before zeroing regs_ever_live.
17193         Use calculate_global_regs_live.  Copy global_live_at_end before
17194         calling final propagate_block.  Zero reg_next_use on exit.
17195         (calculate_global_regs_live): New.
17196         (allocate_bb_life_data): Don't allocate bb->local_set.
17197         (init_regset_vector, free_regset_vector): Remove.
17198         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
17199         Test flags before every operation.  Warn if prologue/epilogue insn
17200         would have been deleted.
17201         (mark_set_regs, mark_set_1): Accept and use FLAGS.
17202         Use alloc_EXPR_LIST.
17203         (mark_used_regs): Accept and use FLAGS, not FINAL.
17204         Remove special handling for RETURN.
17205         (try_pre_increment): Use alloc_EXPR_LIST.
17206         (dump_flow_info): Dump n_edges.
17207         (unlink_insn_chain, split_hard_reg_notes): Remove.
17208         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
17209         (find_insn_with_note, new_insn_dead_notes): Remove.
17210         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
17211         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
17212         (replace_insns): Remove.
17213         (count_or_remove_death_notes): New.
17214         (verify_flow_info): Abort on error after all checks.
17215         (remove_edge): Decrement n_edges.
17216         (remove_fake_edges): Tweak format.
17217         * haifa-sched.c (schedule_insns): Use split_all_insns.
17218         * output.h (update_life_info): Remove declaration.
17219         * recog.c (split_all_insns): From the corpse of split_block_insns,
17220         do the whole function block by block.  Use update_life_info.
17221         (recog_last_allowed_insn): New.
17222         (recog_next_insn): Mind it.
17223         (peephole2_optimize): Set it.  Walk backwards through blocks.
17224         Use update_life_info.
17225         * rtl.h (update_flow_info, replace_insns): Remove declarations.
17226         (split_all_insns): Declare.
17227         * toplev.c (rest_of_compilation): Thread prologue before flow2.
17228         Use split_all_insns.
17229
17230         * i386.md (or -1 peep2s): Disable.
17231
17232 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
17233
17234         * config/mips/mips.md (movstrsi+[123]) : Combine these into
17235         a single pattern.  Scrap the 'd' versions as unnecessary.
17236
17237         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
17238         tablejump_mips162,tablejump_internal4): The operands to a
17239         label_ref must be VOIDmode.
17240
17241 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17242
17243         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
17244
17245 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
17246
17247         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
17248
17249 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
17250
17251         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
17252         cache every function if ggc_p.
17253
17254 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17255
17256         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
17257         instead of copy_rtx.  Accept sequences that contain asm statements.
17258         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
17259         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
17260         orig_asm_operands_vector, copy_asm_operands_vector,
17261         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
17262         variables.
17263         * rtl.h (copy_insn, copy_insn_1): Declare.
17264
17265 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17266
17267         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
17268
17269         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
17270         arguments to `current_file_function_operand'.
17271
17272         * genrecog.c: Include hard-reg-set.h and resource.h in the
17273         generated output file.
17274
17275         * real.c: Include tm_p.h.
17276
17277 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17278
17279         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
17280         output operand.
17281
17282 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
17283
17284         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
17285         before the fctiwz insn.
17286
17287 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17288                           Mark Mitchell  <mark@codesourcery.com>
17289
17290         * tree.c (make_lang_type_fn): New funtion pointer.
17291         (make_lang_type): Call it.
17292         * tree.h (make_lang_type): Declare.
17293         (make_lang_type_fn): Likewise.
17294         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
17295
17296 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
17297
17298         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
17299         make sure that HIGH instructions are copied into BASE_REGS.
17300
17301 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
17302
17303         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
17304
17305 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
17306
17307         * c-decl.c (finish_struct): Use simpler method of
17308         removing elements of a singly-linked list.
17309
17310 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
17311
17312         * alpha.md (peephole2's): Comment out peephole2's that generate
17313         buggy code.
17314
17315 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
17316
17317         * genrecog.c (add_to_sequence): Disable mode check for
17318         wildcard matches.
17319
17320 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17321
17322         * ggc-simple.c (init_ggc): Set empty_string.
17323
17324 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
17325
17326         * configure.in: Detect mmap.  Add --with-gc=foo to select
17327         garbage collector; default to page if mmap available.
17328         * Makefile.in (GGC): Substitute.
17329
17330 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
17331
17332         * c-decl.c (ggc_p): Enable.
17333
17334 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17335
17336         * flow.c (verify_flow_info): Make it extern & unconditionally define.
17337
17338 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
17339
17340         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
17341         string for little-endian-data.
17342
17343 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
17344
17345         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
17346         case somebody tries to compile --enable-checking code with gcc
17347         1.34 or such.
17348
17349 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
17350
17351         * genrecog.c (add_to_sequence): Verify operand to label_ref is
17352         VOIDmode.
17353
17354 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
17355
17356         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
17357         * jump.c (jump_optimize_1): Document why.
17358
17359 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17360
17361         * collect2.c (scan_prog_file, scan_libraries): Prototype function
17362         pointers and casts for `int_handler' and `quit_handler'.
17363
17364         * flow.c (verify_flow_info, split_hard_reg_notes,
17365         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
17366         remove_edge, remove_fake_successors): Add static prototypes.
17367         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
17368         (mark_set_1): Initialize variable `regno'.
17369         (unlink_insn_chain): Likewise for variable `curr'.
17370         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
17371
17372         * loop.c (strength_reduce): Initialize variable
17373         `unrolled_insn_copies'.
17374         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
17375         prototypes.  Change these functions to take const PTR parameters
17376         to avoid prototype conflict when used as the comparson argument
17377         for qsort.
17378         (check_dbra_loop): Initialize variable `comparison_val'.
17379
17380         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
17381         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
17382         (find_valid_class): Initialize variable `best_class'.
17383         (find_reloads): Call memcpy, not bcopy.
17384
17385         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
17386         (hard_reg_use_compare): Don't needlessly cast away const.
17387         (reload_reg_class_lower): Likewise.
17388         (choose_reload_regs): Initialize variable `regno'.
17389
17390 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
17391
17392         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
17393
17394 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
17395
17396         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
17397         ({,d}discard): Add forward declarations.  Declare parameter as
17398         unused.
17399         (main_without_main): Explicitly declare return type to be int.
17400         (memcpy): Properly declare.
17401
17402         * libgcc2.c (toplevel): If inhibit_libc is defined and not
17403         building the trampoline support, declare malloc, free, and
17404         atexit.
17405         (__clear_cache): Mark arguments as potentially unused.
17406
17407         * frame.c (toplevel): If inhibit_libc is defined, declare
17408         malloc and free.
17409
17410 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
17411
17412         * flow.c (make_edge): Accept an optional 2D bitmap in which
17413         to cache edge existence.  Update all callers.
17414         (make_label_edge, make_eh_edge): Pass through the edge cache.
17415         (make_edges): Provide the cache.
17416
17417 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17418
17419         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
17420         a char*.
17421         (local_mbtowc): Change the type of variable `i' from int to size_t.
17422
17423         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
17424         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
17425
17426 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
17427
17428         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
17429         after other includes that define the appropriate types.  Include
17430         tm_p.h for getting user prototypes.
17431         * ggc-callbacks.c (toplevel): Ditto.
17432         * ggc-none.c (toplevel): Ditto.
17433         * gcc-page.c (toplevel): Ditto.
17434         * ggc-simple.c (toplevel): Ditto.
17435
17436 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
17437                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
17438
17439         * config/mips/mips.c (mips_move_2words): Split doubles if
17440         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
17441
17442 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
17443
17444         * genrecog.c (struct decision_test): New.
17445         (struct decision): Remove test-related members, sort the rest by size.
17446         (IS_SPLIT): Simplify.
17447         (new_decision, new_decision_test): New.
17448         (add_to_sequence): Use them.  No special handling for args of
17449         non-MATCH codes.
17450         (maybe_both_true): Renamed from not_both_true; return sense changed.
17451         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
17452         of maybe_both_true and adjusted for decision_test.
17453         (position_merit): Remove.
17454         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
17455         (merge_accept_insn): New, broken out of merge_trees.
17456         (merge_trees): Use them.  No special case for c_test; no node
17457         splitting; use test type instead of position_merit.
17458         (factor_tests): New.
17459         (simplify_tests): New.
17460         (break_out_subroutines): Don't write code now.
17461         (find_afterward): New.
17462         (write_afterward, write_switch, write_cond): New.
17463         (write_action, is_unconditional): New.
17464         (write_node): New.  Use them.
17465         (write_tree_1): Rewrite.  Use the new functions above.
17466         (write_tree): Remove afterward processing.
17467         (write_subroutine): Simplify function variant emission.
17468         (write_subroutines): New.
17469         (same_codes, clear_codes): Remove.
17470         (same_modes, clear_modes): Remove.
17471         (write_header): New, broken out of main.
17472         (make_insn_sequence): Use new_decision and new_decision_test.
17473         (process_tree): New, broken out of main.
17474         (main): Adjust for merge_trees interface change.
17475         Don't #define operands in the output file.
17476         (record_insn_name): New, broken out of make_insn_sequence.
17477         (debug_decision_2, debug_decision_1, debug_decision_0): New.
17478         (debug_decision): New.
17479
17480 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
17481
17482         * resource.c (find_free_register): Mark class_str argument const.
17483         * resource.h: Update prototype to match.
17484
17485         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
17486         * i386.md: Give all anonymous insns names.
17487
17488 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
17489
17490         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
17491         blocks.
17492
17493 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
17494
17495         * toplev.c (dbr_sched_time): Unconditional.
17496         (peephole2_time): New.
17497         (compile_file): Add pass numbers to all of the dump file suffixes.
17498         Dump peephole2_time.  Don't dump times for non-applicable passes.
17499         (rest_of_compilation): Add pass numbers to dump file suffixes.
17500         Conditionalize calls to the scheduler.
17501         * invoke.texi: Update.
17502
17503 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
17504
17505         * flow.c (make_edges): Fix insn iteration.
17506         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
17507         (find_basic_blocks_1): Fix spelling mistake.
17508
17509 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
17510
17511         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
17512         always have side-effects.  Use memset not bzero.
17513         (make_node): Likewise.
17514
17515 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
17516
17517         * stmt.c (expand_anon_union_decl): When any of the elements of the
17518         union is addressable, so is the entire union.
17519
17520 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
17521
17522         * sbitmap.c (sbitmap_ones): Don't set too many bits.
17523
17524         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
17525         * bitmap.c (bitmap_operation): Return true iff TO changed.
17526         (bitmap_equal_p): New.
17527         (bitmap_bit_p): Tidy arithmetic.
17528         (debug_bitmap_file): Likewise.
17529
17530 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
17531
17532         * toplev.c (rest_of_compilation): Turn on cse_not_expected
17533         before cse2 instead of after.
17534
17535 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
17536
17537         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
17538         register offsets.
17539
17540 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17541
17542         * cppinit.c (is_idchar initializer): Loosen tests to accept
17543         gcc 2.>6 and >2.
17544
17545 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
17546
17547         * mips.md: Define conditional move patterns for floating point
17548         operands and DI mode conditions.
17549
17550 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
17551
17552         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
17553         always have side-effects.
17554
17555 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
17556
17557         * mn10200.c (asm_file_start): Fix typo.
17558
17559         * cppinit.c (is_idchar initializer): Tighten tests for when
17560         to put the table into initialized memory.
17561
17562         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
17563         not an array of rtunion.
17564         * gcc-page.c (ggc_alloc_rtvec): Similarly.
17565         * gcc-simple (ggc_free_rtvec): Similarly.
17566
17567         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
17568         of rtunions.
17569
17570         * mbchar.h: Add missing #endif.
17571
17572         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
17573         (FPBIT, DPBIT): Define.
17574
17575 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17576
17577         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
17578
17579         * profile.c (instrument_arcs, output_gcov_string,
17580         tablejump_entry_p): Add static prototypes.
17581         (output_gcov_string): Constify a char*.
17582
17583         * regmove.c (replacement_quality, fixup_match_2): Add static
17584         prototypes.
17585
17586         * resource.h (reg_dead_p): Add extern prototype.
17587
17588         * rtl.c (trim_filename): Add static prototype.
17589
17590         * scan-decls.c (skip_to_closing_brace): Likewise.
17591
17592         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
17593         (expand_end_case): Initialize variable `range'.
17594         (emit_case_nodes): Remove unused prototype `rtx_fn'.
17595
17596         * varasm.c (asm_emit_uninitialised): Add static prototype.
17597         (asm_emit_uninitialised, assemble_variable): Mark parameter with
17598         ATTRIBUTE_UNUSED.
17599
17600 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17601
17602         * cpplib.c (if_directive_nameo): Add static prototype.
17603
17604         * cse.c (cse_insn): Remove unused variable `p'.
17605
17606         * except.c (create_rethrow_ref, push_entry,
17607         receive_exception_label, new_eh_region_entry, find_func_region,
17608         clear_function_eh_region, process_nestinfo): Add static prototypes.
17609         (get_reg_for_handler): Hide definition.
17610         (process_nestinfo): Initialize variable `extra_handlers'.
17611
17612         * expr.h (expand_builtin_longjmp): Add extern prototype.
17613
17614         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
17615
17616         * function.c (prepare_function_start): Likewise.
17617         (pop_function_context_from): Mark parameter `context' with
17618         ATTRIBUTE_UNUSED.
17619         (push_temp_slots_for_block, flush_addressof): Hide definition.
17620
17621         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
17622         solve_program_flow_graph, calculate_branch_probs,
17623         function_summary, main, fancy_abort): Add prototypes.
17624
17625         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
17626         (add_hash): Constify a char*.
17627
17628         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
17629         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
17630         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
17631
17632         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
17633
17634         * lists.c (free_list, zap_lists): Likewise.
17635
17636 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17637
17638         * alias.c (nonlocal_reference_p): Add static prototype.
17639
17640         * bitmap.c (bitmap_element_allocate): Prototype args in function
17641         pointer cast.
17642
17643         * builtins.c (stabilize_va_list): Add static prototype.
17644         (expand_builtin_va_arg): Constify a char*.
17645
17646         * c-lex.c (getch, put_back, extend_token_buffer_to,
17647         read_line_number, token_getch, token_put_back): Add static
17648         prototypes.
17649
17650         * c-parse.gperf (hash, is_reserved_word): Likewise.
17651
17652         * cccp.c (is_dir_separator): Likewise.
17653
17654 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17655
17656         * graph.h: New file to prototype functions exported by graph.c.
17657
17658         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
17659
17660         * graph.c: Include graph.h.
17661
17662         * toplev.c: Likewise.  Remove redundant prototypes.
17663
17664 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
17665
17666         * invoke.texi: Removed duplicated description for -Q.
17667
17668 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
17669
17670         * extend.texi: Grammar fix in __extension__ text.
17671
17672 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
17673
17674         * md.texi (define_peephole2): New section.
17675
17676 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
17677
17678         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
17679         (mov $-1 to or peepholer): Enable for pentium when optimizing for
17680         speed.
17681
17682 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
17683
17684         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
17685
17686 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
17687
17688         * i386.md (ffs expander): Emit Pentium friendly code for
17689         TARGET_PENTIUM.
17690
17691 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
17692
17693         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
17694         for non-trees.
17695         (build1): Likewise.
17696
17697 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17698
17699         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
17700
17701 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
17702
17703         * config/m68k/m68k.c (use_return_insn): Return false if the pic
17704         register is in use.
17705
17706 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17707
17708         * md.texi (No Constraints): Delete section.
17709         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
17710         * final.c (final_scan_insn): We always have register constraints.
17711         * genattrtab.c: Don't include "insn-config.h".
17712         (write_attr_case): We always have register constraints.
17713         * genconfig.c (register_constraint_flag): Delete.
17714         (walk_insn_part): Don't check whether we have register constraints.
17715         (main): Don't write out "#define REGISTER_CONSTRAINTS".
17716         * genoutput.c (have_constraints): Delete.
17717         (main): Don't set it.
17718         (output_operand_data): We always have constraints.
17719         (scan_operands): Likewise.
17720         (compare_operands): Likewise.
17721         * local-alloc.c (block_alloc): We always have constraints.
17722         (requires_inout): Always compile this function.
17723         * recog.c (extract_insn): We always have constraints.
17724         (constrain_operands, reg_fits_class_p): Always compile these
17725         functions.
17726         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
17727         fields.
17728         (struct insn_operand_data): Likewise.
17729         * regclass.c (regclass): We always have constraints.
17730         (record_reg_classes, copy_cost, record_address_regs,
17731         auto_inc_dec_reg_p): Always compile these functions.
17732         * regmove.c (regmove_optimize): We always have constraints.
17733         * reload.c (find_reloads): Likewise.
17734         * reload1.c (reload): Likewise.
17735         (reload_cse_simplify_operands): Likewise.
17736         * i860.c (output_delay_insn): Likewise.
17737
17738 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
17739
17740         * iris6.h (BUILD_VA_LIST_TYPE): Define.
17741
17742 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17743
17744         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
17745         for the va_list record.
17746
17747 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
17748
17749         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
17750         prologues.
17751
17752 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
17753
17754         * alias.c: Include insn-flags.h.
17755         * Makefile.in (alias.o): Update.
17756
17757 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
17758
17759         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
17760         to LTU and GEU.  Handle more cases using sbb.
17761
17762 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
17763
17764         * i386.md (truncatexfdf splitters): Do not use subreg.
17765         (fop XFmode patterns): Fix mode in operand testing.
17766
17767 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
17768
17769         * jump.c (jump_optimize_1): Amend last change to test only the
17770         form of the operand, not the insn.
17771
17772         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
17773         not register_operand to determine when B may need preloading.
17774
17775 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
17776
17777         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
17778         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
17779         (call-value patterns): Move to end of file.
17780         (*): Remove mode from label_ref in (pc) context.
17781         (movstrqi): Use memory not general_operand for BLKmode operands.
17782         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
17783         to register_operand operands.
17784         (peep2 patterns): Convert from commented-out peephole patterns.
17785
17786 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17787
17788         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
17789         to BUILT_IN_INIT_DWARF_REG_SIZES.
17790         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
17791         Renamed from BUILT_IN_DWARF_REG_SIZE; call
17792         expand_builtin_init_dwarf_reg_sizes.
17793         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
17794         with __builtin_init_dwarf_reg_size_table.
17795         * dwarf2out.c (struct reg_size_range): Delete.
17796         (expand_builtin_init_dwarf_reg_sizes): New function.
17797         (expand_builtin_dwarf_reg_size): Delete.
17798         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
17799         (expand_builtin_dwarf_reg_size): Don't declare.
17800         * libgcc2.c (dwarf_reg_size_table_initialized): New.
17801         (dwarf_reg_size_table): New.
17802         (init_reg_size_table): New function.
17803         (copy_reg): Use dwarf_reg_size_table.
17804         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
17805         before use.
17806
17807 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
17808
17809         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
17810         Correctly build argument list to constructor and destructor functions.
17811
17812 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
17813
17814         * c-tree.h (warn_float_equal): Declare.
17815         * c-decl.c (warn_float_equal): Define.
17816         (c_decode_option): Recognize -W[no-]float-equal.
17817         * c-typeck.c (build_binary_op): Conditionally warn
17818         about equality tests of floating point types.
17819         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
17820         * invoke.texi: Add docs for -Wfloat-equal warning.
17821
17822 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
17823
17824         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
17825         generating RTL directly.
17826         * mips.h (INIT_TARGET_OPTABS): Likewise.
17827         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
17828
17829         * expr.h (init_mov_optab): Delete declaration
17830
17831         * h8300.c (WORD_REG_USED): Update to avoid useless register
17832         saves in interrupt functions and functions which never return.
17833
17834         * cse.c (struct set): Delete inner_dest_loc field.
17835         (cse_insn): Remove assignments to inner_dest_loc field.
17836
17837 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
17838
17839         * ggc-page.c: Don't include <unistd.h> etc taken care of
17840         by "system.h".  Include <sys/mman.h> afterward.
17841
17842 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
17843
17844         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
17845         ggc_alloc_string.
17846
17847 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
17848
17849         * xcoffout.c (xcoffout_declare_function): Add documentation.
17850         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
17851         TARGET_64BIT.  Compare constant to -1, not bit pattern.
17852         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
17853         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
17854         gen_movsi typos.
17855
17856 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
17857
17858         * dwarf2out.c (add_abstract_origin_attribute): Abort if
17859         origin_die is NULL.
17860         (gen_inlined_enumeration_type_die): Do not abort if the type has
17861         not been writeen out.
17862         (gen_inlined_structure_type_die): Do not abort if the type has
17863         not been writeen out.
17864         (gen_inlined_union_type_die): Do not abort if the type has
17865         not been writeen out.
17866         (gen_tagged_type_instantiation_die): Do not abort if the type
17867         has not been written out.
17868
17869 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17870
17871         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
17872         call it.
17873         * reg-stack.c (straighten_stack): Copy hard reg set with
17874         COPY_HARD_REG_SET.
17875
17876 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
17877
17878         * builtins.c (stabilize_va_list): Stabilize array type va_list
17879         to a pointer type, not the base record type.
17880         (expand_builtin_va_copy): Dereference the pointers explicitly;
17881         use the correct size for the copy.
17882
17883         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
17884         (rs6000_va_arg): Likewise.
17885
17886 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
17887
17888         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
17889
17890 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
17891
17892         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
17893         field.
17894         (DECL_BUILT_IN_CLASS): Adjust accordingly.
17895
17896 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
17897
17898         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
17899         (init_ggc): Use it instead of a constant.
17900         (ggc_collect): Bound allocated_last_gc by it.
17901
17902 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
17903
17904         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
17905         with va_list.
17906
17907 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
17908
17909         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
17910         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
17911         * configure:  Regen.
17912         * config/mips/openbsd.h:  New, OpenBSD little endian target.
17913         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
17914         * config/mips/xm-openbsd.h:  New, OpenBSD host.
17915
17916 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
17917
17918         * config/m68k/m68k.c (output_function_prologue,
17919         output_function_epilogue): Use
17920         current_function_uses_pic_offset_table instead of regs_ever_live
17921         to decide whether to save/restore pic register.
17922         (legitimize_pic_address): Don't modify regs_ever_live any more.
17923
17924 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
17925
17926         * function.h (struct function): Add x_dont_save_pending_sizes_p.
17927         * stor-layout.c (variable_size): Don't add sizes to the pending
17928         sizes list if x_dont_save_pending_sizes_p is set.
17929
17930 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
17931
17932         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
17933         for symbolic_operand().
17934         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
17935
17936 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17937
17938         * combine.c (gen_rtx_combine): Add missing call to va_end().
17939
17940         * final.c (asm_fprintf): Likewise.
17941
17942         * genattrtab.c (attr_rtx): Likewise.
17943
17944 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
17945
17946         * cse.c: Update comments.
17947         (cse_insn): When converting a conditional/computed jump into
17948         an unconditional jump, always make sure a BARRIER immediately
17949         follows the converted jump.  Do not delete unreachable code.
17950         (cse_basic_block): Do not delete unreachable code.
17951         * toplev.c (rest_of_compilation): Move call to
17952         delete_trivially_dead_insns after the conditional call to
17953         jump_optimize.
17954
17955 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17956
17957         * collect2.c (make_temp_file): Don't prototype.
17958
17959         * gcc.c (make_temp_file): Likewise.
17960
17961         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
17962
17963 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
17964
17965         * varasm.c (asm_emit_uninitialised): New function: Generate
17966         the assembler statements necessary to declare an uninitialised
17967         variable.
17968         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
17969         variable.
17970         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
17971         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
17972         section.
17973         (assemble_variable): Use asm_emit_uninitialised to emit an
17974         uninitialised variable.
17975
17976 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
17977
17978         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
17979         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
17980         <geoffk@cygnus.com>.
17981
17982 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17983
17984         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
17985         * c-common.h (builtin_function): Don't declare.
17986
17987         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
17988         DECL_BUILT_IN.
17989         (pushdecl): Likewise.
17990         (finish_decl): Likewise.
17991         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
17992         int.  All callers changed.
17993         Set the builtin's DECL_BUILT_IN_CLASS.
17994         * tree.h (enum built_in_class): New.
17995         (enum built_in_function): Delete NOT_BUILT_IN.
17996         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
17997         in a union.
17998         (DECL_SET_FUNCTION_CODE): Likewise.
17999         (DECL_BUILT_IN_CLASS): New macro.
18000         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
18001         (struct tree_decl): Split builtin function code field into a
18002         struct.
18003         (builtin_function): Declare.
18004
18005 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
18006
18007         * optabs.c (init_traps): Fix typo in last change.
18008
18009 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
18010
18011         * toplev.c (rest_of_decl_compilation): Update comment.
18012
18013 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
18014
18015         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
18016         in .sbss if appropriate.
18017         (EXTRA_SECTION_FUNCTIONS): Add sbss.
18018         (SBSS_SECTION_ASM_OP): New macro.
18019         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
18020         (EXTRA_SECTIONS): Add in_sbss.
18021         * config/mips/mips.h: Prototype sbss_section.
18022
18023 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
18024
18025         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
18026         to disappear.
18027
18028 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
18029
18030         * optabs.c (init_traps): Register trap_rtx as a GC root.
18031
18032 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18033
18034         * config/mips/mips.c (function_arg_pass_by_reference): Define
18035         unconditionally, since it's called unconditionally.
18036
18037 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
18038
18039         * toplev.c (documented_lang_options): Add -fshort-wchar.
18040         * c-decl.c (c_decode_option): Likewise.
18041         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
18042         for wchar_t.
18043         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
18044         * gcc.c (default_compilers): If -fshort-wchar,
18045         override __WCHAR_TYPE__.
18046         * tm.texi (C Dialect Options): Add -fshort-wchar.
18047
18048         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
18049         symbol for a variable.
18050
18051         * cpplib.h (CPP_PREPROCESSED): New macro.
18052         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
18053         we're seeing this input for a second time.
18054
18055 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
18056
18057         * emit-rtl.c (init_emit_once): Initialize modes first.
18058
18059 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
18060
18061         * config/i386/i386.c (pic_label_name): Change to char pointer.
18062         (global_offset_table): New variable.
18063         (load_pic_register): Fill global_offset_table if it hasn't
18064         already been done.  Allocate pic_label_name dynamically.
18065         * ggc.h (empty_string): New variable.
18066         * ggc-simple.c (empty_string): Likewise.
18067         (init_ggc): Allocate empty_string and add as root.
18068         * stmt.c (digit_strings): New variable.
18069         (init_stmt): Add last_block_end_note as root.  Allocate and
18070         initialize digit_strings.
18071         (expand_asm_operands): Use empty_string instead of string
18072         constant.  Use digit_strings instead of string constants.
18073         * profile.c (init_arc_profiler): Allocate string with
18074         ggc_alloc_string instead of xmalloc.
18075         (output_func_start_profiler): Likewise.
18076         * c-typeck.c (digest_init): Check if init is error_mark_node.
18077
18078 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
18079                           Richard Henderson  <rth@cygnus.com>
18080
18081         * ggc-page.c: New file.
18082         * Makefile.in (ggc-page.o): New.
18083
18084 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
18085
18086         * invoke.texi: Document -fdelete-null-pointer-checks
18087         * toplev.c (flag_delete_null_pointer_checks): New.
18088         (f_options): Add entry for -fdelete-null-pointer-checks.
18089         (rest_of_compilation): Conditionalize null pointer check
18090         elimination on flag_delete_null_pointer_checks.
18091         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
18092
18093 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
18094
18095         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
18096         copyright notice and special exception to GPL.
18097
18098 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18099
18100         * abi64.h (mips_function_value): Add prototype arguments.
18101
18102         * mips-protos.h: New file with mips prototypes.
18103
18104         * mips.c: Include "tm_p.h".
18105         (mktemp, lookup_name): Add prototype arguments.
18106         (extern_list, string_constant, mips_fill_delay_slot,
18107         mips_output_external, mips_output_external_libcall,
18108         mips_output_filename, mips_declare_object, function_prologue,
18109         mips_expand_prologue, function_epilogue, mips16_constant,
18110         build_mips16_function_stub, mips_output_conditional_branch):
18111         Constify a char*.
18112         (mips_va_start): Remove unused variable `u'.
18113         (mips_va_arg): Cast value to unsigned when comparing against one.
18114         (trace): Delete.
18115         (save_restore_insns, mips_expand_prologue): Add missing arg in
18116         call to `large_int'.
18117
18118         * mips.h: Move prototypes to mips-protos.h.
18119         (data_section, memory_address_p, rdata_section,
18120         readonly_data_section, simple_epilogue_p, text_section): Delete
18121         prototypes delcared elsewhere.
18122         (mips_epilogue_delay_slots, print_options): Delete unused decls.
18123         (trace): Delete.
18124         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
18125
18126         * mips.md: Delete extra args in call to `mips_move_2words'.
18127
18128         * xm-iris6.h (alloca): Add prototype argument.
18129
18130         * genpeep.c: Include "tm_p.h" in generated output file.
18131
18132 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18133
18134         * basic-block.h (find_edge_index): Change parameters.
18135         * flow.c (verify_edge_list): Pass basic_block parameters to
18136         find_edge_index instead of integers.
18137
18138 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
18139
18140         * combine.c (simplify_comparison): Use an unsigned shift to adjust
18141         the constant.
18142
18143 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
18144
18145         * gcc.1: Fix a formatting error.
18146
18147 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
18148
18149         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
18150         i786, mn10200, mn10300, pdp11, v850.
18151
18152 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
18153
18154         * libgcc2.c (num_digits): Add prototype with
18155         __attribute__((const)).
18156         (__terminate): Add prototype.
18157
18158 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
18159
18160         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
18161
18162         * alpha/alpha.c (print_operand): Fix type of `code'.
18163         (alpha_output_filename): Constify.
18164         * alpha/alpha.h: Move all function declarations ...
18165         * alpha/alpha-protos.h: ... here.  New file.
18166         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
18167         (SECTION_FUNCTION_TEMPLATE): Likewise.
18168
18169 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18170
18171         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
18172         * expr.c (expand_expr): Likewise.
18173         (do_jump): Likewise.
18174         (do_store_flag): Pass ccp_store_flag to can_compare_p.
18175         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
18176         accessor macros.
18177         (enum can_compare_purpose): New.
18178         (can_compare_p): Adjust prototype.
18179         (prepare_cmp_insn, prepare_operand): Declare.
18180         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
18181         * optabs.c (cmp_available_p): Deleted.
18182         (expand_abs): Pass ccp_jump to can_compare_p.
18183         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
18184         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
18185         Call can_compare_p rather than cmp_available_p.
18186         (prepare_operand): No longer static.
18187         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
18188         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
18189         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
18190         sequence to use emit_cmp_and_jump_insns.
18191         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
18192
18193 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
18194
18195         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
18196         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
18197         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
18198         (plus (reg) (const_int 0))
18199         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
18200
18201 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
18202
18203         * rs6000.c (expand_block_move): DImode loads and stores require
18204         word-aligned displacements.  Increment address registers with
18205         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
18206
18207 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
18208
18209         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
18210         is no name for the base type, rather than segfault.  If we are
18211         writing out a complex integer type, use DW_ATE_lo_user.
18212
18213         * expr.c (emit_move_insn_1): If we are copying a complex that fits
18214         in one word or less (complex char, complex short, or on 64 bit
18215         systems complex float) to/from a hard register, copy it through
18216         memory instead of dying in gen_{real,imag}part.  If we have a
18217         short complex type, prevent inlining since it allocates stack
18218         memory.
18219
18220         * tree.c (build_complex_type): If we are writing dwarf2 output,
18221         generate a name for complex integer types.
18222
18223 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18224
18225         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
18226         * flow.c (remove_edge): Remove extra whitespace.
18227         (remove_fake_edges): Fix comment.
18228         (add_noreturn_fake_exit_edges): Use the correct name.
18229
18230 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
18231
18232         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
18233         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
18234         (clean): Depend on INTL_CLEAN.
18235         (maintainer-clean): Adjust.
18236
18237 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18238
18239         * configure.in (AC_PREREQ): Bump to 2.13.
18240         (AC_C_STRINGIZE): Call this instead of using a custom macro.
18241
18242         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
18243
18244         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
18245
18246         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
18247
18248         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
18249         (HAVE_STRINGIZE): Define.
18250
18251 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
18252
18253         * c-parse.in: save and restore warn_pointer_arith on __extension__
18254         along with pedantic.
18255         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
18256         Set the type of extension to itype rather than $<itype>1 kludge.
18257         * extend.texi (Alternate Keywords): Adjust documentation.
18258         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
18259
18260 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
18261
18262         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
18263         most assembler templates.
18264
18265         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
18266         FP loads and stores.
18267         (following_call): Always return zero for the PA8000.
18268         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
18269         FP loads and stores.
18270         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
18271
18272         * pa.h (BRANCH_COST): Define.
18273
18274         * pa.md (return, return_internal): Use bve for PA2.0.
18275
18276         * pa.md (fused multiply): Add variants which reduce height for the
18277         fused multiply, but which still generate 2 insns.
18278         (fnegabs): Similarly.
18279
18280         * pa.md (subsi3): Turn into an expander.  Create two anonymous
18281         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
18282         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
18283
18284         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
18285         for TARGET_PA_20.
18286         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
18287         code generation.
18288         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
18289         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
18290
18291         * regclass.c (init_regs): Add "top_of_stack" as a garbage
18292         collection root.
18293
18294         * flow.c (record_active_eh_regions): Terminate loop after finding
18295         the last insn in the last basic block.
18296
18297 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18298
18299         * config/c4x/c4x.md: Delete parallel instruction peepholes.
18300
18301 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18302
18303         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
18304
18305 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18306
18307         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
18308         splitting to not use output template.
18309
18310 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18311
18312         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
18313         * config/c4x/c4x.c (c4x_va_start): New function.
18314
18315 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
18316
18317         * genrecog.c (not_both_true): Handle correctly cases when called for
18318         tests with different positions in the insn.
18319
18320 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18321
18322         * machmode.h (HOST_PTR_PRINTF): Move from here ...
18323
18324         * system.h (HOST_PTR_PRINTF): ... to here.
18325
18326         * mips-tfile.c: Don't include machmode.h.
18327
18328         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
18329         (mips-tfile.o): Don't depend on machmode.h.
18330
18331 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18332
18333         * haifa-sched.c (sched_analyze): Rename local variable `region' to
18334         avoid conflicts with typedef struct `region' at the top level scope.
18335
18336 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
18337
18338         * basic-block.h (basic_block): Add eh_beg, eh_end.
18339         * flow.c (entry_exit_blocks): Update.
18340         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
18341         Call new functions.
18342         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
18343         lists.c functions to allocate insn lists.
18344         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
18345         edge creation ...
18346         (make_eh_edge): ... here.  New.
18347         (move_stray_eh_region_notes): New.
18348         (record_active_eh_regions): New.
18349         (delete_unreachable_blocks): Split out block merging ...
18350         (try_merge_blocks): ... here.  New.
18351         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
18352         Dump debugging data.
18353         (merge_blocks_move_successor_nojumps): Likewise.
18354         (merge_blocks): Use eh_beg+eh_end to validate block movement.
18355
18356 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
18357
18358         * extend.texi (Bound member functions): Document unbound pmf
18359         conversion.
18360
18361 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18362
18363         * flow.c (split_edge): Handle insertion on a fallthrough edge which
18364         has the EXIT_BLOCK as a dest.
18365
18366 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18367
18368         * flow.c (remove_edge): New function to remove an edge from the
18369         flow graph.
18370         (remove_fake_successors): New function to remove fake successor edges.
18371         (remove_fake_edges): New function to remove all fake edges from the
18372         flow graph.
18373         (add_fake_exit_edges): New function to add fake edges from all blocks
18374         with no successors to the exit block.
18375         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
18376         prototypes for new functions.
18377
18378 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18379
18380         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
18381         Use Pmode to determine whether to output .dword or .word.
18382
18383 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
18384
18385         * tree.c (built_in_filename): New variable.
18386         (BUILT_IN_FILENAME): New macro.
18387         (init_tree_codes): Allocate built_in_filename.
18388         (make_node): Use built_in_filename instead of string constant.
18389
18390 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
18391
18392         * configure.in: Add fr30 target.
18393         * configure: Regenerate.
18394         * config/fr30: New directory.
18395         * config/fr30/crti.asm: New file.
18396         * config/fr30/fr30.c: New file.
18397         * config/fr30/crtn.asm: New file.
18398         * config/fr30/fr30.h: New file.
18399         * config/fr30/fr30.md: New file.
18400         * config/fr30/lib1funcs.asm: New file.
18401         * config/fr30/t-fr30: New file.
18402         * config/fr30/xm-fr30.h: New file.
18403
18404 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
18405
18406         * flow.c (merge_blocks_move_successor_nojumps): Delete the
18407         BARRIER at the end of the successor, not the BARRIER before
18408         the successor.
18409
18410         * pa.c (pa_add_gc_roots): Fix thinko in last change.
18411
18412 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
18413
18414         * stmt.c (any_pending_cleanups): Don't crash when
18415         current_function->stmt is unset.
18416
18417 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18418
18419         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
18420         other initializations that may use it for relative offsets.
18421
18422 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18423
18424         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
18425         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
18426         * config/i386/sol2dbg.h: Removed.
18427         * config/i386/sol2gas.h: New file, to enable gas work-around.
18428         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
18429         Don't use sol2dbg.h.
18430         * configure: Rebuilt.
18431
18432 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
18433
18434         * invoke.texi (-fthis-is-variable): Remove documentation.
18435
18436 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
18437
18438         * basic-block.h (compute_bb_for_insn): Declare.
18439         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
18440         to use; set size of basic_block_for_insn directly.
18441         (find_basic_blocks): Update.
18442
18443 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18444
18445         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
18446
18447 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18448
18449         * crtstuff.c (ON_EXIT): Delete empty macro definition.
18450         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
18451
18452 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
18453
18454         * c-decl.c (c_decode_option): Extend comment.
18455
18456 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
18457
18458         * toplev.c (progname): Make 'const char *'
18459         (flag_print_mem): Move out of main.
18460         (version_flag): Move out of main.
18461         (filename): Move out of main.
18462         (debug_args): Remove g prefix from options.
18463         (documented_lang_options): Remove cpplib specific options.
18464         (display_help): Add g prefix to debug options.
18465         (check_lang_option): Delete this function.
18466         (decode_d_option): New function: Decode -d... option.
18467         (decode_f_option): New function: Decode -f... option.
18468         (decode_W_option): New function: Decode -W... option.
18469         (decode_g_option): New function: Decode -g... option.
18470         (independent_decode_option): New function: Decode a language
18471         independent command line option.
18472         (main): Invoke lang_decode_option and then
18473         independent_decode_option on each command line option in
18474         turn.
18475
18476 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
18477
18478         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
18479          * fold-const.c (fold_range_test): Do not try to fold the range
18480          test if the rhs or lhs has side effects.
18481
18482         * basic-block.h (compute_flow_dominators): Declare.
18483
18484         * gcse.c (alloc_code_hoist_mem): New function.
18485         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
18486         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
18487         (hoist_code, one_code_hoisting_pass): Likewise.
18488         (gcse_main): If optimizing for size, then hoist expressions
18489         computed in multiple dominated basic blocks.
18490
18491         * gcse.c (invalid_nonnull_info): New function.
18492         (delete_null_pointer_checks): Likewise.
18493         * rtl.h (delete_null_pointer_checks): Declare.
18494         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
18495
18496         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
18497         (merge-blocks_move_successor_nojumps): Likewise.
18498         (merge_blocks): Allow merging of some blocks, even if it requires
18499         physical movement of the blocks, but not if it requires new jumps.
18500
18501         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
18502         Callers and prototype changed.
18503         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
18504
18505 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18506
18507         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
18508         -YP when both -p and -pg are present.  From i386/sol2.h.
18509
18510 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18511
18512         * Makefile.in (distclean): Delete tm_p.h.
18513         * configure.in: Create a new file, "tm_p.h", from a list in
18514         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
18515         "i386/i386-protos.h".
18516
18517         * alias.c: Include "tm_p.h".
18518         * c-typeck.c: Likewise.
18519         * calls.c: Likewise.
18520         * cse.c: Likewise.
18521         * emit-rtl.c: Likewise.
18522         * explow.c: Likewise.
18523         * expmed.c: Likewise.
18524         * expr.c: Likewise.
18525         * final.c: Likewise.
18526         * flow.c: Likewise.
18527         * fold-const.c: Likewise.
18528         * function.c: Likewise.
18529         * gcse.c: Likewise.
18530         * global.c: Likewise.
18531         * haifa-sched.c: Likewise.
18532         * integrate.c: Likewise.
18533         * jump.c: Likewise.
18534         * local-alloc.c: Likewise.
18535         * loop.c: Likewise.
18536         * optabs.c: Likewise.
18537         * recog.c: Likewise.
18538         * reg-stack.c: Likewise.
18539         * regclass.c: Likewise.
18540         * regmove.c: Likewise.
18541         * reload.c: Likewise.
18542         * reload1.c: Likewise.
18543         * reorg.c: Likewise.
18544         * resource.c: Likewise.
18545         * stmt.c: Likewise.
18546         * stor-layout.c: Likewise.
18547         * toplev.c: Likewise.
18548         * tree.c: Likewise.
18549         * unroll.c: Likewise.
18550         * genattrtab.c (main): Make generated file include "tm_p.h".
18551         * genemit.c (main): Likewise.
18552         * genoutput.c (main): Likewise.
18553         * genrecog.c (main): Likewise.
18554
18555         * i386.h: Delete all prototypes.
18556         * i386.c: Include "tm_p.h".
18557         (ix86_attr_length_default): Call constant_call_address_operand
18558         with correct number of arguments.
18559         * i386-protos.h: New file.
18560         * i386.md (unnamed patterns): Call constant_call_address_operand
18561         with correct number of arguments.
18562         (exception_receiver): Call load_pic_register with correct number
18563         of arguments.
18564
18565 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
18566
18567         * c-pragma.c (mark_align_stack): Dereference the void* properly.
18568
18569 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
18570
18571         * rtl.h (insns_safe_to_move_p): New function.
18572         * loop.c (find_and_verify_loops): Use it.
18573         * rtlanal.c (insns_safe_to_move_p): Define it.
18574
18575 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
18576
18577         * c-pragma.c: Include ggc.h.
18578         * Makefile.in (c-pragma.o): Update.
18579
18580 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18581
18582         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
18583         (LIB_SPEC): Likewise.
18584         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
18585         Reindent -YP/-p/-pg.
18586         Copied from config/sparc/sol2.h.
18587
18588 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
18589
18590         * c-pragma.c (mark_align_stack): New.
18591         (init_pragma): New.
18592         * c-pragma.h (init_pragma): Declare it.
18593         * c-lex.c (init_parse): Call it.
18594
18595 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18596
18597         * configure.in: Pick up thread library on Solaris/x86 just
18598         like on Solaris/sparc.
18599         * configure: Rebuilt.
18600
18601 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
18602
18603         * rtl.h (global_rtx_index): New enum.
18604         (global_rtl): Change to array of rtx.
18605         (pc_rtx, cc0_rtx): Redefine accordingly.
18606         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
18607         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
18608         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
18609         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
18610         (const_int_rtx): Change to array of rtx.
18611         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
18612         accordingly.
18613         * emit-rtl.c (global_rtl): Change to array of rtx.
18614         (const_int_rtx): Change to aray of rtx.
18615         (gen_rtx_CONST_INT): Redefine accordingly.
18616         (init_emit_once): Allocate and initialize global_rtl.  Likewise
18617         for const_int_rtx.  Add both as GC roots.
18618         * genattrtab.c (global_rtl): Update declaration.
18619
18620 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
18621
18622         * Makefile (USER_H): Add iso646.h back.
18623
18624 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
18625
18626         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
18627         zapping the LOG_LINKS of sched_before_next_call.
18628
18629         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
18630         * pa.c (insn_refs_are_delayed): Renamed from
18631         insn_sets_and_refs_are_delayed.
18632
18633 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
18634
18635         * functiion.h (struct function): Add x_whole_function_mode_p.
18636         (retrofit_block): Declare.
18637         * function.c (retrofit_block): New function.
18638         (identify_blocks): Add assertions.  Allow an incomplete set of
18639         block notes if we're still generating code for the function.
18640         * integrate.c: Include loop.h.
18641         (expand_inline_function): Call find_loop_tree_blocks to map block
18642         notes to blocks when in whole-function mode.  Use retrofit_block
18643         to insert new BLOCKs for the inlined function, rather than
18644         insert_block.
18645         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
18646         * Makefile.in (integrate.o): Depend on loop.h.
18647
18648 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
18649
18650         * tree.h (warn_about_unused_variables): Declare.
18651         * stmt.c (warn_about_unused_variables): New function, split out
18652         from ...
18653         (expand_end_bindings): Here.
18654
18655 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
18656
18657         * stmt.c (preserve_subexpressions_p): Don't crash when
18658         current_function->stmt is unset.
18659
18660 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
18661
18662         * stmt.c (expand_start_bindings): Allow callers to pass a flag
18663         indicating that no NOTE_INSN_BLOCK_BEG note is required.
18664         (expand_start_target_temps): Use it.
18665         * except.c (expand_eh_region_start_for_decl): Likewise.
18666         * expr.c (expand_expr): Likewise.
18667
18668 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18669
18670         * fold-const.c (operand_equal_p): Pay attention to side effects.
18671
18672 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
18673
18674         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
18675         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
18676
18677         * tlink.c (scan_linker_output): Look for keywords before accepting
18678         a mangled name in quotes.
18679
18680 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
18681
18682         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
18683         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
18684
18685 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
18686
18687         * alpha.md: Revert Thu Nov 26 change that came in through the
18688         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
18689         Avoid earlyclobber when possible.
18690
18691 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18692
18693         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
18694
18695         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
18696         Define HAVE_ON_EXIT.
18697
18698 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18699
18700         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
18701         CTYPE_CONV in all ctype macros.
18702
18703         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
18704         from system.h.
18705
18706         * cexp.y (initialize_random_junk): Likewise.
18707
18708         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
18709
18710         * i370.c (handle_pragma): Likewise.
18711
18712         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
18713
18714         * v850.c (override_options): Likewise.
18715
18716         * doprint.c (_doprnt): Likewise.
18717
18718         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
18719         Likewise.
18720
18721         * fixinc/server.c (load_data): Likewise.
18722
18723         * fold-const.c (real_hex_to_f): Likewise.
18724
18725         * genattr.c (write_upcase, gen_attr): Likewise.
18726
18727         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
18728         write_upcase): Likewise.
18729
18730         * genemit.c (print_code): Likewise.
18731
18732         * genopinit.c (gen_insn): Likewise.
18733
18734         * genpeep.c (print_code): Likewise.
18735
18736         * genrecog.c (print_code): Likewise.
18737
18738         * optabs.c (init_libfuncs): Likewise.
18739
18740 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
18741
18742         * haifa-sched.c (sched_analyze): Keep the list of notes organized
18743         in pairs.
18744         (reemit_notes): Likewise.
18745
18746 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
18747
18748         * ggc.h (ggc_root): Move to ggc-common.c.
18749         (roots): Remove.
18750         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
18751         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
18752         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
18753         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
18754         * ggc-common.c (ggc_root): Move from ggc.h.
18755         (roots): Declare, static.
18756         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
18757         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
18758         null or check/set mark bit.
18759         (ggc_mark_roots): New.
18760         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
18761
18762 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
18763
18764         * m32r.c: Include toplev.h.
18765         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
18766         (gen_compare): Rename swap_p to must_swap to match uses.
18767         Add default abort case.
18768         (m32r_output_function_epilogue): Remove unused variables.
18769         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
18770         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
18771         define to empty parameter list.  Update all uses.
18772         (predicate decls): Use enum machine_mode not int.
18773         * m32r.md (movsi): Call abort, not fatal_insn.
18774         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
18775
18776 1999-09-14  Andrew Haley  <aph@cygnus.com>
18777
18778         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
18779         use $0 instead of 0.
18780
18781 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18782
18783         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
18784         computation out of loop over hard regs.
18785
18786 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
18787
18788         * function.c (identify_blocks): Don't shadow a variable in an
18789         outer scope.
18790         * integrate.c (integrate_decl_tree): Don't use pushlevel,
18791         pushdecl, or poplevel to build up the new BLOCK tree.
18792         (expand_inline_function): Likewise.
18793         (integrate_parm_decls): Likewise.
18794
18795 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
18796
18797         * c-typeck.c (qualify_type): Merge qualifiers from both types.
18798
18799 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
18800
18801         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
18802         * invoke.texi: Document this change.
18803
18804 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
18805
18806         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
18807         Free the struct.
18808         (mark_emit_status): Renamed from mark_emit_state.
18809         * except.c (mark_eh_status): Renamed from mark_eh_state.
18810         Check not null before marking.
18811         (free_eh_status): New.
18812         * expr.c (mark_expr_status, free_expr_status): New.
18813         * function.c (free_machine_status): New.
18814         (free_after_parsing): New.
18815         (free_after_compilation): Move bits to free_after_parsing; call
18816         free_eh_status, free_expr_status; zero the marked members of the
18817         function state.
18818         (prepare_function_start): No can_garbage_collect.
18819         Call init_eh_for_function.
18820         (expand_dummy_function_end): Free up current_function state.
18821         (mark_function_status): Renamed from mark_function_state.
18822         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
18823         * function.h (struct function): No can_garbage_collect.
18824         (free_machine_status, free_after_parsing): Declare.
18825         (free_eh_status, free_expr_status): Declare.
18826         * ggc.h (mark_expr_status): Declare.
18827         * stmt.c (free_stmt_status): Free the struct.
18828         (mark_stmt_status): Renamed from mark_stmt_state.
18829         (init_stmt): Don't call init_eh.
18830         (init_stmt_for_function): Don't call init_eh_for_function.
18831         * toplev.c (compile_file): Call init_eh.
18832         (rest_of_compilation): Free basic block info before ggc_collect.
18833         Call free_after_parsing; conditionally call free_after_compilation.
18834         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
18835         Check not null before marking.
18836         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
18837
18838 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
18839
18840         * c-lex.c (yylex): Initialize warn.
18841
18842 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
18843
18844         * pa.c (emit_move_sequence): Properly set the mode of the scratch
18845         register when performing secondary reloads for the SAR register.
18846
18847 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
18848
18849         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
18850         (NOTE_BLOCK): New macro.
18851         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
18852         * function.h (identify_blocks): Change prototype.
18853         * function.c (identify_blocks): Simplify.
18854         (reorder_blocks): Likewise.
18855         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
18856         NOTE_INSN_BLOCK_{BEG,END}.
18857         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
18858         the list of saved notes if the note isn't a
18859         NOTE_INSN_BLOCK_{BEG,END}.
18860         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
18861         NOTE_BLOCK_NUMBER.
18862         (reemit_notes): Adjust recreation of notes to reflect new saved
18863         note structure.
18864         * print-rtl.c (print_rtx): Print the address of the BLOCK when
18865         printing a block note.
18866         * stmt.c (block_vector): Remove.
18867         (find_loop_tree_blocks): Simplify.
18868         (unroll_block_trees): Likewise.
18869         * tree.h (reorder_block): Change prototype.
18870
18871 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
18872
18873         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
18874         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
18875         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
18876         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
18877         (atexit, exit): Simplify.
18878         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
18879         * config/lots: Remove defns of HAVE_ATEXIT.
18880
18881 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
18882
18883         * calls.c (precompute_arguments): Fix typo in comment.
18884         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
18885         TARGET_EXPR.
18886
18887 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
18888
18889         * dsp16xx.c (override_options): Fix typos in GC root registration.
18890
18891 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
18892
18893         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
18894         from config/svr4.h.
18895         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
18896         (FUNCTION_PROFILER): Redefine appropriately for Linux.
18897         (CC1_SPEC): Likewise.
18898
18899 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18900
18901         * genattr.c (main): Add extern prototype.  Call return, not exit.
18902         * genattrtab.c (main): Likewise.
18903         * gencheck.c (main): Likewise.
18904         * gencodes.c (main): Likewise.
18905         * genconfig.c (main): Likewise.
18906         * genemit.c (main): Likewise.
18907         * genextract.c (main): Likewise.
18908         * genflags.c (main): Likewise.
18909         * gengenrtl.c (main): Likewise.
18910         * genopinit.c (main): Likewise.
18911         * genoutput.c (main): Likewise.
18912         * genpeep.c (main): Likewise.
18913         * genrecog.c (main): Likewise.
18914
18915         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
18916         * genattrtab.c (get_insn_name): Likewise.
18917         * gencodes.c (get_insn_name): Likewise.
18918         * genconfig.c (get_insn_name): Likewise.
18919         * genemit.c (get_insn_name): Likewise.
18920         * genextract.c (get_insn_name): Likewise.
18921         * genflags.c (get_insn_name): Likewise.
18922         * genopinit.c (get_insn_name): Likewise.
18923         * genpeep.c (get_insn_name): Likewise.
18924
18925         * gencheck.c (usage): Add static prototype.
18926         * genextract.c (print_path): Constify a char*.
18927         * genopinit.c (optabs): Likewise.
18928         * genoutput.c (operand_data, data, output_predicate_decls,
18929         compare_operands): Likewise.
18930         * genrecog.c (write_tree): Add default case in switch.
18931
18932 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18933
18934         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
18935
18936         * print-rtl.c (get_insn_name): Remove prototype.
18937
18938         * toplev.h (progname): Declare const.
18939
18940         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
18941         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
18942         dump_sched_info, dump_local_alloc, regset_release_memory,
18943         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
18944         error_with_file_and_line, error_with_decl, error_for_asm, error,
18945         fatal, warning_with_file_and_line, warning_with_decl, warning,
18946         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
18947         Remove redundant prototypes.
18948
18949         (notice, check_lang_option, report_file_and_line, vnotice,
18950         mark_file_stack): Add static prototype.
18951         (set_fatal_function): Add prototype.
18952         (vnotice, report_file_and_line, set_fatal_function,
18953         check_lang_option): Constify a char*.
18954         (main): Prototype.  Call return, not exit.
18955
18956 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18957
18958         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
18959
18960         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
18961
18962         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
18963
18964         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
18965
18966 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18967
18968         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
18969         behave as if it's zero in all cases.
18970         (expand_function_start): Adjust call to assign_parms.
18971         * tree.h (assign_parms): Adjust prototype.
18972         * objc/objc-act.c (hack_method_prototype): Adjust call to
18973         assign_parms.
18974
18975 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
18976
18977         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
18978         arg_pointer_rtx fixed if the argument pointer register is
18979         not fixed.
18980         (NONZERO_BASE_PLUS_P): Likewise.
18981
18982 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
18983
18984         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
18985         match_insn2 to match_insn.
18986         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
18987
18988 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
18989
18990         * Makefile.in (USER_H): Remove va-foo.h.
18991
18992         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
18993         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
18994         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
18995         va-spur.h,va-v850.h}: Remove.
18996
18997 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
18998
18999         * sparc/sparc.md (eligible_for_return_delay): New attribute.
19000         (in_return_delay): Use it instead of match_insn.
19001
19002 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
19003
19004         * config/alpha/va_list.h (va-alpha.h): Do not include.
19005         (__gnuc_va_list): Typedef as in varargs.h.
19006
19007 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
19008
19009         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
19010         DECL_LIVE_RANGE_RTL.
19011
19012 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
19013
19014         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
19015         not NOTE_BLOCK_NUMBER.
19016         (expand_eh_region_end): Likewise.
19017         (find_exception_handler_labels): Likewise.
19018         (scan_region): Likewise.
19019         (exception_optimize): Likewise.
19020         (update_rethrow_references): Likewise.
19021         (set_insn_eh_region): Likewise.
19022         * final.c (final_scan_insn): Likewise.
19023         * flow.c (make_edges): Likewise.
19024         * integrate.c (expand_inline_function): Likewise.
19025         * print-rtl.c (print_rtx): Likewise.
19026
19027 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
19028
19029         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
19030         terms of builtin functions and types.
19031
19032         * mips.c (mips_build_va_list): New.
19033         (mips_va_start, mips_va_arg): New.
19034         * mips.h (BUILD_VA_LIST_TYPE): New.
19035         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
19036
19037         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
19038         (sh_build_va_list, sh_va_start, sh_va_arg): New.
19039         * sh.h (BUILD_VA_LIST_TYPE): New.
19040         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
19041
19042 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
19043
19044         * recog.h (struct recog_data): Make dup_num, operand_address_p,
19045         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
19046         (struct insn_data): Likewise with n_operands, n_dups,
19047         n_alternatives, output_format.
19048         * regclass.c (scan_one_insn): Cast n_operands to int before
19049         arithmetic inside comparison.
19050
19051 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
19052
19053         * toplev.c (compile_function): Unconditionally emit nop.
19054
19055 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19056
19057         * haifa-sched.c (actual_hazard): Move declaration of variable
19058         `this_cost' into the scope where it is used.
19059
19060 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19061
19062         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
19063         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
19064         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
19065
19066         * genrecog.c (make_insn_sequence): Call memset, not bzero.
19067
19068         * jump.c (find_insert_position): Don't declare or define unless
19069         !HAVE_conditional_arithmetic.
19070         (returnjump_p_1, delete_prior_computation): Add static prototypes.
19071
19072         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
19073
19074         * recog.c (offsettable_address_p): Prototype function pointer.
19075         (preprocess_constraints): Call memset, not bzero.
19076
19077         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
19078         (gcc_obstack_init): Don't declare.
19079         (fix_sizetype): Add static prototype.
19080         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
19081         (tree_cons): Call memset, not bzero.
19082
19083         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
19084         definition in macro ASM_WEAKEN_LABEL.
19085         (mark_const_hash_entry): Add static prototype.
19086
19087 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19088
19089         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
19090
19091         * unroll.c (find_common_reg_term, subtract_reg_term,
19092         loop_find_equiv_value): Add static prototypes.
19093         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
19094         (copy_loop_body): Remove unreachable break statement.
19095
19096         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
19097
19098         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
19099
19100 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19101
19102         Undo some changes from the gcc2 merge:
19103         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
19104         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
19105         pointers.
19106
19107         Undo this change:
19108         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
19109         * emit-rtl.c (gen_lowpart_common): Disable optimization of
19110         initialized float-int union if the value is a NaN.
19111
19112 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19113
19114         * gthr-win32.h: New file.
19115
19116         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
19117         shared as a valid attribute.
19118         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
19119         * extend.texi: Document `shared' variable attribute.
19120
19121 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
19122
19123         * configure.in: Handle --enable-threads on FreeBSD.
19124         * configure: Rebuit.
19125
19126 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
19127
19128         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
19129         thread support.
19130         * configure: Rebuilt.
19131
19132 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
19133                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
19134                           Rosimildo DaSilva <rdasilva@connecttel.com>
19135
19136         * configure.in (m68k-*-rtemscoff*): Added.
19137         * configure.in (mips64orion-*-rtems*): Converted to ELF.
19138         * configure.in (sparc-*-rtemsaout*): Added as alias for old
19139         sparc-rtems configuration.
19140         * configure.in (sparc-*-rtemself*): Added.
19141         * configure.in (sparc-*-rtems*): Now ELF not a.out.
19142         * config/i386/rtems.h: Added comment.
19143         * config/sparc/rtemself.h: New file.
19144
19145         * configure.in (m68k-rtemself): Added.
19146         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
19147         and DWARF_DEBUGGING_INFO.
19148         * config/m68k/crti.s: New file.
19149         * config/m68k/crtn.s: New file.
19150         * config/m68k/t-crtstuff: New file.
19151         * config/m68k/rtemself.h: New file.
19152
19153         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
19154         global ctor/dtor and C++ exception handling.
19155         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
19156         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
19157         ENDFILE_SPEC.
19158         * config/i386/t-rtems-i386: New File.
19159
19160 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
19161
19162         * stmt.c (expand_end_case): Return right away if the case stack is
19163         empty.
19164
19165 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
19166
19167         * Makefile.in (version.c): Remove rule incorrectly brought in from
19168         the gcc2 merge.
19169
19170 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
19171
19172         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
19173         * msdos/top.sed:  Take into account a prepended $(SHELL) to
19174         move-if-change.
19175         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
19176
19177         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
19178
19179 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19180
19181         * regmove.c (fixup_match_1): Don't change an unchanging register.
19182         (stable_but_for_p): Renamed to:
19183         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
19184         Changed all callers.
19185
19186 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
19187
19188         * loop.c (strength_reduce): Don't call reg_used_between_p if the
19189         insn from BL2 is after the insn from BL.
19190
19191 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
19192
19193         * recog.h (INSN_OUTPUT_FORMAT_*): New.
19194         (struct insn_data): Merge `template' and `outfun' into `output'.
19195         Add `output_format'.
19196         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
19197         (struct data): Remove `outfun'; add `output_format'.
19198         (name_for_index): Remove declaration.
19199         (output_insn_data): Handle output formats.
19200         (process_template): Emit the bare array for @.
19201         (gen_expand, gen_split): Set output_format to NONE.
19202         * output.h (get_insn_template): Declare.
19203         * final.c (get_insn_template): New.
19204         (final_scan_insn): Use it.
19205         * toplev.c (compile_file): Likewise.
19206
19207         * c4x/c4x.c (c4x_process_after_reload): Likewise.
19208         * i860/i860.c (output_delayed_branch): Likewise.
19209         (output_delay_insn): Likewise.
19210
19211 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
19212
19213         * rtl.c (obstack_alloc_rtx): Removed.
19214
19215 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
19216
19217         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
19218
19219 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
19220
19221         * i386.c (call_insn_operand): Reject const_int.
19222         (expander_call_insn_operand): Use call_insn_operand.
19223
19224 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19225
19226         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
19227
19228 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
19229
19230         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
19231         Use DImode operation.
19232
19233 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
19234
19235         * gcc.c: Include sys/resource.h.
19236         (report_times): New flag.
19237         (execute):  If report_times is set, calculate and report the
19238         CPU time consumed by each subprocess.
19239
19240         (rus, prus): New globals.
19241         (option_map): Add --time.
19242         (display_help): Document -time.
19243         (process_command): Set report_times if -time is given.
19244         Turn off -pipe if -time is given.
19245
19246         * invoke.texi: Document new option -time.
19247
19248         * configure.in: Check for getrusage.  Check if we have to
19249         prototype getrusage.
19250         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
19251         * configure: Regenerate.
19252         * config.in: Regenerate.
19253
19254 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
19255
19256         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
19257         fields.
19258
19259 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
19260
19261         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
19262         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
19263         (nan): Return _thenan_sf or _thenan_df as appropriate.
19264         (L_thenan_sf): Define _thenan_sf.
19265         (L_thenan_df): Define _thenan_df.
19266
19267         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
19268         (DPBIT_FUNCS): Add _thenan_df.
19269
19270 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
19271
19272         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
19273         TYPE_SIZE_UNIT.
19274
19275 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19276
19277         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
19278
19279         * gcc.h: New file.
19280         (lang_specific_driver): Don't take a function pointer parameter.
19281         All callers changed.
19282
19283         * gcc.c: Include gcc.h.
19284         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
19285         lang_specific_extra_outfiles, fatal): Don't declare.
19286         (multilib_defaults_raw): Constify.
19287         (read_specs): Call memset, rather than bzero.
19288         (main): Call return, not exit.
19289         (lookup_compiler): Call memcpy, not bcopy.
19290         (fatal): Make extern.
19291
19292         * cppspec.c: Include gcc.h.
19293         (lang_specific_driver): Initialize variable `quote'.  Constify a
19294         char*.  All calls to the function pointer parameter now
19295         explicitly call `fatal'.
19296
19297         * gccspec.c (lang_specific_driver): Include gcc.h.
19298
19299 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
19300
19301         * arm.c (note_invalid_constants): Use recog_data.operand_type
19302         for recog_op_type.
19303
19304 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19305
19306         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
19307         Declare.
19308
19309         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
19310         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
19311         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
19312         reload_secondary_in_reload, reload_secondary_out_reload,
19313         reload_secondary_in_icode, reload_secondary_out_icode,
19314         reload_reg_rtx, reload_when_needed): Delete declarations.
19315         (struct reload): New structure.
19316         (rld): Declare new array.
19317         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
19318         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
19319         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
19320         reload_secondary_in_reload, reload_secondary_out_reload,
19321         reload_secondary_in_icode, reload_secondary_out_icode,
19322         reload_reg_rtx, reload_when_needed): Delete definitions.
19323         (rld): New array.
19324         (whole file): Replace uses of the deleted arrays with uses of rld.
19325         * reload1.c (whole file): Replace uses of the deleted arrays with
19326         uses of rld.
19327         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
19328         explicit loops, not with bcopy.
19329
19330 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
19331
19332         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
19333         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
19334         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
19335         insn_name): Delete and consolidate into new structures.
19336         (insn_operand_predicate_fn): New.
19337         (insn_output_fn): New.
19338         (insn_gen_fn): New.
19339         (struct insn_operand_data): New.
19340         (struct insn_data): New.
19341         (insn_data): New.
19342         (OUT_FCN): Update for insn_data change.
19343         * builtins.c (expand_builtin_strlen): Likewise.
19344         (expand_builtin_memcmp): Likewise.
19345         * combine.c (make_extraction, simplify_comparison): Likewise.
19346         * cse.c (canon_reg, cse_insn): Likewise.
19347         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
19348         * expmed.c (store_bit_field, extract_bit_field): Likewise.
19349         (emit_store_flag): Likewise.
19350         * expr.c (convert_move, emit_block_move): Likewise.
19351         (clear_storage, emit_push_insn, expand_increment): Likewise.
19352         (do_store_flag): Likewise.
19353         * expr.h (GEN_FCN): Likewise.
19354         (insn_gen_function): Die.
19355         * final.c (final_scan_insn): Update for insn_data change.
19356         (output_asm_name): Likewise.
19357         * function.c (fixup_var_refs_1): Likewise.
19358         * loop.c (check_dbra_loop): Likewise.
19359         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
19360         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
19361         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
19362         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
19363         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
19364         * regmove.c (gen_add3_insn): Likewise.
19365         * reload.c (push_secondary_reload, combine_reloads): Likewise.
19366         (find_reloads, find_reloads_address_1): Likewise.
19367         (debug_reload_to_stream): Likewise.
19368         * reload1.c (emit_reload_insns, gen_reload): Likewise.
19369         * stmt.c (expand_end_case): Likewise.
19370         * toplev.c (compile_file): Likewise.
19371
19372         * c4x/c4x.c (c4x_process_after_reload): Likewise.
19373         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
19374
19375         * print-rtl.c (insn_name_ptr): Remove declaration.
19376         (get_insn_name): Declare.
19377         (print_rtx): Use it.
19378         * genoutput.c (insn_name_ptr): Remove.
19379         (next_operand_number): New.
19380         (struct operand_data): New.
19381         (null_operand, odata, odata_end): New.
19382         (struct data): Use struct operand_data.
19383         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
19384         (get_insn_name): Renamed from name_for_index.
19385         (output_prologue): Define NO_MD_PROTOTYPES.
19386         (output_predicate_decls): Break out from output_epilogue.
19387         Iterate over the operands list.
19388         (output_operand_data): Break out from output_epilogue.  Emit
19389         just the operands list.
19390         (output_insn_data): Break out from output_epilogue.  Emit just
19391         the insn data.
19392         (output_epilogue): Remove.
19393         (output_get_insn_name): New.
19394         (constraints, op_n_alternatives, predicates, address_p): Die.
19395         (modes, strict_low, seen): Die.
19396         (scan_operands): Take new param `d' instead of writing to
19397         seven global variables.
19398         (compare_operands): New.
19399         (place_operands): New.
19400         (validate_insn_alternatives): Update for struct data change.
19401         (gen_insn): Don't zero or copy 7 global arrays.  Update for
19402         scan_operands; call place_operands.
19403         (gen_peephole, gen_expand, gen_split): Likewise.
19404         (main): Update for new output routines.
19405
19406         * genattr.c (insn_name_ptr): Remove.
19407         (get_insn_name): New function.
19408         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
19409         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
19410         * genrecog.c: Likewise.
19411
19412         * alpha.md (adddi3): Make `pattern' array static.
19413
19414 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19415
19416         * config/c4x/c4x.h (c4x_rpts_cycles_string,
19417         c4x_cpu_version_string): Constify char *.
19418         * config/c4x/c4x.c (c4x_rpts_cycles_string,
19419         c4x_cpu_version_string): Likewise.
19420
19421 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
19422
19423         * tree.c (save_tree_status): Revert 10 Sep change.
19424         (restore_tree_status): Likewise.  Call obstack_free with NULL
19425         before freeing the obstack proper.
19426
19427 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
19428
19429         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
19430
19431         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
19432         surrounding context.
19433
19434 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
19435
19436         * tree.c (type_hash_canon): Put all types in the hash-table, when
19437         GC'ing.
19438
19439 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
19440
19441         * recog.h (struct recog_data, recog_data): New.
19442         (recog_foo variables): Kill.
19443         * recog.c (recog_operand, recog_operand_loc): Kill.
19444         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
19445         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
19446         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
19447         (recog_data): Define.
19448         (extract_insn): Update all recog_foo references to use recog_data.
19449         (preprocess_constraints, constrain_operands): Likewise.
19450         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
19451         * genattrtab.c (main): Likewise.
19452         * genextract.c (main): Likewise.
19453         * genoutput.c: Likewise.
19454         * genrecog.c (write_subroutine, main): Likewise.
19455         * local-alloc.c (block_alloc): Likewise.
19456         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
19457         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
19458         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
19459         * reload.c (find_reloads, find_reloads_toplev): Likewise.
19460         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
19461         (reload_cse_simplify_operands): Likewise.
19462
19463         * arc/arc.c (arc_final_prescan_insn): Likewise.
19464         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
19465         * h8300/h8300.c (notice_update_cc): Likewise.
19466         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
19467         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
19468         * mn10200/mn10200.c (notice_update_cc): Likewise.
19469         * mn10300/mn10300.c (notice_update_cc): Likewise.
19470         * romp/romp.c (update_cc): Likewise.
19471         * sparc/sparc.c (check_pic): Likewise.
19472         * v850/v850.c (notice_update_cc): Likewise.
19473
19474         * genemit.c (main): Don't declare recog_operand.
19475
19476 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
19477
19478         * ggc.h (rtvec_def): Forward declare.
19479         (tree_node): Likewise.
19480         (ggc_root): Define.
19481         (roots): Declare.
19482         (ggc_set_mark_rtx): Add prototype.
19483         (ggc_set_mark_rtvec): Likewise.
19484         (ggc_set_mark_tree): Likewise.
19485         * ggc-simple.c (ggc_root): Don't define.
19486         (roots): Don't declare.
19487         (ggc_mark_rtx): Remove.
19488         (ggc_mark_rtvec): Likewise.
19489         (ggc_mark_tree): Likewise.
19490         (ggc_mark_varray): Likewise.
19491         (ggc_mark_tree_hash_table_entry): Likewise.
19492         (ggc_mark_tree_hash_table): Likewise.
19493         (ggc_set_mart_rtx): New function.
19494         (ggc_set_mark_rtvec): Likewise.
19495         (ggc_set_mark_tree): Likewise.
19496         (ggc_add_root): Remove.
19497         (ggc_add_rtx_root): Likewise.
19498         (ggc_remove_tree_root): Likewise.
19499         (ggc_add_string_root): Likewise.
19500         (ggc_add_tree_varray_root): Likewise.
19501         (ggc_add_tree_hash_table_root): Likewise.
19502         (ggc_del_root): Likewise.
19503         (ggc_mark_rtx_ptr): Likewise.
19504         (ggc_mark_tree_ptr): Likewise.
19505         (ggc_mark_string_ptr): Likewise.
19506         (ggc_mark_tree_varray_ptr): Likewise.
19507         (ggc_mark_tree_hash_table_ptr): Likewise.
19508         * ggc-common.c: New file.
19509         * Makefile.in (OBJS): Add ggc-common.o.
19510         (ggc-common.o): List dependencies.
19511
19512 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
19513
19514         * cppalloc.c (xstrdup): Use memcpy.
19515         * cpperror.c (cpp_print_containing_files): Don't use
19516         cpp_notice.
19517         * cpplib.c (conditional_skip): Set temp->lineno.
19518         (do_endif): Make error message less obscure.
19519         (if_directive_name): New function.
19520         (cpp_get_token [case EOF]): Unwind the if stack and generate
19521         error messages for each unterminated conditional in this file.
19522         (parse_string):  Do not behave differently if -traditional.
19523
19524 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
19525
19526         * builtins.c (expand_builtin_va_arg): Cope with an array-type
19527         va_list decomposing to pointer-type.
19528         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
19529         (rs6000_va_arg): Likewise.
19530
19531 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
19532
19533         * except.c (start_dynamic_handler): Compute size using
19534         STACK_SAVEAREA_MODE.
19535
19536 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19537
19538         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
19539         include directory headers.  Don't define strrchr.  Don't provide
19540         my_* replacement functions.  Prefer PTR over `pointer_type'.
19541         Don't prototype system functions.  Don't redefine getopt.
19542
19543         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
19544         safe_read, safe_write, save_pointers, restore_pointers,
19545         is_id_char, in_system_include_dir, directory_specified_p,
19546         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
19547         find_corresponding_lparen, referenced_file_is_newer,
19548         save_def_or_dec, munge_compile_params, gen_aux_info_file,
19549         process_aux_info_file, identify_lineno, check_source,
19550         seek_to_line, forward_to_next_token_char, output_bytes,
19551         output_string, output_up_to, other_variable_style_function,
19552         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
19553         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
19554         find_static_definition, connect_defs_and_decs, add_local_decl,
19555         add_global_decls, needs_to_be_converted, visit_each_hash_node,
19556         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
19557         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
19558         scan_for_missed_items, edit_file, string_list_cons): Add static
19559         prototypes.
19560         (standard_exec_prefix, target_machine, target_version,
19561         default_syscalls_dir, string_list, string_list_cons, find_file,
19562         do_cleaning): Constify a char*.
19563         (safe_read, safe_write): Use PTR, not a char*.
19564         (is_id_char): Take an int, not a char.
19565         (main): Add prototype.  Call return, not exit.
19566
19567 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
19568
19569         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
19570         when comparing types.
19571
19572 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
19573
19574         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
19575         (strength_reduce): Release the varrays from the no-bivs early exit.
19576
19577         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
19578         the loop over the registers.
19579
19580         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
19581         for a new obstack.
19582         (restore_tree_status): Check that instead when freeing the obstack.
19583
19584 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
19585
19586         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
19587         as pointers.
19588
19589 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19590
19591         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
19592         operand size modifiers.
19593
19594 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19595
19596         * c-common.c (c_common_nodes_and_builtins): Don't build
19597         va_list_type_node.
19598         * c-common.h (enum c_tree_index and related accesor macros): Remove
19599         everything now declared in tree.h.
19600         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
19601         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
19602         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
19603         (error_mark_node, void_type_node, char_type_node, integer_type_node,
19604         unsigned_type_node, ptr_type_node, va_list_type_node,
19605         integer_zero_node, null_pointer_node, integer_one_node): Delete.
19606         (init_decl_processing): Call build_common_tree_nodes and
19607         build_common_tree_nodes_2 instead of building their nodes here.
19608         Don't add roots for these nodes.
19609         * stor-layout.c (size_zero_node, size_one_node): Delete.
19610         (set_sizetype): Make a new node for bitsizetype each time.
19611         * tree.c (global_trees): New variable.
19612         (init_obstacks): Add a gc root for it.
19613         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
19614         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
19615         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
19616         (build_common_tree_nodes): New function.
19617         (fix_sizetype): New function.
19618         (build_common_tree_nodes_2): New function.
19619         * tree.h (enum tree_index): New.
19620         (global_trees): Declare.
19621         Add accessor macros for all nodes now moved to global_trees.
19622         Delete their declarations.
19623
19624 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
19625
19626         * c-decl.c (finish_function): When processing a nested function,
19627         push and pop GC context around rest_of_compilation.
19628
19629 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
19630
19631         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
19632         Default ix86_arch to PROCESSOR_I386.
19633         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
19634         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
19635         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
19636         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
19637         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
19638         (EXTRA_SPECS): Remove deleted specs.
19639
19640 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
19641
19642         * function.c (assign_stack_local_1): Allocate from
19643         function->x_frame_offset, not frame_offset.
19644
19645 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
19646
19647         * ggc.h (lang_cleanup_tree): Remove.
19648         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
19649         * ggc-callbacks.c (lang_cleanup_tree): Remove.
19650
19651         * c-decl.c (finish_struct): Use ggc_alloc to allocate
19652         TYPE_LANG_SPECIFIC when garbage collecting.
19653         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
19654         (lang_cleanup_tree): Remove.
19655
19656 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
19657
19658         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
19659         * crtstuff.c: Not here.
19660         * dwarf2out.c: Or here.
19661         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
19662         info.
19663
19664 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
19665
19666         * function.h (free_after_compilation): Remove decl parameter.
19667         (free_varasm_status0: Likewise.
19668         (free_emit_status): Likewise.
19669         (free_stmt_status): Likewise.
19670         (free_after_compilation): Likewise.
19671         (init_lang_status): New variable.
19672         (free_lang_status): Likewise.
19673         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
19674         * function.c (init_lang_status): New variable.
19675         (free_lang_status): Likewise.
19676         (push_function_context_to): Don't set function::decl here.
19677         (free_after_copmilation): Make decl parameter implicit.  Call
19678         free_lang_status if defined.
19679         (prepare_function_start): Call init_lang_status if defined.
19680         (init_function_start): Set function::decl here.
19681         * profile.c (output_func_start_profiler): Don't call pushdecl
19682         until we've actually started the function.
19683         * stmt.c (free_stmt_status): Make decl parameter implicit.
19684         * toplev.c (rest_of_compilation): Don't pass decl to
19685         free_after_compilation.
19686         * varasm.c (free_varasm_status): Likewise.
19687
19688 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19689
19690         * except.c (call_get_eh_context): Add root when allocating static
19691         tree variable.
19692
19693 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
19694
19695         * arm.c: Include "ggc.h".
19696         (arm_add_gc_roots): New function.
19697         (arm_override_options): Call it.
19698         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
19699
19700         * arm.md (define_asm_attributes): Add a pool_range attribute.
19701
19702 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
19703
19704         * extend.texi (Volatiles): New node.
19705
19706 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
19707
19708         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
19709         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
19710         (struct ggc_any): Replace `mark' with `magic_mark'.
19711         (ggc_alloc_string): Use memcpy, not bcopy.
19712         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
19713         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
19714         (ggc_free_any): New.
19715         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
19716         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
19717         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
19718         Use IS_MARKED. Use ggc_free_any.
19719
19720 1999-09-09  Scott Bambrough <scottb@netwinder.org>
19721
19722         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
19723
19724 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
19725
19726         * toplev.c (main): Always init_ggc.
19727
19728 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
19729
19730         * except.c (find_all_handler_type_matches): Free the list if
19731         we found no matches.
19732
19733         * combine.c (SUBST): Break out to a real function do_SUBST.
19734         (SUBST_INT): Likewise.
19735         * gcse.c (free_pre_mem): Free `temp_bitmap'.
19736         (pre_insert): Free `inserted'.
19737         * loop.c (basic_induction_var): Always set `location'.
19738
19739         * function.c (expand_function_end): Add initial_trampoline as a root.
19740         * rtl.h (init_varasm_once): Declare.
19741         * toplev.c (compile_file): Call it.
19742         * ggc-simple.c (ggc_mark_string_ptr): New.
19743         (ggc_add_string_root): New.
19744         (ggc_collect): Disable collection avoidance temporarily.
19745         * ggc.h (ggc_add_string_root): Declare.
19746         * except.c (create_rethrow_ref): Use ggc_alloc_string.
19747         * optabs.c (init_libfuncs): Likewise.
19748         * varasm.c (named_section): Use ggc_alloc_string.
19749         (make_function_rtl): Likewise.
19750         (make_decl_rtl): Likewise.
19751         (assemble_static_space): Likewise.
19752         (assemble_trampoline_template): Likewise.
19753         (output_constant_def): Likewise.
19754         (force_const_mem): Likewise.
19755         (mark_const_hash_entry): New.
19756         (mark_pool_sym_hash_table): New.
19757         (mark_varasm_state): Use it.
19758         (init_varasm_once): New.
19759
19760         * expr.h (init_one_libfunc): Declare.
19761         * optabs.c (init_one_libfunc): New.
19762         (init_optabs): Use it.
19763         * config/gofast.h: Likewise.
19764         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
19765         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
19766
19767 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
19768
19769         * Makefile.in (cppexp.o): Depend on cpphash.h.
19770         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
19771         Include cpphash.h.
19772         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
19773         * cpplib.c (do_define): Generalise to handle poisoned definitions,
19774         redefining poisoned identifiers, etc.
19775         (do_undef): Don't allow poisoned identifiers to be undefined.
19776         (do_pragma): Add #pragma poison.
19777         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
19778
19779         * cccp.c: Add T_POISON node type.
19780         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
19781         poisoned xxx.
19782         (do_define): Generalise to handle poisoned definitions,
19783         redefining poisoned identifiers, etc.
19784         (do_undef): Don't allow poisoned identifiers to be undefined.
19785         (do_pragma): Add #pragma poison.
19786         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
19787
19788         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
19789         * c-pragma.h: Add ps_poison state.  We now always have generic
19790         pragmas.
19791
19792 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
19793
19794         * ggc.h (ggc_alloc): New function.
19795         (ggc_mark): Likewise.
19796         * ggc-simple.c (ggc_any): New structure.
19797         (ggc_status): Add anys.
19798         (n_anys_collected): New variable.
19799         (ggc_alloc): Define.
19800         (ggc_mark): Likewise.
19801         (ggc_collect): Collect the anys.
19802
19803 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19804
19805         * c-decl.c (mark_binding_level): Make static to match prototype.
19806
19807 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
19808
19809         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
19810
19811 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
19812
19813         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
19814         will use into account.  Expand the max width to 5.
19815         * rtl.c: Likewise.
19816
19817 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
19818
19819         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
19820         for the rtx length.
19821
19822 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
19823
19824         * alpha.md (call value patterns): Remove the result predicates.
19825
19826 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
19827
19828         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
19829         last change.
19830
19831 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19832
19833         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
19834         changed from extern char *, to extern PTR.  Also fix typo in
19835         NEED_DECLARATION_REALLOC test.
19836
19837         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
19838
19839 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19840
19841         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
19842         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
19843         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
19844         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
19845
19846         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
19847
19848         * cccp.c (pcfinclude): Likewise.
19849
19850         * global.c (allocno_compare): Likewise.
19851
19852         * haifa-sched.c (rank_for_schedule): Likewise.
19853
19854         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
19855
19856         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
19857
19858         * stupid.c (stupid_reg_compare): Likewise.
19859
19860         * tree.c (_obstack_allocated_p): Likewise.
19861
19862         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
19863
19864 1999-09-08  Bruce Korb  autogen@linuxbox.com
19865
19866         * Makefile.in: Give the hapless gperf user a hint about
19867         why "gperf -F" fails.
19868
19869 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
19870
19871         * lists.c: Include ggc.h.
19872         (zap_lists): New.
19873         (init_EXPR_INSN_LIST_cache): Install it.
19874
19875         * ggc-simple.c (init_ggc): Absorb the old init.
19876         (ggc_push_context): Use xcalloc.
19877         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
19878         (ggc_collect): Add [rvts] tags to the collection stats.
19879
19880 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
19881
19882         * cccp.c (main): Fix handling of -include and -imacros options.
19883
19884 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
19885
19886         * cpplib.c (cpp_push_buffer): Fix order of arguments.
19887
19888 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
19889
19890         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
19891         genrtl.c.
19892
19893 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
19894
19895         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
19896         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
19897         and SET_DEST. Update comment.
19898
19899 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19900
19901         * config/c4x/c4x.c: Include ggc.h.
19902         (c4x_add_gc_roots): New function.
19903         (c4x_override_options): Call c4x_add_gc_roots.
19904
19905 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
19906
19907         * defaults.h (TARGET_ESC): Move ...
19908         * system.h: ... here, where Linas had it in the first place.  Silly me.
19909
19910 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
19911
19912         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
19913         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
19914         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
19915         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
19916         * defaults.h (TARGET_ESC): Add default.
19917
19918 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
19919
19920         * configure.in: add i370-*-openedition, i370-*-mvs and
19921         i370-*-linux targets
19922
19923 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
19924
19925         * dsp16xxx.c: Include ggc.h
19926         (override_options): Mark GC roots.
19927         * mn10200.c: Include ggc.h.
19928         (asm_file_start): Mark GC roots.
19929         * tahoe.c: Include ggc.h.
19930         (extensible_operand): Mark GC roots.
19931
19932 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
19933
19934         * README: Add section discussing status of ELF ABI.
19935         * i370.c: Fix misc spelling mistakes.
19936         (i370_label_scan): Updated notes, exception handling.
19937         (i370_function_prolog): Simplify ELF stack handling.
19938         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
19939         (STACK_GROWS_DOWNWARD): ELF stack grows down.
19940         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
19941         * i370.md: (movdi): Add notes.
19942         (floatsidf2): Use stack not rtca for scratch float area.
19943         (iorsi3): Correct operand constraints.
19944         * x-oe: Restore TAROUTOPTS which are used by pax.
19945
19946 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
19947
19948         * rs6000.c: Include ggc.h.
19949         (rs6000_add_gc_roots): New function.
19950         (override_options): Call it.
19951
19952 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
19953
19954         * alpha.h (alpha_compare): New.
19955         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
19956         * alpha.c: Likewise for the definitions.
19957         (alpha_emit_conditional_branch): Update for alpha_compare.
19958         (alpha_emit_conditional_move): Likewise.
19959         * alpha.md (cmpdf, cmpdi): Likewise.
19960         (setcc patterns): Likewise.  Zero alpha_compare after use.
19961         (sne): Optimize (x != 0) into (0U < x).
19962
19963 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
19964
19965         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
19966         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
19967         (INIT_EXPANDERS): Remove.
19968         * alpha.c: Include ggc.h.
19969         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
19970         (alpha_init_machine_status, alpha_mark_machine_status): New.
19971         (override_options): Install them.
19972         (struct machine_function): Moved to alpha.h.
19973         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
19974         (alpha_init_expanders): Remove.
19975         (alpha_return_addr): Adjust to use current_function->machine.
19976         (alpha_ra_ever_killed): Likewise.
19977         (alpha_expand_epilogue): Likewise.
19978         * alpha.md (eh_epilogue): Likewise.
19979
19980 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
19981                           Melissa O'Neill  <oneill@cs.sfu.ca>
19982                           Geoffrey Keating  <geoffk@cygnus.com>
19983
19984         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
19985         call-used registers (call-saved registers must still be contiguous
19986         and end with r31, of course).
19987
19988 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
19989
19990         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
19991         (self_promoting_type_p): Delete.
19992         (self_promoting_args_p): Move ...
19993         * c-common.c: ... here.
19994         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
19995         (simple_type_promotes_to): New.
19996         * builtins.c (lang_type_promotes_to): New.
19997         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
19998         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
19999         * c-common.h: ... here.
20000         (self_promoting_args_p, simple_type_promotes_to): Declare.
20001         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
20002         (grokdeclarator): Likewise.
20003         * tree.h (lang_type_promotes_to): Declare.
20004
20005 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
20006
20007         Add some machine-dependent GC roots.
20008         * sparc.c: Include ggc.h.
20009         (sparc_add_gc_roots): New function.
20010         (mark_ultrasparc_pipeline_state): Likewise.
20011         (override_options): Call sparc_add_gc_roots.
20012         * pa.c: Include ggc.h.
20013         (pa_add_gc_roots): New function.
20014         (mark_deferred_plabels): Likewise.
20015         (override_options): Call pa_add_gc_roots.
20016         * mips.c: Include ggc.h.
20017         (mips_add_gc_roots): New function.
20018         (override_options): Use it.
20019
20020 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20021
20022         * cpperror.c (cpp_file_line_for_message): Constify a char*.
20023
20024         * cppexp.c (parse_number, parse_charconst, cpp_lex,
20025         cpp_parse_expr): Add static prototypes.
20026         (parse_charconst): Don't cast away const-ness.
20027         (token): Constify a char*.
20028
20029         * cppfiles.c (file_name_list, include_hash, find_include_file,
20030         finclude, initialize_input_buffer): Constify a char*.
20031         (file_cleanup, find_position): Add static prototypes.
20032
20033         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
20034         collect_expansion): Add static prototypes.
20035         (cpp_install, create_definition, monthnames): Constify a char*.
20036
20037         * cpphash.h (cpp_install): Likewise.
20038
20039         * cppinit.c (known_suffixes, default_include,
20040         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
20041         (base_name, dump_special_to_buffer, initialize_dependency_output):
20042         Add static prototypes.
20043
20044         * cpplib.c (my_strerror): Constify a char*.
20045         (null_underflow, null_cleanup, skip_comment, copy_comment,
20046         copy_rest_of_line, handle_directive, pass_thru_directive,
20047         get_directive_token, read_line_number, cpp_print_file_and_line,
20048         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
20049         v_cpp_warning_with_line, detect_if_not_defined,
20050         consider_directive_while_skipping): Add static prototypes.
20051         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
20052         cpp_pedwarn_with_file_and_line): Constify a char*.
20053
20054         * cpplib.h (cpp_options, include_hash, progname, definition,
20055         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
20056         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
20057         find_include_file, deps_output, include_hash): Constify a char*.
20058
20059         * cppmain.c (progname): Constify.
20060         (main): Add prototype.  Use return, not exit.
20061
20062         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
20063         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
20064         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
20065         check_protection): Add static prototype.
20066         (xfree): Remove.
20067         (progname, recognized_macrom, recognized_extern): Constify a char*.
20068         (main): Add prototype.
20069
20070         * gen-protos.c (progname): Constify a char*.
20071
20072 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
20073
20074         * emit-rtl.c (free_emit_status): Take decl as a parameter.
20075         (init_emit_once): Add more GC roots.
20076         * except.c (mark_func_eh_entry): New function.
20077         (mark_eh_node): Mark false_label and rethrow_label.
20078         (init_eh): Add more GC roots.
20079         * function.c (free_after_compilation): Take decl as a paramter.
20080         Call free_stmt_status.
20081         (mark_function_state): Don't assume x_parm_reg_stack_loc is
20082         non-NULL.
20083         * function.h (free_after_compilation): Change prototype.
20084         (free_varasm_status): Likewise.
20085         (free_emit_status): Likewise.
20086         (free_stmt_status): New function.
20087         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
20088         Remove, replacing with ...
20089         (ggc_status): New structure.
20090         (ggc_chain): New variable.
20091         (init_gcc): Define.
20092         (ggc_push_context): New function.
20093         (ggc_pop_context): Likewise.
20094         (ggc_alloc_rtx): Adjust for use of ggc_chain.
20095         (ggc_alloc_rtvec): Likewise.
20096         (ggc_alloc_tree): Likewise.
20097         (ggc_alloc_string): Likewise.
20098         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
20099         (ggc_mark_tree): Give language-dependent code a chance to mark
20100         `x' nodes.
20101         (ggc_mark_tree_varray): Handle empty arrays.
20102         (ggc_collect): Adjust for use of ggc_chain.  Clear
20103         bytes_alloced_since_last_gc.
20104         * ggc.h (ggc_pop_context): New function.
20105         (ggc_push_context): Likewise.
20106         * print-tree.c (print_node): Don't print obstacks when GC'ing.
20107         * stmt.c (free_stmt_status): New function.
20108         (init_stmt_for_function): Clear last_expr_value.
20109         * toplev.c (rest_of_compilation): Always call free_after_compilation.
20110         Conditionalize call to ggc_collect.
20111         (main): Call init_ggc.
20112         * tree.c (push_obstacks): Do the push, even when GC'ing.
20113         (push_obstacks_nochange): Likewise.
20114         (pop_obstacks): Liekwise.
20115         * varasm.c (free_varasm_status): Take decl as a parameter.
20116
20117 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20118
20119         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
20120         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
20121         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
20122         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
20123
20124 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
20125
20126         * pa/x-pa-mpeix: New file for the MPE port.
20127
20128         * pa/quadlib.asm: New file for long double support.
20129
20130         * configure.in: Add hppa1.0-*-mpeix for MPE port.
20131         * configure: Rebuilt.
20132
20133 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
20134
20135         * final.c (shorten_branches): Fix last change.
20136
20137 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
20138
20139         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
20140
20141 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
20142
20143         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
20144         details.
20145
20146 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20147
20148         * c-aux-info.c (concat): Don't define.
20149
20150         * cccp.c (my_strerror): Likewise.  All callers changed to use
20151         xstrerror instead.
20152         (do_include): Call xstrdup, not xmalloc/strcpy.
20153         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
20154         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
20155
20156         * collect2.c (my_strsignal): Likewise.  All callers changed to use
20157         strsignal instead.
20158         (locatelib): Call xstrdup, not xmalloc/strcpy.
20159
20160         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
20161
20162         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
20163
20164         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
20165
20166         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
20167
20168         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
20169
20170         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
20171
20172         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
20173         malloc/realloc.
20174         (find_all_handler_type_matches): Likewise.  Don't check return
20175         value.
20176         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
20177         xmalloc, not malloc.
20178         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
20179
20180         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
20181         (init_spec): Call xcalloc, not xmalloc/bzero.
20182         (set_spec): Call xstrdup, not save_string.
20183         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
20184         (find_a_file): Call xstrdup, not xmalloc/strcpy.
20185         (process_command): Call xstrdup, not save_string.
20186         (main): Call xcalloc, not xmalloc/bzero.
20187
20188         * gcov.c (xmalloc): Don't define.
20189         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
20190         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
20191         (output_data): Call xcalloc, not xmalloc/bzero.
20192
20193         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
20194
20195         * mips-tdump.c (xmalloc): Don't define.
20196         (print_symbol): Call xmalloc, not malloc.
20197         (read_tfile): Call xcalloc, not calloc.
20198
20199         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
20200         Don't define.  All callers of xfree/my_strsignal changed to use
20201         free/strsignal instead.
20202         (allocate_cluster): Call xcalloc, not calloc.
20203
20204         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
20205         Fix memory leak, free allocated memory.
20206
20207         * prefix.c (translate_name): Call xstrdup, not save_string.
20208         (update_path): Likewise.
20209
20210         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
20211
20212         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
20213         Don't define.  Callers of xfree/savestring2 changed to use
20214         free/concat instead.
20215
20216         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
20217         (init_elim_table): Likewise.
20218
20219         * resource.c (init_resource_info): Likewise.
20220
20221         * stupid.c (stupid_life_analysis): Likewise.
20222
20223         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
20224         (open_dump_file): Call concat, not xmalloc/strcpy/...
20225         (clean_dump_file): Likewise.
20226         (compile_file): Call xstrdup, not xmalloc/strcpy.
20227
20228 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
20229
20230         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
20231         * v850.c (v850_va_arg): New.
20232
20233 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20234
20235         * haifa-sched.c: Tidy comments.
20236
20237 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20238
20239         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
20240         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
20241         $(out_object_file)): Depend on ggc.h.
20242         * c-common.c: Include "ggc.h".
20243         (combine_strings): If doing GC, use ggc_alloc_string.
20244         * c-decl.c: Include "ggc.h".
20245         (ggc_p): Define with value 0.
20246         (mark_binding_level): New function.
20247         (init_decl_processing): Add GC roots.
20248         (mark_c_function_context): New function.
20249         (lang_mark_false_label_stack): New function.
20250         (lang_mark_tree): New function.
20251         (lang_cleanup_tree): New function.
20252         * c-lang.c: Include "ggc.h".
20253         (lang_init): Call c_parse_init.
20254         * c-lex.c: Include "ggc.h".
20255         (check_linenum): If doing GC, don't copy filenames to permanent
20256         obstack.
20257         * c-parse.in: Include "ggc.h".
20258         (c_parse_init): New function.
20259         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
20260         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
20261
20262         * except.c (mark_eh_state): Mark more state.
20263         * function.c (mark_function_state): Likewise.
20264         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
20265         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
20266         * toplev.c (mark_file_stack): New function.
20267         (compile_file): If doing GC, use ggc_alloc_string on input filename.
20268         (main): Add root for input_file_stack.
20269
20270         * i386.c: Include "ggc.h".
20271         (ix86_mark_machine_status): New function.
20272         (override_options): Set mark_machine_status.
20273
20274 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20275
20276         * tree.c (copy_node): Copy node contents also if doing GC.
20277
20278 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
20279
20280         * collect2.c (scan_libraries): Fix double-thinko :-).
20281
20282 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
20283
20284         * collect2.c (scan_libraries): Fix thinko.
20285
20286         * cse.c (delete_trivially_dead_insns): Do not skip the last
20287         insn if it is a real insn.
20288
20289 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
20290
20291         * Makefile.in (ggc-simple.o): Depend on hash.h.
20292         * ggc.h (ggc_add_tree_hash_table_root): Declare.
20293         (ggc_mark_tree_varray): Likewise.
20294         (ggc_mark_tree_hash_table): Likewise.
20295         * ggc-simple.c: Include hash.h.
20296         (ggc_mark_tree_hash_table_ptr): New function.
20297         (ggc_mark_tree_hash_table_entry): Likewise.
20298         (ggc_mark_tree_hash_table): Likewise.
20299         (ggc_add_tree_hash_table_root): Likewise.
20300         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
20301         rtx, when defining fields.
20302
20303 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
20304
20305         * profile.c (output_func_start_profiler): Remove apparently
20306         nonsensical call to start_sequence.
20307
20308 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
20309
20310         * clipper/clipper.c (clipper_va_start): Fix typos.
20311
20312         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
20313         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
20314         (spur_va_arg): New stub.
20315
20316         * configure.in: Comment out pyramid.
20317
20318 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
20319
20320         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
20321         don't conflict with the bits that win32, cygwin, and dgux
20322         defines.
20323
20324 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
20325                           Bernd Schmidt <bernds@cygnus.co.uk>
20326
20327         * integrate.c (function_cannot_inline_p): Do not inline
20328         functions with forced labels.
20329
20330 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
20331                           Bernd Schmidt <bernds@cygnus.co.uk>
20332                           Mark Mitchell  <mark@codesourcery.com>
20333
20334         * Makefile.in (ggc-simple.o): Depend on varray.h.
20335         (rtl.o): Depend on ggc.h.
20336         (genattrtab.o): Depend on ggc.h.
20337         (print-tree.o): Likewise.
20338         (fold-const.o): Likewise.
20339         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
20340         (make_insn_raw): Don't cache insns when GC'ing.
20341         (emit_insn_before): Likewise.
20342         (emit_insn_after): Likewise.
20343         (emit_insn): Likewise.
20344         (start_sequence): Use xmalloc to allocate the sequence_stack.
20345         (end_sequence): Add free to free it.
20346         (gen_sequence): Don't cache insns when GC'ing.
20347         (clear_emit_caches): Don't use sequence_element_free_list.
20348         (init_emit): Use xcalloc, not xmalloc+bzero.
20349         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
20350         * function.c (pop_function_context_from): Use free to free the
20351         fixup_var_refs_queue.
20352         (put_reg_into_stack): Allocate it with xmalloc.
20353         * genattrtab.c: Include ggc.h.
20354         (operate_exp): Don't use obstack_free when GC'ing.
20355         (simplify_cond): Likewise.
20356         (simplify_text_exp): Likewise.
20357         (optimize_attrs): Likewise.
20358         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
20359         GC'ing.
20360         (gencode): Generate a #include for ggc.h.
20361         * ggc-callbacks.c (ggc_p): Define it to zero.
20362         * ggc-none.c (ggc_p): Likewise.
20363         * ggc-simple.c: Include varray.h.
20364         (ggc_mark_tree_varray): New function.
20365         (ggc_add_tree_varray_root): Likewise.
20366         (ggc_mark_tree_varray_ptr): Likewise.
20367         * ggc.h (ggc_p): Declare.
20368         (varray_head_tag): Likewise.
20369         (ggc_add_tree_varray_root): Declare.
20370         * print-tree.c (print_node): Don't check for TREE_PERMANENT
20371         inconsistencies when GC'ing.
20372         * rtl.c: Include ggc.h.
20373         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
20374         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
20375         (rtx_free): Don't call obstack_free when GC'ing.
20376         * toplev.c (rest_of_compilation): Call ggc_collect after every
20377         pass, if GC'ing.
20378         * tree.c (push_obstacks): Do nothing, if GC'ing.
20379         (pop_obstacks_nochange): Likewise.
20380         (pop_obstacks): Likewise.
20381         (make_node): Use ggc_alloc_tree when GC'ing.
20382         (copy_node): Likewise.
20383         (get_identifier): Use ggc_alloc_string when GC'ing.
20384         (build_string): Likewise.
20385         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
20386         (tree_cons): Likewise.
20387         (build1): Likewise.
20388         (type_hash_canon): Don't call obstack_free when GC'ing.
20389
20390 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
20391
20392         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
20393         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
20394
20395 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
20396                           Bernd Schmidt <bernds@cygnus.co.uk>
20397                           Mark Mitchell  <mark@codesourcery.com>
20398
20399         * Makefile.in (stor-layout.o): Depend on ggc.h.
20400         (expr.o): Depend on ggc.h.
20401         (profile.o): Depend on ggc.h.
20402         (stor-layout.o): Depend on ggc.h.
20403         * emit-rtl.c (init_emit_once): Add gc roots.
20404         * expr.c: Include ggc.h.
20405         (emit_block_move): Add gc roots.
20406         (clear_storage): Likewise.
20407         * expr.h (init_stor_layout_once): New function.
20408         * profile.c: Include ggc.h.
20409         (init_arc_profiler): profiler_label is a root.
20410         * scan.c (make_sstring_space): Trust xrealloc to function
20411         correctly with first parameter NULL.
20412         * stor-layout.c: Include ggc.h.
20413         (set_sizetype): Add gc root.
20414         (init_stor_layout_once): New function.
20415         * toplev.c (compile_file): Call it.
20416
20417 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
20418                           Bernd Schmidt <bernds@cygnus.co.uk>
20419                           Mark Mitchell  <mark@codesourcery.com>
20420
20421         * Makefile.in (tree.o): Depend on ggc.h.
20422         (varasm.o): Likewise.
20423         (function.o): Likewise.
20424         (stmt.o): Likewise.
20425         (except.o): Likewise.
20426         (optabs.o): Likewise.
20427         (emit-rtl.o): Likewise.
20428         * emit-rtl.c: Include ggc.h.
20429         (sequence_element_free_list): Remove, and all references.
20430         (mark_sequence): New functions.
20431         (mark_emit_state): New function.
20432         * except.c: Include ggc.h.
20433         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
20434         (mark_tree_label_node): New functions.
20435         (mark_eh_state): New function.
20436         * function.c: Include ggc.h.
20437         (mark_temp_slot, mark_function_chain): New functions.
20438         (mark_function_state): New function.
20439         (init_function_once): New function.
20440         * function.h (init_function_once): New function.
20441         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
20442         * ggc.h (label_node): Declare.
20443         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
20444         (lang_mark_false_label_stack): New function.
20445         (mark_temp_slot): Remove declaration.
20446         (mark_function_chain): Likewise.
20447         (mark_eh_state): Adjust prototype.
20448         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
20449         Likewise.
20450         * optabs.c: Include ggc.h.
20451         (mark_optab): New function.
20452         (init_optabs): Add gc roots.
20453         * stmt.c: Include ggc.h.
20454         (mark_cond_nesting, mark_loop_nesting): New functions.
20455         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
20456         (mark_stmt_state): New function.
20457         * toplev.c (compile_file): Call init_function_once.
20458         * tree.c: Include ggc.h.
20459         (type_hash): Move declaration earlier in file.
20460         (TYPE_HASH_SIZE, type_hash_table): Likewise.
20461         (init_obstacks): Add gc roots.
20462         (mark_type_hash): New function.
20463         * varasm.c: Include ggc.h.
20464         (mark_pool_constant): New function.
20465         (mark_varasm_state): New function.
20466
20467 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20468
20469         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
20470
20471 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
20472
20473         * c-decl.c (struct language_function): Renamed from struct c_function.
20474         Delete elt NEXT.
20475         (c_function_chain): Delete.
20476         (push_c_function_context): New arg F.  Don't warn about nested
20477         functions here.  Fill LANGUAGE elt of F.  Delete code to update
20478         c_function_chain.  Don't call push_function_context.
20479         (pop_c_function_context): New arg F.  Restore from there instead of
20480         from c_function_chain.  Don't call pop_function_context.  Clear out
20481         LANGUAGE field of F when done.
20482         * c-lang.c: Include "function.h"
20483         (lang_init): Initialize save_lang_status and restore_lang_status.
20484         * c-parse.in (nested_function, nested_function_notype): Warn about
20485         nested functions.  Call push_function_context/pop_function_context
20486         instead of the _c_ variants.
20487         * c-tree.h (push_c_function_context, pop_c_function_context): Update
20488         prototype.
20489         * Makefile.in (c-lang.o): Update dependencies.
20490
20491         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
20492         regno_pointer_flag, regno_pointer_align.
20493         (gen_reg_rtx): Use xrealloc to enlarge them.
20494         (free_emit_status): New function.
20495         * function.c (mark_machine_status, mark_lang_status): New variables.
20496         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
20497         in some bits from assign_stack_local.  All callers changed to use new
20498         name.
20499         (assign_stack_local): Just call assign_stack_local_1.
20500         (free_after_compilation): New function.
20501         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
20502         (trampoline_address): Likewise.
20503         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
20504         (prepare_function_start): Explicitly clear some more variables.
20505         * function.h (struct function): New elt can_garbage_collect.
20506         (mark_machine_status, mark_lang_status): Declare variables.
20507         (free_after_compilation, free_emit_status, free_varasm_status,
20508         init_varasm_status): Declare functions.
20509         * toplev.c (rest_of_compilation): Call free_after_compilation when
20510         done with the current function.
20511         * varasm.c (free_varasm_status): New function.
20512
20513 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
20514
20515         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
20516         (EXPAND_BUILTIN_VA_ARG): Define.
20517         * sparc.c (sparc_va_start): New.
20518         (sparc_va_arg): New.
20519
20520 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20521
20522         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
20523
20524 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20525
20526         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
20527
20528 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
20529
20530         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
20531         (OBJS): Add $(GGC).
20532         (ggc-callbacks.o): New target.
20533         * ggc-callbacks.c: New file.
20534
20535 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20536
20537         * expr.h: Collapse individual optab and libfunc vars to arrays.
20538         (optab_index, libfunc_index): New enumerations.
20539         (optab_table, libfunc_table): New arrays.
20540         Add accessor macros for both.
20541
20542         * optabs.c (optab_table, libfunc_table): New.
20543         Delete declarations for individual optab and libfunc vars.
20544
20545 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
20546
20547         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
20548
20549 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
20550
20551         * Makefile.in (GGC, GGC_LIB): New.
20552         (HOST_RTL): Include ggc-none.o.
20553         (ggc-simple.o): New target.
20554         (ggc-none.o): Likewise.
20555         * tree.h (tree_common): Add gc_mark.
20556         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
20557         (struct rtvec_def): Add gc_mark.
20558         * emit-rtl.c (global_rtl): Update static initializers to contain
20559         enough initializers.
20560         * ggc.h, ggc-none.c, ggc-simple.c: New files.
20561         * toplev.c (gc_time): New variable.
20562         (all_time): New variable.
20563         (compile_file): Print gc time.
20564         (print_time): Calculate percentage of the whole.
20565
20566 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20567
20568         Change obstack memory management and varasm constant pool handling so
20569         that nested functions are treated like any other functions.
20570         * function.c (init_machine_status): New variable.
20571         (push_function_context_to): Set contains_functions for the outer
20572         function.  Don't call save_varasm_status.
20573         (pop_function_context_from): Don't call restore_varasm_status.  Don't
20574         set current_function_contains_functions.
20575         (prepare_function_start): Call init_varasm_status rather than
20576         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
20577         is non-null.
20578         * function.h (struct function) Add field varasm.  Delete fields
20579         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
20580         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
20581         (init_machine_status): Declare.
20582         (save_varasm_status, restore_varasm_status): Delete declarations.
20583         (save_tree_status, restore_tree_status): Delete last argument.
20584         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
20585         code.  All callers changed.
20586         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
20587         save_constants_in_decl_trees, restore_constants, save_constants,
20588         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
20589         functions.
20590         (inlining): New variable.
20591         (reg_map, label_map, insn_map, orig_asm_operands_vector,
20592         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
20593         variables.
20594         (save_for_inline_nocopy): Don't save constants.
20595         Don't set inl_emit field in current_function.
20596         (expand_inline_function): Use emit field, not inl_emit, of the inlined
20597         function.  Set new variable inlining before
20598         calling copy_rtx_and_substitute.
20599         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
20600         constant pool references if inlining is nonzero.
20601         Delete ADDRESS and (most of the) CONST cases.
20602         (output_inline_function): Save and restore current_function/
20603         current_function_decl.  Delete restore_constants code.  Don't call
20604         init_const_rtx_hash_table.
20605         * output.h (init_const_rtx_hash_table): Don't declare.
20606         * rtl.h (struct function): Declare.
20607         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
20608         * toplev.c (rest_of_compilation): Don't treat nested functions or
20609         functions containing them specially.  Delete all code to deal with
20610         save_for_inline_copying.
20611         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
20612         inline_obstacks): Delete variables.
20613         (save_tree_status): Lose arg CONTEXT.  All callers changed.
20614         Simply allocate a new function_maybepermanent_obstack for the new
20615         function, delete all the special cases.
20616         Don't save inline_obstacks.
20617         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
20618         Delete special handling for function_maybepermanent_obstack; simply
20619         free it if empty.
20620         Don't restore inline_obstacks.
20621         (permanent_allocation):  Delete code that frees inline_obstacks.
20622         (print_inline_obstack_statistics): Delete function.
20623         (dump_tree_statistics): Don't call it.
20624         * varasm.c (struct varasm_status): New.
20625         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
20626         last_pool, pool_offset, const_double_chain): Delete global
20627         variables, replace with accessor macros.
20628         (immed_double_const): Don't walk const_double_chain outside a
20629         function, but don't treat nested functions specially anymore.
20630         (immed_real_const_1): Likewise.
20631         (clear_const_double_mem): Don't treat nested functions specially.
20632         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
20633         (save_varasm_status, restore_varasm_status): Delete functions.
20634         (init_varasm_status): New function.
20635         (force_const_mem): Don't treat nested functions specially.
20636         (find_pool_constant): Accept new arg F, search for constants in
20637         that function's pool rather than the current one.  All callers
20638         changed.
20639         (get_pool_constant_for_function, get_pool_mode_for_function): New
20640         functions.
20641
20642         * i386.c (init_386_machine_status): New function, mostly from
20643         clear_386_stack_locals.
20644         (struct machine_functions): Rename element names to avoid name
20645         clashes.
20646         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
20647         macros, replacing global variables.
20648         (clear_386_stack_locals, save_386_machine_status,
20649         restore_386_machine_status): Delete functions.
20650         (override_options): Initialize init_machine_status.
20651         * i386.h (INIT_EXPANDERS): Delete macro.
20652         (save_386_machine_status, restore_386_machine_status,
20653         clear_386_stack_locals): Delete declarations.
20654
20655 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20656
20657         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
20658         (doloop_begin):  Simplify pattern and use emit_jump_insn.
20659         (doloop_end): Simplify pattern, switch operand order,
20660         and use emit_jump_insn.
20661
20662 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
20663
20664         * function.h (struct function): Add new element LANGUAGE.
20665         (save_lang_status): Declare new variable.
20666         (restore_lang_status): Likewise.
20667         * function.c (save_lang_status): Define.
20668         (restore_lang_status): Likewise.
20669         (push_function_context_to): Call language-specific save function.
20670         (pop_function_context_from): Call language-specific restore function.
20671
20672 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
20673
20674         * i386.md (movsf_1): Check REG_P before use of REGNO.
20675         (movdf_1): Likewise.
20676         (movxf_1): Likewise.
20677         (extendsfdf2): Likewise.
20678         (extendsfxf2): Likewise.
20679         (extenddfxf2): Likewise.
20680
20681 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20682
20683         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
20684         constants into memory.
20685         (c4x_shiftable_constant): New function.
20686         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
20687         (c4x_shiftable_constant): Declare.
20688         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
20689         ashlqi3_noclobber): Add new patterns and associated splitters.
20690
20691 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
20692
20693         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
20694         * dwarf2out.c (dwarf2out_frame_init): Likewise.
20695         * final.c (shorten_branches): Likewise.
20696         * global.c (global_alloc): Likewise.
20697         * haifa-sched.c (build_control_flow): Likewise.
20698         * stmt.c (check_for_full_enumeration_handling): Likewise.
20699         (estimate_case_costs): Likewise.
20700
20701 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
20702
20703         * rtl.h (RTL_CHECKC2): Fix typo in last change.
20704
20705 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
20706
20707         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
20708         (recompute_reg_usage): Likewise.
20709         * rtlanal.c (find_regno_fusage): Likewise.
20710
20711         * rtl.c (rtl_check_failed_code1): New function.
20712         (rtl_check_failed_code2): New.
20713         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
20714         (RTL_CHECKC1, RTL_CHECKC2): New.
20715         (XC*): New accessor macros.
20716         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
20717         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
20718         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
20719         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
20720         (TRAP_*, RANGE_INFO_*): Likewise.
20721
20722 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20723
20724         * Makefile.in (tlink.o): Don't depend on toplev.h.
20725
20726         * collect2.c (c_file, o_file, export_file, import_file, ldout,
20727         output_file, nm_file_name, ldd_file_name, strip_file_name,
20728         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
20729         add_prefix, prefix_from_env, prefix_from_string, do_wait,
20730         fork_execute, maybe_unlink, add_to_list,
20731         extract_init_priority, write_list, dump_list,
20732         dump_prefix_list, write_list_with_asm, write_c_file,
20733         write_c_file_stat, write_c_file_glob, scan_prog_file,
20734         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
20735         ignore_library, extract_string, notice, dump_file, target_machine,
20736         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
20737         read_file, print_load_command): Constify a char*.
20738         (fdopen, error, fatal, fatal_perror): Don't prototype.
20739         (my_strerror): Remove.  All callers use xstrerror instead.
20740         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
20741         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
20742         to xcalloc/strcpy/strcat/...  to one call to concat.
20743         (main, scan_prog_file, scan_libraries): Use an intermediate
20744         `const char **' to build an argv array.
20745         (mapfile, libselect, libcompare, locatelib): Add prototypes.
20746
20747         * collect2.h (collect_execute, collect_wait, dump_file,
20748         file_exists): Constify a char*.
20749         (ldout, c_file_name, temporary_obstack, permanent_obstack,
20750         temporary_firstobj, vflag, debug): Add extern declarations.
20751         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
20752
20753         * tlink.c: Don't include toplev.h.
20754         (vflag, debug, ldout, c_file_name, temporary_obstack,
20755         permanent_obstack, temporary_firstobj): Don't declare.
20756         (tlink_execute, frob_extension, symbol_hash_lookup,
20757         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
20758         recompile_files, read_repo_files, demangle_new_symbols,
20759         scan_linker_output): Constify a char*.
20760         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
20761         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
20762
20763 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
20764
20765         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
20766         (relative) rather than jsr (absolute) subroutine call insns.
20767         * config/m68k/m68k-coff.h: Ditto.
20768
20769 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
20770
20771         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
20772         now rework these too.
20773         (arm_reorg): If an insn can't reach the end of the current pool,
20774         ensure that we emit that pool before the insn.
20775
20776 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
20777
20778         * tlink.c (scan_linker_output): Skip the initial underscore in
20779         a mangled name if appropriate.
20780
20781 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20782
20783         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
20784         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
20785         error_with_ivar, gen_declarator, create_builtin_decl,
20786         my_build_string, generate_descriptor_table, generate_ivars_list,
20787         generate_dispatch_table, check_protocols, TAG_GETCLASS,
20788         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
20789         dump_base_name, lang_decode_option, build_encode_expr,
20790         start_class, finish_class, encode_pointer, really_start_method,
20791         gen_declaration, dump_interface, handle_class_ref, handle_impent):
20792         Constify.
20793         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
20794         Add static prototypes.
20795         (build_objc_string_decl, build_selector_reference_decl,
20796         encode_bitfield, build_class_reference_decl): Remove unused
20797         parameter, all callers changed.
20798         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
20799         (objc_printable_name): Likewise.  Change second parameter to type int.
20800         (init_objc): Use memcpy, not bcopy, to avoid casts.
20801
20802 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
20803
20804         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
20805         reg notes on a deleted insn.
20806         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
20807
20808 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
20809
20810         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
20811
20812 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20813
20814         * stmt.c (expand_asm_operands): Fix index into inout_mode when
20815         reading it.
20816
20817 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
20818
20819         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
20820         * tm.texi (MD_ASM_CLOBBERS): Document it.
20821
20822 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
20823
20824         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
20825         * except.c (expand_rethrow): Remove unused variable.
20826         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
20827         * flow.c (replace_insns): Likewise.
20828         (create_edge_list, verify_edge_list): Likewise.
20829         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
20830
20831         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
20832         is special code to run.
20833         (main): Don't define operands to emit_operand.
20834         * genrecog.c (main): Don't emit an empty peephole2_insn function.
20835
20836         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
20837
20838         * alpha/alpha.h (normal_memory_operand): Declare.
20839         (reg_no_subreg_operand): Declare.
20840         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
20841
20842 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
20843
20844         * c-parse.in (compstmt_primary_start): New, broken out of first
20845         part of compstmt handling in primary.
20846         (primary): Use it.  Add an error clause.
20847         (compstmt_nostart): Renamed from compstmt; remove all
20848         initial invocations of compstmt_start.
20849         (compstmt): New.
20850
20851 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
20852
20853         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
20854         needed.
20855
20856 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
20857
20858         * combine.c (simplify_shift_const): Remove extra semicolon.
20859         * dwarf2out.c (remove_AT): Likewise.
20860         * expmed.c (expand_mult): Likewise.
20861         * gcov.c (create_program_flow_graph): Likewise.
20862         * reorg.c (mostly_true_jump): Likewise.
20863
20864 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
20865
20866         * fold-const.c (fold_range_test): Do not try to fold the range
20867         test if the rhs or lhs has side effects.
20868
20869         * combine.c (simplify_rtx): Recognize another case of a synthesized
20870         sign extension.
20871
20872         * varasm.c (mark_constant_pool): When marking indirect references,
20873         only look at SYMBOL_REFs.
20874
20875         * except.c (expand_fixup_region_end): Do not peek at
20876         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
20877
20878 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
20879
20880         * flags.h: New variables align_loops, align_loops_log,
20881         align_jumps, align_jumps_log, align_labels, align_labels_log,
20882         align_functions, align_functions_log.
20883         * toplev.c: Define them.
20884         (f_options): Handle -falign-* when they have no argument.
20885         (main): Add logic to set variables for -falign-functions,
20886         -falign-jumps, -falign-labels, -falign-loops.
20887         Make it -fsched-verbose=<n> and -finline-limit=<n>.
20888         (display_help): Change help to match options.
20889         * final.c (LABEL_ALIGN): Default to align_labels_log.
20890         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
20891         (LOOP_ALIGN): Default to align_loops_log.
20892         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
20893         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
20894         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
20895         * varasm.c (assemble_start_function): Handle align_functions.
20896
20897         * config/sparc/sparc.h: Don't declare sparc_align_*.
20898         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
20899         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
20900         sparc.c.
20901         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
20902         it's a promise.
20903         * config/sparc/sparc.c: Delete sparc_align_loops,
20904         sparc_align_jumps, sparc_align_funcs and the corresponding string
20905         variables.
20906         (sparc_override_options): Default align_functions on ultrasparc.
20907         Delete -malign-* handling.
20908
20909         * config/mips/mips.c (override_options):  On 64-bit targets,
20910         try to align code to 64-bit boundaries.
20911         (print_operand): New substitution, %~,
20912         which aligns labels to align_labels_log.
20913         * config/mips/mips.md (div_trap_normal): Use %~.
20914         (div_trap_mips16): Likewise.
20915         (abssi): Likewise.
20916         (absdi2): Likewise.
20917         (ffssi2): Likewise.
20918         (ffsdi2): Likewise.
20919         (ashldi3_internal): Likewise.
20920         (ashrdi3_internal): Likewise.
20921         (lshrdi3_internal): Likewise.
20922         (casesi_internal): Likewise.
20923
20924 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
20925
20926         Merge new ia32 backend from the branch!
20927
20928         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
20929         See ChangeLog.P2 on new_ia32_branch for details.
20930
20931         * rtl.h (stack_regs_mentioned_p): Delete prototype.
20932         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
20933         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
20934         * i386/gas.h (ASM_FILE_START): Define.
20935         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
20936         for name change of ix86_valid_decl_attribute_p.
20937         (i386_pe_valid_type_attribute_p): Similarly.
20938
20939 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
20940
20941         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
20942         to step through CC modes.
20943
20944 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20945
20946         * regmove.c (fixup_match_1): Don't move INSN in front of P if
20947         it would end up in the shadow of a live flags regsiter.
20948
20949 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20950
20951         * reload1.c: Fix many indentation problems.
20952         * reload.c: Likewise.
20953
20954 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
20955
20956         * alias.c (non_local_reference_p): Constify fmt.
20957
20958 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
20959
20960         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
20961
20962 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
20963
20964         * cse.c (delete_trivially_dead_insns): Do not delete stores to
20965         the internal_arg_pointer.
20966
20967 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
20968
20969         Merge peephole2 from new_ia32_branch:
20970         * Makefile.in (STAGESTUFF): Add *.peephole2.
20971         (mostlyclean): Likewise.
20972         (recog.o): Depend on resource.h.
20973
20974         * final.c (peephole): Conditionalize decl on HAVE_peephole.
20975         (final_scan_insn): Likewise for the invocation of peephole.
20976         * genconfig.c (main): Look for peephole and peephole2 patterns.
20977         Emit HAVE_peephole* accordingly.
20978         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
20979         * flags.h (flag_peephole2): Declare.
20980         * toplev.c: New pass peephole2.  New flag -fpeephole2.
20981
20982         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
20983         * gencodes.c (main): Likewise.
20984         * genextract.c (main): Likewise.
20985         * genoutput.c (main): Likewise.
20986         * genemit.c (max_operand_1): Look for the max scratch operand.
20987         (gen_rtx_scratch): New.
20988         (gen_exp): Use it, and pass on new arg subroutine_type.
20989         (gen_expand): Take max scratch into account.
20990         (gen_split): Emit peephole2 functions.
20991         (output_peephole2_scratch): New.
20992         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
20993         * genrecog.c (routine_type): Add PEEPHOLE2.
20994         (IS_SPLIT): New.
20995         (make_insn_sequence): Match outer parallel for peep2.  Discard
20996         top level scratches and dups.
20997         (add_to_sequence): New args insn_type and top.  Update all callers.
20998         Handle toplevel peep2 matching insns.
20999         (write_subroutine): Handle peep2.
21000         (write_tree_1): Likewise.
21001         (write_tree): Likewise.
21002         (main): Likewise.
21003         (change_state): New arg afterward.  Update all callers.
21004         Handle matching separate insns.
21005         * recog.c (recog_next_insn): New.
21006         (peephole2_optimize): New.
21007         * rtl.def (DEFINE_PEEPHOLE2): New.
21008         * resource.c (find_free_register): New argument last_insn.  Use it
21009         to find a register available through the entire span.
21010         * resource.h (find_free_register): Update prototype.
21011
21012 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
21013
21014         * i386.c (output_strlen_unroll): Don't write xops[7]
21015         label if it wasn't set.
21016
21017 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
21018
21019         * cpplib.c (struct directive): Const-ify name pointer and
21020         function pointer prototype.
21021         (validate_else, do_define, do_line, do_include, do_undef,
21022         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
21023         do_elif, do_endif, do_sccs, do_assert, do_unassert,
21024         do_warning): Const-ify second arg.
21025         (directive_table): Mark const.  Reorder entries by frequency
21026         of usage, record statistics.
21027
21028 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
21029
21030         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
21031         bounds- check RTL accesses if --enable-checking.
21032         (RTVEC_ELT): Bounds check if --enable-checking.
21033         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
21034         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
21035         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
21036         GET_NUM_ELEM.
21037         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
21038         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
21039
21040         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
21041         (NOTE_SOURCE_FILE): Use X0STR.
21042         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
21043         MEM_ALIAS_SET): Use X0INT.
21044         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
21045         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
21046         Use X0EXP.
21047         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
21048         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
21049         (rtl_check_failed_bounds, rtl_check_failed_type1,
21050         rtl_check_failed_type2, rtvec_check_failed_bounds): New
21051         functions.
21052         (fancy_abort): Fix comment.
21053
21054         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
21055         (cse_insn): Decrement LABEL_NUSES for jump target before
21056         deleting jump insn.
21057         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
21058         * final.c (alter_subreg): Compute regno before changing x to
21059         REG; set REGNO(x) after changing it.
21060         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
21061         notes containing CONST_INTs.
21062         (delete_eh_regions): Use NOTE_EH_HANDLER.
21063         * function.c (put_reg_into_stack): Make reg a MEM before
21064         initializing it.
21065         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
21066         delete insn.
21067         (gen_mem_addressof): Make reg a MEM before initializing it.
21068         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
21069         X0WINT.
21070         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
21071         deleting an insn, not after.
21072         (block_alloc): Only look at PATTERN(insn) if we have to, and
21073         only if it's format class 'i'.
21074         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
21075         CONST_INT before using its INTVAL.
21076         * print-rtl.c (print_rtx): Use X0STR.
21077         * regmove.c (fixup_match_1): Don't look at PATTERN of
21078         non-class-'i' insn chain elements.
21079         * reload.c (loc_mentioned_in_p): Take address of
21080         in->fld[1].rtx directly.
21081         * reload1.c (reload): Change reg to a MEM before initializing
21082         it.
21083         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
21084         have no names.
21085         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
21086
21087 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
21088
21089         * config/mips/mips.c (machine_dependent_reorg): Force a
21090         barrier to output the local constant pool if a barrier hasn't
21091         been found at a natural point in the instruction stream.
21092
21093 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21094
21095         * c-parse.in (language_string): Constify.
21096
21097         * dwarf2out.c (language_string): Remove declaration.
21098
21099         * dwarfout.c (language_string): Likewise.
21100
21101         * toplev.c (language_string, init_parse, finish_parse): Likewise.
21102
21103         * tree.h (language_string, init_parse, finish_parse): Declare.
21104
21105         * i386/sun386.h (language_string): Remove declaration.
21106
21107         * mips.h (language_string): Likewise.
21108
21109         * nextstep.h (language_string): Likewise.
21110
21111         * nextstep21.h (language_string): Likewise.
21112
21113         * rs6000.c (language_string): Likewise.
21114
21115 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21116
21117         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
21118         (getpwd.o): Remove target.
21119
21120         * getpwd.c: Delete file.  Its in libiberty now.
21121
21122         * dbxout.c (getpwd): Don't prototype.
21123         * dwarf2out.c (getpwd): Likewise
21124         * dwarfout.c (getpwd): Likewise
21125         * final.c (getpwd): Likewise.
21126         * protoize.c (getpwd): Likewise.
21127
21128 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21129
21130         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
21131
21132 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
21133
21134         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
21135         mark_set_resources.
21136
21137 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
21138
21139         * fixinc/Makefile.in (subdir): New.
21140         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
21141         (Makefile): New.
21142
21143 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
21144
21145         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
21146         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
21147         be shared.
21148
21149         * invoke.texi: Fix typo.
21150
21151         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
21152         changed.  Handle autoincrement addressing modes.
21153
21154         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
21155         just like we would the virtual incoming args register when
21156         integrating.
21157
21158 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
21159
21160         * rs6000.h (ASM_FILE_START): Specify complete filename, including
21161         path, in .file directive.
21162
21163 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
21164
21165         * gcc.texi (External Bugs): Remove obsolete note about Perl on
21166         SunOS.
21167
21168 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
21169
21170         * stdbool.h: Make the typedef name _Bool, with bool a #defined
21171         alias.
21172
21173 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21174
21175         * tree.c (tree_code_name): Constify a char*.
21176
21177         * tree.h (tree_code_name, decl_printable_name): Likewise.
21178
21179         * function.h (struct function): Likewise.
21180
21181         * toplev.c (decl_name, decl_printable_name): Likewise.
21182
21183         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
21184
21185         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
21186         (init_objc): Remove function pointer cast.
21187
21188 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
21189
21190         * pa.md (interspace_jump): New pattern.
21191         (builtin_longjmp): New expander.
21192
21193 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
21194
21195         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
21196         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
21197         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
21198
21199 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
21200
21201         * jump.c (delete_prior_computation): Also check calls
21202         to constant functions.  Don't bother checking for a
21203         REG_UNUSED note before adding it.
21204         (delete_computation): Handle multi-word hard registers
21205         when synthesizing missing REG_DEAD notes for a register
21206         which is both set and used by an insn.
21207
21208 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21209
21210         * loop.c (this_loop_info): New variable.
21211         (loop_has_call, loop_has_volatile, loop_has_tablejump,
21212         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
21213         All uses updated.
21214         (prescan_loop, strength_reduce): New argument loop_info.  All callers
21215         updated.
21216         (scan_loop): New variable loop_info, initialise to address of
21217         this_loop_info.
21218         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
21219         Delete variable loop_has_multiple_exit targets and replace with
21220         field in this_loop_info.
21221         (find_and_verify_loops): Rename this_loop to this_loop_num.
21222         (strength_reduce): Delete loop_iteration_info.  Replace variable
21223         loop_info with function argument of same name.
21224         (insert_bct): Rework test for loop being completely unrolled.
21225
21226         * loop.h (struct loop_info): New fields num, loops_enclosed,
21227         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
21228         has_indirect_jump, and cont.  Redefine use of unroll_number.
21229         (loop_unroll_number): Delete.
21230
21231         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
21232         field of loop_info.
21233         (loop_iterations): Delete variable vtop and instead use
21234         loop_info->vtop computed in prescan_loop.
21235
21236 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
21237
21238         * fix-header.c (main): Do not pass a null pointer to strcmp.
21239
21240 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
21241
21242         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
21243         filenames.
21244         * configure: Rebuilt.
21245
21246 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
21247
21248         * jump.c (jump_optimize_1): Do not delete assignments to
21249         internal_arg_pointer.
21250         * cse.c (delete_trivially_dead_insns): Always consider a set of
21251         the internal_arg_pointer live.
21252
21253 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
21254
21255         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
21256         (update_life_info) [REG_WAS_0]: Search the original insns rather
21257         than the new insns for the note.  Fix typos finding note_dest.
21258         If no dest found, discard the note rather than abort.
21259         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
21260         (replace_insns): Remove the old insn list after update_life_info
21261         not before.
21262
21263 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
21264
21265         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
21266         sched_analyze_insn.
21267         (sched_analyze_1): Let add_dependence care for not adding dups.
21268         (sched_analyze_2): Likewise.
21269         (add_branch_dependences): Likewise.
21270
21271 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21272
21273         * i386/winnt.c (export_list): New type.
21274         (exports_head): Rename to
21275         (export_head):  this.
21276         (i386_pe_record_exported_symbol): Add is_data flag.
21277         (i386_pe_asm_file_end): Emit directive for exported variables.
21278         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
21279         prototype.
21280         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
21281         (ASM_DECLARE_OBJECT_NAME): Likewise.
21282         (ASM_DECLARE_FUNCTION_NAME): Likewise.
21283         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
21284
21285 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
21286
21287         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
21288
21289         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
21290         operand.
21291
21292 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
21293
21294         * config/openbsd.h: Define SET_ASM_OP.
21295         * tm.texi: cross-reference SET_ASM_OP in the index.
21296
21297 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
21298
21299         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
21300         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
21301         and class_narrowest_mode at compile time.  Kill init_rtl.
21302         Mark rtx_length, mode_class, mode_size, mode_unit_size,
21303         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
21304         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
21305         EXTRA_CC_NAMES.
21306         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
21307         format.
21308         * rtl.h: Declare rtx_length and rtx_format as const.
21309         * machmode.def: Define CC().  Use CC() to define CCmode.  If
21310         EXTRA_CC_MODES is defined, expand it here.
21311         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
21312         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
21313         const.  Kill all references to EXTRA_CC_MODES.
21314
21315         * toplev.c: Don't prototype or call init_rtl.
21316         * optabs.c: Don't call init_mov_optab.
21317         * genemit.c: Don't generate init_mov_optab.  Don't call
21318         init_rtl.
21319         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
21320         here.
21321         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
21322         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
21323         genrecog.c: Don't call init_rtl.
21324
21325         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
21326         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
21327         definition of EXTRA_CC_MODES.
21328
21329         * md.texi: Kill ref to EXTRA_CC_NAMES.
21330         * tm.texi: Document new way to define EXTRA_CC_MODES.
21331
21332         * genrecog.c: Do not look up the name of a define_split.
21333         (Unrelated bugfix.)
21334
21335 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
21336
21337         * config/v850/v850.md: Fix typo introduced by previous delta.
21338
21339 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21340
21341         * gcc.c (fatal): Make definition static to match prototype.
21342
21343 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21344
21345         * combine.c (get_last_value): Don't look for earlier sets if the last
21346         known set is somewhere in between the insns being combined.
21347
21348 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
21349
21350         * configure.in: Don't use shell ! to negate exit codes
21351         * configure: Regenerate
21352
21353 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
21354
21355         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
21356         the fact that ALIGN is measured in bits, not bytes.
21357
21358 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
21359
21360         * errors.c: New file; defines functions error, warning, and
21361         fatal, variables have_error and progname.
21362         * errors.h: New file; prototypes and decls for stuff in errors.c.
21363
21364         * Makefile: Add rules to build errors.o and
21365         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
21366         genopinit, genrecog, genextract, genpeep, genattr, and
21367         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
21368         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
21369         genpeep.o, genattr.o, and genoutput.o.
21370
21371         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
21372         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
21373         define or prototype fatal.  Set progname at beginning of main.
21374         * genoutput.c:  Likewise, and don't define or prototype error
21375         either.
21376
21377         * c-typeck.c (c_expand_start_case): Return immediately if exp
21378         is an ERROR_MARK.
21379         * fold-const.c (operand_equal_p): Return immediately if arg1
21380         or arg0 are ERROR_MARKs.
21381         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
21382         fields of type ERROR_MARK when calculating if the record can
21383         go in a register.
21384
21385 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
21386         with much help from Jeffrey A Law and Richard Henderson
21387
21388         * i386.md: In the 6 insns which call output_fix_trunc,
21389         earlyclobber operands[0].
21390
21391 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
21392
21393         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
21394         creating new registers.
21395
21396 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
21397
21398         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
21399         i386_reg_alloc_order, i386_regparm_string,
21400         i386_align_loops_string, i386_align_jumps_string,
21401         i386_align_funcs_string, i386_preferred_stack_boundary_string,
21402         and i386_branch_cost_string as type "const char *".
21403         * i386.c: Define all above strings as type "const char *".
21404
21405 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
21406
21407         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
21408         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
21409
21410 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
21411
21412         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
21413         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
21414
21415 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
21416
21417         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
21418         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
21419         (dwarf2out_line, dwarf2out_finish): Likewise.
21420         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
21421
21422 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21423
21424         * tree.c (lang_unsave_expr_now) : Correct return type.
21425         * tree.h (lang_unsave_expr_now) : Same.
21426
21427 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
21428
21429         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
21430         instead of duplicating code.
21431
21432 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21433
21434         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
21435
21436 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
21437
21438         * tree.h: fancy_abort always takes three args.
21439         * resource.c: Move include of system.h before toplev.h.
21440
21441 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
21442
21443         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
21444         as SYMBOL_REFs.
21445
21446 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
21447
21448         * system.h: Don't redefine abort or trim_filename.
21449         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
21450         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
21451         whether or not __FUNCTION__ is available.
21452         * tree.h: Duplicate rtl.h's definition of abort, for files
21453         that don't include rtl.h.  Delete all code to perform type
21454         checking with a compiler other than GCC.
21455         * varray.h: Delete all code to perform type checking with a
21456         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
21457         its arguments exactly once, using a statement expression.
21458         Adjust the VARRAY_<type> accessor macros to match.
21459         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
21460         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
21461         caller's location.  Define fatal_insn and fatal_insn_not_found
21462         as macros that use _fatal_insn and _fatal_insn_not_found.
21463         (fancy_abort, trim_filename): Kill prototypes.
21464
21465         * rtl.c (trim_filename): Move here from toplev.c.
21466         (fancy_abort): New function.
21467         (DIR_SEPARATOR): Provide default definition.
21468         * tree.c (tree_check_failed, tree_class_check_failed): Go
21469         through fancy_abort.
21470         (tree_check, tree_class_check, cst_or_constructor_check,
21471         expr_check): Delete.
21472         * varray.c (varray_check_failed): New function.
21473         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
21474         _fatal_insn and _fatal_insn_not_found.  Go through
21475         fancy_abort.
21476         (trim_filename, fancy_abort): Delete.
21477
21478         * builtins.c (expand_builtin_args_info): Report ICE with abort.
21479         * except.c (start_catch_handler): Report ICE with error/abort
21480         combo.
21481         * final.c (output_operand_lossage): Likewise.
21482         * flow.c (verify_flow_info): Likewise.
21483
21484         * gcc.c: Prototype fatal.
21485         * gengenrtl.c: Undef abort after including rtl.h not system.h.
21486         * genattr.c, genattrtab.c, genemit.c, genextract.c,
21487         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
21488         Don't define fancy_abort.
21489
21490 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
21491
21492         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
21493         canonization.
21494
21495 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
21496
21497         * m88k.h (VERSION_INFO2): Kill.
21498         (VERSION_STRING): Kill.
21499         (TM_RCS_ID): Kill.
21500         (VERSION_INFO1): Tidy.
21501         (TARGET_VERSION): Update.
21502         * m88k/dgux.h (VERSION_INFO2): Kill.
21503         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
21504         * m88k/luna.h (VERSION_INFO1): Tidy.
21505         * m88k/sysv4.h (VERSION_INFO1): Likewise.
21506         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
21507         (output_file_start): Adjust for death of VERSION_STRING.
21508
21509 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
21510
21511         * cpplib.c (detect_if_not_defined): New function.
21512         (do_if): Use it to detect potential once-only headers.
21513
21514 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
21515
21516         * c-common.c (combine_strings): Always set TREE_CONSTANT.
21517
21518 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21519
21520         * combine.c (nonzero_bits) : Allow single-ly set registers to be
21521         anywere in the function only if they are pseudos and set before
21522         being used (not live at the start of the function).
21523         (num_sign_bit_copies) : Same.
21524         (get_last_value_validate) : Same.
21525         (get_last_value) : Same.
21526
21527 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
21528
21529         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
21530         where N and M are constant and N is an integer multiple of M.
21531
21532 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21533
21534         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
21535         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
21536         sbitmap_union_of_preds): Add prototypes.
21537         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
21538         the intersection of successors with the new flow graph structures.
21539         (sbitmap_intersection_of_preds): New function to compute the
21540         intersection of predecessors with the new flow graph structures.
21541         (sbitmap_union_of_succs): New function to compute the union of
21542         successors with the new flow graph structures.
21543         (sbitmap_union_of_preds): New function to compute the union of
21544         predecessors with the new flow graph structures.
21545         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
21546         (expr_reaches_here_p): Use edge and basic_block structures instead
21547         of s_preds and s_succs.
21548         (compute_cprop_avinout): Use new sbitmap routines.
21549         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
21550         of s_preds and s_succs.
21551         * flow.c (compute_flow_dominators): Compute dominators using
21552         edges and basic blocks instead of s_preds and s_succs.
21553
21554 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21555
21556         * lists.c (unused_insn_list, unused_expr_list): New file for
21557         maintaining various types of lists. New statics for maintaining a
21558         cache of available INSN_LIST and EXPR_LIST nodes.
21559         (free_list): Static function for freeing a list of INSN/EXPR nodes.
21560         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
21561         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
21562         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
21563         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
21564         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
21565         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
21566         (free_INSN_LIST_node): Free an individual INSN_LIST node.
21567         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
21568         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
21569         (remove_dependence, free_pending_lists): Use new global routines.
21570         (flush_pending_lists, sched_analyze_insn): Use new global routines.
21571         (sched_analyze, compute_block_backward_dependences): Use new routines.
21572         (sched_analyze_1, sched_analyze_2): Use new routines.
21573         (schedule_insns): Use new global routines.
21574         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
21575         prototypes.
21576         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
21577         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
21578         prototypes.
21579         * toplev.c (rest_of_compilation): Initialize node cache.
21580         * Makefile.in (OBJS): Add lists.o to list of object files.
21581         (lists.o): Add dependancies.
21582
21583 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
21584
21585         * config/v850/v850.md: Fix compile time warning messages.
21586         * config/v850/v850.c: Fix compile time warning messages.
21587         * config/v850/v850.h: Fix compile time warning messages.
21588
21589 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21590
21591         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
21592         Remove unused prototype for `init_lengths'.
21593
21594 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21595
21596         * calls.c (emit_call_1): Mark parameter `stack_size' with
21597         ATTRIBUTE_UNUSED.
21598         (expand_call): Initialize variable `insn'.
21599         (emit_library_call): Likewise for variable `high_to_save'.
21600         (emit_library_call_value): Likewise.
21601         (store_one_arg): Likewise for variables `lower_bound' and
21602         `upper_bound'.
21603
21604         * combine.c (try_combine): Likewise for variables `i2_code_number'
21605         and `other_code_number'.
21606         (find_split_point): Likewise for variables `pos', `unsignedp' and
21607         `inner'.
21608         (simplify_if_then_else): Likewise for variables `op' and `c1'.
21609         (simplify_and_const_int): Remove unused variable `width'.
21610         (merge_outer_ops): Likewise.
21611
21612         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
21613         HOST_WIDE_INT' when comparing against one.
21614         (simplify_relational_operation): Likewise.
21615         (cse_insn): Initialize variables `src_eqv_volatile',
21616         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
21617
21618         * final.c (init_final): Constify parameter `filename'.
21619         (final_start_function): Mark parameter `optimize' with
21620         ATTRIBUTE_UNUSED.
21621         (profile_function): Likewise for parameters `first' and `optimize'.
21622         (output_source_line): Likewise for parameter `file'.
21623
21624         * integrate.c (subst_constants): Cast a value to `size_t' when
21625         comparing against one.
21626         (mark_stores): Initialize variable `mode'.  Cast a value to
21627         `size_t' when comparing against one.
21628
21629         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
21630
21631         * loop.c (move_movables): Initialize variable `first'.
21632         (strength_reduce): Likewise for variable `increment'.
21633         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
21634         value to `size_t' when comparing against one.
21635         (load_mems): Initialize variable `end_label'.
21636
21637         * output.h (init_final): Constify parameter.
21638
21639         * reload.c (decompose): Initialize variable `base'.
21640
21641         * reload1.c (reload): Likewise for variable `is_scalar'.
21642         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
21643         (choose_reload_regs): Initialize variable `mode'.
21644         (emit_reload_insns): Likewise for variable `store_insn'.
21645         (reload_cse_noop_set_p): Mark parameter `insn' with
21646         ATTRIBUTE_UNUSED.
21647         (reload_combine): Initialize variable `set'.
21648
21649         * unroll.c (unroll_loop): Likewise for variable `local_label'.
21650         (copy_loop_body): Cast a value to `size_t' when comparing against
21651         one.
21652
21653         * varasm.c (assemble_variable): Initialize variable `size_tree'.
21654         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
21655         (remove_from_pending_weak_list): Mark parameter `name' with
21656         ATTRIBUTE_UNUSED.
21657
21658 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21659
21660         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
21661         gcse dump file.
21662
21663 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
21664
21665         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
21666         (ASM_DECLARE_FUNCTION_NAME): Define.
21667         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
21668         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
21669         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
21670         not already defined.
21671
21672 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21673
21674         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
21675         of n_popped when call/call_value are not defined.
21676
21677 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
21678
21679         * tm.texi: GNU CC -> GCC conversion.
21680         (CC1_SPEC): Indicate it is used for all language front ends.
21681
21682 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
21683
21684         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
21685         NOTE_INSN_EH_REGION_END correctly.
21686
21687 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
21688                           Jeff Law <law@cygnus.com>
21689
21690         * loop.c (strength_reduce): Automatically unroll loops if the
21691         unrolled loop size is smaller than the rolled loop size.
21692
21693         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
21694         and delete comment that code should be rewritten.
21695
21696 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
21697
21698         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
21699         as reachable.
21700
21701         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
21702
21703 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21704
21705         * fixinc/mkfixinc.sh: Don't fix uwin headers.
21706         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
21707         (LINK_SPEC): Add -u _main when building executables.
21708         (ASM_DECLARE_FUNCTION): Update from Cygwin.
21709         (ASM_FILE_END): Use the default for ix86-pe.
21710         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
21711
21712 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
21713
21714         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
21715         and ASM_CLOSE_PAREN are empty strings.
21716
21717 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
21718                           Geoffrey Keating <geoffk@cygnus.com>
21719
21720         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
21721         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
21722         (unprotoize.o): Ditto.
21723         (test-protoize-simple): Don't define STD_PROTO_DIR.
21724         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
21725         changes to make 'test-protoize-simple' pass.
21726         (STD_PROTO_DIR): Remove define.
21727         (STANDARD_EXEC_PREFIX): Supply default define.
21728         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
21729         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
21730         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
21731         (GET_ENV_PATH_LIST): New macro.
21732         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
21733         (do_processing): Initialize default_syscalls_dir using new
21734         macros.  Use it to initialize syscalls_absolute_filename.
21735
21736 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
21737
21738         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
21739         B into a register before emit_conditional_move.
21740
21741 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
21742
21743         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
21744         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
21745         multiplicand out of (+ (* a b) (* c d)).
21746
21747 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
21748                           Richard Henderson  <rth@cygnus.com>
21749
21750         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
21751         (new_insn_dead_notes): Likewise.
21752         (update_n_sets): Likewise.
21753         (update_flow_info): Move to flow.c, renamed to update_life_info;
21754         extend to handle multiple source insns.
21755         * flow.c: Include resource.h
21756         (unlink_insn_chain): New.
21757         (split_hard_reg_notes): New.
21758         (maybe_add_dead_note): New.
21759         (maybe_add_dead_note_use): New.
21760         (find_insn_with_note): New.
21761         (new_insn_dead_notes): New.
21762         (update_n_sets): New.
21763         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
21764         (maybe_remove_dead_notes): New.
21765         (update_life_info): New.
21766         (prepend_reg_notes): New.
21767         (replace_insns): New.
21768         * output.h (update_life_info): Declare.
21769         * recog.c (split_block_insns): Use update_life_info.
21770         * resource.c (find_free_register): Use reg_alloc_order, don't use
21771         fixed regs, make sure the mode is supported, don't use new regs.
21772         (reg_dead_p): New.
21773         * rtl.h (replace_insns): Declare.
21774
21775 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
21776
21777         * expr.c (expand_expr): Cope with COND_EXPRs with one
21778         non-returning branch.
21779
21780 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
21781
21782         * expr.c (store_expr): Always pass down the target, even when not
21783         doing CSE.
21784
21785 1999-08-24  Nick Clifton  <nickc@cygnus.com>
21786
21787         * configure.in: Define target_cpu_default for v850 targets.
21788         * configure: Regenerate
21789
21790         * config/v850/v850.h (TARGET_CPU_generic): Define.
21791         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
21792         addresses are 4 byte aligned.
21793
21794         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
21795         addresses.
21796
21797 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21798
21799         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
21800         (main): Add prototypes.
21801
21802         * genattrtab.c (substitute_address, write_const_num_delay_slots,
21803         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
21804         (write_attr_get): Emit prototypes along with function definition.
21805         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
21806         (write_complex_function): Emit static prototype along with
21807         function definition.
21808
21809         * genemit.c (gen_split): Emit prototypes along with function
21810         definition.
21811
21812         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
21813         Likewise for predicates and `insn_operand_predicate'.
21814         (process_template): Emit static prototype along with function
21815         definition.
21816
21817         * genrecog.c (make_insn_sequence): Constify a char*.  Add
21818         prototypes for get_split_*().
21819         (write_subroutine): Emit prototypes along with function
21820         definition.
21821
21822 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21823
21824         * gcse.c (find_avail_set): Follow chains of register-register copies.
21825         Use oprs_not_set_p to guarantee that the returned value can be
21826         substituted.
21827         (cprop_insn): Don't verify the return value of find_avail_set with
21828         oprs_not_set_p.
21829
21830         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
21831         (cprop_cc0_jump): New function.
21832         (cprop_insn): Break out new function cprop_jump and use it.
21833         Also use cprop_cc0_jump for machines with CC0.
21834         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
21835
21836         * tree.h (current_function_calls_setjmp,
21837         current_function_calls_longjmp): Delete declarations.
21838         * dsp16xx.c: Include "function.h".
21839         * elxsi.c: Likewise.
21840         * gmicro.c: Likewise.
21841         * h8300.c: Likewise.
21842         * i370.c: Likewise.
21843         * m32r.c: Likewise.
21844         * mn10200.c: Likewise.
21845         * mn10300.c: Likewise.
21846         * ns32k.c: Likewise.
21847         * spur.c: Likewise.
21848         * v850.c: Likewise.
21849
21850         * rtl.h (rtx_equal_function_value_matters): Declare.
21851         * toplev.c (rtx_equal_function_value_matters): Don't declare.
21852         * cse.c: Likewise.
21853         * function.c: Likewise.
21854         * emit-rtl.c: Likewise.
21855
21856 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
21857
21858         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
21859         call.
21860
21861 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
21862
21863         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
21864         exactly.
21865
21866 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
21867
21868         * cpp.texi: Add a node documenting macro varargs (copied
21869         from extend.texi).
21870
21871 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
21872
21873         * cppspec.c: Put a null pointer at the end of the new argv.
21874
21875 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
21876
21877         * configure.in: Remove code to select/de-select the haifa
21878         scheduler.  Every scheduled port gets haifa now.
21879         * configure: Rebuilt.
21880         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
21881         * sched.c Deleted.
21882         * Makefile.in: Corresponding changes.
21883
21884 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21885
21886         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
21887         All callers changed.
21888         (prepare_float_lib_cmp): Likewise.
21889         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
21890         * expr.h (emit_float_lib_cmp): Delete declaration.
21891         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
21892         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
21893         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
21894         specially.
21895         (cmptf): Now conditional on TARGET_HARD_QUAD.
21896
21897 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
21898
21899         * resource.c (mark_target_live_regs): Use
21900         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
21901
21902 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21903
21904         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
21905
21906         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
21907
21908         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
21909
21910 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21911
21912         * rtl.h (rtx_format): Constify a char*.
21913
21914         * rtl.c (rtx_format): Likewise.
21915         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
21916         (init_rtl): Use accessor macro, not `rtx_format'.
21917
21918         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
21919         char*.
21920
21921         * caller-save.c (mark_referenced_regs): Likewise.
21922
21923         * combine.c (subst, make_compound_operation, known_cond,
21924         gen_rtx_combine, update_table_tick, get_last_value_validate,
21925         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
21926
21927         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
21928         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
21929         count_reg_usage): Likewise.
21930
21931         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
21932         Likewise.
21933
21934         * final.c (leaf_renumber_regs_insn): Likewise.
21935
21936         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
21937         dump_edge_info, count_reg_references): Likewise.
21938
21939         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
21940         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
21941         Likewise.
21942
21943         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
21944         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
21945         add_label_notes): Likewise.
21946
21947         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
21948         clear_struct_flag, count_sub_rtxs, count_alternatives,
21949         compares_alternatives_p, contained_in_p, walk_attr_value,
21950         write_expr_attr_cache): Likewise.
21951
21952         * genconfig.c (walk_insn_part): Likewise.
21953
21954         * genemit.c (max_operand_1, gen_exp): Likewise.
21955
21956         * genextract.c (walk_rtx): Likewise.
21957
21958         * genflags.c (num_operands): Likewise.
21959
21960         * genoutput.c (scan_operands): Likewise.
21961
21962         * genpeep.c (match_rtx): Likewise.
21963
21964         * genrecog.c (add_to_sequence): Likewise.
21965
21966         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
21967         Likewise.
21968
21969         * integrate.c (save_constants, copy_for_inline,
21970         copy_rtx_and_substitute, subst_constants, restore_constants):
21971         Likewise.
21972
21973         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
21974         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
21975
21976         * local-alloc.c (contains_replace_regs, memref_referenced_p):
21977         Likewise.
21978
21979         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
21980         add_label_notes, replace_call_address, count_nonfixed_reads,
21981         invariant_p, find_single_use_in_loop, find_mem_givs,
21982         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
21983         Likewise.
21984
21985         * print-rtl.c (reg_names, print_rtx): Likewise.
21986
21987         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
21988
21989         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
21990         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
21991         print_blocks): Likewise.
21992
21993         * regclass.c (fix_register, record_address_regs,
21994         reg_scan_mark_refs): Likewise.
21995
21996         * regmove.c (stable_but_for_p): Likewise.
21997
21998         * reload.c (loc_mentioned_in_p, operands_match_p,
21999         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
22000         copy_replacements, refers_to_regno_for_reload_p,
22001         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
22002         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
22003         Likewise.
22004
22005         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
22006         delete_address_reloads_1, count_occurrences,
22007         reload_cse_mem_conflict_p, reload_combine_note_use,
22008         add_auto_inc_notes): Likewise.
22009
22010         * resource.c (mark_referenced_resources, mark_set_resources):
22011         Likewise.
22012
22013         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
22014         reg_mentioned_p, regs_set_between_p, modified_between_p,
22015         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
22016         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
22017         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
22018         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
22019
22020         * sched.c (sched_analyze_2, attach_deaths): Likewise.
22021
22022         * stupid.c (stupid_mark_refs): Likewise.
22023
22024         * unroll.c (remap_split_bivs): Likewise.
22025
22026         * varasm.c (mark_constants): Likewise.
22027
22028         * a29k/a29k.c (uses_local_reg_p): Likewise.
22029
22030         * alpha/alpha.c (summarize_insn): Likewise.
22031
22032         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
22033         eliminate_lr2ip): Likewise.
22034
22035         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
22036
22037         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
22038         reg_mentioned_in_mem): Likewise.
22039
22040         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
22041         symbolic_reference_mentioned_p): Likewise.
22042
22043         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
22044
22045         * sh/sh.c (regs_used, mark_use): Likewise.
22046
22047         * vax/vax.c (vax_rtx_cost): Likewise.
22048
22049 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22050
22051         * machmode.h (mode_name): Constify a char*.
22052
22053         * rtl.c (mode_name): Likewise.
22054
22055         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
22056
22057         * optabs.c (init_libfuncs): Constify a char*.
22058
22059         * print-tree.c (mode_name): Remove redundant declaration.
22060         (print_node): Use accessor macro, not `mode_name'.
22061
22062         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
22063         not `mode_name'.
22064         (new_spill_reg): Constify a char*.
22065
22066         * tree.c (mode_name): Remove redundant declaration.
22067
22068 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22069
22070         * rtl.c (rtx_name): Constify a char*.
22071
22072         * rtl.h (rtx_name, fix_sched_param): Likewise.
22073
22074         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
22075         (mypr): Use accessor macro, not `rtx_name'.
22076
22077         * genemit.c (print_code): Constify a char*.
22078
22079         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
22080
22081         * genpeep.c (print_code): Constify a char*.
22082
22083         * genrecog.c (print_code): Likewise.
22084
22085         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
22086         end_bb): Add static prototype.
22087         (draw_edge): Constify a char*.
22088         (end_bb): Remove unused parameter.
22089
22090         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
22091         print_block_visualization): Constify a char*.
22092
22093 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
22094
22095         * c-common.c (c_get_alias_set): Update comment.
22096
22097 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
22098
22099         * linux.h (LIB_SPEC): Added.
22100
22101 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22102
22103         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
22104
22105 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
22106
22107         * tree.c (expr_check): Fix typo in last change.
22108
22109 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
22110
22111         * rtl.def (NOTE): Change format to "iuu0n".
22112         (ADDR_DIFF_VEC): Change format to "eEee0".
22113         (ADDRESSOF): Change format to "eit".
22114
22115         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
22116         (RTVEC_ELT): Change to match.
22117         (XVECEXP): Use XVEC and RTVEC_ELT.
22118         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
22119         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
22120         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
22121         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
22122         TRAP_CONDITION, TRAP_CODE): Use XEXP.
22123         (INTVAL): Use XWINT.
22124         (ADDRESSOF_DECL): Use XTREE.
22125         (SET_ADDRESSOF_DECL): Delete.
22126         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
22127         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
22128         ifdefed out since 2.6 at least.
22129         (gen_rtvec_vv): Delete prototype.
22130
22131         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
22132         not rtunion.
22133         (copy_most_rtx): Handle 't' format letter.
22134         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
22135         (gen_rtvec_vv): Delete function.  All callers changed to use
22136         gen_rtvec_v instead.
22137         * print-rtl.c (print_rtx): Move special casing of NOTEs to
22138         the '0' format letter.
22139
22140         * function.c (gen_mem_addressof): Don't use
22141         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
22142         instead.
22143         * integrate.c (copy_rtx_and_substitute): Likewise.
22144         Copy 't' slots with XTREE.
22145         (subst_constants): Treat 't' slots like '[swi]' slots.
22146         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
22147         * jump.c (rtx_equal_for_thread_p): Likewise.
22148         * rtlanal.c (rtx_equal_p): Likewise.
22149         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
22150         only four arguments.
22151         * gengenrtl.c (type_from_format): Provide correct types for
22152         'b' and 't' slots.
22153
22154
22155         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
22156         If a recent gcc is in use (always in stage2 and beyond), use
22157         statement expressions, so we don't make a function call unless
22158         the check fails.  Evaluate arguments exactly once.
22159         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
22160         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
22161         Delete.
22162         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
22163         they evaluate their arguments exactly once, irrespective of
22164         the compiler in use.
22165
22166         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
22167         is used by the currently-enabled check macros.  This is:
22168         (tree_check_failed, tree_class_check_failed): For gcc.
22169         (tree_check, tree_class_check, cst_or_constructor_check,
22170         expr_check): For other compilers.
22171
22172         * gencheck.c: Do not define any *_CHECK1 macros.
22173
22174 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
22175                           Mark Mitchell <mark@codesourcery.com>
22176
22177         * c-common.c (c_get_alias_set): Fix support for poitners and
22178         references.
22179
22180 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
22181
22182         * alias.c: Include tree.h.
22183         (nonlocal_reference_p, mark_constant_function): New functions.
22184         * flow.c (life_analysis): Call mark_constant_function.
22185         * rtl.h (mark_constant_function): Declare it.
22186
22187 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
22188
22189         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
22190         unrecognisable switches.
22191
22192 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22193
22194         * loop.c (recombine_givs): Set ix field after sorting.
22195         (recombine_givs): Remove bogus index / giv lockstep looping.
22196
22197 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22198
22199         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
22200         on CODE.
22201         (emit_store_flag_force): Use do_compare_rtx_and_jump.
22202         (do_cmp_and_jump): Formatting fixes.
22203         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
22204         do_compare_rtx_and_jump instead of compare_from_rtx.
22205         (do_compare_rtx_and_jump): New function; mostly copied from
22206         compare_from_rtx.
22207         (do_jump_for_compare): Delete.
22208         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
22209         MIN_EXPR.
22210         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
22211         of compare/do_jump_for_compare pairs.
22212         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
22213         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
22214         compare_from_rtx/do_jump_for_compare pairs.
22215         (do_jump_by_parts_equality): Likewise.
22216         (do_jump_by_parts_equality_rtx): Likewise.
22217         * expr.h (do_compare_rtx_and_jump): Declare.
22218         * optabs.c (prepare_cmp_insn): New function, contains most of the code
22219         that used to be in emit_cmp_insn.
22220         (cmp_available_p): New function.
22221         (prepare_operand): New function.
22222         (emit_cmp_and_jump_insn_1): New function, contains some code that used
22223         to be in emit_cmp_insn.
22224         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
22225         parameters to be pointers; don't emit final compare but modify some of
22226         the values pointed to by the args so the caller can perform the
22227         correct comparison.
22228         (expand_binop): Call emit_store_flag_force with signed forms of
22229         comparison code.
22230         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
22231         emit_jump_insn pair.
22232         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
22233         emit_cmp_and_jump_insn_1.  Call emit_queue.
22234         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
22235         arg.
22236         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
22237         jump sets cc0 before deleting it.
22238         * integrate.c (expand_inline_function): Likewise.
22239         * unroll.c (unroll_loop): Similar changes in several places.
22240         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
22241         before deleting it.
22242
22243 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22244
22245         * Makefile.in (insn-recog.o): Update dependencies.
22246         * genrecog.c (main): Make generated file include "function.h".
22247
22248 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
22249
22250         * cse.c (cse_insn): Call never_reached_warning when a jump is
22251         changed to be unconditional.
22252         * flags.h: Declare warn_notreached.
22253         * flow.c (delete_block): Call never_reached_warning when
22254         a block is deleted.
22255         * jump.c (delete_barrier_successors): Call never_reached_warning
22256         when we delete everything after a BARRIER.
22257         (never_reached_warning): New function.
22258         * rtl.h: Declare never_reached_warning.
22259         * toplev.c (warn_notreached): New variable.
22260         (lang_independent_options): Set warn_notreached
22261         when -Wunreachable-code.
22262         (compile_file): We need line numbers for -Wunreachable-code.
22263
22264 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
22265
22266         * haifa-sched.c (insn_unit): Fix typo on out of range test.
22267         * sched.c (insn_unit): Likewise.
22268
22269 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
22270
22271         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
22272
22273 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22274
22275         * flow.c (create_edge_list): Use xmalloc, not malloc.
22276
22277 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
22278
22279         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
22280         C-style comments.  Do not lose the character before double slash.
22281
22282 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22283
22284         * basic-block.h (struct edge_list): Stucture to maintain a vector
22285         of edges.
22286         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
22287          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
22288         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
22289         New function prototypes.
22290         * flow.c (create_edge_list): Function to create an edge list.
22291         (free_edge_list): Discards memory used by an edge list.
22292         (print_edge_list): Debug output showing an edge list.
22293         (verify_edge_list): Internal consistency check for an edge list.
22294         (find_edge_index): Function to find an edge index for a pred and succ.
22295
22296 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
22297
22298         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
22299         hashtable.
22300
22301 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
22302
22303         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
22304
22305 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
22306
22307         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
22308
22309 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
22310
22311         * toplev.c (rest_of_compilation): Allow machine dependent
22312         reorganisation pass to place information into the RTL dump
22313         file if it so wishes.
22314
22315 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
22316
22317         * explow.c (hard_function_value): Use VOIDmode instead of
22318         MAX_MACHINE_MODE.
22319         * stmt.c (expand_return): Likewise.
22320         * stor-layout.c (get_best_mode): Likewise.
22321
22322         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
22323         emit call instead of emit_insn call.
22324
22325 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22326
22327         * configure.in: Handle --disable/enable-win32-registry.
22328         * install.texi: Document --disable/enable-win32-registry.
22329         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
22330         (WIN32_REGISTRY_KEY): New macro.
22331         * prefix.c: Use to enable/disable win32-specific code.
22332         (lookup_key): Use versioned key.
22333         * configure: Regenerate.
22334         * config.in: Likewise.
22335
22336 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
22337
22338         * cpplib.c (read_line_number): New fn, split out of...
22339         (do_line): Here.
22340
22341 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
22342
22343         tree.c (lang_unsave_expr_now) : New.
22344         (unsave_expr_now): Call lang_unsave_expr_now.
22345         tree.h (lang_unsave_expr_now) : New.
22346
22347 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
22348
22349         * toplev.c (flag_new_exceptions): On by default.
22350
22351 1999-08-13  Michael Meissner  <meissner@cygnus.com>
22352
22353         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
22354
22355 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
22356
22357         * dwarfout.c (fundamental_type_code): Return FT_boolean for
22358         INTEGER_TYPE with precision==1, it's __java_boolean.
22359
22360 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22361
22362         * global.c (prune_preferences): Move some invariants out of the
22363         inner loop.
22364
22365 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
22366
22367         * configure.in (alpha*-dec-osf*): Add osf5.
22368
22369 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
22370
22371         * configure.in: Rework handling of ARM GNU/Linux slightly.
22372         (arm*-*-linux-gnuoldld): New target.
22373         * configure: Regenerate.
22374         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
22375         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
22376         * config/arm/linux-oldld.h: New file.
22377         * config/arm/linux-elf26.h: Don't include linux-elf.h.
22378         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
22379         Don't define.
22380         * config/arm/linux-elf.h (ASM_SPEC): Define.
22381         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
22382         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
22383         for 26-bit APCS and old linker.
22384         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
22385         `arm_elf'.
22386         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
22387         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
22388         don't define `arm' or `arm_elf'.
22389         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
22390         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
22391
22392 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
22393
22394         * rtl.texi: Fix typo.
22395
22396 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
22397
22398         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
22399
22400 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
22401
22402         * extend.texi (C++ Signatures): Remove node.
22403         * invoke.texi: Remove discussion of -fhandle-signatures,
22404         signature, sigof, __signature__, and __sigof__.
22405
22406 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
22407
22408         * Makefile.in (JAVAGC): Removed.
22409
22410 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22411
22412         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
22413
22414 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
22415
22416         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
22417
22418 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
22419
22420         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
22421         a register that is already known to be a pointer.
22422
22423 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
22424
22425         * fixinc/inclhack.tpl: Only install assert.h conditionally.
22426         * fixinc/inclhack.sh: Regenerated.
22427         * fixinc/fixincl.sh: Regenerated.
22428
22429 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
22430
22431         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
22432         Fix documentation of -ansi flag to describe its C++ behavior.
22433         Remove bogus reference to GCC 2.9.
22434
22435 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
22436
22437         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
22438         note if it is non-NULL.
22439
22440 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22441
22442         * except.h (eh_nesting_info): Add new structure defintion.
22443         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
22444         (reachable_handlers, update_rethrow_references): Add function
22445         prototypes.
22446         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
22447         a rethrow symbol instead of an integer exception region number.
22448         * flow.c (Make_edges): Use new exception nesting routines to determine
22449         which handlers are reachable from a CALL or asynchronous insn.
22450         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
22451         goto receivers.
22452         (delete_eh_regions): Update rethrow labels, and don't delete
22453         regions which are the target of a rethrow.
22454         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
22455         avoid overloading the SYMBOL_REF_USED flag.
22456         (rethrow_symbol_map): Use new rethrow_ref field.
22457         (rethrow_used): Use new rethrow_ref field.
22458         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
22459         of an integer.  Fix formatting.
22460         (output_exception_table_entry): Use new rethrow_ref field.
22461         (can_throw): Check for EH_REGION_NOTE before deciding
22462         whether a CALL can throw or not.
22463         (scan_region): Call rethrow_used() instead of accessing data structure.
22464         (update_rethrow_references): New function to make sure only regions
22465         which are still targets of a rethrow are flagged as such.
22466         (process_nestinfo): New static function to initialize a handler
22467         list for a specific region.
22468         (init_eh_nesting_info): New function to allocate and initialize
22469         the list of all EH handlers reachable from all regions.
22470         (reachable_handlers): New function to retrieve the list of handlers
22471         reachable from a specific region and insn.
22472         (free_eh_nesting_info): New function to dispose of a list of
22473         reachable handlers.
22474
22475 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22476
22477         * flow.c (split_edge): Set JUMP_LABEL field.
22478         (commit_one_edge_insertion): Set head correctly for insert_before.
22479         When inserting insns, update insn block numbers if allocated.
22480
22481 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22482
22483         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
22484         retry_incomplete_types): Add static prototype.
22485         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
22486         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
22487         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
22488         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
22489         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
22490         Constify a char*.
22491
22492         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
22493         dwarf2out_start_source_file, dwarf2out_line): Likewise.
22494
22495 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22496
22497         * output.h (assemble_name): Constify a char*.
22498
22499         * varasm.c (UNIQUE_SECTION, assemble_start_function,
22500         assemble_variable, assemble_name): Likewise.
22501
22502         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
22503
22504         * arm/pe.c (arm_pe_unique_section): Likewise.
22505
22506         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
22507
22508         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
22509
22510         * i386/interix.c (i386_pe_unique_section): Likewise.
22511
22512         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
22513
22514         * i386/winnt.c (i386_pe_unique_section): Likewise.
22515
22516         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
22517
22518         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
22519
22520         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
22521
22522         * pa/pa.c (output_call): Likewise.
22523
22524         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
22525
22526         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
22527
22528         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
22529         Likewise.
22530
22531         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
22532         Likewise.
22533
22534         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
22535
22536         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
22537         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
22538
22539         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
22540
22541 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22542
22543         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
22544
22545 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22546
22547         * tree.h (lang_identify): Constify a char*.
22548         (print_error_function): Add extern prototype.  Constify a char*.
22549
22550         * c-lang.c (lang_identify): Constify a char*.
22551
22552         * objc/objc-act.c (lang_identify): Constify a char*.
22553
22554 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22555
22556         * genpeep.c (main): Make generated file include "function.h".
22557         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
22558
22559 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22560
22561         * Makefile.in: Update dependencies.
22562         * alias.c: Include "function.h"
22563         * c-decl.c: Likewise.
22564         * caller-save.c: Likewise.
22565         * calls.c: Likewise.
22566         * combine.c: Likewise.
22567         * cse.c: Likewise.
22568         * explow.c: Likewise.
22569         * final.c: Likewise.
22570         * global.c: Likewise.
22571         * graph.c: Likewise.
22572         * local-alloc.c: Likewise.
22573         * loop.c: Likewise.
22574         * optabs.c: Likewise.
22575         * profile.c: Likewise.
22576         * recog.c: Likewise.
22577         * regclass.c: Likewise.
22578         * regmove.c: Likewise.
22579         * reload.c: Likewise.
22580         * reorg.c: Likewise.
22581         * resource.c: Likewise.
22582         * sched.c: Likewise.
22583         * stupid.c: Likewise.
22584         * config/1750a/1750a.c: Likewise.
22585         * config/a29k/a29k.c: Likewise.
22586         * config/arc/arc.c: Likewise.
22587         * config/arm/arm.c: Likewise.
22588         * config/arm/thumb.c: Likewise.
22589         * config/c4x/c4x.c: Likewise.
22590         * config/clipper/clipper.c: Likewise.
22591         * config/convex/convex.c: Likewise.
22592         * config/fx80/fx80.c: Likewise.
22593         * config/i860/i860.c: Likewise.
22594         * config/m68k/m68k.c: Likewise.
22595         * config/m88k/m88k.c: Likewise.
22596         * config/mips/mips.c: Likewise.
22597         * config/pdp11/pdp11.c: Likewise.
22598         * config/pyr/pyr.c: Likewise.
22599         * config/romp/romp.c: Likewise.
22600         * config/sh/sh.c: Likewise.
22601         * config/tahoe/tahoe.c: Likewise.
22602         * config/vax/vax.c: Likewise.
22603         * config/we32k/we32k.c: Likewise.
22604         * config/sparc/sparc.c: Include "function.h".
22605         (mem_min_alignment): Test current_function rather than
22606         regno_pointer_align.
22607         * config/pa/pa.c: Likewise.
22608         (compute_frame_size): Delete declaration of
22609         current_function_outgoing_args_size.
22610         * config/arc/arc.h (current_function_varargs): Delete declaration.
22611         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
22612         declaration.
22613         * config/i370/i370.h (current_function_outgoing_args_size): Delete
22614         declaration.
22615         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
22616         current_function_uses_pic_offset_table.
22617         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
22618         of current_function_returns_pointer.
22619         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22620         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22621         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22622         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22623         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22624         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22625         * config/m88k/m88k.c: Include "function.h"
22626         (call_used_regs, current_function_pretend_args_size,
22627         current_function_outgoing_args_size, frame_pointer_needed): Delete
22628         declarations.
22629         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
22630         declaration.
22631         * config/mips/mips.h (current_function_calls_alloca): Delete
22632         declaration.
22633         * config/mn10200/mn10200.h (current_function_needs_context,
22634         rtx_equal_function_value_matters): Delete declarations.
22635         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
22636         flag_pic): Delete declarations.
22637         * config/pa/pa.h (current_function_pretend_args_size,
22638         current_function_decl): Delete declarations.
22639         * config/pa/som.h (current_function_varargs): Delete declaration.
22640         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
22641         declaration.
22642         * config/pyr/pyr.h (current_function_pretend_args_size,
22643         current_function_args_size, current_function_calls_alloca): Delete
22644         declarations.
22645         * config/sh/sh.h (current_function_varargs): Delete declaration.
22646         * config/sparc/sparc.h (current_function_outgoing_args_size,
22647         current_function_calls_alloca, current_function_decl): Delete
22648         declarations.
22649         * config/spur/spur.h (current_function_pretend_args_size,
22650         current_function_calls_alloca): Delete declarations.
22651         * config/v850/v850.c (current_function_outgoing_args_size): Delete
22652         declaration.
22653         * config/vax/vms.h (current_function_name): Delete declaration.
22654         * gcse.c: Include "function.h".
22655         (current_function_name, current_function_calls_setjmp): Delete
22656         declarations.
22657         * haifa-sched.c: Include "function.h".
22658         (forced_labels): Delete declaration.
22659         * jump.c: Likewise.
22660         * reg-stack.c: Likewise.
22661         * reload1.c: Likewise.
22662         * genemit.c (main): Make generated file include function.h.
22663         * genoutput.c (output_prologue): Likewise.
22664
22665         * builtins.c (saveregs_value, apply_args_value): Delete variables.
22666         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
22667         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
22668         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
22669         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
22670         macros for some of them.
22671         (emit_filename, emit_lineno): Delete declarations.
22672         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
22673         regno_pointer_* variables through current_function.
22674         (gen_inline_header_rtx): Delete function.
22675         (save_emit_status): Delete function.
22676         (set_new_last_label_num): New function.
22677         (clear_emit_caches): New function.
22678         (restore_emit_status): Just clear last_labelnum and call
22679         clear_emit_caches.
22680         (get_last_insn_anywhere): Variable sequence_stack is now accessed
22681         through macro seq_stack.
22682         (add_insn_after): Likewise.
22683         (add_insn_before): Likewise.
22684         (remove_insn): Likewise.
22685         (pop_topmost_sequence): Likewise.
22686         (in_sequence_p): Likewise.
22687         (start_sequence_for_rtl_expr): Likewise.
22688         (start_sequence): Likewise, and likewise for
22689         sequence_rtl_expr/seq_rtl_expr.
22690         (push_topmost_sequence): Likewise.
22691         (end_sequence): Likewise.
22692         (init_virtual_regs): Now takes a "struct emit_status *" argument.
22693         All callers changed.  Store into that pointer instead of globals.
22694         (init_emit): Allocate emit elt of current_function.
22695         Changes for sequence_rtl_expr/sequence_stack renaming.
22696         Call clear_emit_caches instead of doing it in-line.
22697         Access regno_pointer_* variables through current_function.
22698         (init_emit_once) Don't clear sequence_stack.
22699
22700         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
22701         Delete variables.
22702         (arg_pointer_save_area): Delete declaration.
22703         (finish_expr_for_function): Renamed from init_queue; no longer static.
22704         (init_expr): Don't call init_queue.
22705         (save_expr_status, restore_expr_status): Delete functions.
22706         (expand_expr): Changes to reflect new layout of struct function.
22707         Don't access current_function_check_memory_usage when current_function
22708         is 0.
22709         * expr.h (forced_labels, save_expr_regs, saveregs_value,
22710         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
22711         current_function_outgoing_args_size, current_function_arg_offset_rtx,
22712         current_function_uses_const_pool, function_call_count,
22713         current_function_uses_pic_offset_table, nonlocal_labels,
22714         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
22715         current_function_check_memory_usage, nonlocal_goto_handler_slots,
22716         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
22717         declarations.
22718         (finish_expr_for_function): Declare.
22719         * flags.h (current_function_has_nonlocal_label,
22720         current_function_has_nonlocal_goto, current_function_is_thunk,
22721         current_function_has_computed_jump): Delete declarations.
22722         * flow.c (forced_labels): Delete declaration.
22723         * function.c (current_function_pops_args,
22724         current_function_returns_struct, current_function_returns_pcc_struct,
22725         current_function_needs_context, current_function_calls_setjmp,
22726         current_function_calls_longjmp, current_function_has_nonlocal_label,
22727         current_function_has_nonlocal_goto, current_function_is_thunk,
22728         current_function_has_computed_jump, current_function_calls_alloca,
22729         current_function_contains_functions, current_function_returns_pointer,
22730         current_function_epilogue_delay_list, current_function_args_size,
22731         current_function_pretend_args_size, current_function_arg_offset_rtx,
22732         current_function_outgoing_args_size, current_function_varargs,
22733         current_function_stdarg, current_function_args_info, cleanup_label,
22734         current_function_name, current_function_uses_const_pool,
22735         current_function_instrument_entry_exit, current_function_return_rtx,
22736         current_function_uses_pic_offset_table, nonlocal_labels,
22737         current_function_internal_arg_pointer, current_function_cannot_inline,
22738         current_function_check_memory_usage, function_call_count,
22739         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
22740         nonlocal_goto_stack_level, return_label, save_expr_regs,
22741         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
22742         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
22743         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
22744         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
22745         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
22746         Delete variables.
22747         (push_function_context_to): Don't save them.  Don't call
22748         save_storage_status, save_emit_status or save_expr_status.
22749         (pop_function_context_from): Don't restore them.  Don't call
22750         restore_storage_status or restore_expr_status.
22751         (get_func_frame_size): New function.
22752         (get_frame_size): Use it.
22753         (assign_outer_stack_local): Reflect some member name changes in struct
22754         function.
22755         (put_reg_into_stack): Likewise.
22756         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
22757         seq_rtl_expr.
22758         (fixup_var_refs): Likewise.
22759         (fix_lexical_addr): Likewise.
22760         (trampoline_address): Likewise.
22761         (prepare_function_start): Clear field inlinable of current_function.
22762         (init_function_for_compilation): New function.
22763         (expand_dummy_function_end): New function.
22764         (expand_function_end): Call finish_expr_for_function.
22765         * function.h (struct emit_status): New; fields moved here from struct
22766         function and from global variables.  Add accessor macros for some of
22767         the fields.
22768         (struct expr_status): Likewise.
22769         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
22770         (struct function): Add fields expr and emit, inlinable, inl_emit,
22771         original_arg_vector, original_decl_initial, inl_last_parm_insn,
22772         inl_max_label_num.  Add many comments.
22773         Add accessor macros for all elts of struct function that no longer
22774         have a global variable.
22775         (cleanup_label, return_label, frame_offset, tail_recursion_label,
22776         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
22777         stack_slot_list): Delete declarations.
22778         (get_func_frame_size): Declare.
22779         (save_expr_status, restore_expr_status, save_emit_status,
22780         save_storage_status, restore_storage_status): Delete declarations.
22781         (init_virtual_regs): Declare.
22782         * output.h (current_function_pops_args,
22783         current_function_returns_struct, current_function_returns_pcc_struct,
22784         current_function_needs_context, current_function_calls_setjmp,
22785         current_function_calls_longjmp, current_function_calls_alloca,
22786         current_function_has_nonlocal_label, current_function_varargs,
22787         current_function_has_computed_jump, current_function_returns_pointer,
22788         current_function_contains_functions, current_function_args_size,
22789         current_function_pretend_args_size, current_function_stdarg,
22790         current_function_outgoing_args_size, current_function_args_info,
22791         current_function_name, current_function_return_rtx,
22792         current_function_epilogue_delay_list,
22793         current_function_uses_const_pool, current_function_cannot_inline):
22794         Delete declarations.
22795         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
22796         regno_reg_rtx): Delete declaration.
22797         (REGNO_POINTER_FLAG): Delete macro.
22798         * stmt.c (expand_goto): Changes to reflect that some fields in struct
22799         function were renamed.
22800         * stor-layout.c (save_storage_status, restore_storage_status): Delete
22801         functions.
22802         * toplev.c: Include "function.h".
22803         (current_function_decl): Delete declaration.
22804         (compile_file): Call init_dummy_function_start and
22805         expand_dummy_function_end around some initializations that need to
22806         emit rtl.
22807         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
22808         Call init_function_for_compilation.
22809         * unroll.c: Include "function.h"
22810         (unroll_loop): Access regno_pointer_* variables through
22811         current_function.
22812
22813         * tree.h (struct tree_decl): Add elt f to saved_insns member.
22814         (DECL_SAVED_INSNS): use it.
22815         (expand_dummy_function_end): Declare.
22816         (init_function_for_compilation): Declare.
22817         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
22818         that it's no longer an INLINE_HEADER.
22819         (expand_call): Likewise.
22820         * integrate.c (finish_inline): Delete function.
22821         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
22822         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
22823         args.  Don't generate an INLINE_HEADER rtx, just return the arg
22824         vector.  All callers changed.
22825         (save_for_inline_copying):  Create a duplicate struct emit_status to
22826         hold the emit state for compiling the current function.  Use this and
22827         the other new fields in struct function that are for integration
22828         instead of an INLINE_HEADER.
22829         Use memcpy instead of bcopy.
22830         Store the current struct function in DECL_SAVED_INSNS of fndecl.
22831         (save_for_inline_nocopy): Similar changes, except no new emit_status
22832         is needed here.
22833         (expand_inline_function): Get information from function structure,
22834         not from an inline header rtx.
22835         (output_inline_function): Lose code to extract the necessary
22836         information from an inline header; simply put back the function
22837         structure into current_function.  Clear its inlinable elt.
22838         * rtl.def (INLINE_HEADER): Delete.
22839         * rtl.h: Delete all accessors for an INLINE_HEADER.
22840         (gen_inline_header_rtx): Delete declaration.
22841         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
22842         Delete declarations.
22843         (REGNO_POINTER_ALIGN): Delete.
22844         (clear_emit_caches): Declare.
22845         (set_new_last_label_num): Declare.
22846
22847 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
22848
22849         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
22850
22851         * except.c (expand_eh_region_start_for_decl): Always start a new block.
22852         * stmt.c (is_eh_region): Make sure current_function is present, too.
22853
22854 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
22855
22856         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
22857         for 64bit PA targets.
22858
22859         * pa.h (SELECT_SECTION): Define.
22860         * som.h (SELECT_SECTION): Delete.
22861
22862 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22863
22864         * alias.c (init_alias_analysis): Wrap call to
22865         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
22866
22867 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
22868
22869         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
22870         <sys/asm.h> contains an asm comment with an apostrophe
22871         * fixinc/inclhack.sh:  regen
22872         * fixinc/fixincl.x:  regen
22873
22874 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
22875
22876         * function.c (init_function_start): Clear prologue & epilogue.
22877         (prologue_epilogue_contains): New function.
22878         * alias.c (init_alias_analysis): Use it.
22879         * rtl.h (prologue_epilogue_contains): Declare it.
22880
22881 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
22882
22883         * jump.c (onlyjump_p): New function.
22884         * rtl.h: Declare it.
22885         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
22886         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
22887
22888 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
22889
22890         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
22891         to invert loops.  Simplify block scanning.
22892
22893 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
22894
22895         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
22896         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
22897
22898 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
22899
22900         * config/sparc/liteelf.h: New file to support sparclite-elf target
22901         * config/sparc/t-sp86x: New file to support sparc86x targets
22902         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
22903         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
22904         * configure.in: Support above target triplets
22905         * configure: Regenerated
22906
22907 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
22908
22909         * fixinc/server.c (server_setup): Do not prefix function used as
22910         parameter with `&'.
22911
22912 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
22913
22914         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
22915         Remove fp reg alternatives.
22916
22917 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
22918
22919         * Makefiin (TAROUTOPTS): Kill.
22920         (install-headers-tar): Use "xpf" for tar headerfile extraction
22921         * i370/x-oe (TAROUTOPTS): Delete.
22922         * m68k/x-apollo68 (TAROUTOPTS): Delete.
22923         * m68k/x-hp320 (TAROUTOPTS): Delete.
22924         * m68k/x-hp320g (TAROUTOPTS): Delete.
22925         * gcc.texi: Update bug reporting text.
22926
22927 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
22928
22929         * reg-stack.c (change_stack) Fixed problem with negative array index.
22930
22931 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
22932
22933         * extend.texi, install.texi: Fix spelling mistakes.
22934
22935         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
22936         (s-attrtab); No longer try to use pre-made insn-attrtab file.
22937         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
22938         PREMADE_ATTRTAB_MD.
22939         * mips/t-ecoff: Likewise.
22940         * mips/t-elf: Likewise.
22941         * mips/t-mips: Likewise.
22942         * mips/t-osfrose: Likewise.
22943         * mips/t-r3900: Likewise.
22944         * mips/t-svr3: Likewise.
22945         * mips/t-svr4: Likewise.
22946         * mips/t-ultrix: Likewise.
22947
22948         * gcc.texi: Document recommend means to provide software floating
22949         point libraries in libgcc.a
22950
22951 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
22952
22953         * c-lex.c (yylex): We can have a number with no digits.
22954
22955 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
22956
22957         * jump.c (delete_prior_computation): New function, broken
22958         out of delete_computation.  Check for side effects with
22959         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
22960         multi-word hard registers.
22961         (delete_computation): Use it.  Check for side effects with
22962         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
22963         missing REG_DEAD note for a register which is both set and
22964         used by an insn.
22965
22966 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
22967
22968         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
22969         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
22970         (ASM_FILE_START): Import _mcount with the right type.
22971         (ASM_DECLARE_FUNCTION_NAME): Define.
22972         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
22973         * pa.c (output_function_prologue): Always emit the function's label
22974         here.
22975         * pa.h (TEXT_SPACE_P): Define.
22976         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
22977         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
22978         * som.h (TEXT_SPACE_P): Delete.
22979         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
22980         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
22981
22982 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
22983
22984         * expr.c (emit_group_load): Allow src to be a CONCAT.
22985
22986 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22987
22988         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
22989         (___mulsi3): Use '!' comment character.
22990
22991 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22992
22993         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
22994
22995 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
22996
22997         * gcc.c: Update URLs and mail addresses.
22998         * gcc.texi: Likewise.
22999
23000 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
23001
23002         * rs6000.c (current_file_function_operand): Return zero for
23003         weak functions.
23004         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
23005         weak symbols.
23006         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
23007         for weak symbols.
23008
23009 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
23010
23011         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
23012         allocate space in the stack frame for the PIC register.
23013
23014 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
23015
23016         * m68k.md (xordi3, anddi3): These patterns are not available on
23017         the coldfire.
23018
23019 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
23020
23021         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
23022         (PUT_REAL): Likewise.
23023
23024 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23025
23026         * final.c (shorten_branches): Don't add an alignment for loops
23027         that have no label inside.
23028
23029 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23030
23031         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
23032         prototypes in macro HAVE_cmpstrsi.
23033
23034         * cpplib.c (cpp_get_token): Remove unused label `op3'.
23035
23036         * emit-rtl.c (operand_subword): Remove unused variable
23037         `bits_per_word'.
23038
23039         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
23040
23041         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
23042
23043 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
23044
23045         * cpphash.c (macroexpand): Delete leading whitespace when arg
23046         is concatenated before.
23047         (unsafe_chars): Correct test for whether + and - can extend a
23048         token.
23049
23050         * cppinit.c (cpp_start_read): Do dependencies for
23051         -include/-imacros files also.
23052
23053         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
23054         tokenizing non-directive lines.
23055         (cpp_expand_to_buffer): Temporarily disable no-output mode.
23056         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
23057         the input file.
23058
23059 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
23060
23061         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
23062
23063         * c-lex.c: Sync with C++ frontend.
23064         (linemode): New variable.
23065         (parse_float): imag, conversion_errno, and type are output only.
23066         (yylex): Adjust.  Move initial '.' case into main switch.
23067         Use linemode.
23068         (handle_generic_pragma): Just deal with tokens.
23069         (readescape): Use ISXDIGIT and ISGRAPH.
23070         * c-parse.in: Add END_OF_LINE token.
23071
23072         * c-lex.c (lang_init): Generalize.
23073         (nextchar): Remove.  Replace uses with UNGETC.
23074         (skip_white_space): Handle linemode here.  Optimize for cpplib.
23075         (skip_white_space_on_line): Remove.
23076         (extend_token_buffer_to): New fn.
23077         (extend_token_buffer): Use it.
23078         (read_line_number, check_newline): Just deal with tokens.
23079         (token_getch, token_put_back): New fns.
23080         (yylex): Use them.  More cpplib optimizations.  Simplify.
23081
23082 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
23083                           Jason Merrill  <jason@yorick.cygnus.com>
23084
23085         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
23086         (consume_string): Make this smart about USE_CPPLIB.
23087         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
23088         (yylex): Rewrite to be intelligent about USE_CPPLIB.
23089         Also, clean up cases where we redundantly set token_buffer[0].
23090         (read_line_number): New fn.
23091         (ignore_escape_flag): New variable.
23092
23093 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
23094
23095         * a29k/t-a29kbare: Fix some comments.
23096         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
23097         (FPBIT, DPBIT): Define.
23098         * a29k/t-vx29k: Likewise.
23099         * arc/t-arc: Likewise.
23100         * arm/t-arm-elf: Likewise.
23101         * arm/t-bare: Likewise.
23102         * arm/t-pe: Likewise.
23103         * arm/t-pe-thumb: Likewise.
23104         * arm/t-semi: Likewise.
23105         * arm/t-thumb: Likewise.
23106         * arm/t-thumb-elf: Likewise.
23107         * arm/t-thumb-linux: Likewise.
23108         * h8300/t-h8300: Likewise.
23109         * i960/t-i960: Likewise.
23110         * i960/t-vxworks960: Likewise.
23111         * m32r/t-m32r: Likewise.
23112         * mips/t-ecoff: Likewise.
23113         * mips/t-elf: Likewise.
23114         * mips/t-r3900: Likewise.
23115         * pa/t-pro: Likewise.
23116         * rs6000/t-aix43: Likewise.
23117         * rs6000/t-beos: Likewise.
23118         * rs6000/t-newas: Likewise.
23119         * rs6000/t-ppccomm: Likewise.
23120         * rs6000/t-rs6000: Likewise.
23121         * rs6000/t-winnt: Likewise.
23122         * rs6000/t-xnewas: Likewise.
23123         * rs6000/t-xrs6000: Likewise.
23124         * sh/t-sh: Likewise.
23125         * sparc/t-elf: Likewise.
23126         * sparc/t-sparcbare: Likewise.
23127         * sparc/t-sparclite: Likewise.
23128         * sparc/t-splet: Likewise.
23129         * v850/t-v850: Likewise.
23130         * mn10200/t-mn10200: Fix comments.
23131         * mn10300/t-mn10300: Likewise.
23132
23133         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
23134         dummy operand.  Allocate a new pseudo for the dummy operand.
23135         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
23136
23137         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
23138
23139 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
23140
23141         * configure: Rebuilt.
23142         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
23143
23144 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
23145
23146         * recog.c (preproces_constraints): Zero recog_op_alt before
23147         processing the constraints.
23148
23149         * arm.c (typedef minipool_node): Renamed from pool_node.
23150         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
23151         (add_minipool_constant): New function.
23152         (dump_minipool): New function.
23153         (find_barrier): Remove special case for getting the insn size of
23154         an insn that references the constant pool.
23155         (minipool_fixup): New structure.
23156         (push_minipool_barrier): New function.
23157         (push_minipool_fix): New function.
23158         (note_invalid_constants): New function.
23159         (add_pool_constant, dump_table, fixit, broken_move): Delete.
23160         (arm_reorg): Rewrite code to fix up the constant pool into a
23161         series of mini-pools embedded in the insn stream.
23162         (arm_output_epilogue): New function, made mainly from the body
23163         of output_func_epilogue.
23164         (output_func_epilogue): Move insn generation part of epilogue code
23165         to arm_output_epilogue.
23166         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
23167         * arm.md (pool_range): New attribute.
23168         (zero_extendqidi2): Add attribute pool_range.
23169         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
23170         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
23171         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
23172         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
23173         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
23174         (epilogue): New expand.
23175         (epilogue_insn): New insn.  Call arm_output_epilogue.
23176
23177         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
23178         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
23179
23180 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
23181
23182         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
23183
23184 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
23185
23186         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
23187
23188 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
23189
23190         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
23191
23192 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
23193
23194         * global.c: Fix comment.
23195
23196 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
23197
23198         * gcc.c (access_check): New static function.
23199         (find_a_file): Use it when searching a directory list.
23200         * collect2.c (find_a_file): Don't accept directories found when
23201         searching a directory list.
23202
23203 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
23204
23205         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
23206         function parameters with `&'.
23207         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
23208
23209 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
23210
23211         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
23212         or tidy_fallthru_edge if the last insn in the block is not
23213         an unconditional jump or a simple conditional jump.
23214
23215 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23216
23217         * Makefile.in (c-decl.o): Depends on defaults.h.
23218
23219 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
23220
23221         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
23222         PA1.1 and above.
23223         (CLASS_MAX_NREGS): Likewise.
23224
23225 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
23226
23227         * cse.c (cse_insn): Fix dumb thinko in last change.
23228
23229 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23230
23231         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
23232         "const char *".
23233
23234 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
23235
23236         * dwarf2out.c (add_location_or_const_value_attribute): Correct
23237         test for sizes of passed and declared parameter types.
23238
23239 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23240
23241         * fixincludes: Fix the return type of bsearch, char* -> void*.
23242
23243         * fixinc/inclhack.def: Likewise.
23244
23245 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
23246
23247         * invoke.texi (-fdump-translation-unit): New option.
23248
23249 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
23250
23251         * expr.h (PROMOTE_PROTOTYPES): Move ...
23252         * defaults.h: ... to here.
23253         * c-decl.c: Include defaults.h instead of expr.h.
23254         * c-typeck.c: Include defaults.h.
23255
23256 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
23257
23258         * toplev.h (errorcount): Declare.
23259         (warningcount): Likewise.
23260         (sorrycount): Likewise.
23261         * c-lex.c (errorcount): Don't declare.
23262         * dwarf2out.c (errorcount): Don't declare.
23263
23264 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
23265
23266         * config/libgloss.h: Add a note discouraging use with ELF.
23267         * configure.in: Don't use libgloss.h for ELF targets.
23268         Always use_collect2 on a.out targets.
23269
23270 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
23271
23272         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
23273         (force_to_mode, case ASHIFTRT): Add shiftrt label.
23274
23275 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23276
23277         * loop.c (strength_reduce): When doing biv->giv conversion, update
23278         reg note of NEXT->insn.
23279
23280 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23281
23282         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
23283
23284 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23285
23286         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
23287         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
23288         Ensure expr.h is included.
23289         * c-typecheck.c (convert_arguments): Ditto.
23290
23291         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
23292
23293         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
23294         * config/convex/convex.h: Ditto.
23295         * config/dsp16xx/dsp16xx.h: Ditto.
23296         * config/fx80/fx80.h: Ditto.
23297         * config/gmicro/gmicro.h: Ditto.
23298         * config/i370/i370.h: Ditto.
23299         * config/i386/i386.h: Ditto.
23300         * config/m32r/m32r.h: Ditto.
23301         * config/m68k/m68k.h: Ditto.
23302         * config/m88k/m88k.h: Ditto.
23303         * config/mips/mips.h: Ditto.
23304         * config/pa/pa.h: Ditto.
23305         * config/pyr/pyr.h: Ditto.
23306         * config/tahoe/tahoe.h: Ditto.
23307         * config/we32k/we32k.h: Ditto.
23308
23309         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
23310         based on arch size.
23311
23312         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
23313
23314         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
23315         from comment.
23316
23317         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
23318
23319 1999-08-02  Richard Henderson  <rth@cygnus.com>
23320
23321         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
23322         for the register spill block.
23323         (m32r_va_arg): New.
23324         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
23325         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
23326
23327         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
23328         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
23329         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
23330
23331 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23332
23333         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
23334         MAX_WCHAR_TYPE defined in sparc.h.
23335         * config/sparc/linuxaout.h: Likewise.
23336         * config/sparc/linux64.h: Likewise.
23337         Also default to -mvis if CPU is UltraSPARC.
23338
23339 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23340
23341         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
23342         (RTX_OK_FOR_OLO10): Likewise.
23343         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
23344         %lo(), allow it in addresses...
23345         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
23346         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
23347         does not make sense.
23348         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
23349         (sparc_output_scratch_registers): New function.
23350         (output_function_prologue, sparc_flat_output_function_prologue): Use
23351         it.
23352         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
23353         defined.
23354         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
23355         * configure.in: Add check for .register pseudo-op support in as and
23356         check for offsetable %lo().
23357         * acconfig.h: Add templates for the above checks.
23358         * configure: Regenerate.
23359
23360 1999-08-02  Richard Henderson  <rth@cygnus.com>
23361
23362         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
23363         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
23364         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
23365
23366 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23367
23368         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
23369         reg_biv_class.
23370
23371 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23372
23373         * config/float-sparc.h: New file.
23374         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
23375         sparc-*-linux-gnu and sparc64-*-linux*.
23376
23377 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23378
23379         * rs6000.c (rs6000_va_list): Type is an array.
23380         (rs6000_va_start): Don't doubly adjust for varargs.
23381         (rs6000_va_arg): Evaluate long long GPR adjustment.
23382
23383 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
23384
23385         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
23386         -maix64 and -maix32.
23387         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
23388         LINK_SPEC): Change appropriately.
23389         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
23390         (u_short_cint_operand): Likewise.
23391         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
23392         for 64-bit hosts.
23393         * rs6000/t-aix43 (MULTILIB): Change to -m64.
23394
23395         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
23396
23397 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
23398
23399         * rs6000/rs6000.c (num_insns_constant_wide): Correct
23400         for type promotion.
23401         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
23402         (non_add_cint_operand): Likewise.
23403         (logical_operand): Likewise.
23404         (non_logical_cint_operand): Likewise.
23405         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
23406         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
23407         (rs6000_select_rtx_section): Suppress warning.
23408         (small_data_operand): Suppress warning.
23409         (rs6000_got_register): Suppress warning.
23410         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
23411         type, so `J' is generally the wrong constraint for a SImode value;
23412         use `L' instead.
23413         (andsi3_internal2): Likewise.
23414         (andsi3_internal3): Likewise.
23415         (iorsi3_internal1): Likewise.
23416         (xorsi3_internal1): Likewise.
23417         (movsi): Likewise.
23418         (movsf_softfloat): Likewise.
23419         (scc insns): Likewise.
23420         (movsi+2): Preserve sign bits of SImode constant.
23421         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
23422         (movdf+1): Sign-extend properly.
23423         (movdi_32+1): Sign-extend properly.
23424         (scc insns): Sign-extend properly.
23425
23426         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
23427         K, L, and T.
23428
23429 1999-08-02  Richard Henderson  <rth@cygnus.com>
23430
23431         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
23432         -mcpu parsing code.
23433         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
23434         * alpha.md (all fp insns): Likewise.
23435
23436 1999-08-02  Nick Clifton  <nickc@cygnus.com>
23437
23438         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
23439         already defined.
23440
23441 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
23442
23443         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
23444         pic_load_label generator directly.
23445         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
23446         No longer a named pattern.
23447
23448 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
23449
23450         * explow.c (force_reg): Call force_operand if X does not
23451         satisfy general_operand.
23452
23453 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
23454
23455         * fix-header.c (main): When testing for CONTINUED, use string
23456         equality, not pointer equality.
23457
23458 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
23459
23460         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
23461
23462 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
23463
23464         * cse.c (cse_insn): Fix loop which deletes insns after a jump
23465         that has become an unconditional jump.
23466
23467         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
23468         (output_function_epilogue): Similarly.
23469
23470 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23471
23472         * tree.h (init_dummy_function_start): Declare.
23473
23474 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23475
23476         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
23477         last_expr_type, last_expr_value, block_start_count, block_stack,
23478         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
23479         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
23480         dynamically in stmt elt of struct function for each function.
23481         (struct nesting): Rename function_call_count elt to n_function_calls,
23482         target_temp_slot_level to block_target_temp_slot_level.  All users
23483         changed.
23484         (struct stmt_status): New structure definition.
23485         Add many accessor macros for stmt_status elements which previously
23486         were global variables.
23487         (init_stmt_for_function): Allocate stmt elt for current_function.
23488         Reflect that block_start_count was renamed to
23489         current_block_start_count.
23490         (save_stmt_status, restore_stmt_status): Delete functions.
23491         (preserve_subexpressions_p): Don't access loop_stack when outside
23492         a function.
23493         (expand_start_bindings): Reflect that block_start_count was renamed to
23494         current_block_start_count.
23495         (expand_fixup): Likewise.
23496         (expand_decl): Don't access block_stack when outside a function.
23497         (expand_decl_cleanup): Likewise.
23498         (expand_dcc_cleanup): Likewise.
23499         (expand_dhc_cleanup): Likewise.
23500         (expand_anon_union_decl): Likewise.
23501         (set_file_and_line_for_stmt): New function.
23502         (in_control_zone_p): New function.
23503
23504         * function.h (struct function): Add new elt stmt.
23505         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
23506         case_stack, nesting_stack, nesting_depth, block_start_count,
23507         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
23508         emit_lineno, goto_fixup_chain.
23509         (save_eh_status, restore_eh_status, save_stmt_status,
23510         restore_stmt_status): Delete declarations.
23511         * function.c (push_function_context_to): Don't call save_stmt_status.
23512         (pop_function_context_to): Don't call restore_stmt_status.
23513         * tree.h (in_control_zone_p): Declare.
23514         * rtl.h (set_file_and_line_for_stmt): Declare.
23515
23516         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
23517         call set_file_and_line_for_stmt.
23518
23519 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
23520
23521         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
23522         Also update copyright.
23523
23524 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23525
23526         * c-pragma.c: Don't include "except.h".
23527         * emit-rtl.c: Likewise.
23528         * stor-layout.c: Likewise.
23529         * tree.c: Likewise.
23530         * varasm.c: Likewise.
23531
23532         * flow.c: Include "function.h".
23533         * tree.h (init_dummy_function_start): Declare new function.
23534
23535         * except.h (struct eh_status): New structure.
23536         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
23537         been included.
23538         (eh_return_stub_label, ehstack, catchstack, ehqueue,
23539         catch_clauses, false_label_stack, caught_return_label_stack,
23540         protect_list, current_function_ehc): Add accessor macros for the
23541         corresponding fields in current_function->eh; delete declarations
23542         for all items that used to be declared here.
23543         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
23544         catch_clauses, false_label_stack, caught_return_label_stack,
23545         protect_list, current_function_ehc): Delete variables.
23546         (init_eh_for_function): Allocate current_function->eh.
23547         (save_eh_status, restore_eh_status): Delete functions.
23548
23549         * function.h (struct function): Add fields next_global and eh.
23550         Delete all exception handling related fields.
23551         * function.c (current_function): New variable.
23552         (all_functions): New variable.
23553         (push_function_context_to): Don't allocate a struct function,
23554         use current_function instead.  Call init_dummy_function_start when
23555         outside a function.  Clear current_function before returning.
23556         (pop_function_context_from): Restore current_function.
23557         Don't free the restored struct function.
23558         (prepare_function_start): New function.
23559         (init_dummy_function_start): New function.
23560         (init_function_start): Break out some code into prepare_function_start
23561         and call it here.
23562
23563         * stmt.c (save_stmt_status): Don't call save_eh_status.
23564         (restore_stmt_status): Don't call restore_eh_status.
23565
23566         * Makefile.in: Update dependencies.
23567
23568 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
23569
23570         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
23571         of depending on a magic constant value.  Update comments.
23572         (hppa_expand_prologue): Similarly.
23573
23574         * pa.md (reload_indi, reload_outdi): Allow any register for the
23575         original reload register.
23576
23577 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
23578
23579         * cccp.c (print_help): Change marcos to macros.
23580
23581 1999-07-30  Richard Henderson  <rth@cygnus.com>
23582
23583         * c-typeck.c (initializer_constant_valid_p): Move ...
23584         * c-common.c (initializer_constant_valid_p): ... here.  Use
23585         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
23586         of label addresses.
23587         * c-common.h (initializer_constant_valid_p): Declare.
23588         * c-tree.h (initializer_constant_valid_p): Remove.
23589
23590 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
23591
23592         * config/i386/sol2-c1.asm: Align the stack.
23593         * config/i386/sol2-gc1.asm: Likewise.
23594
23595 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
23596
23597         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
23598         -Asparclite for sparc86x.
23599         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
23600         sparc86x.
23601         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
23602
23603 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
23604
23605         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
23606         the user if using the non-default arch size in BI_ARCH configuration.
23607         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
23608
23609         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
23610         Fix patterns so that they actually match.
23611         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
23612         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
23613         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
23614         TARGET_HARD_MUL32.
23615         (mulsidi3): Reflect this in the expand.
23616         (smulsi3_highpart): Only on TARGET_ARCH32.
23617         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
23618         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
23619         (umulsidi3): Reflect this in the expand.
23620         (umulsi3_highpart): Only on TARGET_ARCH32.
23621         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
23622         don't require g0 to be zero.
23623         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
23624         ({,u}divsi3): New expands.
23625         ({,u}divsi3_sp64): New patterns.
23626         (after lshrdi3_v8plus): Four new patterns to help combiner
23627         optimizing nested mixed mode shifts.
23628
23629         * config/sparc/sparc.c (sparc_override_options): Use deprecated
23630         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
23631         speed things up. Don't use them by default on plain v9 in 64bit
23632         mode, according to what SPAMv9 sais.
23633
23634         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
23635         top 32 bits of %[og][0-7] in signal handlers.
23636         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
23637
23638 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
23639
23640         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
23641         (ashlsi3): Corresponding changes.
23642
23643         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
23644
23645 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
23646
23647         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
23648
23649 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23650
23651         * arm.h (Hint): Delete macro.
23652         Substitute HOST_WIDE_INT for Hint in some prototypes.
23653         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
23654
23655 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
23656
23657         * builtins.c (expand_builtin_setjmp): Use force_operand to
23658         make sure that the buffer address is in a suitable form to be
23659         passed to force_reg.
23660
23661 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
23662
23663         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
23664         them here.
23665
23666 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
23667
23668         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
23669         proper mode in the condition string.
23670         (icacheflush, dcacheflush): Remove modes from match_operands.
23671
23672         * pa.c (emit_move_sequence): Always convert scratch_reg to the
23673         proper mode before using it.
23674
23675         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
23676         pair.
23677
23678         * pa.c (store_reg): Do not call add_high_const generator directly.
23679         (load_reg, set_reg_plus_d): Likewise.
23680         * pa.md (add_high_const): No longer a named pattern.
23681
23682         * pa.c (legitimize_address): Consistently use Pmode rather than
23683         SImode.  Do not call gen_pic2_highpart directly anymore.
23684         * pa.md (pic2_highpart): No longer a named pattern.
23685         (pic2_lo_sum): Similarly.  Reformat to make more readable.
23686
23687         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
23688         needed.
23689
23690         * README: Update.
23691
23692 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23693
23694         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
23695
23696 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
23697
23698         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
23699         and tag the spill mems.
23700         (hppa_va_start): New.
23701         (hppa_va_arg): New.
23702         * pa.h (EXPAND_BUILTIN_VA_START): New.
23703         (EXPAND_BUILTIN_VA_ARG): New.
23704
23705 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
23706
23707         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
23708         and tag the spill mems.
23709         (mn10300_va_start): New.
23710         (mn10300_va_arg): New.
23711         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
23712         (EXPAND_BUILTIN_VA_ARG): New.
23713
23714 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
23715
23716         * mn10200.c (mn10200_va_arg): New.
23717         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
23718
23719 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
23720
23721         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
23722         rather than play with TREE_INT_CST_LOW.
23723
23724 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
23725
23726         * config/arm/telf.h: Include dbxelf.h.
23727         (CPP_PREDEFINES): Only define if not already defined.
23728         (ASM_IDENTIFY_GCC): Likewise.
23729         (SUBTARGET_EXTRA_SECTIONS): Likewise.
23730         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
23731         * config/arm/thumb.h (LINK_SPEC): Only define if not already
23732         defined.
23733         (DBX_DEBUGGING_INFO): Don't define.
23734         * config/arm/linux-telf.h: New file.
23735         * config/arm/linux-tgas.h: New file.
23736         * config/arm/t-thumb-linux: New file.
23737         * config/arm/uclinux-elf.h: New file.
23738         * config/arm/uclinux-telf.h: New file.
23739         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
23740         thumb-*-uclinux): New targets.
23741         * configure: Regenerate.
23742
23743 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
23744
23745         * pa.md (post_store, pre_load): New expanders.
23746         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
23747         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
23748         need to directly generate RTL for them.
23749         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
23750         changes.
23751
23752 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
23753
23754         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
23755         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
23756         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
23757         (secndary_reload_class): Make TARGET_ELF conditional compile.
23758         (print_operand_address): Similar.
23759         (output_toc): Print all values as hex.
23760         (get_issue_rate): Rearrange and add RS64A and PPC630.
23761         * rs6000.h (processor_type): Add RS64A and PPC630.
23762         (PROCESSOR_POWERPC64): New.
23763         (PROMOTE_MODE): Use word_mode.
23764         (RTX_COSTS): Add RS64A and PPC630.
23765         * rs6000.md (scheduling information): Add lmul and ldiv
23766         representing 64-bit integer multiply and divide.  Add rs64a and
23767         PPC630 information.
23768         (ashldi3): Add support for "rldic" instruction.
23769         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
23770
23771 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
23772
23773         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
23774         instead of V8 for sparclite86x in cpu_table.
23775
23776 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23777
23778         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
23779         output_file_directive.
23780
23781 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
23782
23783         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
23784         tree for op1, not the rtl.
23785
23786 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
23787
23788         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
23789         to m88k_va_start, leaving only the register spill.
23790         (m88k_build_va_list): New.
23791         (m88k_va_start): New.
23792         (m88k_va_arg): New.
23793         * m88k.h (BUILD_VA_LIST_TYPE): New.
23794         (EXPAND_BUILTIN_VA_START): New.
23795         (EXPAND_BUILTIN_VA_ARG): New.
23796
23797 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
23798
23799         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
23800         Rename from expand_builtin_saveregs.
23801         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
23802
23803 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
23804
23805         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
23806         for the register spill block.
23807         (i960_build_va_list): New.
23808         (i960_va_start): New.
23809         (i960_va_arg): New.
23810         * i960.h (BUILD_VA_LIST_TYPE): New.
23811         (EXPAND_BUILTIN_VA_START): New.
23812         (EXPAND_BUILTIN_VA_ARG): New.
23813         * i960.md (store_multiple): Use change_address on individul mems.
23814
23815 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
23816
23817         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
23818         an ARRAY_TYPE.
23819         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
23820         (expand_builtin_va_end): Evaluate arg for side effects.
23821         * c-common.c (c_common_nodes_and_builtins): Construct a
23822         va_list_arg_type_node to handle array decomposition to pointer.
23823
23824 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
23825
23826         * except.c (st_dynamic_cleanup): Use force_operand on the
23827         buffer's address.
23828
23829 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
23830
23831         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
23832         * c4x.c (c4x_va_arg): New.
23833
23834 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
23835
23836         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
23837         has manual_pop set.
23838
23839 1999-07-26  Nathan Sidwell  <nathan@acm.org>
23840
23841         * eh-common.h (__eh_matcher): Prototype correctly.
23842
23843 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
23844
23845         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
23846         (TARGET_SINGLE_PIC_BASE): Likewise.
23847         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
23848         definitions.
23849         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
23850         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
23851         (TARGET_OPTIONS): Add -mpic-register=N.
23852         (OUTPUT_INT_ADDR_CONST): New macro.
23853         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
23854         LEGITIMATE_PIC_OPERAND_P): Likewise.
23855         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
23856         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
23857         output_addr_const directly.
23858         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
23859         ARM port.
23860         (thumb_pic_register, thumb_pic_register_string): Declare.
23861
23862         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
23863         from arm.c.
23864         (label_mentioned_p): New function: Imported from arm.c.
23865         (legitimize_pic_address): New function: Imported from arm.c.
23866         (is_pic):New function: Imported from arm.c.
23867         (thumb_finalize_pic):New function: Imported from arm.c.
23868         (add_constant): Cope with PIC constants.
23869         (fixit): Cope with PIC constants.
23870         (output_return): Do not treat the PIC register as live if
23871         TARGET_SINGLE_PIC_BASE is true.
23872         (thumb_function_prologue): Do not treat the PIC register as live if
23873         TARGET_SINGLE_PIC_BASE is true.
23874         (thumb_expand_prologue): Do not treat the PIC register as live if
23875         TARGET_SINGLE_PIC_BASE is true.
23876         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
23877         TARGET_SINGLE_PIC_BASE is true.
23878         (thumb_print_operand): Accept '|'.
23879         (thumb_override_options): Process PIC options.
23880
23881         * config/arm/thumb.md (movsi): Support PIC.
23882         (call_insn): Change "i" constraint to "X".
23883         (call_value_insn): Likewise.
23884         (consttable_4, consttable_8, consttable_end): Set and clear
23885         "making_const_table" as appropriate.
23886         (pic_load_addr, pic_add_dot_plus_four): New insns.
23887
23888         * invoke.texi (Thumb Options): Fix spelling.  Document new
23889         options -msingle-pic-base and -mpic-register=.
23890
23891 1999-07-26  Andrew Haley  <aph@cygnus.com>
23892
23893         * config/m32r/initfini.c (__init): Use a full word immediate for
23894         __fini: this allows it to be placed in any memory region.
23895
23896         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
23897         -mmodel=medium.  This is OK for all memory models.
23898
23899 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
23900
23901         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
23902         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
23903
23904 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
23905
23906         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
23907         defined.
23908
23909         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
23910
23911 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
23912
23913         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
23914         (BUILD_VA_LIST_TYPE): New.
23915         (EXPAND_BUILTIN_VA_START): New.
23916         (EXPAND_BUILTIN_VA_ARG): New.
23917         * i860.c (output_delayed_branch): Disable.
23918         (output_delay_insn): Likewise.
23919         (i860_saveregs): New.
23920         (i860_build_va_list): New.
23921         (i860_va_start): New.
23922         (i860_va_arg): New.
23923         * i860.md: Disable all peepholes using output_delayed_branch.
23924         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
23925
23926 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
23927
23928         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
23929         (BUILD_VA_LIST_TYPE): New.
23930         (EXPAND_BUILTIN_VA_START): New.
23931         (EXPAND_BUILTIN_VA_ARG): New.
23932         * clipper.c (clipper_builtin_saveregs): Only dump registers.
23933         Return the address of the save area.
23934         (clipper_build_va_list): New.
23935         (clipper_va_start): New.
23936         (clipper_va_arg): New.
23937
23938 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
23939
23940         * arc.h (EXPAND_BUILTIN_VA_START): New.
23941         (EXPAND_BUILTIN_VA_ARG): New.
23942         * arc.c (arc_setup_incoming_varargs): Set alias set of
23943         varargs save area.
23944         (arc_va_start): New.
23945         (arc_va_arg): New.
23946
23947 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
23948
23949         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
23950         (BUILD_VA_LIST_TYPE): New.
23951         (EXPAND_BUILTIN_VA_START): New.
23952         (EXPAND_BUILTIN_VA_ARG): New.
23953         * alpha.c (alpha_builtin_saveregs): Delete.
23954         (alpha_build_va_list): New.
23955         (alpha_va_start): New.
23956         (alpha_va_arg): New.
23957
23958 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
23959
23960         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
23961         column zero.
23962         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
23963         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
23964
23965         * gcc.texi: More changes related to list conversion.
23966         * invoke.texi: Likewise.
23967
23968 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
23969
23970         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
23971         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
23972         (expand_builtin_next_arg): Accept ARGLIST not EXP.
23973         (stabilize_va_list): New function.
23974         (std_expand_builtin_va_start): New function.
23975         (expand_builtin_va_start): New function.
23976         (get_varargs_alias_set): New function.
23977         (std_expand_builtin_va_arg): New function.
23978         (expand_builtin_va_arg): New function.
23979         (expand_builtin_va_end): New function.
23980         (expand_builtin_va_copy): New function.
23981         (expand_builtin): Call them.
23982         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
23983         __builtin_{varargs_start,stdarg_start,end,copy}.
23984         (build_va_arg): New function.
23985         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
23986         (build_va_arg): Declare.
23987         * c-decl.c (ptr_type_node, va_list_type_node): New.
23988         * c-parse.gperf (__builtin_va_arg): New.
23989         * c-parse.in (VA_ARG): New token.
23990         (unary_expr): Recognize it.
23991         * expr.c (expand_expr): Expand VA_ARG_EXPR.
23992         * expr.h (std_expand_builtin_va_start): Declare.
23993         (std_expand_builtin_va_arg): Declare.
23994         (expand_builtin_va_arg): Declare.
23995         (get_varargs_alias_set): Declare.
23996         * tree.def (VA_ARG_EXPR): New.
23997         * tree.h (BUILT_IN_VARARGS_START): New.
23998         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
23999         (ptr_type_node, va_list_type_node): Declare.
24000         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
24001         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
24002         * m88k.h, m88k.c: Likewise.
24003         * mn10300.h, mn10300.c: Likewise.
24004         * pa.h, pa.c: Likewise.
24005         * rs6000.h, rs6000.c: Likewise.
24006         * sh.h, sh.c: Likewise.
24007         * sparc.h, sparc.c: Likewise.
24008
24009         * emit-rtl.c (operand_subword): Copy alias set.
24010         (change_address): Likewise.
24011
24012 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
24013
24014         * pa.c (compute_frame_size): Scan all the used callee saved registers,
24015         not just the first one.
24016
24017 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
24018
24019         * config/arm/arm.h (TARGET_SWITCHES): Add
24020         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
24021         (TARGET_OPTIONS): Add -mpic-register=.
24022         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
24023         (arm_pic_register_string): Declare.
24024         (NEED_PLT_GOT): Delete, replace with ...
24025         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
24026         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
24027         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
24028         * config/arm/arm.c (arm_override_options): Add new option
24029         -mpic-register=N.
24030         (arm_pic_register_string): New variable.
24031         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
24032         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
24033         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
24034         (output_return_instruction): Likewise.
24035         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
24036         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
24037         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
24038
24039         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
24040         mention of -msched-prolog.  Document new options -msingle-pic-base
24041         and -mpic-register=.
24042
24043 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
24044
24045         * haifa-sched.c (reemit_notes): Tidy.
24046         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
24047         haifa's routine.
24048
24049 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
24050
24051         * explow.c (trunc_int_for_mode): New function.
24052         (plus_constant_wide): Use it.
24053         * combine.c (simplify_and_const_int): Likewise.
24054         (merge_outer_ops): Likewise.
24055         (simplify_shift_const): Likewise.
24056         * cse.c (simplify_unary_operation): Likewise.
24057         (simplify_binary_operation): Likewise.
24058         * emit-rtl.c (operand_subword): Likewise.
24059         * rtl.h: Declare it.
24060
24061 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24062
24063         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
24064         (use NUM_REGS instead of NUM_INTS).
24065
24066 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24067
24068         * builtins.c: New file.
24069         * expr.c (saveregs_value, apply_args_value):  Delete definition,
24070         moved into builtins.c.
24071         (string_constant): No longer static.
24072         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
24073         apply_args_size, apply_result_size, result_vector,
24074         expand_builtin_apply_args, expand_builtin_apply,
24075         expand_builtin_return): Delete functions, moved into builtins.c.
24076         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
24077         * expr.h (saveregs_value, apply_args_value): Declare variables.
24078         (expand_builtin, string_constant): Declare functions.
24079         * Makefile.in: Update to build builtin.o.
24080
24081 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
24082
24083         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
24084         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
24085         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
24086         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
24087         false.
24088         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
24089         Define to zero.
24090
24091 1999-07-21  Michael Meissner  <meissner@cygnus.com>
24092
24093         * print-rtl.c (print_rtx): Print the names of the virtual
24094         registers.
24095
24096 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
24097
24098         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
24099         introduced in previous delta.
24100
24101 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24102
24103         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
24104         to avoid name clash.
24105
24106 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24107
24108         * c-lex.c (yylex) : Correct the test for overflow when lexing
24109         integer literals.
24110
24111 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
24112
24113         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
24114         (adjust_priority): Always call ADJUST_PRIORITY.
24115         (schedule_insn): Only put insns into the ready at cost 0.
24116         (schedule_block): Remove redundant initial sort.  Give clock_var
24117         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
24118         is not 0.
24119         * tm.texi (MD_SCHED_REORDER): Update docs.
24120
24121         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
24122         * sparc.c (ultra_reorder_called_this_block): Delete.
24123         (ultrasparc_sched_init): Don't set it.
24124         (ultrasparc_sched_reorder): Don't check it.
24125
24126 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
24127
24128         * rs6000.h (struct rs6000_args): Add sysv_gregno.
24129         * rs6000.c (init_cumulative_args): Init sysv_gregno.
24130         (function_arg_boundary): Align DFmode.
24131         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
24132         to get fp reg and stack overflow correct.
24133         (function_arg): Likewise.
24134         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
24135         (setup_incoming_varargs): Restructure for ABI_V4; use
24136         function_arg_advance to skip final named argument.
24137         (expand_builtin_saveregs): Properly unskip the last integer arg
24138         when doing varargs.  Adjust overflow location calculation.
24139
24140         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
24141         explicitly unsigned.
24142         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
24143         (__VA_GP_REGSAVE): Similarly.
24144         (__va_longlong_p): Delete.
24145         (__va_arg_type_violation): New declaration.
24146         (va_arg): Restructure.  Flag promotion errors.  Align double.
24147         TFmode passed by reference.
24148
24149         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
24150         in the HOST_BITS_PER_WIDE_INT > 32 case.
24151
24152 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
24153
24154         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
24155
24156 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
24157
24158         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
24159         * toplev.c (documented_lang_options): Add -fpreprocessed.
24160         * cpplib.h (struct cpp_buffer): Add preprocessed.
24161         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
24162         (cpp_start_read): Don't expand macros or emit an initial #line
24163         directive if -fpreprocessed.
24164
24165 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
24166
24167         * cpplib.h (struct cpp_buffer): Added manual_pop for
24168         better C++ tokenization.
24169         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
24170         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
24171         * c-common.c (cpp_token): Make non-static.
24172
24173 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24174
24175         * c-common.h: New file.
24176         * c-common.c (permanent_obstack): Delete unused declaration.
24177         (c_global_trees): New array.
24178         (c_common_nodes_and_builtins): New function; split off common code
24179         from init_decl_processing in both c-decl.c and cp/decl.c.
24180         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
24181         c_global_trees and accessor macros defined in c-common.h.
24182         Include c-common.h.
24183         * c-decl.c: Delete definitions for tree nodes that were replaced by
24184         c_global_trees.
24185         (init_decl_processing): Build void_list_node.
24186         Call c_common_nodes_and_builtins; delete code to generate the common
24187         builtins here.
24188         * objc/objc-act.c (build_module_descriptor): Rename variable
24189         void_list_node to avoid clash with c-common.h.
24190
24191         * Makefile.in: Update dependencies.
24192         * objc/Make-lang.in: Likewise.
24193
24194 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
24195
24196         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
24197         (UNIQUE_SECTION_P): Likewise.
24198         (UNIQUE_SECTION): Likewise.
24199
24200 1999-07-19  Linas Vepstas  <linas@linas.org>
24201
24202         * config/i370/README: New file.
24203         * config/i370/linux.h: New file.
24204         * config/i370/mvs.h: New file.
24205         * config/i370/oe.h: New file.
24206         * config/i370/t-linux: New file.
24207         * config/i370/t-mvs: New file.
24208         * config/i370/t-oe: New file.
24209         * config/i370/x-oe: New file.
24210         * config/i370/xm-linux.h: New file.
24211         * config/i370/xm-mvs.h: New file.
24212         * config/i370/xm-oe.h: New file.
24213
24214         * i370.c (label_node_t): Add first_ref_page, label_addr,
24215         label_first_ref, label_last_ref members.
24216         (mvs_need_base_reload): Renamed from mvs_label_emitted.
24217         (MAX_MVS_LABEL_SIZE): Define.
24218         (MAX_LONG_LABEL_SIZE): Define.
24219         (alias_node_t, alias_anchor, alias_number): New.
24220         (mvs_function_table): Reorder for EBCDIC.
24221         (ascebc, ebcasc): Unconditionally define.
24222         (i370_branch_dest, i370_branch_length): New functions.
24223         (i370_short_branch, i370_label_scan): New functions.
24224         (mvs_get_label): Renamed from mvs_add_label.  Search for
24225         an existing label before creating a new one.
24226         (mvs_add_label): New function.
24227         (mvs_get_label_page): New function.
24228         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
24229         over the entire list.
24230         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
24231         (mvs_check_page) [TARGET_ELF_ABI]: New function.
24232         (mvs_add_alias, mvs_need_alias): New functions.
24233         (mvs_get_alias, mvs_check_alias): New functions.
24234         (handle_pragma): New function.
24235         (mvs_function_check): New function.
24236         (unsigned_jump_follows_p): Search harder.
24237         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
24238         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
24239         * i370.h (TARGET_VERSION): Delete.
24240         (CPP_SPEC, CPP_PREDEFINES): Delete.
24241         (mvs_label_emitted): Delete.
24242         (TARGET_EBCDIC): Delete.
24243         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
24244         (HANDLE_PRAGMA): Define.
24245         (HARD_REGNO_NREGS): Handle complex modes.
24246         (HARD_REGNO_MODE_OK): Likewise.
24247         (CLASS_MAX_NREGS): Likewise.
24248         (RET_REG): Likewise.
24249         (EXTRA_CONSTRAINT): Define.
24250         (RETURN_IN_MEMORY): True for DImode.
24251         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
24252         (FUNCTION_PROFILER): Delete.
24253         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
24254         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
24255         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
24256         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
24257         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
24258         (ASM_FILE_START): Add "RMODE ANY".
24259         (ASM_OUTPUT_EXTERNAL): Check for aliases.
24260         (ASM_GLOBALIZE_LABEL): Likewise.
24261         (ASM_OUTPUT_LABELREF): Likewise.
24262         (ASM_OUTPUT_COMMON): Likewise.
24263         (PRINT_OPERAND): Handle 'K', 'W', default.
24264         (PRINT_OPERAND_ADDRESS): New.
24265         (Lots of defines): Add support for TARGET_ELF_ABI.
24266         * i370.md (attr length): New.  Define for all patterns.
24267         (*): Lots of tweeks to assembly output and constraints.
24268
24269 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
24270
24271         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
24272         Disable patterns performing SImode comparisons with SImode values
24273         if TARGET_POWERPC64 and instruction does not sign-extend or does
24274         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
24275         differ for signed quantities.
24276         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
24277         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
24278         (decrement_and_branch_on_count): Add 64-bit variant.
24279
24280 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24281
24282         * final.c (output_asm_insn): When searching for the matching string
24283         for a given dialect, don't run past the end of the list of
24284         alternatives if there are fewer alternatives in the template than
24285         dialects.
24286
24287 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
24288
24289         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
24290         Removed paragraph about compression of files and size limitation,
24291         duplicated in the FAQ.  Use gcc-patches for posting patches.
24292         * gcc.c (main): Updated URL with bug reporting instructions to
24293         gcc.gnu.org.  Removed e-mail address.
24294         * system.h (abort): Likewise.
24295
24296 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24297
24298         * Makefile.in (stmp-multilib-sub): Make the files extracted
24299         from $(LIBGCC1) writable.
24300
24301 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
24302
24303         * config/arm/aout.h: Reformat for improved readability.
24304
24305         * config/arm/arm.h: Reformat for improved readability.
24306         Replace uses of fprintf with asm_fprintf where appropriate.
24307         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
24308         function declaration assembler actions.
24309         (NUM_INTS): New macro: Convert from bytes to words.
24310         (NUM_REGS): New macro: Compute number of registers required to
24311         hold a quanitity of tyep MODE.
24312         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
24313         types.
24314         (NUM_ARG_REGS): New macro: The number of argument registers
24315         available.
24316         (ARG_REGISTER): New macro: Compute the register number of the Nth
24317         argument register.
24318         (LAST_ARG_REGNUM): New macro: The number of the last argument
24319         register.
24320         (SP_REGNUM): New macro: Register number of the stack pointer.
24321         (FP_REGNUM): New macro: Register number of the frame pointer.
24322         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
24323         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
24324         CUMULATIVE_ARGS so that it counts registers not bytes.
24325
24326         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
24327         TARGET_INTERWORK.
24328         Replace uses of fprintf with asm_fprintf where appropriate.
24329         (output_ascii_pseudo_op): Replace with version from thumb.c
24330
24331         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
24332
24333         * config/arm/elf.h (CPP_PREDEFINES): Replace with
24334         SUBTARGET_CPP_SPEC.
24335         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
24336         (ASM_FILE_START): Emit ASM_APP_OFF.
24337
24338 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
24339
24340         * pa.c (compute_frame_size): Round frame according to
24341         STACK_BOUNDARY rather than a hardwired value.
24342
24343         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
24344
24345         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
24346         of "1".
24347         * configure: Rebuilt.
24348
24349         * configure.in (hppa*-*-linux*): New configuration.
24350         * configure: Rebuilt.
24351         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
24352         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
24353         * pa/pa-linux.h: New file.
24354         * pa/t-linux: New file.
24355         * pa/xm-linux.h: New file.
24356
24357         * pa.c (hppa_legitimize_address): Change references from SImode to
24358         either Pmode or word_mode as appropriate.
24359         (emit_move_sequence, store_reg, load_reg): Likewise.
24360         (set_reg_plus_d, hppa_expand_prologue): Likewise.
24361         (output_mul_insn): Likewise.
24362         * pa.h (PROMOTE_MODE): Likewise.
24363         (INITIALZE_TRAMPOLINE): Likewise.
24364         (Pmode): Define to word_mode.
24365
24366         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
24367         value of 4.  Allocate 8 bytes for each FP register save.
24368         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
24369         value of 4.
24370         (hppa_expand_prologue): Likewise.
24371         * pa.h (PROMOTE_MODE): Likewise.
24372         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
24373         (FUNCTION_ARG_BOUNDARY): Likewise.
24374
24375         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
24376
24377         * pa.c (out_of_line_prologue_epilogue): Delete.
24378         (override_options): Remove -mspace related code.
24379         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
24380         (compute_frame_size): Only allocate space for register that
24381         actually need to be saved.
24382         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
24383         (TARGET_SWITCHES): Remove -mspace, -mno-space
24384         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
24385         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
24386         * pa/ee.asm, pa/ee_fp.asm: Delete.
24387
24388         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
24389
24390         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
24391         directive in column zero.
24392
24393 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
24394
24395         * m68k.c (output_function_prologue): Fix computation of save mask
24396         when generating PIC code.
24397
24398 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
24399
24400         * tree.c (build_type_attribute_variant): Move current_obstack restore
24401         after build_qualified_type call.
24402
24403 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
24404
24405         * configure.in: Use t-iris6, even with GNU LD.
24406         * config/mips/iris6gld.h: Fix typo in linker spec.
24407         * config/mips/t-iris6gld: Remove.
24408
24409 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
24410
24411         * rs6000.md (insv, extzv): Remove SImode dependence in named
24412         patterns.  Explicitly generate DImode RTL if PowerPC64 and
24413         operand is DImode.
24414         (insvdi): Reverse start and size in instruction template.
24415
24416 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
24417
24418         * invoke.texi: Typo fixes.
24419
24420 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
24421
24422         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
24423         handle at this time instead of silently generating incorrect code.
24424         (gen_imagpart): Likewise.
24425
24426         * reload.c (find_reloads): Emit a USE for a pseudo register without
24427         a hard register if we could not create an optional reload for the
24428         pseudo.
24429
24430 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24431
24432         * c-typeck.c (output_init_element, process_init_element):
24433         When advancing constructor_unfilled_fields for a RECORD_TYPE,
24434         check for nameless bit fields.
24435
24436 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
24437
24438         * regclass.c (scan_one_insn): Notice subregs that change the
24439         size of their operand.
24440         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
24441
24442 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
24443
24444         * configure.in (alpha*-*-*): Include alpha/t-ieee.
24445         * configure: Rebuilt.
24446         * alpha/t-ieee: New file.
24447
24448 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
24449
24450         * rs6000.c (find_addr_reg): Do not select r0 as an address
24451         register.
24452
24453 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
24454
24455         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
24456
24457 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
24458
24459         * rs6000.md (movsf): Do not force easy FP constants into memory.
24460
24461         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
24462         immed_double_const to ensure they are properly truncated then
24463         sign extended.
24464
24465 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
24466
24467         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
24468         always unless NO_DEBUG is used.  Compile this code
24469         unconditionally.
24470         (replace_symbols_in_block): Compile it unconditionally.
24471
24472 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
24473
24474         * configure.in (i?86-*-elf*): New target.
24475         * configure: Rebuilt.
24476         * i386/i386elf.h, i386/t-i386elf: New files.
24477
24478 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
24479
24480         * toplev.c (main): Don't complain about saying -gdwarf.
24481         (rest_of_compilation): Remove redundant code.
24482
24483 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
24484
24485         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
24486
24487 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
24488
24489         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
24490         "Li960R:", to avoid name clash.
24491
24492 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24493
24494         * loop.c (check_dbra_loop): When reversing a loop, delete all
24495         REG_EQUAL notes referencing the reversed biv except those which are
24496         for a giv based on it.
24497
24498 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
24499
24500         * version.c: Drop "gcc-" prefix from version #.
24501
24502 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
24503
24504         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
24505         the label if we're being verbose.
24506
24507 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
24508
24509         * m68k.c (output_function_prologue): Add pic register to mask
24510         if live and flag_pic.
24511         (output_function_epilogue): Likewise.
24512
24513 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
24514
24515         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
24516         directives in column zero.
24517
24518         * pa/elf.h (ASM_FILE_START): Define.
24519         * pa/som.h (ASM_FILE_START): Include .level directives.
24520         * pa/hpux10.h (ASM_FILE_START): Delete.
24521         * pa/hpux11.h (ASM_FILE_START): Delete.
24522
24523         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
24524
24525 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24526
24527         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
24528         when reload_out equals reload_in.
24529
24530 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
24531
24532         * invoke.texi (Spec Files): New node: Describe the contents of
24533         spec files.
24534
24535 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
24536
24537         * invoke.texi (DEC Alpha Options): Put @end table at
24538         beginning of line, to avoid confusing texi2html.
24539
24540 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
24541
24542         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
24543         introduced in previous delta.
24544
24545 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24546
24547         * reload1.c (gen_reload): When synthesizing a 3 operand add
24548         sequence, improve test for when to reload OP1 into the reload
24549         register instead of OP0.
24550
24551 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
24552
24553         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
24554
24555 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
24556
24557         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
24558         string literal.
24559
24560 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
24561
24562         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
24563         (va_dcl): Use __builtin_va_alist_t.
24564
24565 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
24566
24567         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
24568         on the permanent_obstack.
24569         * dwarfout.c (output_type): Likewise.
24570
24571 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24572
24573         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
24574         Merged from c-typeck.c and cp/typeck.c.
24575         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
24576         Merged into c-common.
24577
24578 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
24579
24580         * c-lex.c (errorcount): Declare it.
24581         (finish_parse): Update errorcount when using CPPLIB.
24582
24583 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
24584
24585         * fixinc/inclhack.def(end_else_label): Double the backslash so
24586         sed gets a chance to see it.
24587         * fixinc/inclhack.sh: regen
24588         * fixinc/fixincl.x: regen
24589
24590 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
24591
24592         Add framework to support armv5 architecture when it becomes
24593         available:
24594
24595         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
24596         (arm_arch5): New variable.
24597         (all_architectures): Add armv5 line.
24598         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
24599         -march=armv5 is specified on the command line.
24600         (arm_arch5): Export this variable.
24601         * invoke.texi: Document new string accepted by -march= switch for
24602         ARM ports.
24603
24604         * config/arm/arm.h: Replace use of constant 12 as a register
24605         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
24606         * config/arm/arm.c: Replace use of constant 12 as a register
24607         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
24608
24609         * config/arm/elf.h: Tidy up.
24610         * config/arm/coff.h: Tidy up.
24611
24612 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
24613
24614         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
24615         * gcc/config/mips/t-iris6gld: New file.
24616         * gcc/config/mips/iris6gld.h: Likewise.
24617
24618 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24619
24620         * c-decl.c (widest_integer_literal_type_node,
24621         widest_unsigned_literal_type) : New.
24622         (init_decl_processing): Handle/use the two new types.
24623         * c-common.c (type_for_size,type_for_mode) : Same.
24624         * c-lex.c (yylex) : Same.
24625         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
24626         Same.
24627         * c-tree.h (widest_integer_literal_type_node,
24628         widest_unsigned_literal_type) : New.
24629
24630 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
24631
24632         * dwarfout.c (field_byte_offset): Correctly compute the object's
24633         byte offset for the first bit of a field which crosses an alignment
24634         boundary on a !BYTES_BIG_ENDIAN target.
24635
24636 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
24637
24638         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
24639         ntohs.
24640
24641 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
24642                           Jeff Law <law@cygnus.com>
24643
24644         * ginclude/varargs.h (va_dcl): Use word_mode for type of
24645         __builtin_va_list.
24646
24647         * except.c: Include intl.h.
24648         (expand_eh_return): Set current_function_cannot_inline.
24649         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
24650         * function.h (struct function): Add eh_return_stub_label.
24651         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
24652         * Makefile.in (except.o): Depend on intl.h.
24653
24654 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
24655
24656         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
24657         same as offsettable in cases 1 and 2.
24658
24659 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
24660
24661         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
24662         (extlh, extwh): Likewise.
24663
24664 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24665
24666         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
24667
24668 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
24669
24670         * configure.in: Add arm-pe and thumb-pe targets.
24671         * configure: Regenerate.
24672
24673         * thumb.c (arm_naked_function_p): New function: Determines if
24674         a function is naked (has no gcc generated prologue/epilogue).
24675         (is_called_in_ARM_mode): Return true if the func has the
24676         interfacearm attribute.
24677         (output_return): Do not generate a return for naked functions.
24678         (thumb_function_prologue): Do not generate a prologue for
24679         naked functions.
24680         (thumb_expand_prologue): Do not generate a prologue for naked
24681         functions.
24682         (thumb_expand_epilogue): Do not generate an epilogue for naked
24683         functions.
24684         (arm_valid_machine_decl_attribute): New function, copied from
24685         arm.c:  Permit naked and interfacearm attributes.
24686
24687         * config/arm/pe.c: New file: Support code for arm-pe target.
24688         * config/arm/pe.h: New file: Header file for arm-pe target.
24689         * config/arm/tpe.h: New file: Header file for thumb-pe target.
24690         * config/arm/t-thumb-pe: New file: Makefile fragment for
24691         thumb-pe target.
24692
24693 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
24694
24695         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
24696         -fPIC or -fpic is specified.
24697
24698 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
24699
24700         * expr.c (emit_block_move): Use copy_to_mode_reg for
24701         !TARGET_MEM_FUNCTIONS case too.
24702
24703         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
24704         appropriate.
24705         * configure: Rebuilt.
24706         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
24707         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
24708         definitions made redundant by dbxelf.h inclusion.  Delete
24709         lots of definitions related to assembly output that are
24710         specific to the SOM object format.
24711         * pa.c (output_function_prologue): Do not emit the function's
24712         name for OBJ_ELF.
24713         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
24714         * pa-pro.h: Deleted.
24715         * som.h: New file with SOM specific definitions.
24716         * elf.h: New file with ELF specific definitions.
24717
24718         * elfos.h (const_section): Output a tab before assembler directives.
24719         (ctors_section, dtors_section): Likewise.
24720         (ASM_OUTPUT_SECTION_NAME): Likewise.
24721
24722         * pa/pa1.h: Delete unused file.
24723
24724 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
24725
24726         * configure.in (hppa*-hp-hpux11*): New configuration.
24727         * configure: Rebuilt.
24728         * pa/pa-hpux11.h: New file.
24729         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
24730         command line.
24731
24732         * mips.md (leasi, leadi): New patterns.
24733
24734         * expr.c (emit_block_move): Properly handle case where one of the
24735         block move arguments has a queued increment or decrement.
24736         (clear_storage): Similarly.  Fix formatting goof.
24737
24738 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
24739
24740         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
24741         semicolon from the BSD VA_LIST replacement expression.
24742
24743         * fixinc/inclhack.sh: regen
24744         * fixinc/fixincl.x: regen
24745
24746         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
24747         now use the fixincl program.
24748
24749 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
24750
24751         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
24752         case.  Also make the PIC register call_used.
24753
24754         * m68k.h (FINALIZE_PIC): Delete.
24755         * m68k.c (finalize_pic): Delete.
24756
24757 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
24758
24759         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
24760         to memory.
24761
24762 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
24763
24764         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
24765
24766 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
24767
24768         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
24769
24770 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
24771
24772         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
24773
24774 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
24775
24776         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
24777
24778 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
24779
24780         * rs6000.c (output_toc): Always use hex values for floating-point
24781         constants.  Store single-precision values in upper-half of TOC
24782         entry in 64-bit mode.
24783         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
24784         to final constraints.
24785         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
24786         (fctiwz): Improve accuracy of RTL for pattern.
24787
24788 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24789
24790         * expr.c (expand_expr): Allow RTL_EXPR's through the
24791         MAX_INTEGER_COMPUTATION_MODE checks.
24792
24793 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
24794
24795         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
24796         such that MASK_SUPPORT_ARCH is not negative.
24797
24798 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
24799
24800         * loop.c (verify_dominator): Properly handle ADDR_VEC and
24801         ADDR_DIFF_VEC insns that appear inside loops.
24802
24803 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
24804                           Jeff Law <law@cygnus.com>
24805
24806         * rs6000.md (movdf_hardfloat32): Revert previous patch.
24807         Handle LO_SUM the same as offsettable in cases 1 and 2.
24808         * rs6000.c (find_addr_reg): Revert previous patch.
24809
24810 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
24811
24812         * system.h (strstr): New external function declaration.
24813         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
24814         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
24815         * config.in, configure: Rebuilt.
24816
24817 1999-06-24  Tom Tromey  <tromey@cygnus.com>
24818
24819         * gcc.c (main): Read user-specified specs files after computing
24820         additional startfile_prefixes.
24821
24822 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
24823
24824         Revert these two patches:
24825
24826         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24827         * loop.c (strength_reduce): When doing biv->giv conversion, update
24828         reg note of NEXT->insn.
24829
24830         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24831         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
24832         reg_biv_class.
24833         (recombine_givs): Set ix field after sorting.
24834
24835 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24836
24837         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
24838         for the parts of an UNSPEC / UNSPEC_VOLATILE.
24839
24840 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
24841
24842         *fixinc/inclhack.def:  Add fix development commentary
24843         (read_ret_type): reactivate and add selection clause
24844         (zzz_*): tweak output file name to match what is used in hackshell.tpl
24845         *fixinc/{fixincl.x|inclhack.sh}: regen
24846
24847 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
24848
24849         * expr.c (expand_expr): STRIP_NOPS before checking against
24850         MAX_INTEGER_COMPUTATION_MODE
24851         (check_max_integer_computation_mode): Likewise.
24852
24853 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
24854
24855         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
24856
24857 1999-06-22  Jim Wilson  <wilson@cygnus.com>
24858
24859         * expr.c (store_expr): When target is a promoted subreg, return a
24860         promoted subreg as a result.
24861
24862 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
24863
24864         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
24865         coding standards.
24866         (dwarf2out_define): Mark unused parameters appropriately.
24867         (gen_unspecified_parameters_die): Ditto.
24868         (gen_subprogram_die): Fix signed/unsigned warnings.
24869         (gen_variable_die): Ditto.
24870
24871 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
24872
24873         * fixinc/inclhack.def(end_else_label): combined else_label
24874         and endif_label and fixed the sed expression.
24875         *fixinc/{fixincl.x|inclhack.sh}: regen
24876
24877 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
24878
24879         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
24880         'x' when handling non-offsettable addresses
24881
24882 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
24883
24884         * final.c (shorten_branches): Don't try to split an insn that has
24885         been deleted.
24886
24887 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
24888
24889         * config/mips/mips.c (symbolic_expression_p): New function.
24890         (mips_select_rtx_section): Put symbolic expressions in the
24891         data section, not the read-only data section.
24892
24893 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
24894
24895         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
24896
24897 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
24898
24899         * collect2.c (main): Log frame table count.
24900         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
24901         (scan_prog_file) [COFF]: Handle frame tables.
24902
24903         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
24904         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
24905         * alpha/elf.h: Undef them again.
24906         * alpha/vms.h: Remove their definitions.
24907
24908 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24909
24910         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
24911         remove the clobber of r0 and change the REG_UNUSED note to
24912         REG_INC.
24913
24914 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
24915
24916         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
24917         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
24918         fits in HOST_WIDE_INT and one uses union to access a long constant
24919         as double.
24920
24921 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
24922
24923         * sparc.c (sparc_override_options): Don't allow profiling for
24924         code models other than medlow.
24925         (sparc_function_profiler): New function from old FUNCTION_PROFILER
24926         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
24927         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
24928         (sparc_block_profiler): Likewise.
24929         (sparc_function_block_profiler_exit): Likewise.
24930         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
24931         (FUNCTION_BLOCK_PROFILER): Likewise.
24932         (BLOCK_PROFILER): Likewise.
24933         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
24934         (MCOUNT_FUNCTION): New.
24935         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
24936         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
24937         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
24938         (MCOUNT_FUNCTION): New.
24939         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
24940         (BLOCK_PROFILER): Delete.
24941         (MCOUNT_FUNCTION): New.
24942
24943 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
24944
24945         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
24946
24947 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
24948
24949         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24950         Add the macros.
24951
24952         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24953         Ditto.
24954
24955         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24956         Ditto.
24957
24958         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24959         Ditto.
24960
24961 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
24962
24963         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
24964         types.
24965
24966 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
24967
24968         * i386/djgpp.h (LIB_SPEC): New.
24969         (STARTFILE_SPEC): New.
24970
24971         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
24972
24973 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
24974
24975         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
24976         compiler flags.
24977
24978         * system.h (WSTOPSIG): New macro.
24979
24980 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24981
24982         * c-pragma.c (push_alignment): Don't ignore alignments greater than
24983         4 bytes.
24984         (insert_pack_attributes): Take into account member natural
24985         alignment.
24986
24987         * i386/winnt.c (exports_head): New static variable.
24988         (i386_pe_record_exported_symbol): New function.
24989         (i386_pe_asm_file_end): Use.
24990         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
24991         symbols to be emitted at end of assembly.
24992         (ASM_DECLARE_OBJECT_NAME): Likewise.
24993         (ASM_DECLARE_FUNCTION_NAME): Likewise.
24994
24995         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
24996         -iwithprefix.
24997
24998 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
24999
25000         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
25001         in last change.
25002
25003 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
25004
25005         * haifa-sched.c (sched_analyze_1): Use free_list instead of
25006         zapping reg_last_uses directly.
25007         (sched_analyze_2, sched_analyze_insn): Likewise.
25008         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
25009
25010 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
25011
25012         * rs6000.md (movdf_hardfloat32): Use worst case insn length
25013         attributes for cases 1 and 2.
25014
25015 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
25016
25017         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
25018         instead of set.
25019
25020 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
25021
25022         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
25023
25024 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
25025
25026         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
25027         PIC_OFFSET_TABLE_REGNUM for general alloaction.
25028         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
25029         must be stacked if it is used for PIC accesses.
25030         * arm.c (use_return_insn): Handle PIC register specially.
25031         (output_return_instruction): Likewise.
25032         (output_func_{prologue,epilogue}): Likewise.
25033         (output_expand_prologue): Likewise.
25034
25035         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
25036         (*strsi_predec): Renamed from *strqi_predec.
25037         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
25038         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
25039
25040         * arm.c (arm_override_options): Remove warning about PIC code
25041         not being supported.
25042
25043 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
25044
25045         * rs6000.c (find_addr_reg): New function.
25046         * rs6000.h (find_addr_reg): Declare.
25047         (offsettable_addr_operand): Delete.
25048         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
25049         from and stores to GPRs.
25050
25051 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
25052
25053         * alpha.c (alpha_expand_block_move): Use get_insns rather than
25054         gen_sequence as argument to emit_no_conflict_block.
25055
25056 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25057
25058         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
25059         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
25060         *fixinc/fixincl.x: regen
25061         *fixinc/inclhack.sh: regen
25062
25063 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
25064
25065         * added support for -mpcrel (PC relative addressing for m68k)
25066         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
25067         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
25068         * m68k.c (print_operand_address): Handle 32-bit PIC case.
25069         (comments for general_src_operand): Add some explanation
25070         about EXTRA_CONSTRAINTS.
25071         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
25072         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
25073         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
25074         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
25075         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
25076         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
25077         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
25078         if not already set.
25079         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
25080         * m68k.h (TARGET_PCREL): New target flag.
25081         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
25082         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
25083         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
25084         contains a SYMBOL_REF.  Relax this constraint during reload, since
25085         we want to use the predicates, not reload's built-in concept of a
25086         valid memory address, to control what insns need reloading.
25087         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
25088         operands (essentially 'g', 'm', and 's' under normal circumstances).
25089         * m68k.c (print_operand): Cause printing of pc-relative addresses
25090         to include pc register.
25091         (print_operand_address): Ditto.
25092         (general_src_operand): Accept operands that are not only
25093         general_operands, but are also valid when used as a pc-relative
25094         source.
25095         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
25096         (memory_src_operand): Similar, for memory_operands.
25097         (pcrel_address): New predicate to accept the special case of a
25098         pc-relative address.
25099         * m68k.md (many patterns): Rewrite common SImode, HImode, and
25100         QImode insns to accept *_src_operand instead of *_operand where
25101         pc-relative operands can fit.  For example, a pc-relative operand
25102         can be used as a memory source operand for addsi3, but not as a
25103         memory destination.
25104         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
25105
25106 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
25107
25108         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
25109         .thumb_set pseudo op to mark aliases of thumb functions.
25110
25111 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
25112
25113         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
25114         preference to ASM_OUTPUT_DEF, if it is defined.
25115
25116         * tm.texi: Document new, optional target macro
25117         ASM_OUTPUT_DEF_FROM_DECLS.
25118
25119 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25120
25121         * fixincludes: ISCNTL patch
25122         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
25123         (dgux_int_varargs): new for DG/UX
25124         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
25125
25126 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
25127
25128         * invoke.texi (ia32 options): Fix typo.
25129
25130 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25131
25132         * loop.c (strength_reduce): When doing biv->giv conversion, update
25133         reg note of NEXT->insn.
25134
25135 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
25136
25137         * loop.c (move_movables): Note issues with replacing REGs with
25138         SUBREGs.
25139         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
25140
25141 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
25142
25143         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
25144
25145         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
25146         the reference to `mcount' was not correct for the ELF on FreeBSD.
25147
25148 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25149
25150         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
25151         reg_biv_class.
25152
25153         (recombine_givs): Set ix field after sorting.
25154
25155 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
25156
25157         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
25158         to safe to extract a subword out of a REG.
25159
25160 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25161
25162         * sh.md (mulsi3): Don't add a no-op move at the end.
25163
25164 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25165
25166         * cse.c (cse_insn): Don't put hard register source into tables for
25167         the last insn of a libcall.
25168
25169 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25170
25171         * loop.c (strength_reduce): Insert sets of derived givs at every
25172         biv increment, even if it's the only one.
25173
25174 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
25175
25176         * dwarfout.c (add_incomplete_type): New fn.
25177         (output_type): Call it.
25178         (retry_incomplete_types): New fn.
25179         (dwarfout_finish): Call it.
25180
25181         From Eric Raskin <ehr@listworks.com>:
25182         (output_type): Output types for bases.
25183
25184 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
25185
25186         * mips.c (mips_output_conditional_branch): Add `break'
25187         between `default' label and `close braces'.
25188
25189 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
25190
25191         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
25192         specifications and make it realistic.
25193         (LIB_SPEC): Likewise.
25194
25195 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
25196
25197         * config/mips/mips.c (mips_secondary_reload_class): Check for
25198         (PLUS (SP) (REG)) and return appropriate register class.
25199         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
25200         Handle (PLUS (SP) (REG)).
25201         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
25202         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
25203         of emit_insn for tablejump.
25204
25205 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
25206
25207         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
25208         asm_fprintf format string by itself.
25209         (output_function_profiler): Likewise.
25210
25211 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
25212
25213         * combine.c (simplify_logical, case AND): Only call
25214         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
25215         or the constant is positive.
25216
25217 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
25218
25219         * configure.in: Fix typo in rs6000-ibm-aix4 case.
25220         * configure: Regenerate.
25221
25222 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
25223
25224         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
25225         require a sub-version #.
25226         * configure: Rebuilt.
25227
25228 1999-06-14  Robert Lipe  (robertlipe@usa.net)
25229
25230         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
25231
25232 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
25233
25234         * c-typeck.c (process_init_element): Detect excess elements in
25235         char array initializer.
25236
25237 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
25238
25239         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
25240
25241 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
25242
25243         * invoke.texi (Option Summary): Add -fpermissive flag.
25244
25245 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
25246
25247         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
25248         that require PIC code sequences.
25249
25250 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
25251
25252         * configure.in: Add new target: thumb-elf.
25253         * configure: Regenerate.
25254         * config/arm/t-thumb-elf: New file: Makefile fragment for
25255         thumb-elf build.
25256         * config/arm/telf.h: New file: Header file for thumb-elf
25257         build.
25258
25259 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
25260
25261         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
25262         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
25263         initializers is some circumstances.
25264
25265         * fixinc/inclhack.def (endif_label): Add additional selector for
25266         more bogus stuff after #endif statements.
25267         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
25268
25269 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25270
25271         * i386/cygwin.h (SET_ASM_OP): Define.
25272
25273 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25274
25275         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
25276
25277 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25278
25279         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
25280         latter.
25281
25282         * sh.md (ic_invalidate_line_i): Remove second alternative.
25283
25284 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25285
25286         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
25287         test for the presence of valid prototypes.  Delete bypass expr.
25288         (ioctl_fix_ctrl): Correct the selection expression.
25289         (no_double_slash): Correct quoting rules
25290         *fixinc/fixincl.x: regen
25291         *fixinc/inclhack.sh: regen
25292
25293 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
25294
25295         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
25296
25297 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25298
25299         * rs6000.md (movsi_got_internal_mem): Delete.
25300         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
25301         (GOT_TOC_REGNUM): Delete.
25302         (PIC_OFFSET_TABLE_REGNUM): Define.
25303         (FINALIZE_PIC): Disable.
25304         * rs6000.c (rs6000_got_register): New code for fixed pic register.
25305         (rs6000_replace_regno): Delete.
25306         (rs6000_finalize_pic): Likewise.
25307         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
25308
25309 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25310
25311         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
25312         is a note; use <= for the compare; advance P while it is
25313         a NOTE.
25314
25315 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
25316
25317         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
25318         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
25319
25320         * varasm.c (remove_from_pending_weak_list): Verify t->name
25321         is non-NULL before passing it to strcmp.
25322
25323 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25324
25325         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
25326         the typed arguments are not part of a comment
25327         (ioctl_fix_ctrl): Added a purpose comment
25328         *fixinc/fixincl.x: regenerate
25329         *fixinc/inclhack.sh: regenerate
25330
25331 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
25332
25333         * invoke.texi: Add C4x invocation docs.
25334
25335 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
25336
25337         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
25338         Define new macros.
25339         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
25340         TARGET_EXPOSE_LDP.
25341         (c4x_legitimize_reload_address): New function.
25342         * config/c4x/c4x.md: Update docs.
25343
25344 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
25345
25346         * fixincludes: Avoid removing '.'.
25347         * fixinc/fixinc.svr4: Likewise.
25348         * fixinc/fixinc.winnt: Likewise.
25349         * fixinc/inclhack.tpl: Likewise.
25350         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
25351
25352 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25353
25354         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
25355         pattern.
25356         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
25357
25358 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25359
25360         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
25361         correctly.
25362
25363 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
25364
25365         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
25366         * configure: Regenerate.
25367
25368 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
25369
25370         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
25371         values.
25372
25373 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
25374
25375         * fixinc/inclhack.def (avoid_bool): Also catch
25376         "typedef [unsigned] int bool".
25377         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
25378
25379         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
25380         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
25381         * configure: Rebuilt.
25382
25383 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
25384
25385         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
25386         such that we can override its definitions if necessary.
25387         (CPP_SPEC): New define.  Support processor specific predefines via
25388         %(cpp_cpu).
25389         (CC1_SPEC): New define.  Support processor specific compiler
25390         options via %(cc1_cpu).
25391         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
25392         -static.
25393
25394 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25395
25396         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
25397         between sed's -e flag, and the open-quote following it.
25398         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
25399
25400 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
25401                           Jeffrey A Law  (law@cygnus.com)
25402
25403         * varasm.c (assemble_start_function): Remove the function
25404         from the pending weak decls list when we define a function.
25405         (assemble_variable): Similarly for variables.
25406         (weak_finish): Ignore items on the list with a NULL name.
25407         (remove_from_ending_weak_list); New function to "remove" an item
25408         from the pending weak declarations list.
25409
25410 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
25411
25412         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
25413
25414 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
25415
25416         * c-lex.c (GETC): Redefine to call getch.
25417         (UNGETC): Redefine to call put_back.
25418         (putback_buffer): New structure type.
25419         (putback): New static structure.
25420         (getch): New function.
25421         (put_back): New function.
25422         (yylex): Replace unused bytes from bad multibyte character.
25423
25424 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
25425
25426         * cpplib.c (do_define): Cast `alloca' return value.
25427         (do_include, do_undef, do_pragma): Likewise.
25428         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
25429         values.
25430         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
25431         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
25432
25433 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
25434
25435         * sparc.md (abstf2): This should be an expand.
25436         (split after abstf2_notv9): Fix mode.
25437         (abstf2_hq_v9): New pattern.
25438         (abstf2_v9): Only use when no hard quad.
25439         (absdf2_v9): Fix if target is not the same as source.
25440         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
25441         Add correct output constraints.
25442
25443 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
25444
25445         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
25446         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
25447
25448 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
25449
25450         * mips.h (mips_output_conditional_branch): New function.
25451         (mips_adjust_insn_length): Likewise.
25452         (ASSEMBLER_SCRATCH_REGNUM): New macro.
25453         (ADJUST_INSN_LENGTH): Likewise.
25454         * mips.c (print_operand): Add `F' and `W' for floating-point
25455         comparison opcodes.
25456         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
25457         are now in bytes.
25458         (mips_adjust_insn_length): New function.
25459         (mips_output_conditional_branch): New function.
25460         * mips.md (length): Adjust attribute definition to handle
25461         conditional branches.  Change lengths to bytes, rather than
25462         instructions throughout.  Remove length attribute from
25463         instructions whose length is four bytes, and rely on the default
25464         instead.
25465         (dslot): Fix typo in comment.
25466         Reword conditional branch patterns to use
25467         mips_output_conditional_branch.
25468
25469 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
25470
25471         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
25472         (LIB_SPEC): Likewise.
25473         Link with -lprof1_r for -g/-pg.
25474
25475 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
25476
25477         * loop.c (check_dbra_loop): Fix change of Jan 19.
25478
25479 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
25480
25481         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
25482         (STARTFILE_SPEC):  Define, override the svr4.h version.
25483         (ENDFILE_SPEC):  Likewise.
25484
25485 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
25486
25487         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
25488         * fixinc/fixincl.x: Regenerated.
25489         * fixinc/inclhack.sh: Regenerated.
25490
25491 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25492
25493         * sh.c (barrier_align): Don't return early for normal branch/barrier
25494         when optimizing for SH2.
25495
25496 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
25497
25498         * i386/udk.h (LINK_SPEC): Correct linker search path for
25499         system libraries.
25500
25501 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25502
25503         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
25504         (braf_label_ref_operand): Delete.
25505         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
25506         * sh.md (casesi_jump_2): Operand1 is now the inside of a
25507         label_ref, and has no predicate.
25508         The patten has a predicate to guard against invalid substitutions.
25509         (dummy_jump): Delete.
25510         (casesi): Update use of casesi_jump_2.
25511
25512 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25513
25514         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
25515         *fixinc/fixincl.x: regenerate
25516         *fixinc/inclhack.sh: regenerate
25517
25518 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
25519
25520         * dwarf2out.c (add_incomplete_type): New fn.
25521         (gen_struct_or_union_type_die): Call it.
25522         (retry_incomplete_types): New fn.
25523         (dwarf2out_finish): Call it.
25524
25525 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
25526
25527         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
25528         current block starts with a CODE_LABEL and ends with a CALL and
25529         we can not find all the argument setup instructions for the CALL.
25530
25531 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
25532
25533         Revert this change:
25534         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
25535         something is a candidate for optimize_bit_field_compare.
25536
25537 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25538
25539         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
25540
25541 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
25542
25543         * alpha.c (override_options): Thinko in last patch.
25544
25545         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
25546         (LIB_SPEC): Recognize -pthread.
25547
25548 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
25549
25550         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
25551         definition in config/arm/coff.h
25552         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
25553
25554 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
25555
25556         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
25557         fixes that need "file=xxx\n" prepended before invocation
25558         (start_fixer - new): starting the fixer process is complex enough
25559         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
25560         (process): uses the new routine; omit usage of putenv()
25561         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
25562         * fixinc/fixincl.x: regenerate
25563
25564 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
25565
25566         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
25567         and version #s (1.1 -> 2.96) as needed.
25568         * README.g77: Kill way out of date file in the toplevel directory.
25569
25570 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
25571
25572         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
25573         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
25574         * configure: Rebuilt.
25575         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
25576         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
25577         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
25578         (SWITCH_TAKES_ARG): Likewise.
25579         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
25580         * config/t-freebsd: Moved from config/i386/ so it can used for all
25581         FreeBSD targets.
25582
25583 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
25584
25585         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
25586
25587 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
25588
25589         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
25590         * configure: Rebuilt.
25591
25592 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
25593
25594         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
25595         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
25596         * rs6000/rs6000.c (rs6000_file_start): Use putc.
25597         (rs6000_output_load_toc_table): Same.
25598         (output_prolog, output_mi_thunk): Same.
25599         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
25600         (ASM_GLOBALIZE_LABEL): Use putc.
25601
25602 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
25603
25604         * alpha.md (reload_*_help): New patterns and splitters.
25605         (reload_*): Use them.
25606         (mov[qh]i): Likewise.
25607
25608 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
25609
25610         * cccp.c (handle_directive): Handle backslash-newlines in quoted
25611         strings correctly.
25612
25613 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
25614
25615         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
25616
25617 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
25618
25619         * flow.c (mark_regs_live_at_end, insn_dead_p,
25620         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
25621         and HARD_FRAME_POINTER_REGNUM special treatment if reload
25622         hasn't run or the frame pointer is needed.
25623         * haifa-sched.c (attach_deaths): Likewise.
25624         * sched.c (attach_deaths): Likewise.
25625
25626 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
25627
25628         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
25629         calculate_can_reach_end returns nonzero.
25630
25631         * configure.in (native gas tests): Search for an assembler in the
25632         same manner that the installed compiler will.
25633         * configure: Rebuilt.
25634         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
25635
25636         * alias.c (find_base_term): Improve handling of addresses
25637         constructed from binary operations.
25638
25639 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
25640
25641         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
25642
25643 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
25644
25645         * function.h (cleanup_label, frame_offset): Declare.
25646         (tail_recursion_label, tail_recursion_reentry): Likewise.
25647         (arg_pointer_save_area, rtl_expr_chain): Likewise.
25648         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
25649         (tail_recursion_label, tail_recursion_reentry): Likewise.
25650         (arg_pointer_save_area, rtl_expr_chain): Likewise.
25651
25652 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
25653
25654         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
25655         defined.
25656         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
25657         (MAX_OFILE_ALIGNMENT): Define.
25658
25659 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
25660
25661         * fixincl.c: Replace local include scheme with #includes of
25662         gansidecl.h and system.h.
25663         * procopen.c:  Likewise.
25664         * server.c:  Likewise.
25665
25666 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
25667
25668         * i386/t-dgux (EXTRA_PARTS): Add crti.o
25669         (crti.o): Add build rule and dependencies.
25670         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
25671
25672 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25673
25674         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
25675         (LIB_LINUX_SPEC): Likewise.
25676         (LIB_LINUX_SPEC): Add support for -pthread
25677         (CPP_OS_LINUX_SPEC): Likewise.
25678         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
25679         specified.
25680
25681 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
25682
25683         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
25684         conditional move.
25685         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
25686         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
25687         for IEEE math and CC_FCOMI.
25688         (put_jump_code): No IEEE if CC_FCOMI is set.
25689
25690 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
25691
25692         * fold-const.c (fold_truthop): Make the field reference unsigned
25693         when converting a single bit compare.
25694
25695 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25696
25697         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
25698
25699 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
25700
25701         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
25702         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
25703         version did.
25704
25705         * reload.c (push_reload): Do not call remove_address_replacements
25706         when presented with identical optional reloads.
25707
25708 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
25709
25710         * alpha.h (MASK_FIX, TARGET_FIX): New.
25711         (MASK_*): Reorganize constants.
25712         (CPP_AM_FIX_SPEC): New.
25713         (TARGET_SWITCHES): Add FIX.
25714         (EXTRA_SPECS): Likewise.
25715         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
25716         (SECONDARY_MEMORY_NEEDED): Likewise.
25717         (REGISTER_MOVE_COST): Likewise.
25718         * alpha.c (override_options): Add FIX support.  Always use
25719         ALPHA_TP_PROG for ev6.
25720         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
25721         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
25722         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
25723
25724 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
25725
25726         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
25727         something is a candidate for optimize_bit_field_compare.
25728
25729 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
25730
25731         * gcc.texi (Passes): Document branch-shortening.
25732         * invoke.texi (Debugging Options): Document the fact that `-dp'
25733         outputs length information for instructions.
25734
25735 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
25736
25737         * flow.c: Revert previous delta.
25738
25739 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
25740
25741         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
25742         FRAME_POINTER_REGNUM.
25743         (mark_set_1): Ditto.
25744         (mark_used_regs): Ditto.
25745
25746 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
25747
25748         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
25749         (GOT_PCREL): New macro.  Define to 1 if not already defined.
25750         * arm/elf.h (GOT_PCREL): Define to 0.
25751         * arm.c (arm_finalize_pic): Take into account the setting of
25752         GOT_PCREL.
25753
25754 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
25755
25756         * output.h (STRIP_NAME_ENCODING): Provide default definition.
25757         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
25758
25759         * flow.c (mark_set_1): Do not record BLKmode stores as dead
25760         store elimination candidates.
25761
25762 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
25763
25764         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
25765         TARGET_GAS.
25766
25767 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
25768
25769         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
25770         Add use of x-aix41-gld.
25771
25772 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
25773
25774         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
25775         (ASM_OUTPUT_DESTRUCTOR): Define.
25776
25777 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
25778
25779         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
25780         last CODE_LABEL in a loop if we have previously passed a jump
25781         to the top of the loop.
25782
25783 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
25784
25785         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
25786         applying Philip's patch.
25787
25788 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
25789
25790         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
25791         are not VAR_DECLs.
25792
25793 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
25794
25795         * loop.c (strength_reduce): Grow reg_single_usage as needed.
25796
25797 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
25798
25799         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
25800         Also remove a useless comment.
25801
25802 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
25803
25804         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
25805
25806 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
25807
25808         * collect2.c (main): Only generate import or export file and add
25809         to link arguments if non-empty.  Use xmalloc not alloca.
25810         (write_{export,import}_file): Delete.
25811         (write_aix_file): New function.
25812         (locatelib): Use xmalloc not malloc.
25813         (GCC_OK_SYMBOL): Do not check type if aix64.
25814
25815 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
25816
25817         Based on patch by Scott Bambrough and Pat Beirne:
25818         * config/arm/arm.c (making_const_table): New variable.
25819         * config/arm/arm.h (making_const_table): Declare.
25820         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
25821         appropriate.
25822         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
25823         Keep track of when we are building the constant table.
25824
25825 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
25826
25827         * config/arm/arm.c (arm_override_options): Fix erroneous warning
25828         message.
25829
25830 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
25831
25832         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
25833         defined.
25834
25835 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
25836
25837         * tm.texi (FUNCTION_ARG): Correct description of a stack element
25838         in a PARALLEL.
25839
25840 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
25841
25842         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
25843
25844 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25845
25846         * rs6000.c (output_mi_thunk): Enable full support again.
25847
25848 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25849
25850         * sh.h (BRANCH_COST): Define.
25851
25852 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
25853
25854         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
25855
25856 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
25857
25858         * function.c (assign_stack_local): Align stack slot propertly.
25859         (assign_outer_stack_local): Likewise.
25860
25861 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
25862
25863         * expr.h (lang_expand_constant): Declare.
25864         * toplev.c (lang_expand_constant): Define it.
25865         * varasm.c (output_constant): Use it.
25866
25867 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25868
25869         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
25870         Change function definitions to K&R style.
25871
25872 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25873
25874         * fixinc/fixincl.c: We must not ignore SIGCLD now.
25875
25876 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
25877
25878         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
25879         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
25880         (several places): omit static initialization
25881         (process): use single fd, since only the read fd is used
25882         * fixinc/gnu-regex.c: define 'const' away, if not supported
25883         * fixinc/procopen.c(several places): omit static initialization
25884         * fixinc/server.c: define 'volitile' away, if not supported
25885
25886 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
25887
25888         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
25889         asm_fprintf and %L to generate the label name.
25890         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
25891         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
25892
25893 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
25894
25895         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
25896         insn for a conditional jump can not be found.
25897
25898 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
25899
25900         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
25901         on variables in specific sections other than .sbss and .sdata.
25902
25903 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
25904
25905         * stmt.c (expand_return): Call start_cleanup_deferral and
25906         end_cleanup_deferral around conditional code.
25907
25908 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25909
25910         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
25911         filename lists.  Utilizes new "krstr" AutoGen function.
25912         * fixinc/fixincl.x: Rebuilt.
25913
25914 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
25915
25916         * i386.c (output_float_compare): Avoid GNU-C extensions.
25917
25918 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
25919
25920         * version.c: Bump to distinguish mainline tree from the
25921         gcc-2.95 branch.
25922
25923 See ChangeLog.1 for earlier changes.
25924
25925