OSDN Git Service

* jump.c (redirect_exp_1): Rework from old redirect_exp. Never
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-04-26  Richard Henderson  <rth@cygnus.com>
2
3         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
4         commit change group changes.
5         (invert_exp_1): Similarly.
6         (redirect_exp, invert_exp): Use them.
7         (redirect_jump_1): New.
8         (invert_jump_1): New.
9         (jump_optimize_1): Remove code subsumed by condexec.c.
10         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
11
12 2000-04-26  Richard Henderson  <rth@cygnus.com>
13
14         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
15
16         * genconfig.c (main): Set all HAVE_foo to 1.
17
18         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
19
20 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
21
22         * invoke.texi: Document -fssa flag.
23
24 2000-04-26  Richard Henderson  <rth@cygnus.com>
25
26         * flow.c (count_reg_sets_1): Remove.
27         (count_reg_sets, count_reg_references): Remove.
28         (recompute_reg_usage): Implement with update_life_info.
29         Reallocate life data.
30
31 2000-04-26  Richard Henderson  <rth@cygnus.com>
32
33         * flow.c (update_life_info): Consider blocks null to mean the
34         universal set.
35         (calculate_global_regs_live): Likewise.
36         (life_analysis): Do that instead of collecting all_blocks.
37
38 2000-04-26  Richard Henderson  <rth@cygnus.com>
39
40         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
41         a still-valid conditional jump.
42
43 2000-04-26  Richard Henderson  <rth@cygnus.com>
44
45         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
46
47         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
48         * flow.c (calculate_loop_depth): Remove.
49         * output.h (calculate_loop_depth): Don't declare.
50         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
51         inline; run estimate_probability at the same time.
52
53 2000-04-26  Neil Booth  <NeilB@earthling.net>
54
55         * cpplib.h: "~=" is not a single pp-token.
56         * cpplex.c: Correct commentary.
57
58 2000-04-26  Richard Henderson  <rth@cygnus.com>
59
60         * flow.c (mark_set_1): New arguments code and flags; update all
61         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
62         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
63         loop_depth when optimizing for size.  Do new_dead update after
64         emitting REG_UNUSED notes.  Merge mark_set_reg code.
65         (mark_set_reg): Remove.
66         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
67         arrange to not emit REG_UNUSED notes.
68
69 2000-04-26  Richard Henderson  <rth@cygnus.com>
70
71         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
72         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
73
74 2000-04-26  Richard Henderson  <rth@cygnus.com>
75
76         * flow.c (propagate_one_insn): Break out from propagate_block.
77         (init_propagate_block_info): Likewise.
78         (free_propagate_block_info): Likewise.
79         (propagate_block): Use them.  Export.
80         * basic-block.h: Declare them all.
81
82 2000-04-26  Richard Henderson  <rth@cygnus.com>
83
84         * basic-block.h (life_analysis): Declare here ...
85         * output.h: ... not here.
86         * flow.c (life_analysis): Remove nregs parameter; replace
87         remove_dead_code with flags.  Remove ssa dead code check.
88         Only init alias analysis if we'll use it.
89         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
90         * ssa.c (convert_to_ssa): Likewise.
91         (convert_from_ssa): Likewise.
92         * toplev.c (rest_of_compilation): Likewise.
93
94 2000-04-26  Richard Henderson  <rth@cygnus.com>
95
96         * flow.c (flow_delete_block): Rename from delete_block.  Export.
97         * basic-block.h (flow_delete_block): Declare.
98
99 2000-04-26  David S. Miller  <davem@redhat.com>
100
101         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
102         taking a PATTERN of it.
103
104 2000-04-26  <NeilB@earthling.net>
105
106         * cpplex.c (spell_other, spell_char): Remove.
107         (SPELL_CHAR): New.
108         (token_spelling, trigraph_map): Use unsigned chars.
109         (_cpp_lex_line): Tidy up the switch statement.
110         * cpplib.h: Implement spell_char with spell_string.
111         (C): New.
112
113 2000-04-26  <RodneyBrown@pmsc.com>
114         
115         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
116         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
117
118 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
119
120         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
121         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
122         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
123         dwarf2out_return_save, dwarf2out_return_reg,
124         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
125         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
126         gen_compile_unit_die, dwarf2out_init): Constify a char*.
127
128         * dwarf2out.h (dwarf2out_init): Likewise.
129
130         * dwarfout.c (filename_entry, primary_filename, last_filename,
131         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
132
133         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
134         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
135         dwarf2out_return_reg): Likewise.
136
137 2000-04-26  Andreas Jaeger  <aj@suse.de>
138
139         * extend.texi (Function Attributes): Fix description of pure
140         attribute.
141
142 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
143
144         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
145         before calling rest_of_compilation.
146
147 2000-04-26  Andreas Jaeger  <aj@suse.de>
148
149         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
150         last patch.
151
152 2000-04-25  Richard Henderson  <rth@cygnus.com>
153
154         * cse.c (cse_insn): Emit barrier after unconditional jump.
155
156         * calls.c (expand_call): Disable tail call generation once
157         rtx_equal_function_value_matters is false.
158
159         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
160         like EDGE_EH edges.
161
162 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
163
164         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
165
166         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
167
168         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
169         is the primary DIE for a member function.
170         (gen_decl_die): Call set_decl_origin_self here.
171         * dwarfout.c (output_decl): And here.
172         * integrate.c (output_inline_function): Not here.
173         Don't clear DECL_INLINE until after calling rest_of_compilation.
174         (set_decl_origin_self): No longer static.
175         * tree.h: Add prototype.
176         * toplev.c (note_deferral_of_defined_inline_function): Only write
177         out abstract instance for actual inlines.
178
179 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
180
181         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
182         EXTENDED_REGS only if TARGET_AM33.
183         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
184         SP_REGS to register allocation and reloading unless absolutely
185         necessary.
186         (movsi3): Remove special-case of adding non-constants to SP.
187
188 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
189
190         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
191         INCLUDES to search and does not provide any of its own.  Also it
192         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
193         parameters.  Also it does not call AC_DEFINE.
194         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
195         AC_DEFINE and provides for automatic entries for autoheader.
196         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
197
198         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
199         so we can pass -I flags and include gansidecl.h/system.h in this
200         test.
201
202         * acconfig.h: Delete all NEED_DECLARATION_* entries.
203
204 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
205
206         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
207         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
208         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
209                 
210         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
211         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
212         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
213         for these macros.  Clean up spacing and linewraps.
214
215 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
216
217         * calls.c (expand_call): Use get_callee_fndecl.
218
219         * print-tree.c (print_node): Print the chain of an _EXPR.
220
221 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
222                           Jim Wilson  <wilson@cygnus.com>
223                           Andrew Haley  <aph@cygnus.com>
224         
225         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
226         and gp save/restore problems.
227         * config/ia64/crtend.asm: Add IA-64 unwind support.
228         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
229         in fr_pad_size calculation.
230         (save_restore_insns): Move PR save area.  Correct uses of
231         RTX_FRAME_RELATED_P.
232         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
233         (ia64_expand_epilogue): Add eh_epilogue support.
234         (ia64_function_prologue): Emit .prologue directive.
235         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
236         (ia64_override_options): Set init_machine_status and
237         mark_machine_status.
238         (rtx_needs_barrier): Handle bsp reads and writes.
239         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
240         New static variables.
241         (process_set, process_for_unwind_directive): New functions.
242         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
243         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
244         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
245         macros.
246         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
247         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
248         (struct machine_function): Define.
249         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
250         
251 2000-04-25  Bruce Korb  <bkorb@gnu.org>
252
253         * fixinc/Makefile.in: make the removal of old programs more
254         robust
255         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
256         install-bin and install-sh
257
258 2000-04-25  Nick Clifton  <nickc@cygnus.com>
259
260         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
261         defined, define to return zero.
262         (function_cannot_inline_p): If a function has any target
263         specific attributes, then use the macro
264         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
265         whether it can be inlined.  If it cannot, issue a suitable
266         explanation.
267
268         * tm.texi: Add a new node 'Inlining' to document the new macro
269         FUNCTION_ATTRIBUTE_INLINABLE_P. 
270
271 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
272
273         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
274         commentary. 
275
276 2000-04-25  Neil Booth  <NeilB@earthling.net>
277
278         Restore previous patch, plus the following fixes:
279
280         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
281         flags, not CPP_OPEN_PAREN.
282         * cpplex.c (expand_token_space, init_token_list,
283         cpp_free_token_list): Put the dummy token at list->tokens[-1].
284         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
285
286 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
287
288         * config/i386/freebsd.h (INT_ASM_OP): Define.
289
290 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
291
292         * loop.c (strength_reduce): Fix typo in the last checkin.
293
294 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
295
296         * stor-layout.c (finalize_record_size): Simplify to use existing
297         functions.
298         (compute_record_mode): No longer static.
299         * tree.h (compute_record_mode): New declaration.
300
301 2000-04-25  Neil Booth  <NeilB@earthling.net>
302
303         * Revert my patch below until cause of build failures
304         determined.
305
306 2000-04-25  Richard Henderson  <rth@cygnus.com>
307
308         * combine.c (combine_instructions): Add missing argument
309         to try_combine.
310
311         * toplev.c (rest_of_compilation): Delay sibcall optimization
312         until after emit_eh_context.
313
314 2000-04-24  Nick Clifton  <nickc@redhat.com>
315
316         * combine.c (combine_instructions): Do not try to combine a
317         sequence of insns when the second insn has been replaced by a
318         note.
319
320 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
321
322         * gcc.c (load_specs): New static function.
323         (read_specs): Use it.
324
325         * gcc.c (lookup_compiler): Make multiple passes for case
326         insensitive filesystems.
327
328 2000-04-24  Neil Booth  <NeilB@earthling.net>
329
330         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
331         * cpphash.h (_cpp_check_directive): new.
332         * cpplex.c (handle_newline, cpp_free_token_list,
333         init_trigraph_map, trigraph_ok, trigraph_replace,
334         backslash_start, skip_block_comment, skip_line_comment,
335         skip_whitespace, parse_name, parse_number, parse_string,
336         copy_comment, _cpp_lex_line, spell_char, spell_string,
337         spell_comment, spell_name, spell_other, _cpp_lex_file,
338         _cpp_output_list): new.
339         (expand_name_space): take length argument.
340         (init_token_list): add comment list initialisation.
341         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
342         instead of HSPACE_BEFORE.
343
344         * cpplib.c (_cpp_check_directive): new
345         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
346         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
347         (HSPACE_BEFORE): delete.
348         (TTYPE_TABLE): rearrange.
349         (struct cpp_toklist): update.   
350
351 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
352
353         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
354         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
355         argument form of AC_DEFINE.
356
357         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
358         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
359         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
360         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
361         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
362
363         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
364
365 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
366
367         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
368         deduced.h): Use -isystem, not -I, for including system headers.
369
370 2000-04-24  Nick Clifton  <nickc@cygnus.com>
371
372         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
373         the source register is the frame pointer or arg pointer.
374         (addsi3_small_int): Disallow if source register is the frame
375         pointer or arg pointer.
376
377 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
378
379         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
380         call to AC_MSG_RESULT.
381
382 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
383
384         * invoke.texi: Correct grammatical errors, document
385         -fno-gnu-keywords as identical to -fno-asm for C++.
386
387 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
388
389         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
390         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
391         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
392         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
393         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
394
395         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
396         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
397         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
398         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
399         new macros names.
400
401 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
402
403         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro. 
404         (pop_alignment): Likewise.
405         (handle_pragma_token): Likewise.
406
407 2000-04-24  Robert Lipe <robertlipe@usa.net>
408
409         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
410
411 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
412
413         * combine.c (try_combine): Update reg_nonzero_bits of
414         newi2pat before newpat.
415
416 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
417
418         * loop.c (strength_reduce): Simplify test to INSN_P.
419         (record_giv): Attempt to simplify the add value, use CONSTANT_P
420         expressions instead of CONST_INT.
421         (express_from_1): Likewise.
422
423 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
424
425         * regs.h (reg_n_max): Don't declare.
426         * flow.c (reg_n_max): Don't define.
427         * regclass.c (renumber): Don't initialize to zero.
428         (regno_allocated): Likewise.
429         (reg_n_max): Define.
430         (allocate_reg_info): Don't initialize unnecessarily.
431         
432 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
433
434         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
435         and blockage_p in the newly allocated attribute.
436
437 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
438
439         * config/mn10300/mn10300.md (addsi): `inc4' on address
440         registers does not modify cc, but `inc' on an extended
441         register does.
442
443 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
444
445         * reload.c (find_equiv_reg): Checks all valueno regs
446         as a reload_reg_p regs.
447
448 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
449
450         * cpphash.c (collect_objlike_expansion): Add sanity check.
451         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
452         the buffer is the empty string, return.  Mark __DATE__ and
453         __TIME__ as XCONST nodes, not MCONST.
454         (_cpp_macroexpand): Avoid pushing an empty buffer.
455         (funlike_macroexpand): Don't pop token_buffer here.
456
457 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
458
459         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
460         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
461         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
462         (REGNO_OK_FOR_BASE_P): Define in terms of them.
463         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
464         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
465         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
466
467 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
468
469         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
470         constant MULT givs.
471
472 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
473
474         * cpphash.h (struct definition): Move file, line, col members...
475         (struct hashnode): ... here.  Also add 'disabled' flag.
476         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
477         T_IDENTITY.  Remove T_DISABLED.               
478         Update prototypes.
479
480         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.     
481         (collect_expansion): Split into collect_objlike_expansion and
482         collect_funlike_expansion.                                 
483         (_cpp_macroexpand): Split out scan_arguments, stringify, and
484         funlike_macroexpand.
485         (_cpp_compare_defs): Rename compare_defs, make static.
486         (_cpp_make_hashnode): Initialize hp->disabled.  
487         (macro_cleanup): Adjust for new token types.  Clear
488         m->disabled.
489         (_cpp_create_definition): Move code here to determine what     
490         sort of macro it is, and code to check for redefinitions, from
491         do_define.  Implement a few simple cases without creating a   
492         full DEFINITION.
493         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
494         Handle the simple cases.                                 
495         (push_macro_expansion): Set buf->has_escapes and hp->disabled
496         here.
497
498         * cppinit.c (builtin_array): Change MCONST to XCONST
499         everywhere.
500         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
501         fix check for disabled and function-like macros.
502         * cpplib.c (do_define): Move most logic to
503         _cpp_create_definition.
504         (do_undef): Handle new special token types.
505
506 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
507
508         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
509         of CONSTANT_P for mult_val; always use validate_change to update insn.
510
511 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
512
513         * cpphash.c (trad_stringify, add_pat): New functions.
514         (collect_expansion): Restore support for -traditional syntax.
515         Use trad_stringify and add_pat.
516         (_cpp_macroexpand): Restore support for -traditional semantics.
517         * cpplex.c (_cpp_scan_line): Don't change space_before if we
518         get a COMMENT token.
519         (_cpp_lex_token): Provide COMMENT tokens to caller if
520         traditional and parsing_define_directive.
521         (skip_comment): Warn about // comments if -Wtraditional.
522         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
523         proper node type.
524         (do_undef): Don't warn about undefining EMPTY nodes.
525
526 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
527
528         * loop.c (strength_reduce): Fix biv removal code.
529
530 2000-04-22  Richard Henderson  <rth@cygnus.com>
531
532         * predict.c (estimate_probability): Examine both sides of
533         a branch for no exits.  Use 90% not 50% for predict taken.
534         Reorg for one copy of note generation code.
535
536 2000-04-22  Richard Henderson  <rth@cygnus.com>
537
538         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
539
540 2000-04-22  Richard Henderson  <rth@cygnus.com>
541
542         * diagnostic.c (init_output_buffer): Don't initialize format_args.
543         (output_clear): Likewise.
544         (output_printf): Use va_copy.
545         (vline_wrapper_message_with_location): Likewise.
546         (v_message_with_decl): Likewise.
547         (line_wrapper_printf): VA_START infor buffer.format_args directly.
548         * system.h (va_copy): Provide default implementation.
549
550 2000-04-22  Richard Henderson  <rth@cygnus.com>
551
552         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
553         the collected condition is not a constant.
554
555 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
556
557         * diagnostic.h: New file.
558
559         * Makefile.in (diagnostic.o): Depends on diagnostic.h
560
561         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
562         various function prototypes.
563         (diagnostic.h): #include.
564         (struct output_buffer): Move into diagnostic.h.
565         (get_output_prefix): Rename to output_get_prefix.  Export.
566         (init_output_buffer): Export. Break out.  Ajust intialization.
567         (output_space_left, output_append): Export.
568         (output_newline): Rename to output_add_newline.  Export.
569         (output_clear): Nullify additional output_buffer fields.
570         (output_puts): Rename to output_add_string.  Export.
571         (dump_output): Rename to output_flush_on.  Export.
572         (build_location_prefix): Constify return-type.
573         (emit_output_prefix): Rename to output_emit_prefix. Export.
574         (set_real_maximum_length): New function.
575         (output_set_maximum_length): Ditto
576         (output_clear): Ditto.
577         (output_add_character): Ditto.
578         (output_add_integer): Ditto.
579         (output_add_space): Ditto.
580         (output_format): Ditto.
581         (output_printf): Adjust buffer initialization.
582         (vline_wrapper_message_with_location): Ditto.
583         (v_message_with_decl): Ditto.  Adjust call to output_puts
584         and get_output_prefix.
585         (default_print_error_function): Adjust buffer intialization.
586
587 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
588
589         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
590         of VOID_TYPE.
591
592 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
593
594         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
595         of explicit 0.
596
597 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
598
599         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
600         accurate data about SP moves.
601
602 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
603
604         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
605         aliases to AM33 registers.
606
607 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
608
609         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
610         to all EXTENDED bitmaps.
611
612 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
613
614         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
615         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
616         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
617
618 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
619
620         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
621         the operand is not constant.
622
623 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
624
625         * reload.c (find_equiv_reg): Checks all valueno and regno regs
626         as a call-clobbered regs.
627
628 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
629
630         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
631         * rtl.h: Likewise.
632         * rtl.def: Update comment.
633         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
634         * integrate.c (expand_inline_function): Likewise.
635         * profile.c (branch_prob): Likewise.
636         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
637         * print-rtl.c (print_rtx): Likewise.
638         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
639         (reemit_notes): Likewise; also use enum insn_note.
640
641         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
642         (place_field): Properly compute know and actual alignment.
643
644         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
645         in proper format.
646
647         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
648         note for REG1.
649
650 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
651
652         * cpphash.c (struct arg, struct arglist): Const-ify strings.
653         (warn_trad_stringify, duplicate_arg_p): New helper functions.
654         (collect_expansion): Rewrite to scan over a token list.
655         Remove -traditional support.
656         (collect_formal_parameters): Rename to collect_params; rewrite
657         to scan over a token list.
658         (_cpp_create_definition): Adjust to scan a token list.
659         (_cpp_macroexpand): Remove -traditional support.
660         (_cpp_compare_defs): Whitespace is now canonicalized.
661         (comp_def_part): Delete function.
662
663         * cpphash.h: Update prototypes.
664         * cpplex.c (init_token_list): Don't set lineno if there is no
665         buffer.
666         (pedantic_whitespace): New function.
667         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
668         consume a newline.  Use pedantic_whitespace.
669         (_cpp_lex_token): Remove support for -traditional macros.
670         (_cpp_get_define_token): Delete.
671         (_cpp_get_directive_token): Do the real work here.  Use
672         pedantic_whitespace.
673         (_cpp_init_input_buffer): Initialize pfile->directbuf.
674
675         * cpplib.c (get_macro_name): Delete.
676         (do_define): Read the entire line into pfile->directbuf, then
677         feed the token list to _cpp_create_definition.
678         * cpplib.h (HSPACE_BEFORE): new define.
679         (struct cpp_reader): Add a toklist member, "directbuf".
680
681         * predict.c (estimate_probability): New heuristic: if a jump
682         branches around a block with no successors, predict it taken.
683         Disentangle control flow.
684
685 2000-04-20  Richard Henderson  <rth@cygnus.com>
686
687         * loop.c (emit_iv_add_mult): Revert last change.
688
689 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
690
691         * cpplib.h (enum cpp_ttype): Add token types for all
692         punctuators.  Distinguish pp-numbers from valid C numbers.
693         Give some tokens better names.  Initialize from macro.    
694         (struct cpp_name, cpp_token, cpp_toklist): New data   
695         structures.
696         Update prototypes.
697         * cpplex.c (bump_column, expand_name_space,
698         expand_token_space, init_token_list, cpp_output_list,
699         _cpp_scan_line):  New functions.
700         (output_line_command): Add third argument, new line number.
701         * cpphash.h: Update prototypes.
702         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
703         token names.
704
705 2000-04-20  Richard Henderson  <rth@cygnus.com>
706
707         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
708
709 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
710
711         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
712         object pointed to.
713
714 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
715
716         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
717         REG_EQUAL note explaining the calculated value.
718
719         * calls.c (expand_call): Avoid unnecesary precalculation
720         and outgoing parameters space guarding for sibling calls.
721         (store_one_arg): Likewise.
722
723 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
724
725         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
726         (rest_of_compilation): Write sibling dump file and account
727         for time as jump time.
728         * invoke.texi: Update documentation on dump flags.
729
730 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
731
732         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
733
734 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
735
736         * cpphash.c (special_symbol): Represent an empty macro with
737         "\r \r " not just "\r ".
738         (_cpp_macroexpand): Correct condition for the foo ( ) special
739         case.
740         (unsafe_chars): Handle EOF as second argument.
741         (push_macro_expansion): Simplify test for removing escape at
742         end.  Do not trim both escapes if there is no text in between.
743
744 2000-04-19  Jim Blandy  <jimb@redhat.com>
745
746         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
747         of PTR_SIZE, when appropriate.
748
749 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
750
751         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
752         (USE_ENUM_BITFIELDS): Fix typo.
753
754 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
755
756         * stor-layout.c (place_field): Set rli->offset_align properly.
757
758 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
759
760         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
761         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
762         PARM_BOUNDARY): Remove unnecessary casts.
763
764 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
765
766         * calls.c (precompute_arguments): Remove must_preallocate and
767         args_size calls.
768         (expand_call): Update call of precompute_arguments.
769
770         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
771         check_insn_for_givs): Break out from ...
772         (strength_reduce) ... here; use for_every_insn_in_loop to call
773         check_insn_for_givs.
774         * loop.h (for_every_insn_in_loop): Declare.
775         (loop_insn_callback): New type.
776
777 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
778
779         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
780         not nul-terminated.
781
782 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
783
784         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
785         flag_pic and RELOC.
786
787 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
788
789         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
790
791         * configure.in: Delete --disable-cpplib option and all
792         references to cpp_main.
793         * configure: Regenerate.
794         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
795         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
796         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
797         cpp$(exeext).  Add --no-headers to makeinfo command line when
798         generating INSTALL.  Install and uninstall cpp.1 manpage, not
799         cccp.1.
800         * install.texi: Delete all references to cexp.y/cexp.c.
801         Delete ancient instructions for compiling GCC on 3b1.
802         * INSTALL: Regenerate.
803
804         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
805         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
806         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
807         cexp.c/cexp.y.
808         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
809         which is no longer tested anywhere.
810         
811         * cppinit.c (handle_option): Don't run error message through
812         gettext twice.
813
814 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
815
816         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
817         * cpperror.c (hashtab.h): Now include.
818         * cppexp.c (hashtab.h): Likewise.
819         * cpplex.c (hashtab.h): Likewise.
820         * cppfiles.c (hashtab.h): Likewise.
821         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
822         to htab_find_slot_with_hash.
823         * cpphash.c (hashtab.h): Now include.
824         (_cpp_lookup_slot): INSERT is now enum insert_option.
825         * cpphash.h (_cpp_lookup_slot): Likewise.
826         * cppinit.c (hashtab.h): Include earlier.
827         (initialize_builtins): Pass enum to htab_find_slot.
828         * cpplib.c (hashtab.h): Now include.
829         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
830         (do_pragma_poison, do_assert): Likewise.
831         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
832         htab_find_slot_with_hash.
833         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
834         * tree.c (type_hash_add): Likewise.
835         (build1): Minor cleanup.
836
837         * ggc-common.c: Add missing blanks.
838         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
839         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
840
841         * stmt.c (mark_case_node): New function.
842         (mark_case_nesting): Call it.
843
844         * expmed.c (emit_store_flag): If comparing two-word integer
845         with zero, can optimize NE, EQ, GE, and LT.
846
847         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
848         * conflict.c: Minor cleanups.
849         * optabs.c: Add blank line
850         * simplify-rtx.c: Minor cleanups.
851
852 2000-04-18  Stan Cox  <scox@cygnus.com>
853
854         * gengenrtl.c (genlegend): Fix misspelling.
855
856 2000-04-18  Robert Lipe  <robertlipe@usa.net>
857
858         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
859         bitfields of the host compiler are not signed quantities.
860         * config.in: Regenerate.
861         * configure: Regenerate.
862         * system.h (USE_ENUM_BITFIELDS): Added.
863         (ENUM_BITFIELDS): Added.
864         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
865         (SHORT_ENUM_BUG): Deleted.
866         * tree.h (tree_common): Members `code', `mode', `built_in_class', 
867         now ENUM_BITFIELD.
868         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
869         (CODE_FIELD_BUG): Likewise.
870         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
871         (OLD_CC): Likewise.
872         * config/m68k/x-ccur (X_CFLAGS): Likewise.
873
874 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
875
876         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
877         mark is active.
878
879 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
880
881         * cppexp.c (lex): Don't assume tokens are NUL terminated.
882         * cpplib.c (do_include, do_import, do_include_next,
883         read_line_number, detect_if_not_defined): Likewise.
884         * cpphash.c (collect_expansion): Likewise.
885         (special_symbol, _cpp_macroexpand): Check return from
886         cpp_file_buffer.
887         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
888         macros.  Delete all uses.
889
890         * gcc.dg/cpp-mi.c: Add two more test cases.
891         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
892
893 2000-04-17  Richard Henderson  <rth@cygnus.com>
894
895         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
896         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
897
898 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
899
900         * function.c (expand_function_start): Use hard_function_value to
901         compute the RTL to use for DECL_RESULT.
902
903 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
904
905         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
906         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
907          x86_memory_mismatch_stall): New global variables.
908         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
909         alloved; fix load penalties for Athlon.
910         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
911         x86_memory_mismatch_stall): Declare.
912         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
913          TARGET_MEMORY_MISMATCH_STALL): New.
914         * i386.md (athlon scheduling parameters): Fix latencies according to
915         Athlon Optimization Manual.
916         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
917         vector.
918         (fsqrt instruction patterns): Set athlon_decode to direct.
919         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
920         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
921         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
922         and TARGET_PARTIAL_REGISTER_STALL machines.
923         (pushdf_nointeger): New pattern.
924         (pushdf_integer): Rename from pushdf.
925         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
926         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
927
928 2000-04-17  Richard Henderson  <rth@cygnus.com>
929
930         * loop.c (canonicalize_condition): Add WANT_REG argument.
931         Stop the search if we match it.
932         * expr.h (canonicalize_condition): Update decl.
933         * predict.c (expected_value_to_br_prob): Use it.  Track last
934         expected value note.
935         (find_expected_value): Remove.
936
937         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
938
939 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
940
941         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
942         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
943         a plain file.
944         * configure.in: Call AC_FUNC_MMAP_FILE.
945         * configure: Regenerate.
946         * config.in: Regenerate.
947
948         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
949         * fixinc/fixincl.c: Likewise.
950
951 2000-04-17  Richard Henderson  <rth@cygnus.com>
952
953         * builtins.c (expand_builtin_expect): New.
954         (expand_builtin): Call it.
955         * builtins.def (BUILT_IN_EXPECT): New.
956         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
957         * extend.texi: Document it.
958
959         * predict.c (expected_value_to_br_prob): New.
960         (find_expected_value): New.
961         * basic-block.h (expected_value_to_br_prob): Declare.
962         * toplev.c (rest_of_compilation): Invoke it.
963
964         * rtl.h (NOTE_EXPECTED_VALUE): New.
965         (NOTE_INSN_EXPECTED_VALUE): New.
966         * rtl.c (note_insn_name): Update.
967         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
968         cases; handle NOTE_INSN_EXPECTED_VALUE.
969
970 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
971
972         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
973         leaf sibcall delay slot if flag_pic.
974         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
975
976 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
977
978         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
979
980         * fixproto: If fix-header fails, exit with an error.
981
982 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
983
984         * cse.c (struct check_depdendence_data): New.
985         (check_dependence): New function.
986         (invalidate): Use check_depdenence.
987
988 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
989
990         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
991         UNITS_PER_WORD is unsigned.
992
993         * tree.h (struct tree_common): Remove misleading comment.
994
995 2000-04-16  Dave Pitts  <dpitts@cozx.com>
996
997         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
998         message in quotes. Otherwise, IBM's make program treats the '#' as the
999         start of a comment and ignores the remainder of the line.
1000
1001         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
1002         upper case.
1003         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
1004         * cexp.y (initialize_random_junk): Likewise.
1005         * cppfiles.c (find_include_file): Cast alloca return value.
1006         * cppinit.c (initialize_standard_includes): Likewise.
1007         * cpplib.c (cpp_define, cpp_undef): Likewise.
1008         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
1009         * final.c (output_asm_insn): Allow for holes in EBCDIC.
1010         * fold-const.c (CHARMASK): New.
1011         (real_hex_to_f): Use it.
1012         * real.c (CHARMASK): New.
1013         (etoasc, asctoeg): Use it.
1014         (asctoeg): EBCDIC lower case characters preceed upper case.
1015
1016         * i370.c (mvs_add_label): Change spacing for coding conventions.
1017         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
1018         outputing case vectors.
1019         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
1020         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
1021         since vector in in the data CSECT.
1022         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
1023         * i370.md (Many patterns): Put the length in the XL directives.
1024         (movdi): Put back STM and MVC in definition.
1025         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
1026         pattern using the TCA.
1027         * oe.h (CPP_SPEC): Added to allow trigraphs.
1028         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
1029         not support the "long long" type.
1030
1031 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
1032
1033         * config/mips/mips-protos.h (mips_legitimate_address_p): New
1034         function.
1035         (mips_reg_mode_ok_for_base_p): Likewise.
1036         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
1037         (REG_OK_FOR_INDEX_P): Define unconditionally.
1038         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
1039         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
1040         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
1041         that GET_MODE_SIZE is unsigned.
1042         (mips_reg_mode_ok_for_base_p): Define.
1043         (mips_legitimate_address_p): Likewise.  Adjust now
1044         that GET_MODE_SIZE is unsigned.
1045         (block_move_loop): Make the number of bytes unsigned.
1046         (expand_block_move): Likewise.
1047         (function_arg): Make the loop counter unsigned to match the
1048         boundary condition.
1049
1050 2000-04-16  Richard Henderson  <rth@cygnus.com>
1051
1052         * rtl.h (enum insn_note): New enumeration.  Subsume
1053         NOTE_INSN_DELETED and friends.
1054         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
1055         * rtl.c (note_insn_name): Tweak string order.
1056
1057 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
1058
1059         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
1060         to offset * 2.
1061
1062         * cpplex.c (output_line_command): Remove debugging prints.
1063         (cpp_output_tokens): Don't write out a zero-length buffer or
1064         try to see if it has a newline in it.
1065         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
1066         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
1067         the end of the loop.  Use memmove.  Don't read past the end of
1068         the buffer.  Remove trailing newlines from error messages.
1069
1070 2004-04-16  Neil Booth  <NeilB@earthling.net>
1071
1072         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
1073         * cpplib.c: Add new syntax flags to directive table, and
1074         supporting macros.
1075
1076 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
1077
1078         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
1079         using ret $N.
1080
1081 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
1082
1083         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
1084         * haifa-sched.c: Update -fsched-verbose comments to use "=".
1085
1086 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1087
1088         * Makefile.in (ggc-page.o): Now includes toplev.h.
1089         * ggc-page.c (toplev.h): Now included.
1090         (gc_time): Remove declaration.
1091         (ggc_collect): TIME now long.
1092         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
1093         others static.
1094         * toplev.h (gc_time, parse_time, gc_time): New declarations.
1095
1096         * toplev.c: Make *_time variable long to reduce chance of overflow.
1097         (TIMEVAR): Likewise for `otime'.
1098         (print_time): Arg is now long; compute percentage in FP and round.
1099         * toplev.h (print_time): Arg is long.
1100
1101         * tree.c: Minor whitespace changes.
1102
1103         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
1104         * configure: Rebuilt.
1105         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
1106         (__fixunsxfDI): Renamed from __fixunsxfdi.
1107         (__fixunsdfDI): Renamed from __fixunsdfdi.
1108         (__fixunssfDI): Renamed from __fixunssfdi.
1109         (__floatdisf): Use proper type in REP_BIT macro.
1110         (__fixunsxfSI): Renamed from __fixunsxfsi.
1111         (__fixunsdfSI): Renamed from __fixunsdfsi.
1112         (__fixunssfSI): Renamed from __fixunssfsi.
1113         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
1114         Change location of macros and upper-case some names as above.
1115         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
1116         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
1117
1118         * varasm.c (assemble_variable): Add cast to remove warning.
1119         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
1120
1121         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
1122         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
1123         region number to -1.
1124
1125 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
1126
1127         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
1128         call unshare_all_rtl.
1129
1130         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
1131
1132 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
1133
1134         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
1135         Use .s1 not .s0 for all FP instructions.
1136
1137 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
1138
1139         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
1140         interfaces.
1141         (safe_fwrite, output_line_command): New static functions.
1142         (cpp_expand_to_buffer): Now private to cpplib.
1143         (cpp_scan_buffer): Take a printer.
1144
1145         * cpphash.h: Update prototypes.
1146         * cpplib.h: Update prototypes.
1147         (cpp_printer): New.
1148         (cpp_buffer): Remove last_nominal_fname.
1149         (cpp_reader): Remove lineno.
1150
1151         * cppmain.c: Use a cpp_printer.
1152         * fix-header.c: No need to inhibit line commands.  Call
1153         cpp_start_read with no printer.
1154
1155         * cpperror.c (cpp_notice_from_errno): Provide default name.
1156         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
1157         (find_include_file, cpp_read_file): Use make_IHASH.
1158         (file_cleanup): Set control_macro and clear
1159         input_stack_listing_current here.
1160         (_cpp_execute_include): Don't output entering-file marker.
1161         * cpphash.c (special_symbol): Look for the line number in the
1162         buffer, not the reader.
1163         (_cpp_macroexpand): No need to disable line commands.
1164         (_cpp_dump_definition): No need to generate line commands.
1165         (dump_hash_helper): Remove excess newline from output.
1166         * cppinit.c (dump_special_to_buffer): No need to generate line
1167         commands.
1168         (cpp_printer_init): New.
1169         (cpp_start_read): Take a printer, and start it up if it's not
1170         NULL.  No need to generate line commands.
1171         (cpp_finish): Expect no buffers stacked at all.  Take a
1172         printer argument, and flush the output buffer if it's not
1173         NULL.
1174         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
1175         Don't put two hashes at the beginning of an assertion.
1176         (cpp_get_token): Don't increment pfile->lineno or emit line
1177         commands here.  Return EOF if there's no buffer when we get
1178         EOF.
1179         * cpplib.c (do_define, skip_if_group): 
1180         No need to disable line commands.
1181         (_cpp_output_line_command): Delete function.
1182         (do_line): Don't emit line commands here, but set things up so
1183         they will be emitted if necessary.  Use _cpp_fake_ihash to
1184         make unique nominal_fnames if necessary.
1185         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
1186         with 0 for column, not -1.
1187         (_cpp_handle_eof): Don't set the control macro here.  Don't
1188         clear input_stack_listing_current here.  Don't emit line
1189         commands.
1190
1191 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
1192
1193         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
1194         always, use the default SVR4 start address.
1195
1196         * config/rs6000/linux.h (LINK_SPEC): Don't define.
1197         (LINK_SHLIB_SPEC): Define.
1198         (LINK_START_DEFAULT_SPEC): Define.
1199         (LINK_OS_DEFAULT_SPEC): Define.
1200
1201         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
1202
1203         * config/rs6000/eabi.asm (__eabi): Call __init rather than 
1204         __do_global_ctors to handle constructors.
1205         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
1206         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
1207         (STARTFILE_MVME_SPEC): Likewise.
1208         (STARTFILE_SIM_SPEC): Likewise.
1209         (ENDFILE_ADS_SPEC): Use crtend.
1210         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
1211         (ENDFILE_MVME_SPEC): Likewise.
1212         (ENDFILE_SIM_SPEC): Likewise.
1213         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
1214         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
1215         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
1216         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
1217         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
1218         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
1219         (CRTSTUFF_T_CFLAGS_S): Define.
1220         * config/rs6000/eabi-ctors.c: Delete.
1221         
1222         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
1223         boundary.
1224         (__fini): Likewise.
1225         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
1226         boundary.
1227         (__fini): Likewise.
1228
1229 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
1230
1231         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
1232         plus mask size is smaller or equal to the mode size.
1233
1234 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1235
1236         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
1237         not yet set.
1238
1239         * expr.c (reload.h): Now included.
1240         (emit_block_move): Set volatile_ok when checking for movstr.
1241         (emit_move_1): Check for replacements in addresses in multi-word case.
1242         * Makefile.in (expr.o): Now includes reload.h.
1243
1244         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
1245         Never have a LIBCALL end a basic block.
1246         (find_basic_blocks_1): Likewise.
1247         Reorganize CALL_INSN cases.
1248
1249         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
1250
1251 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
1252
1253         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
1254         completers from mov.ret instruction.
1255
1256 2000-04-14  Richard Henderson  <rth@cygnus.com>
1257
1258         * fold-const.c (extract_muldiv): Don't distribute and widen
1259         multiply across plus for non-sizetype unsigned types.
1260
1261 2000-04-14  Richard Henderson  <rth@cygnus.com>
1262
1263         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
1264         If the original source is dead in the incr insn, it's dead now.
1265
1266 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1267
1268         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
1269         see if DECL_BIT_FIELD needs to still be set.
1270
1271         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
1272
1273         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
1274         print_int_cst_octal with something that's not an INTEGER_CST.
1275
1276         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
1277         and not a SUBREG to a FLOAT rtl.
1278
1279 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
1280
1281         * emit-rtl.c (try_split): Avoid infinite loop if the split
1282         results in a sequence that contains the original insn.
1283
1284 2000-04-13  Andreas Jaeger  <aj@suse.de>
1285
1286         * config/mips/mips.c (expand_block_move): Pass alignment
1287         argument to move_by_pieces in bits, not bytes.
1288
1289         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
1290         __pic__ for little endian.
1291
1292 2000-04-13  Andreas Jaeger  <aj@suse.de>
1293
1294         * config/i386/i386-protos.h: Add prototype for
1295         uno_comparison_operator.
1296
1297 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1298
1299         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
1300         * calls.c (ECF_PURE): New flag.
1301         (emit_call_1): Handle ECF_PURE calls.
1302         (initialize_argument_information): Unset ECF_PURE flag too.
1303         (precompute_arguments): Precompute for ECF_PURE too.
1304         (expand_call): Handle ECF_PURE calls too.
1305         (emit_library_call_value_1): Rename no_queue argument to fn_type,
1306         accept value of 2 as pure function.
1307         (emit_library_call_value, emit_library_call): Rename no_queue argument
1308         to fn_type.
1309         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
1310
1311         * tree.h (DECL_IS_PURE): New macro.
1312         (struct tree_decl): Add pure_flag.
1313         * c-common.c (enum attrs): Add attribute "pure".
1314         (init_attributes): Initialize attribute "pure"
1315         (decl_attributes): Handle attribute "pure".
1316         * extend.texi (Attribute "pure"): Document.
1317         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
1318         in pure function.
1319         (flags_from_decl_or_type): Support attribute "pure".
1320
1321 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
1322
1323         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
1324         the token except for numbers and identifiers.
1325
1326 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
1327
1328         * i386.c (ix86_expand_binary_operator,
1329         ix86_expand_unary_operator): Check no_new_pseudos
1330         instead of reload_in_progress and reload_completed.
1331         (ix86_split_ashldi, ix86_split_ashrdi,
1332         ix86_split_lshrdi): Check no_new_pseudos instead
1333         of reload_completed.
1334
1335 2000-04-12  Jeffrey A Law  (law@cygnus.com)
1336
1337         * function.c (purge_addressof): Unshare any shared rtl created by
1338         purge_addressof and its children.
1339
1340 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
1341
1342         * function.c (aggregate_value_p): VOID_TYPE nodes are never
1343         aggregates.
1344
1345 2000-04-05  Andreas Jaeger  <aj@suse.de>
1346
1347         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
1348         not compiling PIC code, add flags for mabi=64.
1349         (SUBTARGET_CPP_SIZE_SPEC): New.
1350         (SUBTARGET_CPP_SPEC): New.
1351         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
1352         for MIPS/Linux and lots of code needs these defines.
1353
1354 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
1355
1356         * reorg.c (fill_slots_from_thread): Check side_effects_p when
1357         trying the "opposite arithmetic" approach.
1358
1359 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1360
1361         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
1362         (struct sh_args): Add new field force_mem.
1363         (INIT_CUMULATIVE_ARGS): Initialize it.
1364         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
1365
1366 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1367
1368         * calls.c (expand_call): Do not reverse args in "equal from" field.
1369         (emit_library_call_value_1): Emit_libcall_block for const and pure
1370         function.
1371
1372 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1373
1374         * reload1.c (reload_combine): Don't enable optimization for fixed
1375         registers when encountering a BARRIER.
1376
1377 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1378
1379         * builtins.c (expand_builtin_memcmp): Do expansion even with
1380         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
1381
1382         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
1383         stack is propertly aligned; add sanity checking for aligned
1384         stack pointer.
1385         (expand_library_call_value_1): Add sanity checking for aligned
1386         stack pointer.
1387
1388 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
1389  
1390         * calls.c (emit_library_call_value_1): Change 3rd arg to
1391         locate_and_pad_parm to disregard the setting of partial.
1392
1393 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1394
1395         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
1396
1397         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
1398         CALL_INSN from the normal case.
1399
1400 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1401
1402         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
1403         New global variables.
1404         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
1405         adjustment.
1406         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
1407         Declare,
1408         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
1409          TARGET_ADD_ESP_8): New macros.
1410         * i386.md: Add peep2s to convert esp adjustments to push and pop
1411         instructions.
1412         (pushsi_prologue, popsi_epilogue): New patterns.
1413
1414 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
1415
1416         * real.c (toe64): Remove stale #endif from the last change.
1417
1418 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
1419
1420         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
1421         * real.c (toe64): Revert previous change.
1422
1423 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
1424
1425         * objc/objc-act.c: Include ggc.h.
1426         (objc_tree_index, objc_global_trees): Convert most of the
1427         static tree variables into a static array with previous names
1428         as defines.
1429         (objc_ellipsis_node): New variable.
1430         (lang_init): Call objc_act_parse_init and c_parse_init.
1431         Create objc_ellipsis_node.
1432         (build_selector_translation_table): Use objc_ellipsis_node instead
1433         of (tree)1.
1434         (hack_method_prototype): Likewise.
1435         (get_arg_type_list): Likewise.
1436         (start_method_def): Likewise.
1437         (continue_method_def): Likewise.
1438         (gen_method_decl): Likewise.
1439         (ggc_mark_imp_list): New function.
1440         (ggc_mark_hash_table): New function.
1441         (objc_act_parse_init): New function.
1442         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
1443         * c-parse.in (c_parse_init): For objc add roots of objc specific
1444         local tree variables.
1445         * objc/objc-parse.y: Rebuilt.
1446         * objc/objc-parse.c: Rebuilt.
1447         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
1448
1449 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
1450
1451         * cse.c (delete_trivially_dead_insns): Also delete insns
1452         that copy a register to itself where the destination is
1453         a strict_low_part.
1454
1455 2000-04-11  Richard Henderson  <rth@cygnus.com>
1456
1457         * flow.c (struct propagate_block_info): Add new_dead, new_live.
1458         (propagate_block): Initialize them.  Use them in parallel instead
1459         of one tmp variable, ie revert much of the 0408 and 0407 functional
1460         changes, but keep the structural changes.
1461         (mark_set_regs): Take new_dead from propagate_block_info instead.
1462         (mark_set_1, mark_set_reg): Likewise.
1463         (mark_used_regs): Likewise with new_live.
1464         (mark_used_reg): Likewise.  Revert 0408 change.
1465
1466 2000-04-11  Nick Clifton  <nickc@cygnus.com>
1467
1468         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
1469         restriction.
1470         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
1471
1472 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1473
1474         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
1475         const section to output a CONSTRUCTOR based on the same conditions
1476         used for VAR_DECLs.
1477
1478 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
1479
1480         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
1481         * pa/pa-protos.h (output_call): Add additional argument indicating
1482         if the call is a sibling/tail call.
1483         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
1484         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
1485         (function_arg, function_arg_partial_nregs): Likewise
1486         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
1487         (emit_move_sequence): Zero extend certain constants as needed
1488         for TARGET_64BIT.
1489         (compute_zdepdi_operands, output_64bit_and): New functions.
1490         (output_64bit_ior, function_arg): Likewise.
1491         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
1492         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
1493         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
1494         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
1495         (output_bvb): Likewise.
1496         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
1497         (output_call): New argument 'sibcall'.  Generate sibcall sequences
1498         as needed.
1499         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
1500         (ouput_arg_descriptor): Do not emit argument descriptors for
1501         TARGET_64BIT.
1502         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
1503         defined.
1504         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
1505         (FUNCTION_OK_FOR_SIBALL): Define.
1506         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
1507         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
1508         (CPP_SPEC): Use new spec infrastructure.
1509         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
1510         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
1511         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
1512         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
1513         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
1514         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
1515         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
1516         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
1517         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
1518         (FUNCTION_ARG); Call out to C code.
1519         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
1520         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
1521         (MIN_UNITS_PER_WORD): Likewise.
1522         * pa/pa.md (cmpdi): New expander.
1523         (scc patterns, movstrsi): Not available for TARGET_64BIT.
1524         (64bit conditional arithmetic): New patterns.
1525         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
1526         (movsicc): Not available if modes on all the operands to not match.     
1527         (movdicc): New expander and associated patterns.
1528         (64bit branches): New patterns.
1529         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
1530         (pre_ldd, post_std): New patterns.
1531         (64bit addil, load low part): New patterns.
1532         (special movsf constant): Not available for TARGET_64BIT.
1533         (movsf, movdf expanders): Force constants into memory.
1534         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
1535         (64bit movdf/movdi patterns): New patterns.
1536         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
1537         for TARGET_64BIT.
1538         (extendqidi2, extendhidi2, extendsidi2): Similarly.
1539         (adddi3 expander): Allow "arith_operand" for second input.
1540         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
1541         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
1542         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
1543         (muldi3): New expander for TARGET_64BIT.
1544         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
1545         for TARGET_64BIT.
1546         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
1547         patterns for TARGET_64BIT.
1548         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
1549         patterns for TARGET_64BIT.
1550         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
1551         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
1552         (sibcall_epilogue): New expander.
1553         (casesi): Tweak for TARGET_64BIT.
1554         (call expanders): Set & use the outgoing argument pointer.  Use the
1555         64bit call patterns as needed. Add additional arg to output_call.
1556         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
1557         (sibcall, sibcall_internal_symref): New expanders.
1558         (sibcall_value, sibcall_value_internal_symref
1559         (interspace_jump): Turn into an expander + matching patterns.
1560         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
1561         * pa/pa64-regs.h: Eliminate trigraph sequences.
1562         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
1563
1564 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
1565
1566         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
1567         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
1568         cpp_token with cpp_ttype everywhere.
1569         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
1570         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
1571         CPP_BUF_COL.  Line and column numbers are unsigned int, not
1572         long.
1573         * cpplex.c (cpp_buf_line_and_col): Delete.
1574         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
1575         'long lineno' to 'unsigned int lineno'.
1576         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
1577
1578 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1579
1580         * extend.texi: ISO C99 is not a draft anymore.
1581         * invoke.texi: ISO C++ is not a draft anymore.
1582         * cpp.texi: __cplusplus is required by the ISO standard.
1583
1584         * extend.texi (-fthis-is-variable): Undocument.
1585         * flags.h (warn_template_debugging): Remove declaration.
1586         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
1587         -Wenum-clash, -Wtemplate-debugging): Undocument.
1588
1589 2000-04-10  Nick Clifton  <nickc@cygnus.com>
1590
1591         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
1592         integer.
1593         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
1594         integer.
1595         (ARM_SIGN_EXTEND): Use HOST_UINT.
1596         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
1597         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
1598         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
1599         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
1600
1601         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
1602         (arm_gen_constant): Use HOST_UINT.
1603         (arm_canonicalize_constant): Use HOST_UINT.
1604         (arm_reload_in_hi): Use HOST_UINT.
1605         (arm_reload_out_hi): Use HOST_UINT.
1606         (output_multi_immediate): Use HOST_UINT.
1607         (int_log2): Use HOST_UINT.
1608         (arm_poke_function_name): Use HOST_UINT.
1609         (arm_output_epilogue): Use arm_volatile_func().
1610         (output_thumb_prologue): Use arm_strip_name_encoding().
1611         
1612 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1613
1614         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
1615         of sequence point problems.
1616
1617 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
1618
1619         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
1620         Recomment.
1621         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
1622
1623 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1624
1625         * sbitmap.h: Whitespace changes and use upper-case macro args.
1626         (struct simple_bitmap_def): All sizes now unsigned.
1627         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
1628         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
1629         (sbitmap_vector_alloc): Parms and local vars now unsigned.
1630         (sbitmap_zero): Cast bzero arg to PTR.
1631         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
1632         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
1633         loop to make structure clearer.
1634         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
1635         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
1636         (sbitmap_a_and_b_or_c): Likewise.
1637         (sbitmap_intersection_of_succs): Minor cleanups.
1638         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
1639         (sbitmap_union_of_preds): Likewise.
1640         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
1641         (debug_sbitmap): New function.
1642         
1643         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
1644         * c-typeck.c (convert_for_assignment): Likewise.
1645
1646         * expmed.c (init_expmed): Don't free objects we make.
1647         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
1648
1649         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
1650         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
1651
1652         * gcse.c (expr_hash_table_size): Now unsigned.
1653         (compute_ae_gen): Local variable `i' now unsigned.
1654         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
1655         (compute_transout, hoist_code): Likewise.
1656         (compute_local_properties): Likewise, also hash_table_size.
1657         (alloc_expr_hash_table): N_INSNS now unsigned.
1658         (delete_null_pointer_checks): Mark arg F as unused.
1659
1660         * regrename.c: Minor cleanups, including chang some variables
1661         to unsigned int.
1662
1663 2000-04-10  Neil Booth  <NeilB@earthling.net>
1664
1665         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
1666         than GETC ().
1667         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
1668
1669 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1670
1671         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
1672         __classof__, and __headof__ from the list of gnu keywords.
1673         (-ansi): Remove -foperator-names from list of implied options. 
1674         Do not call it ANSI C++.
1675         (-foperator-names): Document as -fno-operator-names.
1676
1677 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
1678
1679         * cpphash.c (timestamp): Delete.
1680         (del_HASHNODE): If type is T_MCONST, free value.cpval.
1681         (special_symbol): Remove unnecessary braces.  Remove
1682         T_VERSION.  Treat T_STDC like T_CONST unless
1683         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
1684         when one is encountered, then convert them into T_MCONST
1685         nodes.
1686         * cppinit.c (builtin_array): version_string is T_MCONST.
1687         __STDC__ has a "1" in its cpval.  Don't have a terminator
1688         entry.  Clean up which entries are dumped.
1689         (initialize_builtins): Only __STDC__ gets the special
1690         -traditional treatment.  Count the length of builtin_array.
1691         Render version_string here.
1692         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
1693         * cpplib.h (struct cpp_reader): Remove timebuf. 
1694
1695 2000-04-09  Richard Henderson  <rth@cygnus.com>
1696
1697         * genrecog.c (pred): Update comparison_operator for the unordered
1698         operators.
1699
1700         * config/i386/i386.c (no_comparison_operator): Disallow unordered
1701         operators.
1702         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
1703         (uno_comparison_operator): New.
1704         (put_condition_code): Handle UNORDERED/ORDERED.
1705         (unsigned_comparison): Likewise.
1706         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
1707         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
1708         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
1709         update all callers.  Handle all 8 unordered operators.
1710         (ix86_expand_setcc): Lose the unordered argument, update all callers.
1711         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
1712         * config/i386/i386.h (PREDICATE_CODES): Update.
1713         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
1714         (ix86_expand_branch, ix86_expand_setcc): Update.
1715         * config/i386/i386.md (sunordered, sordered): New.
1716         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
1717         (bunordered, bordered): New.
1718         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
1719         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
1720         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
1721
1722 2000-04-09  Philip Blundell  <philb@gnu.org>
1723
1724         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
1725         
1726 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
1727
1728         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
1729         fix_truncxfhi2): New patterns.
1730         * i386.c (output_fix_trunc): Handle converting to HImode.
1731
1732 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
1733
1734         * ssa.c (convert_to_ssa): Eliminate dead code when calling
1735         life_analysis.  
1736         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
1737         (for_each_successor_phi): Change parameter to basic_block.
1738         (coalesce_regs_in_successor_phi_nodes): Likewise.
1739         (coalesce_regs_in_copies): Likewise.
1740         (compute_coalesced_reg_partition): Use basic_block instead of index.
1741         * rtl.h (convert_to_ssa): Delete.
1742         (convert_from_ssa): Likewise.
1743         (successor_phi_fn): Likewise.
1744         (for_each_successor_phi): Likewise.
1745         (in_ssa_form): Likewise.
1746         * basic-block.h (convert_to_ssa): Moved from rtl.h.
1747         (convert_from_ssa): Likewise.
1748         (successor_phi_fn): Likewise.
1749         (in_ssa_form): Likewise.
1750         (for_each_successor_phi): Likewise.  Change parameter to basic_block. 
1751         * flow.c (calculate_global_regs_live): Pass a basic_block to
1752         for_each_successor_phi.
1753
1754 2000-04-08  Richard Henderson  <rth@cygnus.com>
1755
1756         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
1757         was modified in the current insn.
1758
1759 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
1760
1761         * arm/thumb.md: Delete.
1762         * arm/thumb-protos.h: Delete.
1763
1764 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
1765
1766         Merge changes from merged-arm-thumb-backend-branch onto trunk.
1767
1768         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
1769
1770         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
1771         into branch.
1772
1773         * arm.md (nop): Use the standard RTL expression.  Don't code as a
1774         define_expand.
1775         (*arm_nop, *thumb_nop): Delete.
1776
1777         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
1778         constants.  Use casts instead.
1779         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
1780         output_multi_immediate, arm_poke_function_name): Likewise.
1781         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
1782         MASK_RETURN_ADDDR): Likewise.
1783
1784         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
1785
1786         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325 
1787         into branch.
1788         
1789         * arm.md (eh_epilogue): New function.
1790         * arm.h (struct machine_function): Move to here ...
1791         * arm.c: ... from here.
1792         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
1793         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
1794         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
1795
1796         2000-03-30  Nick Clifton  <nickc@cygnus.com>
1797
1798         * config/arm/semi.h (ASM_SPEC): Restore definition.
1799         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
1800
1801         * config/arm/elf.h (ASM_SPEC): Restore definition.
1802         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
1803
1804         * config/arm/arm.h (ASM_SPEC): Remove definition.
1805         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
1806
1807         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
1808
1809         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
1810
1811         2000-03-24  Nick Clifton  <nickc@cygnus.com>
1812
1813         Various formating tidyups, elimination of compile time
1814         warnings and synchronisation with internal sources:
1815         
1816         * config/arm/arm-protos.h (assemble_align): Add prototype.
1817         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
1818         (gen_comapre_reg): Rename to arm_gen_compare_reg.
1819         (arm_return_addr_rtx): Rename to arm_return_addr.
1820
1821         * config/arm/arm.c: Include except.h.
1822         Define shorter typenames for strict minipool_node and struct
1823         minipool_fix.
1824         (arm_return_in_memory): For WinCE return all structures <= 32 bits
1825         in memory.
1826         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
1827         (gen_comapre_reg): Rename to arm_gen_compare_reg.
1828
1829         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
1830         already defined.
1831         (ASM_SPEC): Define if not already defined.
1832         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1833
1834         * config/arm/arm.md: Rename references to gen_rotated_half_load to
1835         arm_gen_rotated_half_load, and references to gen_comapre_reg to
1836         arm_gen_compare_reg.
1837         (indirect_jump):  Only accept register operands.
1838         (load_indirect_jump): Keep this pattern since combine can generate
1839         it.
1840
1841         * config/arm/coff.h: Include aout.h.
1842         (MULTILIB_DEFAULTS): Only define if not already defined.
1843
1844         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
1845         into arm.h (so that COFF ports can support thumb based aliases).
1846         (ASM_SPEC): Move definition into arm.h
1847         
1848         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
1849         redundant apcs spec.
1850         (ASM_SPEC): Move definition to arm.h
1851
1852         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
1853
1854         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
1855         for entries in the .bss section
1856
1857         2000-03-23  Nick Clifton  <nickc@cygnus.com>
1858
1859         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
1860         to thumb_far_jump_used_p.
1861
1862         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
1863         single integer parameter.
1864
1865         * config/arm/arm.c (struct machine_function): Add two new
1866         fields, 'far_jump_used' and 'arg_pointer_live'.
1867         (thumb_far_jump_used_p): Once the decision has been made that
1868         far jumps might be used, always return true.
1869         If being called from the initial elimination offset macro then
1870         do not bother to perform the test if the arg pointer is not
1871         being used.
1872         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
1873         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
1874
1875         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
1876
1877         * arm.c (output_return_instruction): Handle more cases where we can
1878         return from a function with an ldr instruction.
1879         (arm_output_epilogue): Likewise.
1880
1881         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
1882         if we need to push a large stack frame and there are no callee-saved
1883         registers.
1884
1885         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
1886         in ARM code if the frame pointer has been eliminated.
1887
1888         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
1889         unspec_volatile arguments to avoid duplicates.
1890         (consttable_1, consttable_2): Fixes for big-endian mode.
1891
1892         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
1893         as appropriate.
1894
1895         Re-write constant pool code.
1896         * arm.c (minipool_node, minipool_fix): New types.
1897         (minifix): Delete type.
1898         (arm_add_minipool_constant): Delete.
1899         (arm_compute_minipool_offsets, arm_find_barrier, 
1900         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
1901         (get_jump_table_size): Now returns HOST_WIDE_INT.
1902         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
1903         functions.
1904         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
1905         (assign_minipool_offsets, arm_print_value): Likewise.
1906         (dump_minipool): Rewrite.
1907         (arm_barrier_cost): New function.
1908         (create_fix_barrier): New function.
1909         (push_minipool_barrier): New function.
1910         (push_minipool_fix): Record additional information about the fixup 
1911         required.
1912         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
1913         check the mode of what needs fixing.
1914         (arm_reorg): Rewrite.
1915
1916         2000-03-08  Nick Clifton  <nickc@cygnus.com>
1917
1918         * config/arm/arm.md (indirect_jump): Force constant addresses into
1919         a register. 
1920
1921         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
1922
1923         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
1924
1925         2000-02-24  Nick Clifton  <nickc@cygnus.com>
1926
1927         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
1928         adjust is word aligned.
1929         (thumb_expand_epilogue): Make sure that stack adjust is word
1930         aligned.
1931
1932         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
1933         
1934         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
1935
1936         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
1937         pointer relative addresses.
1938
1939         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
1940
1941         * arm.c (find_barrier): Find the last barrier within the allowed 
1942         range.
1943
1944         2000-02-09  Nick Clifton  <nickc@cygnus.com>
1945
1946         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
1947
1948         2000-02-09  Nick Clifton  <nickc@cygnus.com>
1949
1950         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
1951         ARM_FUNCTION_PROFILER. 
1952
1953         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
1954         ARM_FUNCTION_PROFILER. 
1955
1956         * config/arm/linux-oldld.h: Imported from mainline sources.
1957
1958         2000-02-07  Nick Clifton  <nickc@cygnus.com>
1959
1960         * config/arm/lib1funcs.asm: Merge in thumb functions from
1961         lib1thumb.asm.
1962         
1963         * config/arm/lib1thumb.asm: Delete.
1964
1965         2000-02-04  Nick Clifton  <nickc@cygnus.com>
1966
1967         * config/arm/arm.c: Sychronised with current Red hat local
1968         sources. 
1969         * config/arm/arm.h: Ditto.
1970         * config/arm/arm-protos.h: Ditto.
1971
1972         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
1973
1974         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
1975
1976         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
1977         byte stores.
1978
1979         2000-02-02  Nick Clifton  <nickc@cygnus.com>
1980
1981         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
1982
1983         * config/arm/arm.md (epilogue): Fix rtl checking abort because
1984         (return) was emited using an emit_insn() call. 
1985         
1986         2000-01-31  Nick Clifton  <nickc@cygnus.com>
1987
1988         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
1989         thumb stack frame.
1990         (thumb_exit): Move frame pointer back into hard frame pointer
1991         register if backtracing is being used.
1992
1993         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
1994
1995         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113 
1996         into branch.
1997
1998         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
1999
2000         * config/arm/arm.md (neg_pool_offset): Provide default for new
2001         attribute.
2002         (arm_movsi_insn): Add neg_pool_offset attribute.
2003         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
2004         rtx for the insn that starts the scan and an unsigned long for its
2005         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
2006         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
2007         instructions in *PINSERTED.
2008         (struct minipool_fixup): Add MIN_ADDRESS elt.
2009         (sort_fixups): Compute it.
2010         (arm_reorg): Changes to support inserting pools before the insn to be
2011         fixed up.
2012
2013         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
2014
2015         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
2016         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
2017         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
2018
2019         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
2020
2021         * config/arm/semi.h (TARGET_VERSION): Do not define if already
2022         defined.
2023         (TARGET_DEFAULT): Do not define if already defined.
2024
2025         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
2026
2027         * config/arm/arm.md (anddi3): Allow disjoint source operands.
2028         (iordi3): Allow disjoint source operands.
2029         (xordi3): Allow disjoint source operands.
2030         (negdi2): Permit construction for ARM and Thumb.
2031         (arm_negdi2): Renamed version of old negdi2 pattern.
2032         (thumb_negdi2): New pattern: Only permit non-overlapping
2033         source and destination.
2034
2035         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
2036
2037         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
2038         scratch low register so that it will not be deleted.
2039
2040         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
2041
2042         * config/arm/pe.h (ARM_PE): Define.
2043         
2044         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
2045         interfacearm attribute if this is a PE toolchain.
2046         (output_return_instruction): Do not emit anything if the function
2047         has the naked attribute set.
2048         (is_called_in_ARM_mode): If the function has the interfacearm
2049         attribute then return true.
2050         (thumb_expand_prologue): Do not generate a prologue for naked
2051         functions.
2052         (thumb_expand_epilogue): Do not generate an epilogie for a naked
2053         function.
2054         (output_thumb_prologue): Do not bother if the function is naked.
2055         Strip PE encoding from function name before emitting.
2056
2057         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
2058
2059         * arm.md (pic_load_addr): Fix constraints.
2060
2061         * arm.md (casesi_insn): Fix mis-applied patch.
2062
2063         * arm.md ("core" function unit): Add rules for single- and
2064         multi-cycle insns.
2065         (All TARGET_THUMB patterns): Add "type" attribute information
2066         where needed.
2067         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
2068         the following insn is a CALL.
2069
2070         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
2071         pointer.
2072         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the 
2073         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
2074         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
2075         
2076         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
2077
2078         * config/arm/linux-gas.h: oops - this file was missed out when the
2079         branch was created...
2080
2081         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
2082
2083         * thumb.c: Deleted.  Move contents to ...
2084         * arm.c: ... here.
2085         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
2086         rule for thumb.o
2087         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
2088         * configure: Regen.
2089
2090         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
2091         declare a prototype for asm_output_align();
2092
2093         * arm.c (thumb_condition_code): Delete.
2094         (arm_print_operand): Always use arm_condition_code array.
2095
2096         * arm.c (thumb_return_addr_rtx): Delete.
2097         (arm_save_machine_status, arm_restore_machine_status): Delete.
2098         (arm_init_machine_status, arm_mark_machine_status): New functions.
2099         (arm_init_expanders): Update accordingly.
2100         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
2101         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
2102         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
2103         
2104         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
2105
2106         * configure.in : Fix arm-*-aout target to use new t-arm-aout
2107         script. 
2108         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
2109         targets.
2110
2111         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
2112
2113         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
2114         stack backtrace structure.
2115
2116         * config/arm/arm-protos.h: Add prototypes for functions defined in
2117         arm/pe.h.
2118         
2119         * config/arm/arm.c (arm_override_options): Fix selection of 
2120         attributes of default processor.
2121         
2122         * config/arm/coff.h: Delete needless #include.
2123         
2124         * config/arm/pe.c: Delete unused code.
2125         
2126         * config/arm/pe.h (CPP_DEFINES): Delete
2127         (SUBTARGET_CPP_SPEC): Define.
2128         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
2129         
2130         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
2131
2132         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
2133
2134         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
2135         updated.
2136         (CAN_DEBUG_WITHOUT_FP): Define.
2137         (FIXED_REGISTERS): Make r11 call-saved.
2138         (CALL_USED_REGISTERS): Likewise.
2139         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
2140         (FRAME_POINTER_REQUIRED): Correct logic for determining when a 
2141         frame-pointer is required.
2142         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
2143         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
2144         if the target normally needs a stack frame in non-leaf functions.
2145         (use_return_insn): Correct logic for determining when a return
2146         instruction can be used.
2147         (output_return_instruction): Handle the frame-pointer register as
2148         a normal register when not TARGET_APCS_FRAME.
2149         (arm_output_prologue): Likewise.
2150         (arm_output_epilogue): Likewise.
2151         (output_func_epilogue): Likewise.
2152         (arm_expand_prologue): Likewise.
2153         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
2154
2155         * arm.c (use_return_insn): No need to check floating point regs if
2156         TARGET_SOFT_FLOAT.
2157         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
2158         the code of value stored in the minipool array.
2159         (arm_add_minipool_constant): Likewise.
2160
2161 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2162
2163         * basic-block.h (conflict_graph_enum_fn): K&R fix.
2164
2165 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2166
2167         * tree.c (tree_expr_nonnegative_p): New function.
2168
2169         * tree.h (tree_expr_nonnegative_p): Declare.
2170
2171         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
2172         elide some sign_compare warnings.
2173         (build_conditional_expr): Likewise.
2174
2175 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
2176
2177         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
2178
2179         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
2180         * i386.c (print_operand): Use the proper suffix for a 387 HImode
2181         operand.  Abort if a 387 operand has an unsupported size.
2182
2183 2000-04-08  Neil Booth  <NeilB@earthling.net>
2184
2185         * cppexp.c (parse_charconst): Null does not end character
2186         constants.
2187         * cppinit.c (ISTABLE): Null character handled as whitespace.
2188         * cpplex.c (null_warning):  new function.
2189         (skip_string): Emit warning if nulls encountered.
2190         (_cpp_skip_hspace): Emit warning if nulls encountered.
2191         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
2192         them.
2193         * cpp.texi: Update.
2194
2195 2000-04-07  Richard Henderson  <rth@cygnus.com>
2196
2197         * flow.c (loop_depth): Remove.
2198         (reg_next_use, cc0_live, mem_set_list): Replace with ...
2199         (struct propagate_block_info): New.
2200         (life_analysis): Don't allocate reg_next_use.
2201         (propagate_block_delete_insn): Break out of propagate_block.
2202         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
2203         (propagate_block_delete_libcall): Likewise.
2204         (propagate_block): Create a propagate_block_info struct to pass
2205         to subroutines.  Allocate one not two temporary regsets.  Don't
2206         clobber memory for const calls.  Look for clobbers in
2207         CALL_INSN_FUNCTION_USAGE.
2208         (mark_set_regs): Recognize COND_EXEC.
2209         (mark_set_reg): Break out of mark_set_1.
2210         (mark_used_reg): Break out of mark_used_regs.
2211         (mark_used_regs): Recognize COND_EXEC.
2212         (insn_dead_p): Use propagate_block_info struct.
2213         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
2214         (find_auto_inc, try_pre_increment_1): Likewise.
2215         (print_rtl_with_bb): Dump regs live at end too.
2216         (count_reg_sets_1): Pass in loop_depth.
2217         (count_reg_sets, count_reg_references): Likewise.
2218         (recompute_reg_usage): Provide it.
2219
2220 2000-04-07  Richard Henderson  <rth@cygnus.com>
2221
2222         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
2223         not the raw files.
2224
2225 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
2226
2227         * cpplib.c (do_elif): Skip the rest of the line if we're
2228         not going to bother evaluating it.
2229         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
2230         to avoid pointless calls to the lexer.
2231
2232 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
2233
2234         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
2235
2236 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
2237
2238         * calls.c (expand_call): emit_queue if we're trying a sibcall.
2239
2240 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
2241
2242         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
2243
2244 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
2245
2246         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
2247         crtend so they can be multilibbed.
2248         (STAGESTUFF): Remove s-crt and s-crtS.
2249
2250 2000-04-07  Richard Henderson  <rth@cygnus.com>
2251
2252         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
2253         if we discover we need a pseudo and no_new_pseudos is true.
2254         * config/alpha/alpha.md (ne:DI insn): New.
2255         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
2256
2257 2000-04-07  Richard Henderson  <rth@cygnus.com>
2258
2259         * rtl.def (COND_EXEC): New.
2260         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
2261         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
2262
2263         * genconfig.c (have_cond_arith_flag): Remove.
2264         (have_cond_exec_flag): New.
2265         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
2266         (main): Print HAVE_conditional_execution.
2267
2268         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
2269         (sched_analyze_insn, print_pattern): Likewise.
2270         * reload.c (find_equiv_reg): Likewise.
2271         * rtlanal.c (reg_referenced_p): Likewise.
2272         (note_stores, dead_or_set_regno_p): Likewise.
2273         (reg_overlap_mentioned_p): Rewrite to use a switch.
2274
2275         * ggc.h (struct rtx_def): Forward declare.
2276
2277         * print-rtl.c (debug_rtx_range): New.
2278         * rtl.h (debug_rtx_range): Declare.
2279
2280         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
2281
2282         * gcse.c (gcse_main): Don't rebuild the CFG here.
2283         (delete_null_pointer_checks): Likewise.
2284         * ssa.c (convert_to_ssa): Likewise.
2285         * toplev.c (rest_of_compilation): Do it here instead.  Combine
2286         sequential calls to TIMEVAR.  Consistently use `insns' instead of
2287         `get_insns()'.  Always split insns after reload when optimizing.
2288
2289         * basic-block.h (merge_blocks_nomove): Declare.
2290         (tidy_fallthru_edge): Declare.
2291         * flow.c (merge_blocks_nomove): Document as merging into previous
2292         blocks.  Remove cruft from between blocks; remove all edges out of A.
2293         (tidy_fallthru_edge): Export.
2294
2295 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
2296
2297         * ssa.c (compute_conservative_reg_partition): Declare with
2298         void arguments.
2299         * toplev.c (clean_dump_file): Remove previously-deleted function
2300         inadvertantly merged back in.
2301         * conflict.c (conflict_graph_add): Use a single call to
2302         htab_find_slot to look up and insert.
2303
2304 2000-04-06  Richard Henderson  <rth@cygnus.com>
2305
2306         * genrecog.c (*): Rename _last_insn to last_insn.
2307         (make_insn_sequence): Set the position of the peephole2 C test
2308         to be at the last insn.
2309
2310 2000-04-06  Richard Henderson  <rth@cygnus.com>
2311
2312         * flow.c (compute_flow_dominators): Free worklist.
2313
2314 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
2315
2316         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
2317
2318 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
2319
2320         * rtl.h (INSN_P): New macro.
2321         (successor_phi_fn): New typedef.
2322         (for_each_successor_phi): New prototype.
2323         (in_ssa_form): New variable.
2324         (PHI_NODE_P): Likewise.
2325         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
2326         phi nodes in successors.
2327         (mark_used_regs): Add PHI case.
2328         (set_phi_alternative_reg): New function.
2329         (life_analysis): Assert that dead code elimination is not selected
2330         when in SSA form.
2331         * toplev.c (to_ssa_time): New variable.
2332         (from_ssa_time): Likewise.
2333         (compile_file): Zero to_ssa_time and from_ssa_time.
2334         Print time to convert to and from SSA.
2335         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
2336         (print_time): Compute percent fraction as integer.
2337         * ssa.c (PHI_NODE_P): Moved to rtl.h.
2338         (convert_to_ssa): Check if we're already in SSA.  
2339         Don't eliminate dead code in life_analysis.
2340         Rerun flow and life analysis at bottom.
2341         (eliminate_phi): Use canonical regnos when adding nodes.
2342         (mark_reg_in_phi): New function.
2343         (mark_phi_and_copy_regs): Likewise.
2344         (convert_from_ssa): Rerun life analysis at top.  
2345         Use coalesced partition.
2346         Check for removing a phi node at the end of the block.
2347         (compute_coalesced_reg_partition): New function.
2348         (coalesce_regs_in_copies): Likewise.
2349         (coalesce_reg_in_phi): Likewise.
2350         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
2351         (for_each_successor_phi): Likewise.
2352         (rename_context): New struct.
2353         (rename_block): Use a rename_context with rename_insn_1.  When
2354         renaming sets of a subreg, emit a copy of the entire reg first.
2355         (rename_insn_1): Treat data as a rename_context *.  Save current
2356         insn in set_data.
2357         (rename_set_data): Add field set_insn.
2358         * Makefile.in (HASHTAB_H): Move up in file.
2359         (OBSTACK_H): New macro.
2360         (collect2.o): Use OBSTACK_H in dependencies.
2361         (sdbout.o): Likewise.
2362         (emit-rtl.o): Likewise.
2363         (simplify-rtx.o): Likewise.
2364         (fix-header.o): Likewise.
2365         (OBJS): Add conflict.o.
2366         (conflict.o): New rule.
2367         * basic-block.h: Include partition.h.
2368         (conflict_graph): New typedef.
2369         (conflict_graph_enum_fn): Likewise.
2370         (conflict_graph_new): New prototype.
2371         (conflict_graph_delete): Likewise.
2372         (conflict_graph_add): Likewise.
2373         (conflict_graph_conflict_p): Likewise.
2374         (conflict_graph_enum): Likewise.
2375         (conflict_graph_merge_regs): Likewise.
2376         (conflict_graph_print): Likewise.
2377         (conflict_graph_compute): Likewise.
2378         * conflict.c: New file.
2379
2380 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
2381
2382         * tlink.c (read_repo_files): Don't look for .rpo info for
2383         linker flags.
2384
2385 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2386
2387         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
2388
2389 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2390
2391         * config/sh/lib1funcs.asm (___udivsi3_i4):
2392         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
2393         only depends on FMOVD_WORKS.
2394
2395 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2396
2397         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
2398         make double constant 8-byte aligned.
2399
2400 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
2401
2402         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
2403         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
2404         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
2405         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
2406         Accept storing GENERAL_REGS into offsetable memory.
2407         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
2408         building a TFmode constant other than 0.0L into GENERAL_REGS.
2409
2410 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
2411
2412         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
2413         
2414 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
2415
2416         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
2417         (macro_cleanup): No need to cast pbuf->macro.
2418         (collect_expansion): Use _cpp_get_define_token.  Goto done if
2419         it returns VSPACE.  Remove check for trailing space after
2420         CPP_COMMENT.
2421         (_cpp_create_definition): Don't diddle flags here.  Return
2422         directly on error.
2423         (unsafe_chars): Handle c1 being EOF.
2424         (push_macro_expansion): Use unsafe_chars for both accidental-paste
2425         checks.  Don't push the buffer till after we're done with
2426         them.
2427         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
2428         (PEEKN, FORWARD, GETC, PEEKC): Use them.
2429         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
2430         appropriately.
2431         (_cpp_parse_assertion): Don't NUL terminate.
2432         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
2433         hspace before calling _cpp_parse_assertion.  Remove all sets
2434         of only_seen_white. Treat '\f' as hspace.  Don't do anything
2435         special with '\n' here.
2436         (maybe_macroexpand): Handle T_EMPTY hash entries without
2437         pushing a buffer at all.
2438         (cpp_get_token): Handle clearing only_seen_white here.  Handle
2439         incrementing the line number here.  Clear
2440         potential_control_macro as well as only_seen_white, if
2441         appropriate.
2442         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
2443         (_cpp_get_define_token): New function, basically like
2444         _cpp_get_directive_token was but doesn't eat horizontal space.
2445         Don't do anything with only_seen_white here.
2446         (_cpp_get_directive_token): Just call _cpp_get_define_token
2447         repeatedly till it returns non-hspace.
2448
2449         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
2450         (conditional_skip, skip_if_group): Return int.
2451         (DIRECTIVE_TABLE): Change origin of all conditional directives
2452         to "COND".
2453         (TRAD_DIRECT_P): New macro.
2454         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
2455         an error for a bogus directive, unless -lang-asm.  Use
2456         TRAD_DIRECT_P. Loop calling handler functions till one returns
2457         zero.
2458         (get_macro_name): Don't diddle flags here.
2459         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
2460         Create T_EMPTY nodes for #define macro /* nothing */.
2461         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
2462         Use hp->name when calling pass_thru_directive.
2463         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
2464         Return the result of conditional_skip and/or skip_if_group.
2465         Don't call _cpp_output_line_command.
2466         (consider_directive_while_skipping): Use _cpp_get_directive_token.
2467         Issue -Wtraditional warnings as appropriate.  Don't complain
2468         about unrecognized directives.  If we are to stop skipping,
2469         return the number of the directive that ended the skip.
2470         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
2471         expansion and line commands while skipping.  Return the result
2472         of consider_directive_while_skipping, if nonzero.
2473         (do_endif): Just set potential_control_macro here.
2474         (validate_else): Use _cpp_get_directive_token.
2475         (do_assert, do_unassert): Don't save pointers into the
2476         token_buffer across calls to the lexer.  Use
2477         _cpp_get_directive_token.  
2478
2479         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a 
2480         pointer, not an offset.  Replace 'data', which was a generic
2481         pointer, with 'macro', which points to a struct hashnode.
2482         (cpp_reader): Add 'potential_control_macro' pointer.
2483         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
2484         (CPP_BUF_GET, CPP_FORWARD): Delete.
2485         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
2486         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
2487         ACTIVE_MARK_P): Update.
2488         (_cpp_get_define_token): New internal function.
2489         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
2490
2491 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
2492
2493         * configure.in: And here.
2494         * configure: Regenerate.
2495         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
2496         --enable-libstdcxx-v3 is passed at configure time.
2497         * config.h.in: Regenerate.
2498
2499 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
2500
2501         * final.c (final): Use xcalloc to allocate line_note_exists.
2502         * function.c (free_after_compilation): Free the temp_slots.
2503         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
2504         (combine_temp_slot): Free temp_slots when they get combined.
2505         (purge_addressof): Fix typo in comment.
2506         * stmt.c (mark_goto_fixup): Mark the fixup itself.
2507         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
2508
2509         * ggc.h: Include varray.h.
2510         (ggc_pending_trees): Declare.
2511         (ggc_mark_tree_children): Remove declaration.
2512         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
2513         * ggc-common.c (ggc_pending_trees): New variable.
2514         (ggc_mark_roots): Call ggc_mark_trees.
2515         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
2516         the ggc_pending_trees.
2517         * Makefile.in (GGC_H): New variable.  Use it throughout in place
2518         of ggc.h.
2519         
2520 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2521
2522         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
2523         GET_MODE_SIZE.
2524
2525 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2526
2527         * sh.c (sh_insn_length_adjustment): New function.
2528         * sh-protos.h (sh_insn_length_adjustment): Declare.
2529         * sh.h (ADJUST_INSN_LENGTH): Use it.
2530
2531 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
2532
2533         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
2534         from the insn where REG_RETVAL is added.
2535         (emit_no_conflict_block): Ditto.
2536
2537         * md.texi (Standard Names): Clarify when movX is needed.
2538
2539         * combine.c (simplify_comparison) [MINUS]: Do not replace
2540         all (op (minus A B) 0) with (op A B).
2541
2542 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
2543                           J"orn Rennecke <amylaar@cygnus.co.uk>
2544
2545         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
2546         (block_lump_real): Likewise.
2547
2548 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
2549
2550         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
2551         remaining non-zero debugging masks.
2552
2553 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
2554
2555         * basic-block.h (verify_flow_info): Declare.
2556         (flow_loop_outside_edge_p): Declare.
2557         * flow.c (verify_flow_info): Remove declaration.
2558         (clear_log_links, flow_loop_outside_edge_p): Likewise.
2559
2560 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
2561
2562         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
2563         not C++ comments.
2564
2565 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
2566
2567         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
2568         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
2569         seqdi_zero_trunc+1): Allow splits only if registers are
2570         different.
2571
2572 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
2573
2574         * acconfig.h: Add HAVE_GAS_HIDDEN.
2575         * config.in: Regenerated.
2576         * configure.in: Add test for .hidden pseudo-op in gas.
2577         * configure: Regenerated.
2578         * crtstuff.c: Include auto-host.h.
2579         Emit additional .hidden pseudo-op for __dso_handle if the
2580         assembler knows about it.
2581
2582 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
2583
2584         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
2585         before freeing argnames.
2586         * cpplib.c (do_ifndef): Cast return value of xstrdup.
2587
2588 2000-04-05  Michael Meissner  <meissner@redhat.com>
2589
2590         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
2591         Walton <jonboy@gordian.com> to make memory references with update
2592         work wtih -mregnames.
2593
2594 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2595
2596         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
2597         (regrename_optimize): Rename variables `def_uses' and
2598         `ext_basic_blocks' to avoid conflicts with similarly named
2599         typedefs in traditional C.
2600
2601         * calls.c (initialize_argument_information): Fix typo in previous
2602         change.
2603
2604 2000-04-04  Richard Henderson  <rth@cygnus.com>
2605
2606         * regrename.c (consider_available): Test fixed_regs not
2607         PIC_OFFSET_TABLE_REGNUM.
2608
2609 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
2610
2611         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
2612         crtend.
2613         (CRTSTUFF_T_CFLAGS_S): Delete definition.
2614         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
2615         (ENDFILE_LINUX_SPEC): Always use crtend.
2616         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
2617         (powerpc-*-linux-gnu): Likewise.
2618         * configure: Regenerate.
2619
2620         * config/rs6000/eabi.h: Don't include sysv4.h.
2621         (MULTILIB_DEFAULTS): Don't define.
2622         * config/rs6000/eabiaix.h: Don't include eabi.h.
2623         * config/rs6000/eabile.h: Delete.
2624         * config/rs6000/eabilesim.h: Delete.
2625         * config/rs6000/eabisim.h: Don't include eabi.h.
2626         * config/rs6000/linux.h: Don't include sysv4.h.
2627         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
2628         (MULTILIB_DEFAULTS): Don't redefine.
2629         * config/rs6000/rtems.h: Don't include eabi.h.
2630         * config/rs6000/sol2.h: Don't include sysv4le.h.
2631         * config/rs6000/sysv4le.h: Don't include sysv4.h.
2632         * config/rs6000/t-ppc: Delete.
2633         * config/rs6000/t-ppcgas: Correct comment.
2634         * config/rs6000/t-ppcos: Correct comment.  Don't build 
2635         multilibs for -fPIC, rather use -fPIC -mstrict-align 
2636         as default.
2637         * config/rs6000/t-ppc: Delete.
2638         * config/rs6000/vxppc.h: Don't include sysv4.h.
2639         * config/rs6000/vxppcle.h: Delete.
2640         * configure.in: Use multiple header files for p2pc ELF targets
2641         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
2642         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
2643         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
2644         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
2645         always available for these platforms.
2646
2647 2000-04-04  Richard Henderson  <rth@cygnus.com>
2648
2649         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
2650
2651 2000-04-04  Stan Cox  <scox@cygnus.com> 
2652
2653         * Makefile.in: Add rules for regrename.o
2654         * regrename.c: New file.
2655         * rtl.h (regrename_optimize): Add prototype.
2656         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
2657         (compile_file, decode_d_option): Add support for -frename-registers.
2658         (rest_of_compilation): Call regrename_optimize.
2659         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
2660         New macros.     
2661         
2662 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2663
2664         * Makefile (gccbug): New target.
2665         (doc): Depend on it.
2666         * gcc.texi (Bugs): Link subnodes.
2667         (gccbug): New node.
2668         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
2669         Document severities, priorities, and classes in bug form.
2670
2671 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
2672
2673         * cpplex.c (trigraph_map, speccase): Combine into single
2674         table, chartab.
2675         (NORMAL, NONTRI): New macros.
2676         (_cpp_read_and_prescan): Change to use unified table.  Use
2677         is_hspace to test for whitespace.
2678
2679         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
2680         definition that doesn't provoke the "empty body in an
2681         if-statement" warning.
2682
2683 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
2684
2685         * builtins.c (expand_builtin_strlen): Force the source to
2686         be a memory address.
2687
2688 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2689
2690         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
2691
2692 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2693
2694         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
2695          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
2696         (ECF_IS_CONST): Rename to ECF_CONST.
2697         (special_function_p): Make static, change interface.
2698         (flags_from_decl_or_type, try_to_integrate): Break out from ...
2699         (expand_call) ... here; convert number of variables to flags.
2700         (emit_library_call_vlue_1): Likewise.
2701         (setjmp_call_p): New function.
2702         (initialize_argument_information): Accepts flags as argument;
2703         return flags.
2704         (precompute_arguments): Likewise.
2705         * tree.h (special_function_p): Remove.
2706         (setjmp_call_p): Add prototype.
2707
2708 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
2709
2710         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
2711         so that addresses are offsetable by up to 16 bytes.
2712         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
2713         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
2714         offsetable.
2715
2716         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
2717         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
2718         (movsf): Don't force any constant to memory if target is integer
2719         hard register.
2720         Move fp_zero_operand check below the const0_rtx check.
2721         (movtf): Likewise. Also allow fp_zero_operand for stores into
2722         memory.
2723         (movdf): Likewise. Also allow fp_zero_operand for stores into
2724         memory and into integer hard registers.
2725         (clear_df, clear_dfp, movdf_const_intreg_sp32,
2726         movdf_const_intreg_sp64): Remove.
2727         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
2728         conditions.
2729         (movdf_no_e_insn_v9_sp32): New pattern.
2730         (movdf_insn_v9only): Remove.
2731         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
2732         (movdf_insn_sp64): Remove.
2733         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
2734         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
2735         (following splits): Rewrite conditions. Add two new splits
2736         for storing 0.0 into memory and registers.
2737         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
2738         (movtf_insn_sp32): Redo constraints and conditions.
2739         (movtf_insn_vis_sp32): New pattern.
2740         (movtf_no_e_insn_sp32): Redo constraints and conditions.
2741         (movtf_insn_hq_sp64): Likewise.
2742         (movtf_insn_hq_vis_sp64): New pattern.
2743         (movtf_insn_sp64): Redo constraints and conditions.
2744         (movtf_insn_vis_sp64): New pattern.
2745         (movtf_no_e_insn_sp64): Redo constraints and conditions.
2746         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
2747         or memory.
2748         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
2749         -mvis or -m64 to take down the number of various reload patterns.
2750
2751 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
2752
2753         * pa/pa-64.h: New file.
2754         * pa/pa64-regs.h: New file.
2755         * pa/pa64-start.h: New file.
2756         * pa/t-pa64: New file.
2757         * pa/xm-pa64hpux.h: New file.
2758
2759 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2760
2761         * sparc.c (output_restore_regs): Prototype.
2762         (sparc_emit_float_lib_cmp): Constification.
2763
2764         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
2765
2766         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
2767         Prototype.
2768
2769         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
2770         (get_value_hash, hash_rtx): Likewise.
2771
2772         * ssa.c (compute_conservative_reg_partition): Prototype.
2773
2774         * tree.c (mark_hash_entry): Prototype.
2775
2776 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
2777
2778         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
2779         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
2780         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
2781
2782         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
2783         * objc/lang-specs.h: Likewise.
2784
2785 2000-04-03  Neil Booth  <NeilB@earthling.net>
2786
2787         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
2788         and SYNTAX_ERROR2. Replace `' in messages with ''.
2789         (op_to_str): Make re-entrant.
2790         (_cpp_parse_expr): Implement new error macros. Use | rather
2791         than || to logically or 2 boolean integers.  Simply expression
2792         checking we have a left operand iff needed.
2793
2794 2000-04-03  Nick Clifton  <nickc@cygnus.com>
2795
2796         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
2797
2798 2000-04-03  Philip Blundell  <philb@gnu.org>
2799
2800         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
2801
2802 2000-04-03  Felix Lee  <flee@cygnus.com>
2803
2804         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
2805         (run_shell): Use it. 
2806
2807 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
2808
2809         * Makefile.in (stmp-int-hdrs): Make include subdir here...
2810         (stmp-fixproto): ...rather than here.
2811
2812 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
2813
2814         * pa.c (print_operand): Compute 'base' only inside the code paths
2815         that use it.
2816
2817 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
2818
2819         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
2820         CEIL_DIV_EXPR.
2821
2822 2000-04-03  Philipp Thomas  <pthomas@suse.de>
2823
2824         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
2825
2826 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
2827
2828         * Makefile.in (alias.o): Depend on $(TREE_H).
2829
2830 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
2831
2832         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
2833         processing C++.
2834         * cpplib.c (_cpp_handle_directive): Improve warnings for
2835         traditional C and indented directives.
2836
2837         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
2838         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
2839         fixinc/inclhack.def: Indent the # of #include_next one space.
2840         * cp/rtti.c: Un-indent #if and #endif.
2841
2842         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
2843         syntax error, but an error has already been printed.
2844         * cpplex.c (_cpp_parse_assertion): Give a more specific error
2845         message when called with nothing remaining on the line.
2846         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
2847         OTHER token, not an ASSERTION.
2848         * cpplib.c (do_assert): When we create a 'base' node, clear
2849         its aschain pointer.
2850
2851 2000-04-02  Neil Booth <NeilB@earthling.net>
2852
2853         * cppexp.c:  New typedef op_t.  struct operation and struct 
2854         token updated to use it.
2855         (op_to_str): New function.
2856         (_cpp_parse_expr): Error messages modified to use op_to_str.
2857
2858 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2859
2860         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
2861         before checking MUST_PASS_IN_STACK.
2862
2863 2000-04-02  Neil Booth <NeilB@earthling.net>
2864
2865         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
2866         flags and initial priority into a single constant.  New
2867         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
2868         (_parse_cpp_expr): Implement new constants.  Take left operand
2869         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
2870         parse indicated by reducing FINISHED token.  Remove new lines
2871         from cpp_error messages.
2872
2873 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
2874
2875         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
2876         permanent obstack.
2877
2878 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
2879
2880         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
2881         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
2882         the strings and function names on the fly.  Take the #sccs
2883         entry out of the table if SCCS_DIRECTIVE is not defined.
2884         (_cpp_handle_directive): Decide if the # was at the beginning
2885         of the line here.  Issue -pedantic warnings for extended
2886         directives here.  Warn about K+R directives with the #
2887         indented, and C89/extended directives with the # not indented,
2888         here.
2889         (do_import, do_include_next, do_warning, do_ident, do_sccs,
2890         do_assert, do_unassert): Don't issue pedantic warning here.
2891
2892         * cpphash.h: Add CPP_WTRADITIONAL macro.
2893         * cpplib.h (struct cpp_options): Rename warn_stringify to
2894         warn_traditional; update comments.
2895         * cppinit.c (handle_option): Set warn_traditional not
2896         warn_stringify.
2897         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
2898         CPP_WTRADITIONAL (pfile).
2899         * cpplex.c (_cpp_lex_token): Don't decide if directives should
2900         be ignored in -traditional mode here.
2901
2902         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
2903         to initialize speccase[] and trigraph_map[].  Delete all
2904         references to pfile->input_speccase.  Always treat '?' as a
2905         special character.  Remove table-initialization code from
2906         _cpp_init_input_buffer.
2907
2908         * cpplib.h (struct cpp_reader): Remove input_speccase field.
2909         * cppinit.c (cpp_cleanup): Don't free input_speccase.
2910
2911 2000-04-01  Richard Henderson  <rth@cygnus.com>
2912
2913         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
2914         (mostlyclean): Likewise.
2915
2916         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
2917         (struct dump_file_info, enum dump_file_index, dump_file): New.
2918         (open_dump_file): Take a dump_file_index not a suffix, and a decl
2919         not a string.  Clean out file if we havn't yet done so.  Do nothing
2920         if the dump isn't enabled.
2921         (close_dump_file): Do nothing if the dump isn't open.  Dump 
2922         graph data if requested.
2923         (dump_rtl, clean_dump_file): Remove.
2924         (compile_file): Don't clean the dump files.  Only finalize .bp dump
2925         if flag_test_coverage or flag_branch_probabilities.  Only finalize
2926         .combine dump if optimizing.  Iterate over dump_file to finalize the
2927         graph dumps.
2928         (rest_of_compilation): Update for open_dump_file/close_dump_file.
2929         Convert all uses of dump_rtl.
2930         (decode_d_option): Iterate over dump_file to implement 'a' and to
2931         locate pass-specific dumps.
2932
2933 2000-04-01  Neil Booth <NeilB@earthling.net>
2934
2935         * cppexp.c: Redefine priority constants.
2936         (_cpp_parse_expr): Replace left and right priority scheme with
2937         single priority logic.  Move LOGICAL to same place as COMPARE.
2938         Remove bogus check for multiple unary +/- operators.
2939
2940 2000-04-01  Neil Booth <NeilB@earthling.net>
2941
2942         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
2943         within the switch statement.  Binary operations break out of
2944         the switch naturally.  '(' tokens handled by forcing
2945         immediate shift.  ')' handled by forcing immediate reduce to
2946         the previous '('.  New error messages.
2947         
2948 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
2949
2950         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
2951         part', it's already in use.  Use %K instead.  Add a return at the
2952         end of what is now %K.
2953         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. 
2954
2955 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2956
2957         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
2958         allocate_dynamic_stack_space.
2959         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
2960         update stack_pointer_delta; do not update arg_size_so_far.
2961         (compute_argument_block_size): Use stack_delta instead of
2962         stack_pointer_pending and arg_size_so_far.
2963         (expand_call): Add sanity checking for stack_pointer_delta;
2964         save and restore stack_pointer_delta for SIB, use
2965         stack_pointer_delta for alignment; do not update arg_space_so_far.
2966         (emit_library_call_value): Use stack_pointer_delta for alignment.
2967         (store_one_arg): Do not update arg_space_so_far.
2968         * explow.c (adjust_stack, anti_adjust_stack): Update
2969         stack_pointer_delta.
2970         (allocate_dynamic_stack_space): Add sanity checking for
2971         stack_pointer_delta.
2972         * expr.c (init_expr, clear_pending_stack_adjust): Clear
2973         stack_pointer_delta.
2974         (emit_push_insn): Update stack_pointer_delta.
2975         * function.h (struct expr_status): Add x_stack_pointer_delta;
2976         remove x_arg_space_so_far.
2977         (arg_space_so_far): Remove.
2978         (stack_pointer_delta): New macro.
2979
2980 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
2981
2982         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
2983         Reorder struct cpp_options and struct cpp_reader for better 
2984         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
2985         takes two args.  Change all 'char' flags to 'unsigned char'.
2986         Move show_column flag into struct cpp_options.  Don't
2987         prototype cpp_options_init.
2988         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
2989         cppinit.c, cpplex.c, cpplib.c:
2990         Replace CPP_OPTIONS (pfile)->whatever with
2991         CPP_OPTION (pfile, whatever), and likewise for
2992         opts = CPP_OPTIONS (pfile); ... opts->whatever;
2993
2994         * cppinit.c (merge_include_chains): Take a cpp_reader *.
2995         Extract CPP_OPTION (pfile, pending) and work with that
2996         directly.
2997         (cpp_options_init): Delete.
2998         (cpp_reader_init): Turn on on-by-default options here.
2999         Allocate the pending structure here.              
3000         (cl_options, enum opt_code): Define these from the same table,
3001         kept in a large macro.  Add -fshow-column and -fno-show-column
3002         options.
3003
3004         * cpperror.c (v_message): If show_column is off, don't print
3005         the column number.
3006
3007         * cppmain.c: Update for new interface.
3008         * fix-header.c: Likewise.
3009
3010 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
3011
3012         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
3013         definition.
3014         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
3015         are passed to any invocation of AR_FOR_TARGET.
3016         (AR_CREATE_FOR_TARGET): New macro.
3017         (AR_EXTRACT_FOR_TARGET): New macro.
3018         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
3019         AR_EXTRACT_FOR_TARGET.
3020         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
3021         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
3022         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
3023         AR_EXTRACT_FOR_TARGET to sub-makes.
3024
3025 2000-03-31  Neil Booth <NeilB@earthling.net>
3026
3027         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
3028         PAREN_INNER_PRIO.
3029         (_cpp_parse_expr): Check for multiple unary +/- operators.
3030         Correct priorities of ':' and '?'.  Treat ')' as having a
3031         value.  Ensure conditional expression is not void.
3032         
3033 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
3034
3035         * alias.c (canon_rtx): Make it global.
3036         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
3037         equality.
3038         * cse.c (struct table_elt): Add canon_exp.
3039         (insert): Clear it.
3040         (invalidate): Canonicalize expressions only once.
3041         * rtl.h (canon_rtx): Declare.
3042
3043 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
3044
3045         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
3046         * alias.c (reg_known_value): Add comments.
3047         (init_alias_analysis): Likewise.
3048         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
3049         address.
3050         (cse_basic_block): Fix typo in comment.
3051         * emit-rtl.c: Include hashtab.h.
3052         (const_int_htab): New variable.
3053         (const_int_htab_hash): New function.
3054         (const_int_htab_eq): Likewise.
3055         (rtx_htab_mark_1): Likewise.
3056         (rtx_htab_mark): Likewise.
3057         (gen_rtx_CONST_INT): Cache all CONST_INTs.
3058         (unshare_all_rtx): Fix formatting.
3059         (init_emit_once): Initialize const_int_htab.
3060         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
3061         address.
3062         * rtl.texi: Document the fact that all CONST_INTs with the same
3063         value are shared.
3064
3065 2000-03-30  Richard Henderson  <rth@cygnus.com>
3066
3067         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
3068
3069 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
3070
3071         * configure.in: Comment out --enable-c-cpplib stanza.
3072         * configure: Regenerate.
3073
3074 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3075
3076         * expr.c (store_constructor): Properly compute displacement and
3077         alignment when offset is variable.
3078
3079         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
3080         cases of alignment in bytes.
3081
3082 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
3083
3084         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
3085         since it is used to generate c-parse.y.
3086         * objc-parse.c, objc-parse.y: Regenerated.
3087
3088         * function.c (expand_function_end): Pass alignment argument to
3089         emit_block_move in bits, not bytes.
3090
3091 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3092
3093         * expr.c (move_by_pieces_ninsns): Fix one more missing align
3094         correction.
3095
3096         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
3097
3098         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
3099         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
3100         * function.c (assign_parms): Likewise.
3101         * integrate.c (expand_inline_function): Likewise.
3102         * stmt.c (expand_decl): Likewise.
3103         (copy_rtx_and_substitute): Likewise.
3104         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
3105         (clear_by_pieces): Fix error in last change.
3106         * emit-rtl.c (init_emit): Set known registers alignment in bits.
3107         * function.h (regno_pointer_align): Now unsigned.
3108         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
3109         is in bits.
3110         * config/i386/i386.c (aligned_operand): Likewise.
3111         * config/sparc/sparc.c (mem_min_alignment): Likewise.
3112         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
3113         (unaligned_memory_operand): Likewise.
3114         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
3115         Also make alignments and sizes unsigned and some whitespace cleanup.
3116         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
3117
3118         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
3119         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
3120         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
3121         (expand_builtin_memset): Likewise, but to clear_storage.
3122         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
3123         (restore_fixed_argument_area): Likewise.
3124         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
3125         (load_register_parameters): Likewise, to emit_group_load.
3126         (expand_call): Likewise, to emit_group_store and emit_block_move.
3127         (emit_library_call_value_1): Likewise, to emit_block_move.
3128         (store_one_arg): Likewise, and to emit_push_insn.
3129         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
3130         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
3131         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
3132         (emit_block_move, emit_group_load, emit_group_store): Likewise.
3133         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
3134         (expand_assigment, store_expr, store_constructor_field): Likewise.
3135         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
3136         (store_constructor, store_field, get_inner_reference): Likewise.
3137         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
3138         (expand_expr, case COMPONENT_REF): Likewise.
3139         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
3140         and positions; reindent code.
3141         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
3142         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
3143         (assign_parms): Likewise to emit_group_store.
3144         * optabs.c (prepare_cmp_insn): Alignment is in bits.
3145         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
3146         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
3147         (expand_return): Likewise to {extract,store}_bit_field.
3148         * stor-layout.c (get_mode_alignment): Minor cleanup.
3149         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
3150         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
3151         
3152 2000-03-29  Nick Clifton  <nickc@cygnus.com>
3153
3154         * config/arm/arm.h: Undo effects of previous delta:
3155         (ASM_SPEC): Do not define.
3156         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
3157
3158         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
3159         typo. 
3160
3161 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
3162
3163         * cppinit.c (cpp_start_read): Call initialize_dependency_output
3164         only after reading in the primary source file.
3165
3166 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
3167
3168         * c-common.c (c_common_nodes_and_builtins): The first parameter to
3169         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
3170         or a reference to a va_list.
3171         * builtins.c (stabilize_va_list): Simplify now we don't have to
3172         work around C array address decay.
3173         * c-typeck.c (convert_for_assignment): Handle assignment to
3174         a reference parameter by taking the address of the RHS.
3175         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
3176         (va_copy): Likewise.
3177         (__va_copy): Likewise.
3178         * ginclude/varargs.h (va_start): Likewise.
3179         (__va_copy): Likewise.
3180
3181 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
3182
3183         * i386/djgpp.h: Remove extraneous "+".
3184
3185         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
3186
3187         * calls.c (expand_call): Fix typo in last change.
3188
3189 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
3190
3191         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
3192         been expanded.
3193
3194 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3195
3196         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
3197         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
3198         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
3199         * tree.c (bit_position, byte_position): Likewise.
3200         * tree.h: Declare new functions.
3201
3202 2000-03-29  Nick Clifton  <nickc@cygnus.com>
3203
3204         * config/arm/arm.c: Minor formatting changes/
3205         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
3206         already defined.
3207         (ASM_SPEC): Define if not already defined.
3208
3209 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
3210
3211         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
3212         _cpp_calc_hash.
3213
3214 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
3215
3216         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
3217         value, don't output it as unsigned.
3218
3219 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
3220
3221         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
3222
3223 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3224
3225         * c-common.c (c_common_nodes_and_builtins): Don't special case
3226         cplus_mode when declaring builtin bzero/bcmp, always avoid
3227         prototype arguments.
3228
3229 2000-03-29  Bruce Korb  <bkorb@gnu.org>
3230
3231         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
3232         to a non-file
3233
3234 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3235
3236         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
3237         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
3238         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
3239         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
3240         (save_fixed_argument_area, restore_fixed_argument_area):
3241         conditionize by #ifdef REG_PARM_STACK_SPACE only.
3242         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
3243         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
3244         (precompute_register_parameters): Avoid #ifdefs on
3245         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
3246         (stire_one_args): Likewise.
3247         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
3248         (emit_library_call_value_1): Likewise.
3249         (compute_argument_block_size): Align to STACK_BOUNDARY only for
3250         ACCUMULATE_OUTGOING_ARGS.
3251         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
3252         value.
3253         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
3254         (use_crosses_set_p): Likewise.
3255         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
3256         #define ACCUMULATE_OUTGOING_ARGS 1.
3257         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
3258         frames.
3259         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
3260         constants.
3261         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
3262         (TARGET_SWITCHES): Add push-args, no-push-args,
3263         accumulate-outgoing-args and no-accumulate-outgoing-args.
3264         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
3265         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
3266         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
3267         and PUSH_ROUNDING.
3268         (emit_push_insn): Likewise.
3269         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
3270         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
3271         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
3272         (STACK_DYNAMIC_OFFSET): Define correctly for both
3273         ACCUMULATE_OUTGOING_ARGS and normal mode.
3274         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
3275         * tm.texi (PUSH_ARGS): Document.
3276         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
3277
3278 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3279
3280         * flags.h (flag_optimize_sibling_calls): Declare.
3281         * calls.c (expand_call): Fail sibcall when
3282         !flag_optimize_sibling_calls
3283         * invoke.texi (flag_optimize_sibling_calls): Document.
3284         * toplev.c (flag_optimize_sibling_calls): New global variable.
3285         (f_options): Add flag_optimize_sibling_calls.
3286         (rest_of_compilation): Conditionize
3287         optimize_sibling_and_tail_recursive_calls by
3288         flag_optimize_sibling_calls.
3289         (main): Set flag_optimize_sibling_calls for -O2.
3290         * stmt.c (expand_return): Conditionize tail recursion by
3291         flag_optimize_sibling_calls.
3292
3293 2000-03-29  Richard Henderson  <rth@cygnus.com>
3294
3295         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
3296         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
3297
3298 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
3299
3300         * except.c (add_eh_table_entry): Mark type_info's as referenced.        
3301
3302 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3303
3304         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
3305         is given.
3306         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
3307         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
3308         * config/rs6000/aix.h: then modified likewise.
3309
3310 2000-03-28  Richard Henderson  <rth@cygnus.com>
3311
3312         * rtl.h: Redistribute enum reg_note documentation. 
3313         Kill trailing whitespace.
3314         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
3315         Kill trailing whitespace.
3316
3317 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
3318
3319         * cppfiles.c (hash_IHASH): Just return i->hash.
3320         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
3321         htab_find_with_hash.
3322         (cpp_read_file): Likewise.
3323         (find_include_file): Likewise.  Properly initialize
3324         ih->nshort.  Share ih->name and ih->nshort if possible.
3325         * cpphash.c (_cpp_calc_hash): New function.
3326         (hash_HASHNODE): Just return h->hash.
3327         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
3328         htab_find_with_hash.
3329         * cpphash.h: Prototype _cpp_calc_hash.
3330         * cppinit.c (initialize_builtins): Provide a valid hash
3331         to _cpp_make_hashnode, using _cpp_calc_hash.
3332
3333         * cpphash.c (collect_expansion): # is not a special character
3334         in object-like macros.  In -traditional mode, /**/ is not
3335         token paste at the beginning or end of the line.
3336         * cpplib.c (do_include, do_import, do_include_next): If
3337         parse_include fails, return immediately.
3338
3339 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
3340
3341         * config/arm/arm.md (return peepholes): Update to reflect the new
3342         call insn patterns.
3343         * config/arm/arm.c (arm_volatile_func): Also check
3344         current_function_nothrow.
3345         (output_return_instruction, output_func_prologue): Use it.
3346         (arm_output_epilogue, arm_expand_prologue): Likewise.
3347
3348 2000-03-27  Tom Tromey  <tromey@cygnus.com>
3349
3350         * gcc.c (handle_braces): In {x*...} case, break out of loop if
3351         switch is found.
3352
3353 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3354
3355         * expr.c (store_constructor): SIZE now signed.
3356         For EXPR_SIZE, don't evaluate size; just needed if constant.
3357         * fold-const.c (fold): Fix a number of cases when folded tree is
3358         wrong type.
3359         * function.c (flush_addressof): Reenable.
3360         * tree.h (flush_addressof): Likewise.
3361         * toplev.c (independent_decode_option): Look at strings_processed.
3362         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
3363
3364 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
3365
3366         * sibcall.c (indentify_call_return_value): Find last call in the chain;
3367         Allow stack adjustment after function call.
3368
3369         * regmove.c (struct csa_memlist): Make mem field rtx *.
3370         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
3371         (try_apply_stack_adjustment): Replace whole MEM rtx.
3372         (combine_stack_adjustments_for_block): Update calls
3373         to record_one_stack_ref.
3374
3375 2000-03-28  Neil Booth  <NeilB@earthling.net>
3376
3377         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
3378         '\\' rather than a null character, so nulls are not special.  Fix
3379         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
3380         speed trigraph conversion.
3381         (_cpp_init_input_buffer): Initialize trigraph map.
3382
3383 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
3384
3385         * config/i386/i386.c (output_387_binary_op): Correct intel
3386         mode assembly output, and add spaces after commas in AT&T
3387         output.  Correct Unixware assembler comment.  Document input
3388         constraints.  Comment fp operations.  Reduce profligate buffer
3389         size.  Remove extraneous abort.  Localize temp var.
3390         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
3391         (output_fix_trunc): Add spaces after commas in assembly output.
3392
3393 2000-03-27  Richard Henderson  <rth@cygnus.com>
3394
3395         * i386-protos.h (ix86_match_ccmode): Declare.
3396         * i386.c (ix86_match_ccmode): New.
3397         (ix86_expand_fp_compare): Update for pattern renames.
3398         (ix86_expand_strlensi_unroll_1): Likewise.
3399         * i386.h (EXTRA_CC_MODES): Add CCZ.
3400         (SELECT_CC_MODE): Use it for EQ/NE zero.
3401         * i386.md (cmpsi_ccz_1): New.
3402         (cmpqi_ccz_1): New.
3403         (*testsi_ccz_1): New.
3404         (testqi_ccz_1): New.
3405         (cmpsi_ccno_1): Rename from cmpsi_0.
3406         (testsi_ccno_1): Rename from testsi_1.
3407         (testqi_ccno_1): Rename from testqi_1.
3408         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
3409         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
3410         (*cmphi_0): Use ix86_match_ccmode.
3411         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
3412         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
3413         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
3414         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
3415         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
3416         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
3417         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
3418         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
3419         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
3420         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
3421         (appropriate peepholes): Likewise.
3422         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
3423         (*subsi_3, *subhi_3, *subqi_3): Remove.
3424         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
3425         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
3426         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
3427         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
3428         (x86_shift_adj_1): Use CCZ.
3429         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
3430
3431 2000-03-27  Stan Cox  <scox@cygnus.com> 
3432
3433         * resource.h (mark_resource_type): New.
3434         * resource.c (find_dead_or_set_registers, mark_target_live_regs, 
3435         find_free_register): Use mark_resource_type.
3436         (mark_set_resources): Change include_delayed_effects
3437         to mark_resource_type.
3438         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, 
3439         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): 
3440         Use mark_resource_type.
3441         
3442 2000-03-27  Richard Henderson  <rth@cygnus.com>
3443
3444         * i386.md (call_pop_0, call_value_pop_0): New.
3445         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
3446         (call_value_pop_1): Likewise.
3447         (call_0, call_value_0): New.
3448         (call_1, call_value_1): Remove constraint from unused arg.
3449
3450 2000-03-27  Nick Clifton  <nickc@cygnus.com>
3451
3452         * invoke.texi (Spec Files): Document new spec % command created by
3453         Tom Tromey's recent patch.
3454
3455 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
3456
3457         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
3458         if not defined.
3459
3460 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3461
3462         * expr.c (expand_assignment): Fix typo in last change.
3463
3464         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
3465
3466 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3467
3468         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
3469         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
3470         and DECL_INLINE if FUNCTION_DECL.
3471         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
3472         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
3473         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
3474         (combine_parm_decls): Likewise.
3475         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
3476         * print-tree.c (print_node): Likewise.
3477         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
3478         DECL_TRANSPARENT_UNION on proper decl types.
3479         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
3480         * stor-layout.c (layout_decl): Only check DECL_PACKED and
3481         DECL_BIT_FIELD of FIELD_DECL.
3482         * tree.h (DECL_RESULT_FLD): New macro.
3483         
3484         * expr.c (expand_assignment): Add code to handle variable-sized
3485         BLKmode case.
3486
3487 2000-03-26  Richard Henderson  <rth@cygnus.com>
3488
3489         * calls.c (expand_call): Pass parms not original exp to
3490         optimize_tail_recursion.  Mind return value instead of looking
3491         for a barrier.
3492         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
3493         call_expr.  Move checks for call_expr and current_function_decl ...
3494         (expand_return): ... here.
3495
3496 2000-03-26  Tom Tromey  <tromey@cygnus.com>
3497
3498         * gcc.c (handle_braces): Recognize `%{<S}' construct.
3499         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
3500         defines.
3501         (process_command): Use them.
3502         (check_live_switch): Likewise.
3503         (give_switch): Skip ignored switches.
3504
3505 2000-03-26  Jan Hubicka  <jh@suse.cz>
3506
3507         * jump.c (jump_optimize_1): Fix typo in elide optimizations
3508         for minimal jump pass test.
3509
3510 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
3511
3512         * integrate.c (function_cannot_inline_p): Do inline functions that
3513         return `void'.
3514
3515 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3516
3517         * stor-layout.c (layout_type, set_sizetype): early_type_list is
3518         now a list of TREE_LIST entries, not types.
3519         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
3520
3521         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
3522         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
3523         int_bit_position.
3524         * config/mips/mips.c (function_arg): Likewise; also remove cast
3525         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
3526         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
3527         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
3528         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
3529         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
3530         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
3531         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
3532         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
3533         num_adjusts now unsigned.
3534         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
3535         * config/sparc/sparc.c (struct function_arg_record_value_parms):
3536         NREGS now unsigned.
3537         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
3538         as is BITPOS variable; use host_integerp and int_bit_position.
3539         (function_arg_record_value_2): Likewise.
3540         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
3541         Variable REGNO now unsigned.
3542         (function_arg_record_value): NREGS now unsigned.
3543
3544 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
3545
3546         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
3547
3548 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3549
3550         * Rework fields used to describe positions of bitfields and
3551         modify sizes to be unsigned and use HOST_WIDE_INT.
3552         * alias.c (reg_known_value_size): Now unsigned.
3553         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
3554         (really_start_incremental_init): Use bitsize_zero_node.
3555         (push_init_level, pop_init_level, output_init_element): Likewise.
3556         Use bitsize_unit_node and bitsize_one_node.
3557         (output_pending_init_elements, process_init_element): Likewise.
3558         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
3559         (make_extraction): Position and length HOST_WIDE_INT and unsigned
3560         HOST_WIDE_INT, respectively.
3561         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
3562         (num_sign_bit_copies): Returns unsigned.
3563         BITWIDTH now unsigned; rework arithmetic.
3564         Remove recursive call from arg to MAX.
3565         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
3566         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
3567         REGNO now unsigned.
3568         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
3569         (find_split_point, expand_compound_operation, make_extraction): LEN
3570         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
3571         (make_field_assignment): Likewise.
3572         (combine_simplify_rtx): Add cast.
3573         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
3574         (force_to_mode): WIDTH now unsigned; add cast.
3575         (if_then_else_cond): SIZE now unsigned.
3576         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
3577         (extended_count): Now returns unsigned.
3578         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
3579         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
3580         (simplify_comparison): MODE_WIDTH now unsigned.
3581         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
3582         (mark_used_regs_combine): Likewise; rework arithmetic.
3583         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
3584         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
3585         (record_promoted_value): REGNO now unsigned.
3586         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
3587         (get_last_value): REGNO now unsigned.
3588         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
3589         (reg_dead_regno, reg_dead_endregno): Now unsigned.
3590         (remove_death): Arg REGNO now unsigned.
3591         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
3592         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
3593         now unsigned.
3594         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
3595         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
3596         (struct cse_reg_info): REGNO now unsigned.
3597         (cached_regno): Now unsigned.
3598         (REGNO_QTY_VALID_P): Add cast.
3599         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
3600         (remove_invalid_regs): Likewise.
3601         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
3602         as are variables END and I.
3603         (get_cse_reg_info, insert): Likewise.
3604         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
3605         (canon_hash): Likewise.
3606         (insert_regs, lookup_for_remove): REGNO now unsigned.
3607         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
3608         New variable RN.
3609         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
3610         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
3611         * emit-rtl.c (subreg_realpart_p): Add cast.
3612         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
3613         (operand_subword_force): Arg I is now unsigned.
3614         * except.c (eh_regs): Variable I is now unsigned.
3615         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
3616         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
3617         length is unsigned HOST_WIDE_INT; likewise for internal variables.
3618         (store_split_bit_field, extract_fixed_bit_field): Likewise.
3619         (extract_split_bit_field, store_bit_field, extract_bit_field):
3620         Likewise.
3621         * expr.c (store_constructor_fields, store_constructor, store_field):
3622         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
3623         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
3624         (do_jump): Likewise.
3625         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
3626         MAX_SIZE is now unsigned.
3627         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
3628         (emit_group_store): Likewise.
3629         (emit_move_insn): I now unsigned.
3630         (store_constructor): Use host_integerp, tree_low_cst, and
3631         bitsize_unit_node.
3632         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
3633         Rework all calculations to use trees and new fields.
3634         * expr.h (promoted_input_arg): Regno now unsigned.
3635         (store_bit_field, extract_bit_field): Adjust types of pos and size.
3636         (mark_seen_cases): Arg is HOST_WIDE_INT.
3637         * flow.c (verify_wide_reg_1): REGNO now unsigned.
3638         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
3639         precisions and alignments are unsigned.
3640         (optimize_bit_field_compare, fold_truthop): Likewise.
3641         (int_const_binop): Adjust threshold for size_int_type_wide call.
3642         (fold_convert): Likewise.
3643         (size_int_type_wide): Make table larger and fix thinko that only
3644         had half of table used.
3645         (all_ones_mask_p, fold): Precisions are unsigned.
3646         * function.c (put_reg_info_stack): REGNO is unsigned.
3647         (instantiate_decl): Size is HOST_WIDE_INT.
3648         (instantiate_virtual_regs): I is unsigned.
3649         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
3650         (promoted_input_arg): REGNO is unsigned.
3651         * function.h (struct function): x_max_parm_reg is now unsigned.
3652         * gcse.c (max_gcse_regno): Now unsigned.
3653         (struct null_pointer_info): min_reg and max_reg now unsigned.
3654         (lookup_set, next_set): REGNO arg now unsigned.
3655         (compute_hash_table): REGNO and I now unsigned.
3656         (handle_avail_expr): regnum_for_replacing now unsigned.
3657         (cprop_insn): REGNO now unsigned.
3658         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
3659         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
3660         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
3661         * hard-reg-set.h (reg_class_size): Now unsigned.
3662         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
3663         * jump.c (mark_modified_reg): I now unsigned; add cast.
3664         (rtx_equal_for_thread_p): Add cast.
3665         * loop.c (max_reg_before_loop): Now unsigned.
3666         (struct_movable): REGNO now unsigned.
3667         (try_copy_prop): REGNO arg unsigned.
3668         (regs_match_p): XN and YN now unsigned.
3669         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
3670         (strength_reduce): Likewise; NREGS also unsigned.
3671         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
3672         * loop.h (struct iv_class): REGNO now unsigned.
3673         (max_reg_before_loop, first_increment_giv, last_increment_giv):
3674         Now unsigned.
3675         * machmode.h (mode_size, mode_unit_size): Now unsigned.
3676         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
3677         * optabs.c (expand_binop): I and NWORDS now unsigned.
3678         (expand_unop): I now unsigned.
3679         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
3680         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
3681         * real.c (significand_size): Now returns unsigned.
3682         * real.h (significand_size): Likewise.
3683         * regclass.c (reg_class_size): Now unsigned.
3684         (choose_hard_reg_mode): Both operands now unsigned.
3685         (record_reg_classes): REGNO and NR now unsigned.
3686         (reg_scan): NREGS now unsigned.
3687         (reg_scan_update): old_max_regno now unsigned.
3688         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
3689         * reload.c (find_valid_class): BEST_SIZE now unsigned.
3690         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
3691         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
3692         Likewise for variable R.
3693         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
3694         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
3695         (find_equiv_reg): Add casts.
3696         (regno_clobbered_p): Arg REGNO now unsigned.
3697         * reload.h (struct reload): NREGS now unsigned.
3698         (refers_to_regno_for_reload_p): Regno args are unsigned.
3699         (regno_clobbered_p): Likewise.
3700         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
3701         (compute_use_by_pseudos): REGNO now unsigned.
3702         (find_reg): I and J now unsigned, new variable K, and change loop
3703         variables accordingly; THIS_NREGS now unsigned.
3704         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
3705         (spill_hard_reg): REGNO arg now unsigned; add casts.
3706         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
3707         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
3708         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
3709         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
3710         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
3711         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
3712         (emit_reload_insns): REGNO now unsigned.
3713         (reload_cse_move2add): Add cast.
3714         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
3715         and rework loop.
3716         * resource.c (mark_referenced_resources, mark_set_resources): New
3717         variable R; REGNO and LAST_REGNO now unsigned.
3718         (mark_target_live_regs): J and REGNO now unsigned.
3719         * rtl.c (mode_size, mode_unit_size): Now unsigned.
3720         * rtl.h (union rtunion_def): New field rtuint.
3721         (XCUINT): New macro.
3722         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
3723         (operand_subword, operand_subword_force): Word number is unsigned.
3724         (choose_hard_reg_mode): Operands are unsigned.
3725         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
3726         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
3727         (regno_use_in, combine_instructions, remove_death): Likewise.
3728         (reg_scan, reg_scan_update): Likewise.
3729         (extended_count): Return is unsigned.
3730         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
3731         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
3732         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
3733         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
3734         (reg_reg_last_1): FIRS and LAST now unsigned.
3735         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
3736         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
3737         now unsigned.
3738         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
3739         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
3740         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
3741         (replace_regs): Arg NREGS now unsigned.
3742         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
3743         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
3744         (simplify_binary_operation): Likewise.
3745         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
3746         THIS_LAST now unsigned.
3747         (cselib_record_set): Add cast.
3748         * ssa.c (ssa_max_reg_num): Now unsigned.
3749         (rename_block): REGNO now unsigned.
3750         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
3751         sizes now unsigned.
3752         (all_cases_count): Just return -1 not -2.
3753         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
3754         Rework tests to use trees whenever possible.
3755         Use host_integerp and tree_low_cst.
3756         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
3757         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
3758         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
3759         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
3760         (smallest_mode_for_size): Likewise.
3761         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
3762         KNOWN_ALIGN is now an alignment, so simplify code.
3763         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
3764         (start_record_layout): Renamed from new_record_layout_info.
3765         Update to new fields.
3766         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
3767         New functions.
3768         (place_union_field): Renamed from layout_union_field.
3769         Update to use new fields in rli.
3770         (place_field): Renamed from layout_field.
3771         Major rewrite to use new fields in rli; pass alignment to layout_decl.
3772         (finalize_record_size): Rework to use new fields in rli and handle
3773         union.
3774         (compute_record_mode): Rework to simplify and to use new DECL fields.
3775         (finalize_type_size): Make rounding more consistent.
3776         (finish_union_layout): Deleted.
3777         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
3778         (layout_type, case RECORD_TYPE): Call new function names.
3779         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
3780         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
3781         (get_best_mode): UNIT is now unsigned; remove casts.
3782         * tree.c (bit_position): Compute from new fields.
3783         (byte_position, int_byte_position): New functions.
3784         (print_type_hash_statistics): Cast to remove warning.
3785         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
3786         (build_index_type): Likewise; make subtype of sizetype.
3787         (build_index_2_type): Pass sizetype to build_range_type.
3788         (build_common_tree_nodes): Use size_int and bitsize_int to
3789         initialize nodes; add bitsize_{zero,one,unit}_node.
3790         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
3791         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
3792         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
3793         (DECL_FIELD_BITPOS): Deleted.
3794         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
3795         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
3796         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
3797         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
3798         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
3799         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
3800         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
3801         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
3802         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
3803         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
3804         (DECL_ALIGN): Adjust to new field in union.
3805         (DECL_OFFSET_ALIGN): New field.
3806         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
3807         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
3808         (union tree_decl): Add struct for both aligns.
3809         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
3810         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
3811         (struct record_layout_info): Rework fields to have offset
3812         alignment and byte and bit position.
3813         (start_record_layout, place_field): Renamed from old names.
3814         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
3815         (byte_position, int_byte_position): Likewise.
3816         (get_inner_reference): Change types of position and length.
3817         * unroll.c (unroll_loop): New variable R; use for some loops.
3818         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
3819         (calculate_giv_inc): Arg REGNO now unsigned.
3820         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
3821         * varasm.c (assemble_variable): Clean up handling of size using
3822         host_integerp and tree_low_cst.
3823         (decode_addr_const): Use byte, not bit, position.
3824         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
3825         use tree_low_cst and int_bit_position.
3826         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
3827         
3828 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
3829
3830         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
3831         (reorder_block_def): New members eff_head and eff_end.
3832         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
3833         (verify_insn_chain): New function.
3834         (skip_insns_between_block): Add code to skip deleted insns.
3835         Check for note before using.
3836         (chain_reorder_blocks): Replace calls to skip_insns_between_block
3837         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
3838         Check for note before using.
3839         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
3840         (fixup_reorder_chain): Restructure, clean up, defect removal.
3841         (reorder_basic_blocks): Remove last_insn and references to it.
3842         Moved insn chain verification code into a new function (see above).
3843         Delete defective code that sets last insn.
3844         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
3845         all blocks.
3846
3847 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3848
3849         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
3850
3851 2000-03-24  Richard Henderson  <rth@cygnus.com>
3852
3853         * tree.c (lang_safe_for_unsave): Remove.
3854         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
3855         allowing for two levels of unsafeness.  Remove lang hook.
3856         * tree.h: Update declarations.
3857         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
3858         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
3859         Always fail sibcalls when there are pending cleanups.
3860
3861 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
3862
3863         * flow.c (propagate_block): When we delete an ADDR_VEC,
3864         also delete the BARRIER following it if there is one.
3865
3866 2000-03-24  Richard Henderson  <rth@cygnus.com>
3867
3868         * builtins.c (expand_builtin_bzero): Convert `length' argument
3869         to sizetype.
3870
3871 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
3872
3873         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
3874         comparison if regno's are equal.
3875         * calls.c (initialize_argument_informat): Add ecf_flags argument.
3876         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
3877         (expand_call): Update caller.
3878         Avoid making a sibling call if argument size of the callee is larger
3879         than argument size of the caller.
3880         Call hard_function_value with outgoing set if in sibcall pass.
3881         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
3882
3883         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
3884         Change LEAF_REGISTERS from an array initializer to actual array
3885         identifier. Move static global variable into the function.
3886         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
3887         sequences for leaf functions.
3888         * global.c (global_alloc): Likewise.
3889         * tm.texi (LEAF_REGISTERS): Update documentation.
3890
3891         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
3892         TARGET_FLAT leaf disabling hack.
3893         (LEAF_REGISTERS): Changed from an array initializer to actual array
3894         identifier to avoid duplication and remove the above hack.
3895         (FUNCTION_OK_FOR_SIBCALL): Define.
3896         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
3897         always like call attribute.
3898         (eligible_for_sibcall_delay): New attribute.
3899         (sibcall): New delay type.
3900         (sibcall, sibcall_value, sibcall_epilogue): New expands.
3901         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
3902         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
3903         * config/sparc/sparc.c (sparc_leaf_regs): New array.
3904         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
3905         New functions.
3906         (output_function_epilogue): Move part of the code into
3907         output_restore_regs.
3908         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
3909         TYPE_SIBCALL.
3910         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
3911         prototypes.
3912
3913         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
3914         until infrastructure is finished.
3915
3916 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
3917
3918         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
3919         (save_parm_insns): Not here.
3920
3921 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3922
3923         * builtins.c (expand_builtin_bzero): New function.
3924         (expand_builtin): Handle bzero.
3925
3926         * builtins.def: Add BUILT_IN_BZERO.
3927
3928         * c-common.c (c_common_nodes_and_builtins): Provide builtin
3929         prototype & function for bzero.
3930
3931 2000-03-23  Michael Meissner  <meissner@redhat.com>
3932
3933         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
3934         change adding TARGET_FP to the TF floating point insns, except for
3935         trunctfsf2, which generates direct calls to truncdfsf2.
3936
3937 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
3938
3939         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
3940         try to protect against middle-end changes that break binary
3941         compatibility.
3942         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
3943
3944 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3945
3946         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
3947
3948 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3949
3950         * calls.c (expand_call): If TARGET is passed by reference and
3951         is readonly, write a CLOBBER.
3952
3953 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3954
3955         * builtins.c (expand_builtin): Handle bcmp.
3956
3957         * builtins.def: Add BUILT_IN_BCMP.
3958
3959         * c-common.c (c_common_nodes_and_builtins): Provide builtin
3960         prototype & function for bcmp.
3961
3962 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
3963
3964         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
3965         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
3966         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
3967
3968 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
3969
3970         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
3971         alternative when using -fp64 -gp32.
3972
3973 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
3974
3975         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
3976         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
3977         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
3978
3979         * frame.h (frame_state): Revert last change.
3980         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
3981         * libgcc2.c (throw_helper): Revert last change.
3982         
3983 2000-03-22  Richard Henderson  <rth@cygnus.com>
3984
3985         * stmt.c (expand_asm_operands): Don't promote the temporary.
3986
3987 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
3988
3989         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
3990         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
3991           c_get_alias_set): Likewise.
3992         * c-decl.c (duplicate_decls): Likewise.
3993         * c-typeck.c (default_conversion,build_unary_op): Likewise.
3994         * calls.c (initialize_argument_information): Likewise.
3995         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
3996         Likewise.
3997         * dwarfout.c (decl_class_context,output_type): Likewise.
3998         * expr.c (get_inner_reference): Likewise.
3999         * fold-const.c (simple_operand_p,fold): Likewise.
4000         * function.c (aggregate_value_p): Likewise.
4001         * stmt.c (expand_asm_operands): Likewise.
4002         * varasm.c (named_section): Likewise.
4003
4004 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
4005
4006         Implement dwarf2 exception handling for the ARM.
4007         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
4008         (DWARF_FRAME_RETURN_COLUMN): Define.
4009         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
4010         REG_FRAME_RELATED_EXPR note.
4011         (emit_sfm): Likewise.
4012         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
4013         * dwarf2out.c (reg_save): Handle saving a register to itself.
4014         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
4015         * except.c (eh_regs): Don't use the static chain reg if it's
4016         callee-saved.
4017         * frame.h (frame_state): Add cfa_saved field.
4018         * frame.c (execute_cfa_insn): Set it.
4019         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in 
4020         the epilogue.
4021         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
4022         Now takes a parm.
4023         (instantiate_virtual_regs): Adjust.
4024         * tm.texi: Adjust.
4025         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
4026         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
4027         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
4028
4029         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
4030         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
4031
4032 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4033
4034         * builtins.def: New file.
4035
4036         * Makefile.in (TREE_H): Depend on builtins.def.
4037
4038         * builtins.c (built_in_names): Use builtins.def.
4039
4040         * tree.h (built_in_function): Likewise.
4041
4042 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
4043
4044         * tree.c (size_in_bytes): Return size_zero_node, not
4045         integer_zero_node.
4046
4047 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
4048
4049         * config/fp-bit.c (pack_d): Correct the case when a denormal
4050         is rounded up and stops being denormal.
4051
4052 2000-03-21  Richard Henderson  <rth@cygnus.com>
4053
4054         * config/alpha/alpha.c (function_arg): Check for void_type_node
4055         before using MUST_PASS_IN_STACK.
4056
4057 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
4058
4059         * regmove.c (combine_stack_adjustments_for_block): Check that
4060         the stack pointer is a valid memory address.
4061
4062 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
4063
4064         * calls.c: re-install Mar 16 emit_library_call merge.
4065
4066 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
4067
4068         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
4069         we cannot be sure that if reload_completed base register will
4070         be properly aligned.
4071
4072 2000-03-21  Richard Henderson  <rth@cygnus.com>
4073
4074         * flow.c (delete_block): Fix typo last change.
4075
4076 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
4077
4078         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
4079         not COMPLETE_TYPE_P, to check the type of the expression.
4080
4081 2000-03-21  Michael Meissner  <meissner@redhat.com>
4082
4083         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
4084         all floating point insns that just tested the macro
4085         TARGET_HAS_XFLOATING_LIBS.
4086         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
4087         used to only use the gprs.
4088
4089 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
4090
4091         * tree.h (COMPLETE_TYPE_P): New macro.
4092         (COMPLETE_OR_VOID_TYPE_P): New macro.
4093         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
4094         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
4095         * c-aux-info.c (gen_type): Use them.
4096         * c-common.c (c_expand_expr_stmt): Likewise.
4097         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
4098         grokdeclarator, grokparms, finish_struct, start_function,
4099         store_parm_decls, combine_parm_decls): Likewise.
4100         * c-parse.y (cast_expr): Likewise.
4101         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
4102         c_size_in_bytes, c_alignof, build_component_ref,
4103         build_indirect_ref, build_array_ref, convert_arguments,
4104         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
4105         * calls.c (initialize_argument_information): Likewise.
4106         * convert.c (convert_to_integer): Likewise.
4107         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
4108         * dwarfout.c (location_or_const_value_attribute,
4109         output_enumeration_type_die, output_structure_type_die,
4110         output_union_type_die, output_type): Likewise.
4111         * expr.c (safe_from_p, expand_expr): Likewise.
4112         * function.c (assign_parms): Likewise.
4113         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
4114         * tree.c (build_array_type, build_function_type,
4115         build_method_type, build_offset_type, build_complex_type): Likewise.
4116         * c-parse.c, c-parse.h: Regenerated.
4117
4118 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4119
4120         * config/c4x/rtems.h: Include config/rtems.h.
4121
4122 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
4123
4124         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
4125         decl is a FUNCTION_DECL
4126
4127 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
4128
4129         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
4130         function uses output registers.  Don't save RP for leaf functions.
4131         Do save RP even if no epilogue.
4132         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
4133         (CALL_USED_REGISTERS): Unmark in registers.
4134         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
4135         to near the middle.
4136
4137 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
4138
4139         * config/rs6000/rs6000.md (bunordered): New expander.
4140         (bordered): New expander.
4141         (buneq): New expander.
4142         (bunge): New expander.
4143         (bungt): New expander.
4144         (bunle): New expander.
4145         (bunlt): New expander.
4146         (bltgt): New expander.
4147  
4148         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
4149         (ccr_bit_negated_p): New function.
4150         (print_operand): For %C, generate appropriate cror for UNEQ,
4151         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
4152
4153 2000-03-20  Andreas Jaeger  <aj@suse.de>
4154
4155         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
4156         warning.
4157
4158         * tree.h (safe_for_unsave): Prototype.
4159
4160 2000-03-20  Richard Henderson  <rth@cygnus.com>
4161
4162         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
4163         (combine_stack_adjustments_for_block): Don't allow sp references
4164         in the side of a set we're not fixing up.
4165         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
4166         after life_analysis.
4167
4168 2000-03-20  Richard Henderson  <rth@cygnus.com>
4169
4170         * calls.c (expand_call): Don't bother generating tail call
4171         sequences if there are pending cleanups.  Use
4172         expand_start_target_temps/expand_end_target_temps to elide
4173         cleanups created during sibcall expansion.
4174
4175 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
4176
4177         * configure.in: Set $IFS to a value if it doesn't already have one
4178         in the --enable-checking handling.
4179         * configure: Regenerate.
4180
4181 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4182
4183         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
4184         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
4185         Regenerated.
4186
4187 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
4188
4189         * jump.c (delete_noop_moves): Remove code attempting to
4190         combine stack adjustments.
4191
4192 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4193
4194         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
4195         * except.c (emit_cleanup_handler): Use them.
4196         (expand_end_all_catch): Likewise.
4197         * function.c (fixup_var_refs): Likewise.
4198         (expand_function_end): Clear catch_clauses_last.
4199         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
4200         * except.h (struct eh_status): New field x_catch_clauses_last.
4201         (catch_clauses_last): New define.
4202
4203         * Makefile.in (tree.o): Depend on HASHTAB_H.
4204         * tree.c: Include hashtab.h.
4205         (struct type_hash): Remove next field.
4206         (TYPE_HASH_SIZE): Remove.
4207         (TYPE_HASH_INITIAL_SIZE): New define.
4208         (type_hash_table): Change type to htab_t.
4209         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
4210         mark_hash_entry): New functions.
4211         (init_obstacks): Allocate type hash.
4212         (type_hash_lookup): Use htab functions.
4213         (type_hash_add, mark_type_hash): Likewise.
4214         (dump_tree_statistics): Call print_type_hash_statistics.
4215
4216 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4217
4218         * rs6000/t-aix41: New file.
4219
4220         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
4221
4222 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
4223
4224         * tm.texi (Driver): Fix typos and tweak entry for
4225         INCLUDE_DEFAULTS.
4226         Move misplaced STRUCT_FORCE_BLK entry ...
4227         (Storage Layout): ... to here.
4228         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
4229
4230 2000-03-19  Richard Henderson  <rth@cygnus.com>
4231
4232         * flow.c (delete_block): Delete the addr_vec along with the block.
4233         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
4234         reference labels.
4235
4236         * fold-const.c (extract_muldiv): Apply type check for defined
4237         overflow to multiply as well as divide.
4238
4239         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
4240
4241 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
4242
4243         * emit-rtl.c (remove_unncessary_notes): Check that all
4244         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
4245         associated NOTE_BLOCK.
4246         * function.h (identify_blocks): Update comments.
4247         (reorder_blocks): Declare.
4248         * function.c (identify_blocks): Don't take paramters.
4249         (reorder_blocks): Don't take parameters.
4250         * loop.h (find_loop_tree_blocks): Remove.
4251         (unroll_block_trees): Likewise.
4252         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
4253         reorder_blocks instead of unroll_block_trees.h
4254         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
4255         * stmt.c (find_loop_tree_blocks): Remove.
4256         (unroll_block_trees): Likewise.
4257         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
4258         in whole-function mode.
4259         * tree.h (reorder_blocks): Remove declaration.
4260
4261         * expr.c: Include intl.h.
4262         * Makefile.in (expr.o): Depend on intl.h.
4263         
4264 2000-03-18  Richard Henderson  <rth@cygnus.com>
4265
4266         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
4267
4268 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
4269
4270         * tree.h (tree_index): Remove enumerals for integer types.
4271         (integer_type_kind): New type.
4272         (integer_types): New variable.
4273         (char_type_node): Adjust.
4274         (signed_char_type_node): Likewise.
4275         (unsigned_char_type_node): Likewise.
4276         (short_integer_type_node): Likewise.
4277         (short_unsigned_type_node): Likewise.
4278         (integer_type_node): Likewise.
4279         (unsigned_type_node): Likewise.
4280         (long_integer_type_node): Likewise.
4281         (long_unsigned_type_node): Likewise.
4282         (long_long_integer_type_node): Likewise.
4283         (long_long_unsigned_type_node): Likewise.
4284         * tree.c (integer_types): New variable.
4285         (init_obstacks): Register it as a root.
4286
4287 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
4288
4289         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
4290         NEXT_INSN. Update last insn in chain.
4291
4292 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
4293
4294         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
4295         with TYPE_DECL_SUPPRESS_DEBUG set.
4296
4297 2000-03-18  Richard Henderson  <rth@cygnus.com>
4298
4299         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
4300
4301 2000-03-18  Richard Henderson  <rth@cygnus.com>
4302
4303         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
4304         care for HALF_PIC_P.
4305         (expander_call_insn_operand): Remove.
4306         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
4307         * i386.h (PREDICATE_CODES): Update.
4308         * i386.md (all call expanders): Remove predicates, remove special
4309         handling for half-pic.
4310         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
4311         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
4312         (sibcall_epilogue): New.
4313
4314 2000-03-17  Richard Henderson  <rth@cygnus.com>
4315
4316         * rtlanal.c (single_set): Reject if the parallel has anything
4317         except SET or USE or CLOBBER.
4318
4319 2000-03-17  Jeff Law  <law@cygnus.com>
4320             Richard Henderson  <rth@cygnus.com>
4321
4322         * Makefile.in (OBJS): Add sibcall.o.
4323         (sibcall.o): New.
4324         * sibcall.c: New file.
4325         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
4326         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
4327         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
4328         Emit sibcall patterns when requested.  Update all callers.
4329         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
4330         elimination seems feasable.
4331         * final.c (leaf_function_p): Sibling calls don't discount being
4332         a leaf function.
4333         * flow.c (HAVE_sibcall_epilogue): Provide default.
4334         (find_basic_blocks_1): Sibling calls don't throw.
4335         (make_edges): Make edge from sibling call to EXIT.
4336         (propagate_block): Don't remove sibcall_epilogue insns.
4337         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
4338         (sibcall_epilogue): New.
4339         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
4340         (identify_blocks_1): Likewise.  Break out from ...
4341         (identify_blocks): ... here.
4342         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
4343         (reorder_blocks): ... here.
4344         (init_function_for_compilation): Zap prologue/epilogue as varrays.
4345         (record_insns): Extend a varray instead of mallocing new memory.
4346         (contains): Read a varray not array of ints.
4347         (sibcall_epilogue_contains): New.
4348         (thread_prologue_and_epilogue_insns): Emit and record
4349         sibcall_epilogue patterns.
4350         (init_function_once): Allocate prologue/epilogue varrays.
4351         * genflags.c (gen_insn): Treat sibcall patterns as calls.
4352         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
4353         Broken out from ...
4354         (save_for_inline_nocopy): ... here.
4355         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. 
4356         Broken out from ...
4357         (expand_inline_function): ... here.
4358         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
4359         (subst_constants): Handle 'n' formats.
4360         * jump.c (jump_optimize_minimal): New.
4361         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
4362         optimizations if it's set.
4363         * rtl.c (copy_rtx): Do copy jump & call for insns.
4364         * rtl.h (struct rtx_def): Document use of jump and call for insns.
4365         (SIBLING_CALL_P): New.
4366         (sibcall_use_t): New.
4367         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
4368         Invoke optimize_sibling_and_tail_recursive_calls.
4369         * tree.c (lang_safe_for_unsave): New.
4370         (safe_for_unsave): New.
4371         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
4372
4373         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
4374         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
4375         (*sibcall_osf_1, *sibcall_value_osf_1): New.
4376
4377 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
4378
4379         * objc/objc-act.c (encode_method_prototype): Pass types, not
4380         PARM_DECLs, to int_size_in_bytes.
4381
4382 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
4383
4384         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
4385
4386         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
4387         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
4388
4389 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4390
4391         * Clean up usages of TREE_INT_CST_LOW.
4392         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
4393         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
4394         Regenerated.
4395         * c-tree.h (min_precision): Move declaration to here.
4396         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
4397         (build_unary_op, add_pending_init): Use bit_position.
4398         (pending_init_member, process_init_element): Likewise.
4399         (really_start_incremental_init, push_init_level, pop_init_level):
4400         Don't make copies of nodes or modify them in place, use consistent
4401         types when tracking positions, and use tree routines computations.
4402         (set_init_index, output_init_element): Likewise.
4403         (output_pending_init_elements, process_init_element): Likewise.
4404         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
4405         tree_low_cst and int_bit_position; also minor cleanup.
4406         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
4407         (print_cst_octal): Precision is unsigned.
4408         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
4409         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
4410         (simple_type_align_in_bits): Result is unsigned int.
4411         Use tree_int_low_cst and host_integerp.
4412         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
4413         (field_byte_offset): Result is HOST_WIDE_INT.
4414         Change types of internal variables so alignments are unsigned int,
4415         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
4416         Use host_integerp, tree_low_cst, and int_bit_position.
4417         (add_bit_offset_attribute): Likewise.
4418         (add_data_member_location_attribute): Use tree_cst_low.
4419         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
4420         (add_bit_size_attribute): Use tree_low_cst.
4421         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
4422         * dwarfout.c: Similar changes to dwarf2out.c.
4423         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
4424         * genoutput.c (n_occurences): Return -1 for null string.
4425         (strip_whitespace): Accept null string and make into function.
4426         (scan_operands): Reflect above changes.
4427         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
4428         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
4429         * ssa.c (rename_registers): Add missing cast of arg to bzero.
4430         * tree.c (int_size_in_bytes): Check for too big to represent.
4431         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
4432         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
4433         New declarations.
4434         (min_precision): Delete from here.
4435         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
4436         and int_bit_position.
4437         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
4438         (encode_method_def): Likewise.
4439         (build_ivar_list_initializer): Use int_bit_position.
4440         (generate_shared_structures): Convert size.
4441         (encode_type, encode_complete_bitfield): Use integer_zerop.
4442         (encode_bitfield): Use tree_low_cst and int_bit_position.
4443         
4444 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4445
4446         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
4447
4448 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4449
4450         * call.c (special_function_p): It is only malloc if it returns
4451         Pmode.
4452
4453 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4454
4455         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
4456         (C33_FLAG, TARGET_C3X): Add macros.
4457         (TARGET_SWITCHES): Add -m33 option.
4458         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
4459         
4460 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4461         
4462         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
4463         (PARALLEL_PACK_FLAG): Delete.
4464         (TARGET_SWITCHES): Update.
4465         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
4466
4467 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4468
4469         * fold-const.c (fold): Fix a few cases when the returned result
4470         is not of the same type as the input.
4471
4472 2000-03-16  Nick Clifton  <nickc@cygnus.com>
4473
4474         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
4475         warning.
4476
4477 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4478
4479         * libgcc2.h: Move prototypes above macros with the same name.
4480         Wrap some function prototypes in the conditional which indicates
4481         whether they are supported, i.e. "BITS_PER_UNIT == 8".
4482
4483 2000-03-16  Richard Henderson  <rth@cygnus.com>
4484
4485         * calls.c: Revert last two changes.
4486
4487 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
4488
4489         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
4490         has exponent 0 is a zero.
4491
4492         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
4493         HASH may already be nonzero.  Add code/mode into hash value
4494         immediately after repeat label.
4495         (cselib_lookup): Don't leave the hash table in an inconsistent
4496         state before a hash lookup operation.
4497
4498 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
4499
4500         * i386.md (all HI and QI mode non-move patterns):  Conditionize
4501         by TARGET_[HQ]IMODE_MATH.
4502         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
4503         x86_promote_qi_regs): Declare.
4504         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
4505         TARGET_PROMOTE_QI_REGS): New macros.
4506         (PROMOTE_MODE): New macro.
4507         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
4508         x86_promote_qi_regs): New global variables.
4509
4510 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
4511
4512         * calls.c (emit_library_call_value_1): Break out from ...; handle
4513         VOIDmode function calls too.
4514         (emit_library_call_value): ... here.
4515         (emit_library_call): Implement by calling emit_library_call_value_1.
4516
4517 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
4518
4519         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
4520         Update arg_space_so_far on stack adjustments.
4521         (emit_library_call, emit_library_call_value): Likewise; take into
4522         account arg_space_so_far and pending_stack_adjust when calculcating
4523         the boundary.
4524
4525 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
4526
4527         * flow.c: Move all basic block reordering code into its own file.
4528         (create_basic_block): Externalize.
4529         * bb-reorder.c: New file. Copy all basic block reordering code from
4530         flow.c to this file.
4531         (reorder_basic_blocks): Fix fencepost error in for-loop.
4532         (reorder_basic_blocks): Remove braces from single statement for-loops.
4533         * basic-block.h: Add declaration for create_basic_block.
4534         * Makefile.in: Add rules for bb-reorder.o.
4535
4536 2000-03-16  Neil Booth  <NeilB@earthling.net>
4537
4538         * cppinit.c (handle_option):  Implement #unassert directive
4539         as -A- command line option.
4540         (print_help):  Update.
4541         * cpptexi.c:  Update.
4542
4543 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
4544
4545         * md.texi (Standard Names): Document `jump'.
4546
4547 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
4548
4549         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
4550         gotos.
4551
4552 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
4553
4554         Merge changes from newppc-branch onto trunk.
4555
4556         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
4557
4558         * rs6000.c (toc_hash_table): Update for new hash table functions.
4559         (toc_hash_function): Likewise.
4560         (toc_hash_eq): Likewise.
4561         (toc_hash_mark_entry): Likewise.
4562         (toc_hash_mark_table): Likewise.
4563         (output_toc): Likewise.
4564         (rs6000_add_gc_roots): Likewise.
4565
4566         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4567
4568         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
4569         (AR_FLAGS_FOR_TARGET): here.  New macro.
4570
4571         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
4572
4573         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
4574         fpmem_operand) Delete.
4575         (xer_operand) New.
4576         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
4577         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
4578         (rs6000_save_machine_status, rs6000_restore_machine_status, 
4579         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove 
4580         references to above variables.
4581         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
4582         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
4583         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
4584         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
4585         (XER_REGNO_P, XER_REGNO): New.
4586         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
4587         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
4588         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to 
4589         XER_REGNO_P.
4590         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
4591         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
4592         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
4593         
4594         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4595
4596         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
4597         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
4598         * rs6000.h: from here.
4599
4600         * rs6000-protos.h (rs6000_select_section): Provide prototype.
4601         (rs6000_select_rtx_section): Likewise.
4602         (rs6000_encode_section_info): Likewise.
4603         (sdata_section): Likewise.
4604         (sdata2_section): Likewise.
4605         (sbss_section): Likewise.
4606         * sysv4.h (rs6000_select_section): Delete prototype.
4607         (rs6000_select_rtx_section): Likewise.
4608         (rs6000_encode_section_info): Likewise.
4609         (sdata_section): Likewise.
4610         (sdata2_section): Likewise.
4611         (sbss_section): Likewise.
4612         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
4613
4614         * sysv4.h: Delete various unnecessary #undef's and put a comment
4615         on the remaining ones.
4616         Change various comments according to coding standard.
4617
4618         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
4619
4620         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO, 
4621         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
4622         (CR0_REGNO_P) Remove.
4623         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand, 
4624         setup_incoming_varargs, mtcrf_operation, print_operand, 
4625         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): 
4626         Use the above macros.
4627
4628         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
4629
4630         * config/rs6000/rs6000.md: Added a new alternative for each
4631         pattern that had a 'x' alternative but no 'y' alternative.
4632         Added a new split for each of the above patterns.
4633
4634         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
4635
4636         * aix41.h (ASM_CPU_SPEC): Delete.
4637         (CPP_CPU_SPEC): Delete.
4638
4639         * aix.h (RS6000_OUTPUT_BASENAME): Define.
4640         (ASM_OUTPUT_LABEL): Define.
4641         (ASM_GLOBALIZE_LABEL): Define.
4642         (STRIP_NAME_ENCODING): Define.
4643         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
4644         (STRIP_NAME_ENCODING): Don't define.
4645         (ASM_OUTPUT_LABEL): Don't define.
4646         (ASM_GLOBALIZE_LABEL): Don't define.
4647         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
4648         names, and ASM_OUTPUT_LABEL to output labels, rather than
4649         asm_fprintf.
4650         (ASM_OUTPUT_LABEL): Define.
4651         (ASM_OUTPUT_INT): Use assemble_name.
4652         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
4653         (STRIP_NAME_ENCODING): Don't undefine first.
4654         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
4655         ELF.
4656         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
4657         specified with 'asm' even with -fleading-underscore.
4658         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
4659         (output_epilog): Likewise.
4660         (output_toc): Likewise. 
4661         * tramp.asm: Handle -fleading-underscore correctly.
4662
4663         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
4664         -mminimal-toc.
4665         (nonlocal_goto_receiver): Delete.
4666         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
4667
4668         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
4669         (SET_ASM_OP): Define.
4670         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
4671
4672         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
4673         (ASM_LONG): Define.
4674
4675         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
4676         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
4677
4678         * rs6000.h: Add 'u' to more constants.
4679
4680         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
4681
4682         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
4683
4684         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
4685
4686         * rs6000.c (reg_or_u_cint_operand): New function.
4687         (logical_operand): Handle 64-bit hosts.
4688         (logical_u_operand): New function.
4689         (non_logical_cint_operand): Handle 64-bit hosts.
4690         (non_logical_u_cint_operand): New function.
4691         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
4692         (PREDICATE_CODES): Define new functions.
4693         * rs6000-protos.h: Declare new functions.
4694         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
4695         (movdi_64): Bracket code intended for 64-bit hosts.  Create
4696         CONST_DOUBLE for 32-bit values.
4697         (scc insns): Generate DImode compares.
4698         (mfcr insns): Create DImode versions.
4699         (sge matchers): New patterns.
4700         
4701         2000-02-15  Gabriel Paubert  <paubert@iram.es>
4702
4703         * rs6000.md: Correct instructions length attributes and
4704         constraints on unsigned compare instructions.
4705         (*ne0): Disable for PowerPC64.
4706
4707         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
4708
4709         * rs6000.c (output_function_profiler): Use .long for a 32-bit
4710         quantity, fix profile1.C test failure under -fPIC.
4711
4712         * rs6000.c: Add 'u' to many constants to suppress warnings.
4713         (constant_pool_expr_1): Make static.
4714         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
4715         * rs6000.h: Add 'u' to many constants to suppress warnings.
4716
4717         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
4718         for the start of the TOC, instead of LCTOC..0.
4719         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
4720         of the TOC.
4721         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
4722         (load_toc_aix_di): Use LCTOC..1.
4723
4724         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
4725         * rs6000.c (rs6000_legitimize_address): New function from
4726         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
4727         symbols in the constant pool that really are TOC references.
4728         (print_operand_address): For ELF, write TOC offsets under
4729         -fPIC as subtractions in the insn.
4730         (output_toc): For ELF, define symbols in TOC as normal labels,
4731         to match RTL.
4732         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
4733         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
4734         (create_TOC_reference): Prototype only when RTX_CODE is defined.
4735         * rs6000.md (movsi): Only use create_TOC_reference on
4736         symbols in the constant pool that really are TOC references.
4737
4738         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
4739         * rs6000.c (rs6000_reorg): Delete.
4740         * rs6000-protos.h (rs6000_reorg): Delete.
4741
4742         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
4743
4744         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
4745
4746         * aix.h (SETUP_FRAME_ADDRESSES): Define.
4747         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
4748         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
4749         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
4750         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
4751         rs6000_aix_emit_builtin_unwind_init.
4752         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call 
4753         rs6000_emit_eh_toc_restore on AIX.
4754         (return_eh_si): Use r2.
4755         (return_eh_di): Use r2.
4756
4757         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
4758         since we're breaking binary compatibility anyway.
4759
4760         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
4761
4762         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
4763         constant_pool_expr_p): Declare them.
4764         (constant_pool_expr_p): Declare it.
4765         * config/rs6000/rs6000.c (toc_label_name): Define.
4766         (rs6000_override_options): Set toc_label_name.
4767         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
4768         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
4769         uses_TOC): New functions.
4770         (print_operand): Delete old '*' case.
4771         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
4772         and strip off rtl for TOC before calling output_addr_const.
4773         (rs6000_emit_load_toc_table): Use toc_label_name.
4774         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
4775         the default.
4776         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
4777         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
4778         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
4779         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
4780         into explicit TOC_REGISTER offsets.
4781         (TOC_REGISTER): New macro.
4782         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under 
4783         TARGET_TOC to reference TOC_REGISTER.
4784         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
4785         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call  
4786         uses_TOC before emitting label references.
4787
4788         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
4789
4790         * rs6000.md (stack_tie): Fix warning.
4791
4792         * eabi-ctors.c: Use 'asm' names for the start/end variables,
4793         to handle -fleading-underscore.
4794         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
4795         (USER_LABEL_PREFIX): New macro.
4796         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
4797         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
4798         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
4799         call-linux can use the same multilibs.
4800         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
4801         and call-linux multilibs.  Do multilib with -fleading-underscore.
4802         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
4803         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
4804         to call-aix.
4805
4806         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
4807         have MASK_SOFT_FLOAT set.
4808         (CPP_FLOAT_DEFAULT_SPEC): New macro.
4809         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
4810         CPP_FLOAT_DEFAULT_SPEC.
4811
4812         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
4813         * rs6000.md: Whitespace change.
4814         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
4815         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
4816
4817         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
4818
4819         * rs6000.md (eh_epilogue): New expander.
4820         (eh_reg_restore): New expand/split/insn combination.
4821         (return_eh_si): New insn.
4822         (return_eh_di): New insn.
4823
4824         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
4825         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
4826         * eabi-ctors.c (__do_global_ctors): Register this object's
4827         frame.  Clean up.  Call atexit() after the constructors.
4828         (__do_global_dtors): Deregister this object's frame.  Clean up.
4829         Allow for recursive calls to exit().
4830         * rs6000.c (fixuplabelno): New variable.
4831         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
4832         TARGET_RELOCATABLE, it slows down exec() under linux.
4833         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
4834
4835         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
4836         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
4837         (ASM_OUTPUT_DWARF_DELTA2): New macro.
4838         (ASM_OUTPUT_DWARF_DELTA4): New macro.
4839         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
4840         (ASM_OUTPUT_DWARF_ADDR): New macro.
4841         (ASM_OUTPUT_DWARF_DATA4): New macro.
4842         (ASM_OUTPUT_DWARF_DATA2): New macro.
4843         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
4844         (ASM_OUTPUT_DWARF_OFFSET): New macro.
4845         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
4846
4847         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
4848
4849         * rs6000.c (rs6000_sr_alias_set): New variable.
4850         (rs6000_override_options): Initialise rs6000_sr_alias_set.
4851         (rs6000_emit_stack_tie): New function.
4852         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
4853         in a way that dwarf2out can understand.
4854         (rs6000_frame_related): New function.
4855         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
4856         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
4857         Use rs6000_emit_stack_tie when needed.
4858         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
4859         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
4860         * rs6000.md (stack_tie): New insn.
4861         (return_internal_si): Allow return value to be in the count
4862         register.
4863         (return_internal_di): Likewise.
4864
4865         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
4866
4867         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
4868
4869         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
4870
4871         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
4872
4873         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
4874
4875         * rs6000.md (stmw): Use the right POWER opcode.
4876         (lmw): Likewise.
4877
4878         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4879
4880         * rs6000-protos.h: New file.
4881
4882         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
4883         
4884         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
4885         warnings.
4886         
4887         * sysv4.h: Likewise.
4888
4889         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
4890
4891         * ../../configure.in: Delete powerpcle-*-winnt*
4892         and powerpcle-*-pe|powerpcle-*-cygwin*.
4893         * ../../configure: Regenerated.
4894         * cygwin.h: Delete.
4895         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
4896         (TARGET_WINDOWS_NT): Delete.
4897         (ABI_NT): Delete.
4898         (CALL_NT_DLLIMPORT): Delete.
4899         Delete NT-specific code.
4900         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
4901         * win-nt.h: Delete.
4902         * t-winnt: Delete.
4903         * nt-ci.asm: Delete.
4904         * nt-cn.asm: Delete.
4905         * ntstack.asm: Delete.
4906
4907         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4908
4909         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
4910         (ASM_FILE_START): Likewise.
4911         (ASM_DECLARE_FUNCTION_NAME): Likewise.
4912         (ASM_OUTPUT_LABELREF): Likewise.
4913         (ASM_OUTPUT_SKIP): Likewise.
4914         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
4915         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
4916         (ASM_OUTPUT_CASE_LABEL): Likewise.
4917         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
4918         (ASM_OUTPUT_ASCII): Likewise.
4919
4920         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
4921
4922         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
4923         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
4924         increment rs6000_pic_labelno here.
4925         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
4926         and increment rs6000_pic_labelno here.
4927
4928         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
4929
4930         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
4931         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
4932         allocation knows (reg) is dead before the insn.
4933
4934         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
4935
4936         * rs6000.md (movsi_to_cr): Correct typo in output template.
4937
4938         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
4939
4940         * rs6000.c (rs6000_pic_labelno): Always define.
4941         (rs6000_pic_func_labelno): Delete.
4942         (lmw_operation): Check for a zero base register,
4943         which doesn't mean what we want.
4944         (stmw_operation): New function.
4945         (print_operand): Define new 'l' modifier.
4946         (rs6000_stack_info): We must save all 64 bits of the registers
4947         if TARGET_POWERPC64.
4948         (rs6000_output_load_toc_table): Delete.
4949         (rs6000_emit_load_toc_table): New function.
4950         (rs6000_allocate_stack_space): Delete.
4951         (rs6000_emit_allocate_stack): New function.
4952         (rs6000_emit_prologue): New function.
4953         (output_prolog): Use rs6000_emit_prologue.
4954         (rs6000_emit_epilogue): Change a few variable names to be
4955         more accurate.  Restore all 64 bits of the registers if
4956         TARGET_POWERPC64.  Only restore the FP registers which were used
4957         if they are being saved/restored one-at-a-time.
4958         (output_mi_thunk): Delete inefficient code generation.
4959         (output_function_profiler): Don't use rs6000_output_load_toc_table.
4960         * rs6000.h: Declare rs6000_emit_load_toc_table,
4961         rs6000_allocate_stack_space, stmw_operation.  Don't declare
4962         rs6000_output_load_toc_table.
4963         * rs6000.md (elf_high): Allow register 0, but discourage it
4964         heavily.
4965         (elf_low): Support loading into register 0.
4966         (load_toc_aix_si): New pattern.
4967         (load_toc_aix_di): New pattern.
4968         (load_toc_v4_pic_si): New pattern.
4969         (load_toc_v4_pic_di): New pattern.
4970         (load_toc_v4_PIC_1): New pattern.
4971         (load_toc_v4_PIC_1b): New pattern.
4972         (load_toc_v4_PIC_2): New pattern.
4973         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
4974         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
4975         (prologue): New expander.
4976         (movesi_from_cr): New pattern.
4977         (stmw): New pattern.
4978         (save_fpregs_si): New pattern.
4979         (save_fpregs_di): New pattern.
4980
4981         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
4982
4983         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
4984         (movdi): Likewise.
4985         (movhi): Likewise.
4986         (movqi): Likewise.
4987
4988         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
4989
4990         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
4991         at present.
4992         (movsi_got_internal): Likewise.
4993         (movsi_got_internal+1): Likewise.
4994         (set_sp): 'unspec 7' does a SImode clobber.
4995
4996         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
4997
4998         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
4999         allocate a stack temporary.
5000         (floatsidf2_internal): Likewise.
5001         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
5002         with unspec.
5003         (floatunssidf2): Don't use the fpmem "register", just
5004         allocate a stack temporary.
5005         (floatunssidf2_internal): Likewise.
5006         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
5007         with unspec.
5008         (floatsidf2_loadaddr): Delete.
5009         (floatsidf2_store1): Delete.
5010         (floatsidf2_store2): Delete.
5011         (floatsidf2_load): Delete.
5012         (fix_truncdfsi2): Don't use the fpmem "register", just
5013         allocate a stack temporary.
5014         (fix_truncdfsi2_internal_si): Delete.
5015         (fix_truncdfsi2_internal_di): Delete.
5016         (fix_truncdfsi2_internal): New insn.
5017         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
5018         (fix_truncdfsi2_store): Delete.
5019         (fix_truncdfsi2_load): Delete.
5020         (fctiwz): Produce gen_fctiwz.
5021
5022         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
5023
5024         * eabi.h (INVOKE__main): Define.
5025         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
5026         specially.
5027         (rs6000_emit_prologue): Likewise.
5028         * rs6000.h (struct rs6000_stack): Don't keep track of whether
5029         this is the main program.
5030
5031         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
5032
5033         * rs6000.c (rs6000_va_arg): Delete some unused variables.
5034
5035         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
5036
5037         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
5038         goes after the argument.
5039
5040         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
5041
5042         * rs6000.md: Document 'unspec' values used.
5043         (epilogue): New expander.
5044         (movesi_to_cr_one): New expander.
5045         (movesi_to_cr and following): New pattern.
5046         (lmw): New pattern.
5047         (return_internal_si): New pattern.
5048         (return_internal_di): New pattern.
5049         (return_and_restore_fpregs_si): New pattern.
5050         (return_and_restore_fpregs_di): New pattern.
5051         * rs6000.h: Declare new functions.
5052         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
5053         rather than rs6000_calls_p.
5054         (rs6000_makes_calls): Delete.
5055         (lmw_operation): New function.
5056         (mtcrf_operation): New function.
5057         (rs6000_emit_epilogue): New function.
5058         (output_epilog): Call rs6000_emit_epilogue and final if
5059         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
5060
5061         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
5062
5063         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
5064         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
5065         * aix.h (SUBTARGET_SWITCHES): Document switches.
5066         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
5067         sched-prolog and sched-epilog the same.  Document all the
5068         switches.
5069         (TARGET_OPTIONS): No longer allow -mdebug-.
5070
5071         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
5072
5073         * rs6000.h (ASM_FILE_END): Move to aix.h.
5074         (EXTRA_SECTIONS): Move to aix.h.
5075         (READONLY_DATA_SECTION): Move to aix.h.
5076         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
5077         (SELECT_SECTION): Move to aix.h.
5078         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
5079         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
5080         (LINK_REGISTER_REGNUM): New definition.
5081         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
5082         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
5083         AIX and SVR4.
5084         * sysv4.h: Delete the code between the inclusion of rs6000.h
5085         and svr4.h.
5086         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
5087         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
5088         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
5089         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
5090         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
5091         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
5092         (fix_truncdfsi2_internal_di): New pattern.
5093         (fix_truncdfsi2_store): The second arg here is Pmode too.
5094         (fix_truncdfsi2_load): The second arg here is Pmode too.
5095         (tablejumpdi): Now that switch tables hold only SImode values,
5096         gcc needs to know how to add them to the pc which is DImode.
5097         * rs6000.c (rs6000_stack_info): Use symbolic name for 
5098         LINK_REGISTER_REGNUM.
5099         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
5100         (output_toc): Delete unused variables s1 and s2.
5101         (output_ascii): Use fputs not fprintf on a variable string.
5102
5103         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
5104
5105         * rs6000.c (processor_target_table): Add power3 as alias for 630.
5106         * aix43.h: Revert Aug 2 change.
5107         (HAS_INIT_SECTION): Define, not visible yet.
5108         (LD_INIT_SWITCH): Define, not visible yet.
5109         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
5110
5111         2000-01-04  Joel Sherrill (joel@OARcorp.com>
5112
5113         * config/rs6000/rtems.h: Include config/rtems.h.
5114
5115         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
5116
5117         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
5118         (SLOW_UNALIGNED_ACCESS): Define.
5119         (CASE_VECTOR_MODE): Always use 32-bit offsets.
5120         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
5121         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
5122         (toc_section): Likewise and .toc pseudo-op.
5123         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
5124         64-bit mode.
5125         (TEXT_SECTION_ASM_OP): Likewise.
5126         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
5127         32-bit offsets.
5128
5129         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
5130
5131         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
5132         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
5133         compiling libgcc2.
5134         
5135         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5136
5137         * rs6000.h: Move more stuff from here...
5138         * aix.h: to here.
5139         * sysv4.h: Cleanup accordingly.
5140         * netware.h: Likewise
5141
5142         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5143
5144         * rs6000.h: Continue cleanup.
5145         * aix.h: Likewise.
5146         * lynx.h: Likewise.
5147         * netware.h: Likewise.
5148         * sol2.h: Likewise.
5149         * sysv4.h: Likewise.
5150         * win-nt.h: Likewise.
5151
5152         * rs6000.h (TARGET_SWITCHES): Add descriptions.
5153         (TARGET_OPTIONS): Likewise.
5154
5155         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
5156         (SUBTARGET_OPTIONS): Likewise.
5157
5158         * rs6000.md: Fix compile time warnings.
5159
5160         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
5161
5162         vxworks patches from the Cygnus tree originally by
5163         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
5164         <vmakarov@cygnus.com>.
5165         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
5166         (ENDFILE_SPEC): Likewise.
5167         (LIB_VXWORKS_SPEC): New macro.
5168         (STARTFILE_VXWORKS_SPEC): New macro.
5169         (ENDFILE_VXWORKS_SPEC): New macro.
5170         (LINK_START_VXWORKS_SPEC): New macro.
5171         (LINK_OS_VXWORKS_SPEC): New macro.
5172         (CPP_OS_VXWORKS_SPEC): New macro.
5173         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
5174         * vxppc.h: Rewrite to use proper configuration method.
5175         * vxppcle.h: New file.
5176         * ../../configure.in: Add powerpcle-wrs-vxworks*.
5177         * ../../configure: Rebuilt.
5178
5179         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
5180
5181         Lots of changes to rs6000.h, sysv4.h, aix.h,
5182         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
5183         with the aim that rs6000.h is the first header
5184         included and the others override it.
5185         * aix.h: New file.
5186
5187         * x-aix41-gld: Remove.  
5188         * x-aix43: Remove.
5189         * x-aix41: Remove target-specific switches, and don't specify
5190         -Wl,-bbigtoc as we don't need it any more.
5191         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
5192         Use t-aix43 for AIX 4.3 and above.
5193         * ../../configure: Regenerated.
5194
5195         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
5196         options, that don't do anything yet.
5197         (MASK_SCHED_PROLOG): New macro.
5198         (MASK_SCHED_EPILOG): New macro.
5199         (TARGET_SCHED_PROLOG): New macro.
5200         (TARGET_SCHED_EPILOG): New macro.
5201
5202         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
5203
5204         * rs6000.c: Correct comment, the `minimal' TOCs are actually
5205         one per translation unit, not one per function.
5206         (output_toc): Also do duplicate constant elimination
5207         for per-translation-unit TOCs.
5208
5209         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
5210         a comment explaining _exactly_ when this pattern gets used.
5211         (builtin_setjmp_receiver): New pattern for better clarity.
5212         (init_v4_pic): Move it into a section dealing with TOC registers.
5213
5214         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
5215
5216         * rs6000.c (toc_hash_table): New variable.
5217         (rs6000_hash_constant): New function.
5218         (toc_hash_function): New function.
5219         (toc_hash_eq): New function.
5220         (toc_hash_mark_entry): New function.
5221         (toc_hash_mark_table): New function.
5222         (output_toc): Don't output duplicate TOC entries in
5223         a single file.
5224         (rs6000_add_gc_roots): Add the hash table as a GC root.
5225         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
5226         where they clearly shouldn't be.  This may need to be fixed
5227         later when there is a GNU ar for AIX.
5228         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
5229         Don't define BOOT_LDFLAGS as it is now not necessary.
5230
5231         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
5232
5233         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
5234         for va_list on AIX.  Use unsigned_char_type_node rather than
5235         constructing our own version on svr4.
5236
5237         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
5238
5239         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
5240         since patently it's not.
5241
5242         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
5243
5244         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
5245         define_expand/define_insn pair, and handle restore of the
5246         SVR4 -fpic register.
5247
5248 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
5249
5250         * acconfig.h (HAVE_GAS_WEAK): New define.
5251         * configure.in (assembler weak support): Check for .weak support.
5252         * config.in, configure: Rebuilt.
5253         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
5254         HAVE_GAS_WEAK is defined.
5255
5256 2000-03-15  Nick Clifton  <nickc@cygnus.com>
5257
5258         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
5259         asm_fprintf().
5260
5261 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
5262
5263         * cppfiles.c (open_include_file): New function.
5264         (find_include_file, cpp_read_file): Use it.
5265
5266 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
5267
5268         * cpphash.c (dump_hash_helper): Take the slot, not the element.
5269
5270 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
5271
5272         * flow.c (verify_flow_info): Check for unconditional return.
5273
5274 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
5275
5276         * config/ia64/ia64.md (restore_stack_nonlocal): New.
5277         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
5278         (__ia64_restore_stack_nonlocal): New.
5279         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
5280
5281 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5282
5283         * cpphash.c (collect_formal_parameters): Do not complain about
5284         parameter names that just start with `__VA_ARGS__'.
5285
5286 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
5287
5288         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
5289         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
5290         * i386.c (pentiumpro_cost): Set mul cost to 4.
5291         (x86_use_movx): Set for PPro.
5292
5293 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
5294
5295         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
5296         STACK_BOUNDARY for empty frames now.
5297
5298 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
5299
5300         * stor-layout.c (layout_union): Remove.
5301         (layout_union_field): New function, split out from layout_union.
5302         (finish_union_layout): Likewise.
5303         (layout_field): Handle unions by calling layout_union_field.
5304         (finish_record_layout): Handle unions.
5305         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
5306         QUAL_UNION_TYPE handling.
5307
5308 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
5309
5310         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
5311         end of basic block is jump_insn, not barrier; use create_basic_block
5312         instead of creating basic block by hand.
5313
5314 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
5315
5316         * flow.c (reorder_basic_blocks): Account for barriers when writing
5317         over NEXT_INSN (last_bb->end).
5318         (verify_flow_info): Add check for missing barriers.
5319
5320 2000-03-14  Greg McGary  <gkm@gnu.org>
5321
5322         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
5323         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
5324         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
5325         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
5326         __unbounded, __unbounded__): New keywords.
5327         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
5328         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
5329         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
5330
5331 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
5332
5333         * cselib.h: New file.
5334         * alias.c: Include "cselib.h".
5335         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
5336         MEMs as two new arguments.
5337         (get_addr): New static function.
5338         (find_base_term): Handle VALUEs.
5339         (memrefs_conflict_p): Likewise.
5340         (true_dependence): Call get_addr on the addresses.
5341         Call fixed_scalar_and_varying_struct_p with addresses that have been
5342         passed through get_addr and canon_rtx.
5343         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
5344         with true_dependence.
5345         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
5346         * loop.c: Include "cselib.h".
5347         (load_mems): Process extended basic block that enters the loop with
5348         cselib.  Use that information to change initialization of the shadow
5349         register so that a constant equivalence is seen by later passes.
5350         * reload1.c: Include "cselib.h".
5351         (reload_cse_invalidate_regno): Delete function.
5352         (reload_cse_mem_conflict_p): Likewise.
5353         (reload_cse_invalidate_mem): Likewise.
5354         (reload_cse_invalidate_rtx): Likewise.
5355         (reload_cse_regno_equal_p): Likewise.
5356         (reload_cse_check_clobber): Likewise.
5357         (reload_cse_record_set): Likewise.
5358         (reg_values): Delete static variable.
5359         (invalidate_regno_rtx): Likewise.
5360         (reload_cse_delete_noop_set): New static function.
5361         (reload_cse_simplify): New static function, broken out of
5362         reload_cse_regs_1.
5363         (reload_cse_noop_set_p): Delete unused argument INSN.
5364         Just call rtx_equal_for_cselib_p on set source and destination.
5365         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
5366         reload_cse_delete_noop_set.  Delete code to keep track of values; use
5367         cselib functions instead.  Delete code to push/pop obstacks.
5368         (reload_cse_simplify_set): Use cselib to find equivalent values.
5369         Delete code to push/pop obstacks.
5370         (reload_cse_simplify_operands): Likewise.
5371         * rtl.def (VALUE): New rtx code.
5372         * rtl.h (union rtunion_def): New elt rt_cselib.
5373         (X0CSELIB, CSELIB_VAL_PTR): New macros.
5374         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
5375         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
5376         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
5377         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
5378         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
5379         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
5380         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
5381         cselib_record_set, cselib_record_sets): New static functions.
5382         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
5383         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
5384         references_value_p): New functions.
5385         (MAX_USELESS_VALUES, REG_VALUES): New macros.
5386         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
5387         n_useless_values, reg_values, callmem, cselib_obstack,
5388         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
5389         New static variables.
5390         * varray.h (union varray_data_tag): New elt te.
5391         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
5392         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
5393         dependencies.
5394
5395 2000-03-14  Nick Clifton  <nickc@cygnus.com>
5396
5397         * gcc.c (do_spec_1): Catch the case where %* is used in a
5398         substitution pattern, but it has not been initialised.
5399         Issue a meaningful error message if an unrecognised operator
5400         is encountered in a spec string.
5401
5402 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
5403
5404         * function.c (prepare_function_start): Correctly initialize
5405         cfun->stack_alignment_needed.
5406
5407 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
5408
5409         * cppfiles.c (find_include_file): Don't assume nshort is a
5410         substring of name.
5411
5412 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
5413
5414         * configure.in (hppa configurations): Add pa32-regs.h to the
5415         list of tm files as appropriate.
5416         * configure: Rebuilt.
5417         * pa.c (compute_frame_size): Remove explicit knowledge about FP
5418         register numbering.
5419         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
5420         (fmpyaddoperands, fmpysuboperands): Likewise.
5421         * pa.h: Remove various definitions which depend on knowing
5422         how registers are numbered.
5423         * pa32-regs.h: New file with PA32 register numbering specific
5424         definitions.
5425
5426 2000-03-14  Richard Henderson  <rth@cygnus.com>
5427
5428         * regmove.c (combine_stack_adjustments): New.
5429         (stack_memref_p, single_set_for_csa): New.
5430         (free_csa_memlist, record_one_stack_memref): New.
5431         (try_apply_stack_adjustment): New.
5432         (combine_stack_adjustments_for_block): New.
5433         * rtl.h (combine_stack_adjustments): Declare.
5434         * toplev.c (rest_of_compilation): Call it.
5435
5436         * i386.md: Revert 2000-01-16 change.
5437
5438 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5439
5440         * gccbug.in: Add web category, gcc specific classes.
5441
5442 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
5443
5444         * stor-layout.c (finalize_record_size): Fix typo.
5445
5446 2000-03-14  Stan Shebs  <shebs@apple.com>
5447
5448         * c-typeck.c (c_alignof): Error on incomplete types.
5449         * extend.texi (Alignment): Document this.
5450
5451 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
5452
5453         * cppfiles.c: Include mkdeps.h.
5454         (find_include_file, read_include_file): Remove _cpp_ prefix
5455         from name, make static.
5456         (_cpp_execute_include): New function, broken out of
5457         do_include.
5458
5459         * cpplib.c: Don't include mkdeps.h.
5460         (struct directive): Remove type field. Reorder entries.  The
5461         function takes only one argument.
5462         (struct if_stack): Make type field an int.
5463         (directive_table): Rename to dtable.  Generate it, the
5464         prototypes of the directive handlers, and the enum for the
5465         directive numbers, from a template macro.
5466         (do_ifndef, do_include_next, do_import): New functions.
5467         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
5468         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
5469         do_ident, do_assert, do_unassert, do_sccs): Take only one
5470         argument.
5471         (do_sccs): Define always, but alter behavior based on
5472         SCCS_DIRECTIVE.
5473         (_cpp_handle_directive, consider_directive_while_skipping):
5474         Restructure for new directive table layout.
5475
5476         (pass_thru_directive): Take a directive number, not a pointer
5477         to a struct directive.
5478         (parse_include): New function, broken out of do_include.
5479         (do_include, do_import, do_include_next): Use parse_include
5480         and _cpp_execute_include.
5481         (do_elif, do_else): Test for T_ELSE specifically when checking
5482         for #elif/#else after #else.
5483         (parse_ifdef): New function, broken out of do_ifdef.
5484         (validate_else): Expect a name arg without a leading #.
5485         (if_directive_name): Delete.
5486         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
5487         directive handlers with only one argument.
5488
5489         * cpphash.h: Update prototypes.
5490         (enum node_type): Remove entries for directives.
5491         * Makefile.in: Update dependencies.
5492
5493         * cpphash.c (dump_hash_helper): Only dump nodes of type
5494         T_MACRO.  Emit a newline after each definition.
5495
5496 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5497
5498         * gccbug.in: New file.
5499         * configure.in (all_outputs): Add gccbug.
5500         * Makefile.in (install-common): Install gccbug.
5501         (GCCBUG_INSTALL_NAME): New variable.
5502         * configure: Rebuilt.
5503         
5504 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
5505
5506         * function.c (put_var_into_stack): Use type_for_mode to calculate
5507         part_type.  Use MEM_SET_IN_STRUCT_P.
5508         * expr.c (store_field): Handle CONCAT.
5509         (store_constructor): Use fields_length.
5510         * tree.c (fields_length): New fn.
5511         * tree.h: Declare it.
5512
5513 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
5514
5515         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
5516         (cpplex.o): New target.
5517         * po/POTFILES.in: Add cpplex.c.
5518
5519         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
5520         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
5521         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
5522         skip_block_comment, skip_line_comment, skip_comment,
5523         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
5524         _cpp_parse_name, skip_string, parse_string,
5525         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
5526         _cpp_get_directive_token, find_position,
5527         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
5528         (maybe_macroexpand, _cpp_lex_token): New functions.
5529
5530         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
5531         parse_goto_mark): Delete.
5532         (_cpp_handle_eof): New function.
5533         (_cpp_handle_directive): Rename from handle_directive.
5534         (_cpp_output_line_command): Rename from output_line_command.
5535         (do_if, do_elif): Call _cpp_parse_expr directly.
5536         * cppfiles.c (_cpp_read_include_file): Don't call
5537         init_input_buffer here.
5538         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
5539         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
5540         here; pop the token_buffer and skip the rest of the line here.
5541         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
5542         here.
5543
5544         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
5545         Define here.
5546         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
5547         CPP_GOTO_MARK): New macros.
5548         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
5549         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
5550         _cpp_read_and_prescan, _cpp_init_input_buffer,
5551         _cpp_grow_token_buffer, _cpp_get_directive_token,
5552         _cpp_handle_directive, _cpp_handle_eof,
5553         _cpp_output_line_command): Prototype them here.
5554         * cpplib.h (enum cpp_token): Add CPP_MACRO.
5555         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
5556         quote_string, output_line_command): Remove.
5557
5558 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
5559
5560         * stmt.c (expand_end_case): RANGE may be signed, and when checking
5561         whether it is too large we must also verify that it isn't negative.
5562
5563 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
5564
5565         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
5566         (movsi_zero_liveg0): Remove.
5567         (movsf_insn_novis_liveg0): Remove.
5568         (negsi2): Remove.
5569         (negsi2_not_liveg0): Rename to negsi2.
5570         (one_cmplsi2): Remove.
5571         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
5572         (one_cmplsi2_liveg0): Remove.
5573         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
5574         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
5575         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
5576         (PREDICATE_CODES): Remove zero_operand.
5577         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
5578         TARGET_BROKEN_SAVERESTORE.
5579         (zero_operand): Remove.
5580         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
5581         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
5582         options.
5583         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
5584         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
5585         TARGET_BROKEN_SAVERESTORE): Remove.
5586         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
5587         Remove.
5588         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
5589         Remove.
5590         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
5591         Remove.
5592
5593         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
5594
5595 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
5596
5597         * cpplib.c (do_pragma_implementation): Fix off-by-one error
5598         truncating a string.  Don't assume tokens are nul terminated.
5599         Problem noted by Andreas Jaeger <aj@suse.de>
5600
5601 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
5602
5603         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
5604         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
5605         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
5606
5607 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
5608
5609         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
5610         STRUCTURE_SIZE_BOUNDARY.
5611
5612 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
5613
5614         * tree.h (record_layout_info_s): New structure.
5615         (record_layout_info): New type.
5616         (new_record_layout_info): New function.
5617         (layout_field): Likewise.
5618         (finish_record_layout): Likewise.
5619         * stor-layout.c (layout_record): Remove.
5620         (new_record_layout_info): New function.
5621         (layout_field): New function, broken out from layout_record.
5622         (finalize_record_size): Likewise.
5623         (compute_record_mode): Likewise.
5624         (finalize_type_size): New function, broken out from layout_type.
5625         (finish_record_layout): Likewise.
5626         (layout_type): Use them.
5627         
5628 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
5629
5630         * cpphash.c: Don't include version.h.
5631         (special_symbol) [case T_VERSION]: Look for the string in
5632         hp->value.cpval; don't use version_string.
5633         * cppinit.c (initialize_builtins): Set hp->value.cpval for
5634         __VERSION__ to version_string.
5635         * Makefile.in (cpphash.o): Update deps.
5636
5637 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
5638
5639         Convert cpplib to use libiberty/hashtab.c.
5640
5641         * cpplib.h (struct cpp_reader): Make hashtab and
5642         all_include_files of type 'struct htab *'.  Delete HASHSIZE
5643         and ALL_INCLUDE_HASHSIZE macros.
5644
5645         * cpphash.h: Update prototypes.
5646         (struct hashnode): Remove next, prev, and bucket_hdr members.
5647         Make length a size_t.  Add hash member.
5648         (struct ihash): Remove next member.  Add hash member.  Make
5649         name a flexible array member.
5650
5651         * cppfiles.c: Include hashtab.h.
5652         (include_hash): Delete.
5653         (IHASHSIZE): New macro.
5654         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
5655         (cpp_included): Do the hash lookup here.
5656         (_cpp_find_include_file): Rewrite.
5657         (cpp_read_file): Put the "fake" hash entry into the hash
5658         table.  Honor the control_macro, if it turns out we've seen
5659         the file before.  Don't push the buffer here.
5660         (_cpp_read_include_file): Push the buffer here.
5661         (OMODES): New macro.  Use it whenever we call open(2).
5662
5663         * cpphash.c: Include hashtab.h.
5664         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
5665         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
5666         _cpp_lookup_slot): New functions.
5667         (HASHSIZE): new macro.
5668         (hashf, _cpp_install, _cpp_delete_macro): Delete.
5669         (_cpp_lookup): Use hashtab.h routines.
5670
5671         * cppinit.c: Include hashtab.h.
5672         (cpp_reader_init): Call _cpp_init_macro_hash and
5673         _cpp_init_include_hash.  Don't allocate hashtab directly.
5674         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
5675         pfile->all_include_files.
5676         (initialize_builtins): Use _cpp_make_hashnode and
5677         htab_find_slot to add hash entries.
5678         (cpp_finish): Just call _cpp_dump_macro_hash.
5679         * cpplib.c: Include hashtab.h.
5680         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
5681         create hash entries.
5682         (do_pragma_poison, do_assert): Likewise.
5683         (do_include): Don't push the buffer here.  Don't increment
5684         system_include_depth unless _cpp_read_include_file succeeds.
5685         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
5686         or htab_remove_elt.
5687         (do_pragma_implementation): Use alloca to create copy.
5688
5689         * Makefile.in: Update dependencies.
5690
5691 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5692
5693         * cppinit.c (cl_directive_handler): More K&R fixing.
5694
5695 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
5696
5697         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
5698         STACK_BOUNDARY.
5699         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
5700
5701 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5702
5703         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
5704         Change from char[] to macros.
5705
5706 2000-03-12  Neil Booth  <NeilB@earthling.net>
5707
5708         * cppinit.c (cpp_start_read): Update indirect function
5709         call to K&R C.
5710
5711 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
5712
5713         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
5714         entry.
5715
5716         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
5717         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
5718
5719 2000-03-11  Neil Booth  <NeilB@earthling.net>
5720
5721         * cppinit.c (struct pending option): Replace undef with a 
5722         pointer to a directive handling routine.
5723         (struct cpp_pending): Replace separate assert_ and define_ 
5724         lists with one directive_ list.
5725         (new_pending_define): Rename new_pending_directive. Extra
5726         argument is the directive's handling routine.
5727         (handle_option): Update to use new_pending_directive.
5728
5729 2000-03-11  Neil Booth  <NeilB@earthling.net>
5730
5731         * cppfiles.c (file_cleanup, _cpp_find_include_file,
5732         remap_filename, _cpp_read_include_file, actual_directory,
5733         hack_vms_include_specification): Replace bcopy(), index() etc
5734         calls.  Add casts to some allocations.  Make some variables
5735         pointers to const [unsigned] char.
5736         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
5737         collect_formal_parameters): Similarly.
5738         * cppinit.c (struct pending_option, append_include_chain,
5739         cpp_options_init, cpp_reader_init, initialize_standard_includes,
5740         cpp_start_read, new_pending_define, handle_option): Similarly.
5741         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
5742         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
5743         do_pragma_implementation, detect_if_not_defined,
5744         do_ifdef, skip_if_group, cpp_get_token, parse_string,
5745         do_assert, do_unassert): Similarly.
5746         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
5747         function prototypes.
5748         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.   
5749
5750 2000-03-10  Richard Henderson  <rth@cygnus.com>
5751
5752         * builtins.c (expand_builtin_strlen): Revert last change.
5753         Use emit_insn_before if we're at the beginning of a sequence.
5754
5755 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
5756
5757         * builtins.c (expand_builtin_strlen): Make sure that we have something
5758         at the beginning of the sequence.
5759
5760         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
5761         deferred inlines.
5762
5763         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
5764
5765 2000-03-10  Richard Henderson  <rth@cygnus.com>
5766
5767         * except.c (can_throw): Use INTVAL on a CONST_INT.
5768         (reachable_handlers): Likewise.
5769         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
5770
5771 2000-03-10  Andreas Jaeger  <aj@suse.de>
5772
5773         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
5774         MD_STARTFILE_PREFIX since those are not needed on linux.
5775         (ASM_FILE_START): New, from mips/gnu.h.
5776
5777 2000-03-09  Richard Henderson  <rth@cygnus.com>
5778             Alex Samuel  <samuel@codesourcery.com> and others
5779         
5780         * Makefile.in (ssa.o): New rule.
5781         (OBJS): Add ssa.o.
5782         (STAGESTUFF): Add *.ssa and *.ussa.
5783         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
5784         * rtl.def (PHI): New RTL expression.
5785         * rtl.h (clear_log_links): New declaration.
5786         (convert_to_ssa): Likewise.
5787         (convert_from_ssa): Likewise.
5788         * flow.c (split_edge): If the entry node falls through to the
5789         split edge's source block, split the entry edge.
5790         (clear_log_links): New function.
5791         * toplev.c (ssa_dump): New variable.
5792         (flag_ssa): Likewise.
5793         (f_options): Add "ssa".
5794         (compile_file): Create SSA dump files.
5795         (rest_of_compilation): Go to and from SSA if enabled.
5796         (decide_d_option): Handle -de for SSA dump files.
5797         * ssa.c: New file.
5798         
5799 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
5800
5801         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
5802         same as VAR_DECL.
5803
5804 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
5805
5806         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
5807
5808 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
5809
5810         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
5811         (MD_STARTFILE_PREFIX_1): New macro.
5812
5813 2000-03-09  Robert Lipe  <robertl@sco.com>
5814
5815         * config/ia64/ia64.c: Include system.h.
5816
5817 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
5818
5819         * except.c (nothrow_function_p): If -fno-exceptions, just return.
5820         (init_eh_nesting_info): Likewise.
5821
5822         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
5823         (TREE_NOTHROW): Rename from TREE_RAISES.
5824         * toplev.c (rest_of_compilation): Set it.
5825         * print-tree.c (print_node): Adjust.
5826         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
5827         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
5828         * calls.c (emit_call_1): Add 'nothrow' parm.  Add 
5829         REG_EH_REGION note as appropriate.
5830         (libfunc_nothrow): New fn.
5831         (emit_library_call, emit_library_call_value): Use it.
5832         (expand_call): Check TREE_NOTHROW.
5833
5834         * varasm.c (make_decl_rtl): Skip initial '*' when setting
5835         DECL_ASSEMBLER_NAME.
5836
5837 2000-03-09  Andreas Jaeger  <aj@suse.de>
5838
5839         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
5840         (TARGET_MEM_FUNCTIONS): Define.
5841
5842 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
5843
5844         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
5845
5846         * except.c (can_throw): See through a SEQUENCE.
5847         (nothrow_function_p): New fn.
5848         * except.h: Declare it.
5849         * function.c (current_function_nothrow): New var.
5850         (prepare_function_start): Initialize it.
5851         * output.h: Declare it.
5852         * toplev.c (rest_of_compilation): Set it.
5853         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
5854
5855 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
5856
5857         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
5858         match.  (cpp_compare_defs): Count the nul separator when
5859         advancing over argument names.
5860
5861 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
5862
5863         * recog.c (preprocess_constraints): Matching constraints affect
5864         same alternative/different operand, not same operand/different
5865         alternative.
5866         
5867         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
5868         register and a constant specially.
5869
5870 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5871
5872         * libgcc2.h: New file.
5873         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
5874
5875 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
5876
5877         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
5878         * configure: Regenerate.
5879         * config/ia64: New.
5880
5881 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
5882
5883         * Makefile.in (LIBCPP_DEPS): New macro.
5884         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
5885         it to declare deps.
5886         * cpperror.c: Include cpphash.h.
5887         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
5888         dingleberry.
5889         (lex): Don't use CPP_WARN_UNDEF.
5890         (_cpp_parse_expr): Return an int, the truth value.
5891         * cppfiles.c: Include cpphash.h.
5892         (_cpp_merge_include_chains): Move to cppinit.c and make static.
5893         * cppinit.c (include_defaults_array): Disentangle.
5894         (cpp_cleanup): Don't free the if stack here.
5895         (cpp_finish): Pop off all buffers, not just one.
5896         * cpplib.c (eval_if_expr): Return int.
5897         (do_xifdef): Rename do_ifdef.
5898         (handle_directive): Don't use CPP_PREPROCESSED. 
5899         (cpp_get_token): Don't use CPP_C89.
5900         * fix-header.c: Don't use CPP_OPTIONS.
5901
5902         * cpplib.h: Move U_CHAR, enum node_type, struct
5903         file_name_list, struct ihash, is_idchar, is_idstart,
5904         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
5905         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
5906         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
5907         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
5908         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
5909         of _cpp_simplify_pathname, _cpp_find_include_file,
5910         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
5911         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
5912         cppinit.c.
5913         Change all uses of U_CHAR to be unsigned char instead.
5914         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
5915
5916 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
5917
5918         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
5919         (dwarf2out_begin_prologue): Set it.
5920         (output_call_frame_info): Don't emit EH unwind info for leaves.
5921
5922         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
5923         can occur outside of an EH region.
5924         * except.c: Correct comments about rethrow behavior.
5925         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
5926
5927 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
5928
5929         * flow.c (make_edges): Always call make_eh_edge for calls.
5930
5931 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
5932
5933         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
5934         (struct cpp_buffer): Remove fname and underflow fields.
5935         (struct cpp_reader): Remove get_token field.
5936         (struct include_hash): Rename to struct ihash.  Add typedef to
5937         IHASH.
5938         (struct if_stack): Remove fname field.
5939         (IF_STACK_FRAME): Rename to IF_STACK.
5940
5941         * cpperror.c (print_containing_files): Trust that there are no
5942         macro buffers below the top file buffer.
5943         * cppfiles.c: Replace all references to 'struct include_hash'
5944         with 'IHASH'.  Rename initialize_input_buffer to
5945         init_input_buffer.  Don't set or reference cpp_buffer->fname,
5946         use buffer->ihash->name instead.
5947         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
5948         not CPP_NULL_BUFFER.
5949         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
5950         IF_STACK_FRAME, IHASH not struct include_hash.
5951         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
5952         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
5953         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
5954         references to cpp_buffer->fname (delete entirely, or use
5955         ->ihash->name instead) and IF_STACK->fname.
5956         (cpp_push_buffer): Don't set new->underflow.
5957         (do_include): Use cpp_file_buffer.
5958
5959         * cpphash.c (collect_formal_parameters): Remove duplicate
5960         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
5961         used as a macro argument name.  Don't append "..." to namebuf
5962         for varargs macros.  After we're done scanning, go through
5963         namebuf and make it NUL separated, not comma separated.
5964         (_cpp_compare_defs): Remove register tag from variables.
5965         Expect defn->argnames to be NUL separated.
5966         (_cpp_dump_definition): Expect defn->argnames to be NUL
5967         separated and in forward order.
5968         * cpphash.h: Update documentation of argnames field.
5969
5970 2000-03-08  Richard Henderson  <rth@cygnus.com>
5971
5972         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
5973         to fail.  Don't pre-expand the source operand.
5974
5975         * i386.md (strlensi): Initialize eoschar and align before use.
5976
5977 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
5978
5979         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
5980         CONSTRUCTOR element.
5981
5982 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
5983
5984         * mips.c (mips_expand_prologue): If the last 
5985         named argument is the vararg marker "va_list", treat it as
5986         an unnamed argument.
5987
5988 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
5989
5990         * dbxout.c (dbxout_parms): When correcting for promoted 
5991         big-endian parameters, use the mode of the DECL_RTL rather 
5992         than UNITS_PER_WORD.
5993
5994 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
5995
5996         * c-common.h (make_fname_decl): Declare.
5997         * c-common.c (make_fname_decl): Define.
5998         (declare_hidden_char_array): Remove.
5999         (declare_function_name): Use make_fname_decl.
6000         * c-decl.c (c_make_fname_decl): New function.
6001         (init_decl_processing): Set make_fname_decl.
6002
6003 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
6004
6005         * cccp.c (handle_directive): Initialize backslash_newlines_p.
6006
6007 2000-03-07  Philipp Thomas  <pthomas@suse.de>
6008
6009         * po/POTFILES.in: Remove cppalloc.c from file list.
6010
6011 2000-03-07  Steve Chamberlain  <sac@pobox.com>
6012
6013         * pj.c (pj_expand_prologue): current_function->args_info is
6014         now current_function_args_info.  
6015
6016         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
6017         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
6018         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
6019
6020 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6021
6022         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
6023         output as hexadecimal rather than the default octal.
6024
6025 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
6026
6027         * cpphash.c (special_symbol): Fix thinko in previous commit.
6028
6029 2000-03-07  Neil Booth  <NeilB@earthling.net>
6030
6031         * cppexp.c (struct operation, left_shift, right_shift,
6032         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
6033         "int"s to "unsigned int"s.
6034         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
6035         Similarly.
6036         * cpplib.h: Update for above.
6037         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
6038         returned from allocations.
6039
6040         * cppinit.c (opt_comp, parse_options): New functions.
6041         (handle_option): Use parse_option to parse a single command
6042         line option, that possibly takes an argument.
6043         (cpp_handle_options): Sort the array of command line options on
6044         first invocation (non-ASCII hosts only).
6045         (print_help): Update.
6046
6047 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
6048
6049         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
6050         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
6051         
6052         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
6053         initialized.
6054         * cppinit.c (cpp_cleanup): Free imp->nshort also.
6055
6056         * cpperror.c (cpp_print_containing_files,
6057         cpp_print_file_and_line, v_cpp_message): Rename to
6058         print_containing_files, print_file_and_line, and v_message.
6059         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
6060         to _cpp_parse_expr, parse_escape, and lex.
6061         (parse_charconst): Remove broken multibyte support.
6062         * cppfiles.c (include_hash): Make static.
6063         (cpp_included): New function.
6064         (merge_include_chains, find_include_file, finclude,
6065         simplify_pathname): Rename to _cpp_merge_include_chains,
6066         _cpp_find_include_file, _cpp_read_include_file, and
6067         _cpp_simplify_pathname.
6068         * cpphash.c (cpp_lookup, free_definition, delete_macro,
6069         cpp_install, create_definition, macroexpand, compare_defs,
6070         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
6071         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
6072         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
6073         * cppinit.c (cpp_handle_option): Rename to handle_option, make
6074         static.
6075         * cpplib.c: Remove extern prototype of cpp_parse_expr.
6076
6077         * cpphash.h: Update prototypes.
6078         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
6079
6080 2000-03-07  Andrew Haley  <aph@cygnus.com>
6081
6082         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
6083         PTRDIFF_TYPE should be based solely on Pmode.
6084         (SIZE_TYPE): ditto.
6085
6086 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6087
6088         * rtl.h (rtunion_def): Constify member `rtstr'.
6089         (emit_line_note_after, emit_line_note, emit_line_note_force,
6090         emit_note, decode_asm_operands): Constify.
6091         
6092         * cse.c (canon_hash): Likewise.
6093
6094         * dbxout.c (dbxout_block): Likewise.
6095
6096         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
6097         v_warning_for_asm): Likewise.
6098
6099         * dwarfout.c (function_start_label): Likewise.
6100
6101         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
6102         emit_line_note_force): Likewise.
6103
6104         * final.c (last_filename, asm_insn_count, final_scan_insn,
6105         output_source_line): Likewise.
6106
6107         * function.h (struct emit_status): Likewise.
6108
6109         * gcse.c (hash_expr_1): Likewise.
6110
6111         * genattr.c (gen_attr, main): Likewise.
6112
6113         * genattrtab.c (struct function_unit, current_alternative_string,
6114         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
6115         attr_numeral, check_attr_test, check_attr_value,
6116         convert_set_attr_alternative, convert_set_attr,
6117         compute_alternative_mask, simplify_by_exploding, gen_attr,
6118         gen_unit): Likewise.
6119
6120         * genflags.c (gen_insn): Likewise.
6121
6122         * gengenrtl.c (type_from_format): Likewise.
6123
6124         * genopinit.c (gen_insn): Likewise.
6125
6126         * genoutput.c (n_occurrences, process_template, process_template):
6127         Likewise.
6128
6129         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
6130         Likewise.
6131
6132         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
6133         Likewise.
6134
6135         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
6136         ggc_set_mark, ggc_get_size): Likewise.
6137
6138         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
6139
6140         * optabs.c (init_one_libfunc): Likewise.
6141
6142         * output.h (assemble_start_function): Likewise.
6143
6144         * recog.c (decode_asm_operands): Likewise.
6145
6146         * toplev.c (rest_of_compilation): Likewise.
6147
6148         * tree.h (emit_line_note_after, emit_line_note,
6149         emit_line_note_force): Likewise.
6150
6151         * varasm.c (asm_output_bss, asm_output_aligned_bss,
6152         asm_emit_uninitialised, assemble_start_function,
6153         assemble_variable, const_hash, compare_constant_1,
6154         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
6155
6156         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
6157
6158         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
6159
6160         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
6161
6162         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
6163
6164         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
6165         arm_dllimport_name_p): Likewise.
6166
6167         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
6168         Likewise.
6169
6170         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
6171
6172         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6173
6174         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
6175         arm_mark_dllexport, arm_mark_dllimport,
6176         arm_pe_encode_section_info): Likewise.
6177
6178         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
6179         ASM_FINISH_DECLARE_OBJECT): Likewise.
6180
6181         * arm/thumb.c (thumb_function_prologue): Likewise.
6182
6183         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
6184
6185         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6186
6187         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
6188
6189         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
6190
6191         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
6192
6193         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6194
6195         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
6196         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
6197
6198         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
6199
6200         * i386/i386.c (asm_output_function_prefix): Likewise.
6201
6202         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
6203
6204         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6205
6206         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
6207
6208         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
6209         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
6210         ASM_OUTPUT_SECTION_NAME): Likewise.
6211
6212         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
6213
6214         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
6215
6216         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
6217
6218         * m32r/m32r.c (m32r_encode_section_info): Likewise.
6219
6220         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6221
6222         * mcore/mcore.c (mcore_encode_section_info): Likewise.
6223
6224         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6225
6226         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6227
6228         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6229
6230         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
6231
6232         * mips/mips.md (movdi, movsi): Likewise.
6233
6234         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6235
6236         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6237
6238         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6239
6240         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
6241         ASM_OUTPUT_ASCII): Likewise.
6242
6243         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
6244         output_mi_thunk, output_toc): Likewise.
6245
6246         * rs6000/rs6000.md (movsi): Likewise.
6247
6248         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
6249
6250         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
6251
6252         * v850/v850.c (print_operand, print_operand_address,
6253         v850_encode_data_area): Likewise.
6254
6255 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
6256         
6257         * config/mips/mips.md (zero_extendsidi2): Always force operand
6258         one to memory for mips16.
6259
6260 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6261
6262         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
6263         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
6264         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
6265         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
6266         (min_precision): Result is unsigned.
6267         (add_double, neg_double, mul_double): Low word is unsigned.
6268         (lshift_double, rshift_double, lrotate_double): Likewise.
6269         (rrotate_double, div_and_round_double): Likewise.
6270         (tree_floor_log2, compare_tree_int): New functions.
6271         (preserve_rtl_expr_temps): New declaration.
6272         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
6273         (decl_attributes): Use tree_log2 to find alignment.
6274         Check for TREE_INT_CST_HIGH for format args.
6275         (min_precision): Now unsigned.
6276         Use tree_floor_log2.
6277         (truthvalue_conversion): Delete long-disabled code.
6278         * c-decl.c (finish_struct): Clean up tests on field width.
6279         (finish_function): Use compare_tree_int.
6280         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
6281         * c-typeck.c (comptypes): Use tree_int_cst_equal.
6282         (default_conversion, digest_init): Use compare_tree_int.
6283         (build_binary_op): Use integer_all_onesp and compare_tree_int.
6284         Fix type errors in forming masks.
6285         * calls.c (initialize_argument_information): Use compare_tree_int.
6286         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
6287         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
6288         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
6289         (store_field): Use compare_tree_int.
6290         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
6291         (expand_expr, case ARRAY_REF): Use compare_tree_int.
6292         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
6293         (do_store_flag): Use compare_tree_int.
6294         * fold-const.c (encode, decode): Low part is always unsigned.
6295         (force_fit_type, add_double, neg_double, mul_double): Likewise.
6296         (lshift_double, rshift_double, lrotate_double): Likewise.
6297         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
6298         (fold_convert): Use compare_tree_int.
6299         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
6300         (invert_truthvalue, case INTEGER_CST): Likewise.
6301         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
6302         * mkdeps.c (deps_dummy_targets): Make I unsigned.
6303         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
6304         (lshift_double, rshift_double, lrotate_double, rrotate_double):
6305         Likewise.
6306         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
6307         (expand_end_case): Use compare_tree_int.
6308         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
6309         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
6310         (layout_decl): Likewise.
6311         (layout_record, layout_union): Make sizes unsigned.
6312         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
6313         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
6314         * tree.c (struct type_hash): hashcode is unsigned.
6315         (build_type_attribute_variant, type_hash_list): Likewise.
6316         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
6317         (attribute_hash_list, build_array_type, build_method_type): Likewise.
6318         (build_complex_type): Likewise.
6319         (real_value_from_int_cst): Remove unneeded casts.
6320         (integer_all_onesp): Add casts.
6321         (tree_floor_log2, compare_tree_int): New functions.
6322         (build_index_type): Use tree_int_cst_sgn.
6323         * varasm.c (assemble_variable): Use compare_tree_int.
6324
6325 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
6326
6327         * cpphash.c (collect_expansion): Also catch ## at start of macro.
6328
6329         * varasm.c (make_decl_rtl): Don't add a number to members of
6330         local classes.
6331         (make_function_rtl): Likewise.
6332
6333 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6334
6335         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
6336         patch from 2000-01-28.
6337
6338 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
6339
6340         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
6341         filled with an insn from the jump target.
6342
6343 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6344
6345         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
6346         (c4x_external_ref): Likewise.
6347         * config/c4x/c4x.c (struct name_list): Likewise.
6348
6349 1999-12-16  Ben Collins  <bcollins@debian.org>
6350
6351         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
6352         argument to genmultilib.
6353         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
6354         the contents into the multilib.h header.
6355         * gcc.c: Declare multilib_exclusions for the specs file.
6356         (set_multilib_dir): Use it.
6357         (print_multilib_info): Likewise.
6358         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
6359         to pass to genmultilib.
6360
6361 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6362
6363         * builtins.c (built_in_class_names, built_in_names): Constify a
6364         char*.
6365
6366         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
6367         int.
6368         (_mcleanup): Ensure value matches format specifier in sprintf.
6369
6370         * cpphash.c (special_symbol): Don't needlessly cast away
6371         const-ness.
6372
6373         * cppinit.c (base_name): Delete unused prototype.
6374
6375         * mkdeps.c (deps_init): Make definition K&R safe.
6376
6377         * tree.h (built_in_class_names, built_in_names): Constify a
6378         char*.
6379
6380 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
6381
6382         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
6383         floating point instructions for epilogue delay.
6384
6385         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
6386         to gas if it supports .register pseudo.
6387
6388         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
6389         LONG_DOUBLE_TYPE_SIZE if not defined.
6390         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
6391         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
6392         * real.c: Likewise.
6393         * gengenrtl.c: Likewise.
6394         * print-rtl.c: Likewise.
6395         * rtl.c: Likewise.
6396         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
6397         MASK_LONG_DOUBLE_128.
6398         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
6399         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
6400         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
6401         (SUBTARGET_SWITCHES): Define.
6402         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
6403         with -mlong-double-128.
6404         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
6405         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
6406         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
6407         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
6408         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
6409         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
6410         with -mlong-double-128.
6411         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
6412         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
6413         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
6414         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
6415         TARGET_LONG_DOUBLE_128): Define.
6416         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
6417         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
6418         long double on TARGET_ARCH64.
6419
6420 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
6421
6422         * function.c (free_temps_for_rtl_expr): Don't free slots
6423         that have been pushed into a higher level.
6424         
6425         Revert this patch:
6426         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
6427
6428 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
6429
6430         * basic-block.h (ALLOCA_REG_SET): Remove.
6431         (INITIALIZE_REG_SET): New macro.
6432         * flow.c (update_life_info): Use it.
6433         (calculate_global_regs_live): Likewise.
6434         (propagate_block): Likewise.
6435         * global.c (build_insn_chain): Likewise.
6436         * haifa-sched.c (schedule_region): Likewise.
6437
6438 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
6439
6440         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
6441         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
6442         (DWARF_ARANGES_PAD_SIZE): New define.
6443         (output_aranges): Use it to pad the address range header.
6444         (DWARF_ROUND): Fix for non power of 2 rounding.
6445
6446 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
6447
6448         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
6449
6450 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
6451
6452         * tree.def (RTL_EXPR): Update documentation.
6453         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
6454         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
6455         * function.c (preserve_rtl_expr_temp): New function.
6456         (preserve_rtl_expr_temps): Likewise.
6457         (preserve_rtl_expr_result): Use it.
6458
6459         Revert this patch:
6460         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
6461
6462 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
6463
6464         * regmove.c (copy_src_to_dest)  Do not create src->dest move
6465         for unchanging destination.
6466
6467 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
6468
6469         * function.h (struct sequence_stack): Remove rtl_expr.
6470         (struct emit_staus): Likewise.
6471         (seq_rtl_expr): Remove.
6472         * tree.h (free_temps_for_rtl_expr): Don't declare.
6473         (start_sequence_for_rtl_expr): Likewise.
6474         * rtl.h (preserve_rtl_expr_result): Likewise.
6475         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
6476         (start_sequence_for_rtl_expr): Remove.
6477         (push_topmost_sequence): Don't save sequence_rtl_expr.
6478         (pop_topmost_sequence): Remove comment about not restoring it.
6479         (end_sequence): Don't set seq_rtl_expr.
6480         (init_emit): Don't initialize it.
6481         (mark_sequence_stack): Don't mark it.
6482         (mark_emit_status): Likewise.
6483         * except.c (protect_with_terminate): Use
6484         start_sequence_for_rtl_expr, not start_sequence.
6485         * expr.c (expand_expr, case RTL_EXPR): Don't call
6486         preserve_rtl_expr_result or free_temps_for_rtl_expr.
6487         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
6488         (preserve_rtl_expr_result): Remove.
6489         (free_temps_for_rtl_expr): Likewise.
6490         (pop_temp_slots): Likewise.
6491         (mark_temp_slot): Don't mark the rtl_expr.
6492         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
6493         start_sequence_for_rtl_expr.
6494         
6495 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
6496
6497         * mkdeps.c, mkdeps.h: New files.
6498         * po/POTFILES.in: Add them.
6499         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
6500         (cpplib.o, cppinit.o): Depend on mkdeps.h.
6501         (mkdeps.o): New target.
6502
6503         * cppfiles.c: Delete deps_output.
6504         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
6505         OBJECT_SUFFIX, and base_name.
6506         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
6507         the include hash.
6508         (initialize_dependency_output): Use deps_init,
6509         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
6510         all the unnecessary string bashing.
6511         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
6512         level.
6513         * cpplib.c (do_include): Use deps_add_dep.
6514         * cpplib.h (struct cpp_reader): Replace deps_buffer,
6515         deps_allocated_size, deps_size, deps_column members with
6516         single pointer to a struct deps.  Delete prototype of
6517         deps_output.
6518
6519         * cppinit.c: Fix thinko in previous patch.
6520
6521 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6522
6523         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
6524         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
6525         (mode_for_size_tree): New function.
6526         (layout_decl, layout_type): Call it and clean up BLKmode checks.
6527         * tree.h (mode_for_size_tree): New declaration.
6528         
6529         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
6530
6531 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
6532
6533         * stmt.c (is_body_block): Move...
6534         * dwarfout.c, dwarf2out.c: ...from here.
6535         * tree.h: Declare it.
6536         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
6537         * final.c (final_start_function): Do call remove_unnecessary_notes
6538         when scheduling.
6539
6540 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
6541
6542         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
6543         
6544         * cpplib.h (_dollar_ok): New macro.
6545         (is_idchar, is_idstart): Use it.
6546         (IStable): Rename to _cpp_IStable.  Declare it const if
6547         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
6548         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
6549         is_space): Update for renamed IStable.
6550
6551         * cppinit.c: Delete all references to FAKE_CONST and CAT
6552         macros. Define init_IStable as empty macro if gcc >=2.7 or
6553         C99. Change TABLE() to ISTABLE and hardcode name of table.
6554         (cpp_start_read): Don't change the IStable based on
6555         dollars_in_ident.
6556
6557         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
6558         changed.  Handle '$' for char1 correctly.
6559         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
6560
6561         * cppexp.c (tokentab2): Make const.
6562         (cpp_lex): Make toktab const.
6563         * cppinit.c (include_defaults_array): Make const.
6564         (initialize_standard_includes): Make default_include const.
6565
6566 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
6567
6568         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
6569         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
6570         (gen_decl_die): Likewise.
6571         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
6572         (output_decl): Likewise.
6573
6574         * varasm.c (make_function_rtl): If we change the name used in the
6575         rtl, update DECL_ASSEMBLER_NAME accordingly.
6576         (make_decl_rtl): Likewise.
6577
6578         * toplev.c (rest_of_compilation): Tweak formatting.
6579
6580         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
6581         remove_unnecessary_notes.
6582         (debug_ignore_block): New fn.
6583         * toplev.h: Declare it.
6584         * emit-rtl.c (remove_unncessary_notes): Call it.
6585         * dwarf2out.c (dwarf2out_ignore_block): New fn.
6586         * dwarf2out.h: Declare it.
6587         * final.c (final_start_function): Don't call remove_unnecessary_notes
6588         if we did insn scheduling.
6589
6590 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
6591
6592         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
6593         * cpplib.h: Delete SET_CPP_PEDANTIC.
6594
6595 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6596
6597         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
6598         result is a RECORD_TYPE.
6599
6600 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
6601
6602         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
6603
6604 2000-03-03  Richard Henderson  <rth@cygnus.com>
6605
6606         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
6607         addition over compliments over shifts.
6608
6609 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6610
6611         * reload1.c (reload_combine_note_use): Handle return register USEs.
6612         REG case: Handle multi-hard-register hard regs.
6613
6614 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6615
6616         * md.texi: Document use of '*' in insn pattern name.
6617
6618 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
6619
6620         * calls.c (special_function_p): operator new may not be malloc-like.
6621
6622         * gcse.c (dump_hash_table): Really fix error in last change.
6623
6624 2000-03-02  Denis Chertykov  <denisc@overta.ru>
6625
6626         * avr.c (print_operand): Use print_operand_address instead of
6627         output_addr_const.
6628         * avr/libgcc.S: Cleanup code.
6629
6630 2000-03-02  Richard Henderson  <rth@cygnus.com>
6631
6632         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
6633
6634 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
6635
6636         * tree.h (TYPE_ALIGN_UNIT): New macro.
6637
6638 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
6639
6640         * i386.c: (constant_call_address_operand): Reject CONST_INT.
6641
6642 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
6643
6644         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
6645         for the buffer.
6646         (SET_CPP_PEDANTIC): New macro.
6647         * cpplib.c (do_include): Don't bother checking system_header_p.
6648         (do_warning, do_ident, do_assert, do_unassert): Likewise.
6649         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
6650
6651         * function.h (struct expr_status): Add x_arg_space_so_far.
6652         (arg_space_so_far): New macro.
6653         * expr.c (init_expr): Initialize it.
6654         * calls.c (emit_call_1): Reset it.
6655         (compute_argument_block_size, expand_call): Use it.
6656         (expand_call, store_one_arg): Increment it.
6657
6658 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6659
6660         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
6661         a UNION_TYPE.
6662
6663 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
6664
6665         * cppfiles.c (cpp_read_file): New function.
6666
6667         * cpphash.c (collect_expansion): Make sure to reset last_token
6668         to NORM when we hit a string.  Handle trailing whitespace
6669         properly when the expansion is empty.
6670         (create_definition): Disable line commands while parsing the
6671         directive line.
6672         (dump_definition): If pfile->lineno == 0, output a line
6673         command ahead of the dump, and add a trailing newline.
6674
6675         * cppinit.c (append_include_chain): Add fifth argument, which
6676         indicates whether or not system headers are C++ aware.
6677         (initialize_standard_includes): New function,
6678         broken out of read_and_prescan.  Pass 'cxx_aware' value from
6679         the include_defaults_array on to append_include_chain.
6680         (dump_special_to_buffer): Const-ify char array.
6681         (builtin_array): Don't dump __BASE_FILE__.
6682         (cpp_start_read): Use cpp_read_file.  Reorder code for
6683         clarity.  Don't output line commands here for -D/-A/-U
6684         switches.  Don't call deps_output for files included with
6685         -include or -imacros.
6686
6687         * cpplib.c (do_define): Don't pay any attention to the second
6688         argument.
6689         (cpp_expand_to_buffer): Disable line commands while scanning.
6690         (output_line_command): Work in the file buffer.
6691         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
6692         Fix formatting of comments.  Prototype cpp_read_file.
6693
6694 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6695
6696         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
6697         reference the language-equivalent of sizetype.
6698         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
6699         * fold-const.c (size_binop, size_diffop): Put back checks.
6700         * gcse.c (dump_hash_table): Fix minor error in last change.
6701         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
6702         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
6703         all sizetypes.
6704
6705 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
6706
6707         * calls.c (expand_call)  Do not attempt to combine stack adjustments
6708         with inhibit_defer_pop set.
6709
6710 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
6711
6712         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
6713         the DECL_SIZE for a FIELD_DECL.
6714
6715 2000-03-01  Bruce Korb  <bkorb@gnu.org>
6716
6717         * fixinc/inclhack.tpl: remove unused symlinks
6718         * fixinc/README: GCC Maintainer info
6719         * fixinc/inclhack.sh: regen
6720         * fixinc/fixincl.sh: regen
6721
6722 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
6723
6724         * cpphash.c (collect_expansion): Trim trailing white space
6725         from macro definitions, but don't go past the last insertion
6726         point.
6727
6728 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
6729
6730         * i386.md (mulqi3): New pattern.
6731
6732 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
6733
6734         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
6735         token types.
6736         (struct cpp_reader): Add parsing_if_directive and
6737         parsing_define_directive flags.               
6738         (struct cpp_options): Remove output_conditionals flag.
6739         (check_macro_name): Delete prototype.
6740
6741         * cpphash.h (struct macrodef): Delete.
6742         (struct reflist): Separate from struct definition.
6743         (struct definition): Remove unused fields.  Add column number.
6744         (create_definition): Returns a DEFINITION *.  Takes a
6745         cpp_reader * and an int.
6746
6747         * cpphash.c (SKIP_WHITE_SPACE): Delete.
6748         (PEEKC): Copy defn from cpplib.c.
6749         (rest_extension, REST_EXTENSION_LENGTH): Delete.
6750         (struct arg): New.
6751         (struct arglist): Simplify.
6752         (collect_expansion): Rewrite.  Get tokens by calling
6753         cpp_get_token.  Add more error checking.
6754         (collect_formal_parameters): New function, broken out of
6755         create_definition and reworked to use get_directive_token.
6756         (create_definition): All real work is now in collect_expansion
6757         and collect_formal_parameters.  do_define handles finding the
6758         macro name.  Return a DEFINITION, not a MACRODEF.
6759         (macroexpand): Replace bcopy with memcpy throughout.  Replace
6760         character-at-a-time copy loop with memcpy and pointer increments.
6761         (compare-defs): d1->argnames / d2->argnames might be null.
6762
6763         * cpplib.c (copy_rest_of_line): Delete function.
6764         (skip_rest_of_line): Do all the work ourselves.
6765         (skip_string): New function.
6766         (parse_string): Use skip_string.
6767         (get_macro_name): New function.
6768         (check_macro_name): Delete.
6769         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
6770         (cpp_skip_hspace): Use CPP_BUMP_LINE.
6771         (handle_directive): ICE if we're called on a macro buffer.
6772         (do_define): Determine macro name and type (funlike/objlike)
6773         here.  Expunge all uses of MACRODEF.
6774         (cpp_push_buffer): Set line_base to NULL.
6775         (do_undef, read_line_number): Don't worry about getting a POP token.
6776         (eval_if_expression): Set/reset parsing_if_directive around
6777         cpp_parse_expr. Don't clear only_seen_white.
6778         (skip_if_group): Remove output_conditionals logic.  Use
6779         skip_rest_of_line.
6780         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
6781         tokens under appropriate conditions.
6782         (cpp_unassert): Call do_unassert not do_assert.  Oops.
6783
6784         * cppexp.c (parse_defined): New function, break out of
6785         cpp_lex.
6786         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
6787         ourselves, with cpp_defined.
6788         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
6789
6790         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
6791         * gcc.dg/strpaste-2.c: New.
6792
6793 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
6794
6795         * fold-const.c (size_binop): Don't asert inputs are the same and
6796         have TYPE_IS_SIZETYPE set.
6797         (size_diffop): Likewise.
6798
6799 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
6800
6801         * dwarfout.c (output_block): Output abstract blocks even if they
6802         don't have TREE_ASM_WRITTEN set.
6803
6804         * calls.c (emit_library_call): Check for null REG.
6805
6806 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
6807
6808         * c-decl.c (current_function_decl): Move to toplev.c.
6809         (init_decl_processing): Don't add current_function_decl as a ggc
6810         root here.
6811         * dbxout.c (dbxout_symbol): Change return type to int.
6812         (dbxout_symbol_location, dbxout_syms): Likewise.
6813         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
6814         any locals. Use current_function_func_begin_label if set.
6815         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
6816         * dwarf2out.c (dwarf2out_begin_prologue): Set
6817         current_function_func_begin_label.
6818         * final.c (final_start_function): Reset it.
6819         * toplev.c (current_function_decl): Define it here.
6820         (current_function_func_begin_label): New variable.
6821         (main): Add both as ggc roots.
6822         * tree.h (current_function_func_begin_label): Declare.
6823
6824 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6825
6826         * gcse.c: Cleanups throughout: mostly white-space, but also
6827         some minor rearrangement of code.
6828
6829 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
6830
6831         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
6832         returns a PARALLEL.  Use emit_group_load and use_group_regs
6833         as needed.  
6834         (emit_library_call_value): Similarly.
6835
6836         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
6837         * pa/quadlib.asm: Remove.
6838         * pa/quadlib.c: New file.
6839
6840         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
6841         * configure: Rebuilt.
6842
6843 2000-02-29  Philip Blundell  <pb@futuretv.com>
6844
6845         * config/arm/conix-elf.h: New file.
6846         * configure.in (arm*-*-conix*): New configuration.
6847         * configure: Regenerate.
6848
6849 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
6850
6851         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
6852         don't have TREE_ASM_WRITTEN set.
6853
6854 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6855
6856         * Eliminate DECL_FIELD_SIZE.
6857         * builtins.c (built_in_class_names, built_in_names): New variables.
6858         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
6859         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
6860         DECL_SIZE, not DECL_FIELD_SIZE.
6861         * print-tree.c (print_node): Remove code that prints extra blank
6862         lines in some cases.
6863         Properly handle inline and builtin function cases.
6864         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
6865         * tree.h (built_in_class_named, built_in_names): New declarations.
6866         (union tree_decl): Rename internal unions to u1 and u2 and change
6867         some of their components.
6868         Add new field built_in_class.
6869         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
6870         Reflect above changes.
6871         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
6872         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
6873         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
6874         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
6875
6876 2000-02-28  Dmitri Makarov  <dim@windriver.com>
6877
6878         * extend.texi: Document ARM's support for long/short calls.
6879
6880         * invoke.texi: Document ARM's -mlong-calls command line switch.
6881         
6882         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
6883         (arm_encode_call_attribute): Add prototype.
6884         (arm_set_default_type_attribute): Add prototype.
6885         (arm_strip_name_encoding): Add prototype.
6886
6887         * config/arm/arm.c (arm_init_cumulative_args): replace
6888         initialisation og 'long_calls' field with initialisation of
6889         'call_cookie' field.
6890         (enum arm_pragma_enum): New enum.
6891         (arm_pragma_long_calls): New static variable.
6892         (arm_process_pragma): Also process "#pragma long_calls_off".
6893         (arm_valid_type_attribute_p): Accept short_call attribute.
6894         (arm_comp_type_attributes): Check long/short call attributes.
6895         (arm_encode_call_attribute):  New function:  Encode long_call
6896         or short_call attribute in function name.
6897         (arm_set_default_type_attributes): New function: Assign
6898         default attributes to newly defined type.
6899         (current_file_function_operand): New function: Return true if
6900         the symbol is a function which has already been compiled.
6901         (arm_is_longcall_p): New function: Return true if the
6902         indicated function should be called via a long call.
6903         (arm_get_strip_length): New function.  Returns number of
6904         prefix characters to be stripped from a function's name.
6905         (arm_strip_name_encoding): New function.  Strip prefix characters
6906         from a function's name.
6907
6908         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
6909         with 'call_cookie'.
6910         (SHORT_CALL_FAG_CHAR): Define.
6911         (LONG_CALL_FAG_CHAR): Define.
6912         (ENCODED_SHORT_CALL_ATTR_P): Define.
6913         (ENCODED_LONG_CALL_ATTR_P): Define.
6914         (ARM_NAME_ENCODING_LENGTHS): Define.
6915         (STRIP_NAME_ENCODING): Define.
6916         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
6917         (ARM_ENCODE_CALL_TYPE): Define.
6918         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
6919         (ARM_DECLARE_FUNCTION_SIZE): Define.
6920         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
6921
6922         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
6923         if a long call is needed.
6924         (call_value): Ditto.
6925         (call_symbol): Ditto.
6926
6927         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
6928         ARM_DECLARE_FUNCTION_SIZE.
6929
6930         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
6931         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
6932         (ARM_STRIP_NAME_ENCODING): Undefine.
6933         (STRIP_NAME_ENCODING): Undefine.
6934         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
6935         (ASM_DECLARE_FUNCTION_NAME): Ditto.
6936         (ASM_OUTPUT_COMMON): Ditto.
6937         (ASM_DECLARE_OBJECT_NAME): Ditto.
6938
6939         * config/arm/pe.c (arm_dllexport_name_p): Check for
6940         ARM_PE_FLAG_CHAR.
6941         (arm_dllimport_name_p): Ditto.
6942         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
6943         (arm_mark_dllimport): Ditto.
6944         
6945 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6946
6947         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
6948
6949 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
6950
6951         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
6952
6953 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
6954
6955         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
6956         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
6957         NO_BUILTIN_WCHAR_TYPE is not defined.
6958         (CPP_WCHAR_TYPE): Delete.
6959         * cccp.c (main): Don't change wchar_type if cplusplus.
6960         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
6961
6962 2000-02-28  Nick Clifton  <nickc@cygnus.com>
6963
6964         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
6965
6966 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
6967
6968         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
6969         (ASM_WEAKEN_LABEL): Define.
6970  
6971 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
6972
6973         * expr.c (store_constructor): Do not emit USE.
6974         * rtl.h (stupid_life_analysis): Remove.
6975
6976 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6977
6978         * function.c (number_blocks): Reset next_block_index based on
6979         what debugging format is used, not what is defined.
6980         
6981         * lcm.c: Minor reformatting throughout.
6982         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
6983         
6984         * toplev.c (rest_of_compilation): Account for time in
6985         optimize_mode_switching.
6986
6987         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
6988         if only marking labels.
6989
6990 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
6991
6992         * calls.c (expand_call): Attempt to combine stack adjustments with
6993         pending stack adjustments.
6994
6995 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6996
6997         * loop.c (reg_in_basic_block_p): Don't abort when falling through
6998         to the end of the function.
6999
7000 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
7001
7002         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
7003         blocks.
7004         * final.c (next_block_index): Remove.
7005         (max_block_depth): Likewise.
7006         (pending_blocks): Likewise.
7007         (init_final): Don't initialize them.
7008         (final_start_function): Don't set next_block_index.  Set up
7009         BLOCK_NUMBER.
7010         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
7011         * function.h (number_blocks): New function.
7012         * function.c (get_block_vector): New function.
7013         (identify_blocks): Use it.
7014         (reorder_blocks): Set NOTE_BLOCK.
7015         (number_blocks): New function.
7016         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
7017         * tree.h (BLOCK_NUMBER): New macro.
7018         (tree_block): Add block_num field.
7019         * dbxout.c (next_block_number): Remove.
7020         (dbxout_init): Don't set it.
7021         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
7022         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
7023         block numbers.
7024         * toplev.c (rest_of_compilation): Always call
7025         find_loop_tree_blocks.  Fix indentation.
7026         * dwarf2out.c (next_block_number): Remove.
7027         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
7028         to determine block numbers.
7029         (gen_inlined_subroutine_die): Likewise.
7030         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
7031         (decls_for_scope): Don't increment next_block_number.
7032         * dwarfout.c (next_block_number): Remove.
7033         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
7034         to determine block numbers. 
7035         (output_inlined_subroutine_die): Likewise.
7036         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
7037         (output_decls_for_scope): Don't increment next_block_number.
7038         * sdbout.c (next_block_number): Remove.
7039         (sdbout_block): Use BLOCK_NUMBER.
7040         (sdbout_begin_block): Simplify.
7041         * xcoffout.c (next_block_number): Remove.
7042         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
7043         (xcoffout_begin_block): Don't set next_block_number.
7044         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
7045         next_block_number.
7046         
7047 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7048
7049         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
7050         (expand_builtin_strcpy): Pass correct type to size_binop.
7051         (expand_builtin_strcmp): Likewise.
7052         Clean up conditional structure.
7053         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
7054         (complete_array_type): Don't use size_binop for MAXINDEX.
7055         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
7056         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
7057         (c_alignof): Use size_one_node.
7058         (build_unary_op): Pass arg of proper type to size_binop.
7059         (really_start_incremental_init, push_init_level): Use sizetype for
7060         constructor{,_bit,_unfilled}_index.
7061         (pop_init_label, output_init_element): Likewise.
7062         (output_pending_init_elements, process_init_element): Likewise.
7063         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
7064         * expr.c (store_expr): Use size_int.
7065         (store_constructor): Use proper types for size_binop args.
7066         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
7067         (expand_expr_unaligned): Likewise.
7068         (string_contant): Return object of sizetype.
7069         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
7070         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
7071         (ARGS_SIZE_TREE): Pass proper types to size_binop.
7072         * fold-const.c (int_const_binop): Refine when size_int is called.
7073         (fold_convert): Likewise.
7074         (size_int_wide): Rework to take KIND as arg, only take low order
7075         bits, handle new sizetype_tab datatype, and chain entries in
7076         size_table.
7077         (size_int_type_wide): New function.
7078         (size_binop): Validate types of arguments.
7079         (ssize_binop): Deleted.
7080         (size_diffop): New function.
7081         (extract_muldiv): Only fold division into multiplication for sizetypes.
7082         * function.c (assign_parms): Use size_diffop and make sure
7083         VAR field is of ssizetype; also pass proper type to size_binop.
7084         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
7085         (round_down): Deleted from here.
7086         * store-layout.c (sizetype_tab): Now an array.
7087         (sizetype_set, early_root_list): New variables.
7088         (variable_size): Use size_one_node.
7089         (round_up): Pass proper type to size_binop.
7090         (round_down): Moved to here and corrected as above.
7091         (layout_record): Pass proper arg types to size_binop.
7092         (layout_type): Likewise.
7093         If sizetype_set is zero, record the type just laid out.
7094         (make_unsigned_type): Don't call set_sizetype;
7095         (make_signed_type): Likewise; also, call fixup_signed_type.
7096         (initialize_sizetypes): New function.
7097         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
7098         set name of bitsizetype to "bit_size_type".
7099         Fix up type of sizes of all types made before call.
7100         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
7101         * tree.c (fix_sizetype): Deleted.
7102         (build_common_tree_nodes): Call initialize_sizetypes.
7103         (build_common_tree_nodes_2): Don't call fix_sizetype.
7104         * tree.h (TYPE_IS_SIZETYPE): New macro.
7105         (initialize_sizetype): New declaration.
7106         (enum size_type_kind): New type.
7107         (struct sizetype_tab): Deleted.
7108         (sizetype_tab): Now array; adjust sizetype macros.
7109         (size_diffop, size_int_type_wide): New functions.
7110         (size_int_wide): Change number of args and type; access macros changed.
7111         (ssize_int, sbitsize_int): New macros.
7112         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
7113         (ROUND_TYPE_SIZE_UNIT): New macro.
7114
7115 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
7116
7117         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
7118
7119 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7120
7121         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
7122         Mark as possibly unused.
7123
7124         * cse.c (cse_insn): Delete dead code involving tablejump.
7125         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
7126
7127         * Makefile.in (libcpp.a): Start by deleting it.
7128
7129 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7130
7131         * cpplib.h (enum file_change_code): Added rename_file.
7132         * cpplib.c (do_line): If a filename is given, set file_change to
7133         rename_file.
7134         (output_line_command): If file_change is rename_file, always
7135         output a # directive with the file name.
7136
7137         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
7138
7139 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
7140
7141         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
7142         when copying a PARM_DECL or RESULT_DECL.
7143
7144 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7145
7146         * fix-header.c (recognized_function): Also fix prototypes for
7147         functions taking "void".
7148
7149 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
7150
7151         * reload1.c (do_output_reload): Check reg_reloaded_valid before
7152         looking at reg_reloaded_contents.
7153
7154 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
7155
7156         * Makefile.in (STMP_FIXINC): New toggle.
7157         (LIBGCC2_DEPS): Delete all references.
7158         (stmp-headers): Delete target.  All references either deleted
7159         or changed to stmp-int-headers.
7160         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
7161         (LIBCPP_OBJS): Take out cppalloc.o.
7162         (cppalloc.o): Delete target.
7163         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
7164         (gen-protos, fix-header): Link with libiberty.a.
7165         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
7166         to empty.
7167
7168         * configure.in: Remove refs to strerror.
7169         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
7170         * system.h: Take out strerror stanza.
7171
7172         * cpperror.c (my_strerror): Delete function.
7173         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
7174         * cppmain.c (main): Call xmalloc_set_program_name first thing.
7175         * cppalloc.c: Delete file.
7176         * gen-protos.c: Don't provide xrealloc.
7177
7178         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
7179         xstrerror throughout.
7180
7181 2000-02-26  Bruce Korb  <bkorb@gnu.org>
7182
7183         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
7184         match for DOS headers, too.
7185         * fixinc/inclhack.sh,fixincl.x: Regenerate.
7186
7187 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
7188
7189         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
7190         is right for most ELF targets.
7191         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
7192         Let the default file use %U properly.
7193         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
7194         default.
7195
7196         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
7197         numbers.
7198
7199 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7200
7201         * toplev.c (documented_lang_options): Correct spelling error.
7202         (decode_d_option, decode_f_option, main): Likewise.
7203
7204         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
7205
7206         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
7207         to tell assembler it is permitted to expand large constants.
7208
7209 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
7210
7211         * protoize.c: (AUX_INFO_SUFFIX): New macro.
7212         (aux_info_suffix): Use.
7213         (SAVE_SUFFIX): New macro.
7214         (save_suffix): Use.
7215         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
7216         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
7217         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
7218
7219         * invoke.texi (Running Protoize): Update documentation.
7220
7221 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
7222
7223         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
7224
7225 2000-02-25  John Wehle  (john@feith.com)
7226
7227         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
7228
7229 2000-02-25  Anthony Green  <green@cygnus.com>
7230
7231         * toplev.c (rest_of_compilation): Rebuild jump labels if
7232         combine_instructions has created a new direct jump.
7233         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
7234         when appropriate.
7235         (combine_instructions): Call try_combine with new argument.
7236         Return non-null value when new direct jump instruction is created.
7237         * rtl.h: combine_instructions returns an int.
7238
7239 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
7240
7241         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
7242         jump when changing a computed jump into a jump to a known
7243         target.
7244
7245 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
7246
7247         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
7248         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
7249
7250         * i386.md (define_expand "clrstrsi"): Fix typo.
7251
7252 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
7253
7254         * rtl.texi: Fix typo.
7255
7256 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7257
7258         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
7259         UNITS_PER_WORD.  Change caller initial_elimination_offset.
7260         (rounded_frame_size): Take into account that argument pushed has
7261         changed.  Fix TARGET_ALIGN_DOUBLE problem.
7262
7263 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
7264
7265         * haifa-sched.c (schedule_block): Explain the real reason
7266         we delete REG_SAVE_NOTEs on the first insn of a block.
7267         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
7268
7269 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
7270
7271         * input.h (push_srcloc): New function.
7272         (pop_srcloc): Likewise.
7273         * toplev.c (push_srcloc): Define it.
7274         (pop_srcloc): Likewise.
7275
7276 2000-02-24  Richard Henderson  <rth@cygnus.com>
7277
7278         * flow.c (life_analysis): When collecting reg info, clear
7279         regs_ever_live.
7280
7281 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7282
7283         Fix bug exposed by reload.c no longer rounding the frame
7284         size to BIGGEST_ALIGNMENT:
7285         * sh.c (rounded_frame_size): New function.
7286         (sh_expand_prologue, sh_expand_epilogue): Use it.
7287         (initial_elimination_offset): Likewise.
7288
7289 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7290
7291         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
7292         * sh-protos.h (sh_need_epilogue): Declare.
7293         * sh.c (sh_need_epilogue_known): New static variable.
7294         (sh_need_epilogue): New function.
7295         (function_epilogue): Clear need_epilogue_known.
7296         * sh.md (return): Split into expander / insn pattern.
7297         Make the expander conditional on ! sh_need_epilogue ().
7298
7299 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
7300
7301         * machmode.h (get_mode_alignment): Declare.
7302         (GET_MODE_ALIGNMENT): Call it.
7303         * stor-layout.c (get_mode_alignment): New function. Make
7304         sure alignment is always power of 2.
7305
7306 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
7307
7308         * i386.h: Remove useless definition of "I386" and misleading
7309         comment above it.
7310
7311 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
7312
7313         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
7314         under which TREE_PERMANENT will be set.
7315         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
7316         build1): Use TREE_SET_PERMANENT.
7317         * print-tree.c (print_node): Don't report value of
7318         TREE_PERMANENT if ggc_p is true.
7319
7320         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
7321         decide whether to give a type a new alias set.
7322         * objc/objc-act.c (build_objc_string_object): Never copy the string.
7323         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
7324         of value of 'obstack'.
7325
7326
7327 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7328
7329         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
7330
7331 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7332
7333         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
7334         * cpplib.c (cpp_get_token): Produce them.
7335         * cppexp.c (cpp_lex): Handle them.
7336
7337 2000-02-23  Nick Clifton  <nickc@cygnus.com>
7338
7339         * config/arm/arm.c (arm_comp_type_attributes): Simply and
7340         comment tests on type attributes.
7341
7342 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7343
7344         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
7345         conform to documentation.
7346         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
7347         to check for special cases.
7348         * sh-protos.h (sh_loop_align): Declare.
7349         * sh.c (sh_loop_align): Define.
7350
7351 2000-02-22  Andrew Haley  <aph@cygnus.com>
7352
7353         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
7354         (SIZE_TYPE): Is 32 bits when using -mgp32.
7355         (PTRDIFF_TYPE): Ditto.
7356
7357 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7358
7359         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
7360
7361 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
7362
7363         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
7364         BIGGEST_FIELD_ALIGNMENT a constant.
7365
7366 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
7367
7368         * dwarf2out.c (output_line_info): Put the marker for the end of
7369         the line number info at the actual end.
7370         (gen_struct_or_union_type_die): Use decl_function_context 
7371         to check for local classes.
7372         * dwarfout.c (output_type): Likewise.
7373
7374 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
7375
7376         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
7377         for arguments with a mode, but no type.
7378         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
7379         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
7380         * pa/long_double.h: New file.
7381         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
7382         both have 128bit wide long doubles.
7383         * configure: Rebuilt.
7384
7385 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7386
7387         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
7388
7389         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
7390         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
7391         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
7392
7393         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
7394
7395         * integrate.c (compare_blocks, find_block): Likewise.
7396
7397         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
7398
7399         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
7400
7401         * stmt.c (stmt_status, set_file_and_line_for_stmt,
7402         expand_asm_operands): Likewise.
7403
7404 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
7405
7406         * predict.c (estimate_probability): Added the pointer heuristic to
7407         the collection of static branch predictors.
7408
7409 2000-02-21  Catherine Moore  <clm@cygnus.com>
7410
7411         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
7412         * invoke.texi (-mfix7000): Document.
7413
7414 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
7415
7416         * diagnostic.c (init_output_buffer): Make it possible to output at
7417         least 32 characters if we're given a too long prefix.
7418
7419 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
7420
7421         * varasm.c (initializer_constant_valid_p): Call
7422         lang_expand_constant to simplify the constant.
7423
7424 2000-02-20  Bruce Korb  <bkorb@gnu.org>
7425
7426         * fixinc/inclhack.def(stdio_va_list):
7427         typedef needs to be disabled.
7428         * fixinc/inclhack.sh: regen
7429         * fixinc/fixincl.x: regen
7430
7431 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
7432
7433         * print-rtl.c (print_rtx): Don't print addresses when
7434         flag_dump_unnumbered.
7435
7436 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7437
7438         * sparc.c (sparc_output_scratch_registers): Mark parameter with
7439         ATTRIBUTE_UNUSED.
7440         (sparc_va_arg, sparc_flat_output_function_prologue,
7441         sparc_flat_output_function_epilogue): Cast value to unsigned in
7442         comparison.
7443         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
7444         
7445         * sparc.md: Add default case in switch.
7446
7447 2000-02-19  Richard Henderson  <rth@cygnus.com>
7448
7449         * c-typeck.c (add_pending_init): Don't abort for multiple
7450         fields at the same offset.
7451         (pending_init_member): Test the correct member.
7452
7453 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7454
7455         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
7456         instead of SImode.
7457         (start_catch_handler) : Same.
7458
7459 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
7460
7461         * Makefile.in: Have flow.o depend on $(EXPR_H)
7462
7463 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7464
7465         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
7466         * c-decl.c (duplicate_decls, finish_enum): Likewise.
7467         (finish_decl): Remove -Wlarger-than code from here.
7468         * flags.h (id_clash_len): Now int.
7469         (larger_than_size): Now HOST_WIDE_INT.
7470         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
7471         Clean up checking to see if in table.
7472         (make_bit_field_ref): Remove extra parm to bitsize_int.
7473         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
7474         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
7475         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
7476         and for computing size of decl.
7477         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
7478         Move -Wlarger-than code to here.
7479         (layout_record): Remove extra arg to bitsize_int.
7480         Set TYPE_BINFO_SIZE_UNIT.
7481         (layout_union): Remove extra arg to bitsize_int.
7482         Use proper type for size of QUAL_UNION.
7483         (layout_type): Remove extra arg to bitsize_int.
7484         * toplev.c (id_clash_len): Now int.
7485         (larger_than_size): Now HOST_WIDE_INT.
7486         (decode_W_option): Clean up id-clash and larger-than- cases.
7487         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
7488         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
7489         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
7490         (struct tree_decl): New field size_unit.
7491         (size_int_wide): No HIGH operand; NUMBER is now signed.
7492         (size_int_2): Deleted.
7493         (size_int, bitsize_int): Don't use it and rework args.
7494         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
7495
7496 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
7497
7498         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
7499
7500 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
7501
7502         * invoke.texi (Warning Options): Add an explanation of why
7503         you might want the -Wfloat-equal flag.
7504
7505 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7506
7507         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
7508         * cppinit.c (new_pending_define): Add cast to avoid warning.
7509         * expmed.c (extract_bit_field): Likewise.
7510         * flow.c (enum reorder_skip_type): New type.
7511         (skip_insns_between_blcok): New it.
7512         Rework to avoid warning about possibly undefined variable.
7513         * function.c (assign_parms): Make thisparm_boundary unsigned.
7514         * genrecog.c (write_switch): Cast XWINT result to int.
7515         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
7516         * mips-tfile.c (init_file): Make two versions of FDR intializer:
7517         one for MIPS and one for Alpha.
7518         (get_tag, copy_object): Add casts to avoid warnings.
7519         * optabs.c (init_one_libfunc): Cast NAME to (char *).
7520         * reload.c (find_reloads): Make TYPE enum reload_type.
7521         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
7522         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
7523         * varasm.c (compare_constant_1): Add cast to avoid warning.
7524         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
7525         to (char *).
7526         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
7527         Cast switch operand of size to int.
7528         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
7529         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
7530         in unhandled case.
7531
7532 2000-02-18  Nick Clifton  <nickc@cygnus.com>
7533
7534         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
7535         anything for an alignment of zero.
7536
7537         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
7538         anything for an alignment of zero.
7539
7540 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
7541
7542         * gcc.texi (Bug Reporting): Refer to bugs.html.
7543         (Bug Lists): Likewise.
7544         * system.h (GCCBUGURL): New preprocessor define.
7545         * rtl.c (fancy_abort): Use it.
7546         * gcc.c (main): Likewise.
7547
7548 2000-02-18  Richard Henderson  <rth@cygnus.com>
7549
7550         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
7551         (life_analysis_1): Subsume into ...
7552         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
7553         Use update_life_info for the relaxation.
7554         (update_life_info): Update REG_BASIC_BLOCK for registers live on
7555         entry and regs_live_at_setjmp.
7556         (set_noop_p): Simplify.
7557         (notice_stack_pointer_modification_1): Renamed from s/_1//.
7558         (record_volatile_insns): Split into ...
7559         (delete_noop_moves): ... here,
7560         (notice_stack_pointer_modification): ... here,
7561         (insn_dead_p): ... and here.
7562         (propagate_block): Don't query INSN_VOLATILE.
7563         (mark_used_regs): Mind !PROP_REG_INFO.
7564         * toplev.c (rest_of_compilation): Call mark_constant_function here,
7565         not in life_analysis.
7566
7567 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
7568
7569         * loop.c (canonicalize_condition): New function,
7570         broken out of get_condition.
7571         (get_condition): Use it.
7572         * expr.h (canonicalize_condition): Prototype it.
7573
7574         * tree.h (tree_int_cst_msb): Declare.
7575         * tree.c (tree_int_cst_msb): New function.
7576
7577 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
7578
7579         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
7580         isn't set.
7581
7582         * invoke.texi (-fmessage-length=n): Document.
7583
7584 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
7585
7586         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
7587
7588 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
7589
7590         * function.c (thread_prologue_and_epilogue_insns): Put a line note
7591         after the prologue.
7592
7593 2000-02-17  Nick Clifton  <nickc@cygnus.com>
7594
7595         * config/arm/thumb.c: Replace includes of system headers with
7596         #include "system.h".
7597
7598 2000-02-16  Richard Henderson  <rth@cygnus.com>
7599
7600         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
7601         Add crtbeginS.o and crtendS.o.
7602         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
7603         (ENDFILE_SPEC): Use crtendS.o.
7604         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
7605
7606         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
7607         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
7608         shared and present.
7609         (__dso_handle): New variable.
7610         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
7611         bias to __CTOR_END__.
7612         
7613 2000-02-16  Richard Henderson  <rth@cygnus.com>
7614
7615         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
7616
7617 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7618
7619         * longlong.h (__clz_tab): Declare as static to match definition.
7620
7621 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
7622         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
7623         (XREF_FILE_NAME): Define.
7624
7625         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
7626         (EH_FRAME_SECTION_ASM_OP): Define.
7627         (IDENT_ASM_OP): Define.
7628         (TEXT_SECTION_ASM_OP): Define.
7629         (CPP_SPEC): Define.
7630         (CTORS_SECTION_ASM_OP): Define.
7631         (CTOR_SECTION_FUNCTION): Use it.
7632         (DTORS_SECTION_ASM_OP): Define.
7633         (DTOR_SECTION_FUNCTION): Use it.
7634
7635 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
7636
7637         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
7638         NOTE_BASIC_BLOCK.
7639
7640         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
7641         debug_bb_n): New functions.
7642         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
7643         * basic-block.h: Prototype new functions.
7644
7645 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
7646
7647         * configure.in: Add support for avr target.
7648         * configure: Rebuilt.
7649
7650         * invoke.texi: Add AVR invocation docs.
7651         * install.texi: Add information about AVR.
7652         * md.texi: Add AVR constraint letters description.
7653         * extend.texi: Add description for AVR specific attributes.
7654
7655 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
7656
7657         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
7658
7659 2000-02-16  Nick Clifton  <nickc@cygnus.com>
7660
7661         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
7662         (make_insn_raw): Move RTL check here.
7663
7664 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7665
7666         * version.c: Include gansidecl.h and version.h.
7667
7668         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
7669         
7670         * configure.in (gcc_version): When setting, narrow search to
7671         lines containing `version_string'.
7672
7673         * Makefile.in (mainversion): Likewise. 
7674         (GCC_H): New variable.
7675         (gcc.h): Delete target.
7676         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
7677         (version.o): Depend on version.h.
7678         (dbxout.o): Don't depend on gcc.h.
7679
7680 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7681                           Michael Meissner  <meissner@cygnus.com>
7682
7683         * md.texi (Simple Constraints): Add item about whitespace.
7684         * genoutput.c (strip_whitespace): New.
7685         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
7686         strip_whitespace for constraints.
7687         Test pointer using NULL, not 0.
7688
7689 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7690
7691         * cpplib.c (do_line): Pedwarn for #line > 32767.
7692
7693         * c-lex.c (readescape): Warn about '\x', but do not reject it.
7694
7695 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
7696
7697         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
7698         to default cpp spec.
7699         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
7700         * cpp.texi: Document __GNUC_PATCHLEVEL__.
7701         * cpp.1: Likewise.
7702
7703         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
7704         default spec.
7705
7706 2000-02-15  Denis Chertykov  <denisc@overta.ru>
7707
7708         * configure.in: Add support for avr target.
7709
7710 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7711
7712         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
7713         (sh_addr_diff_vec_mode): Don't declare.
7714         * sh.c (sh_addr_diff_vec_mode): Delete.
7715
7716 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7717
7718         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
7719
7720 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7721
7722         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
7723         (smulsi3_highpart_i): Name.
7724         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
7725         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
7726         (smulsi3_highpart, umulsi3_highpart): Likewise.
7727
7728         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
7729         correctly independent of endianness.
7730         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
7731         confuse the optimizers.
7732         (mulsidi3+1, umulsidi3+1): New define_split.
7733
7734 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
7735
7736         * config/sh/sh.md: Guard insn splits against illegal registers.
7737         * config/sh/sh.h: Correct comment about macros.
7738
7739 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7740                           Andrew MacLeod  <amacleod@cygnus.com>
7741
7742         * Makefile.in (lcm.o): Depend on insn-attr.h.
7743         * basic-block.h (optimize_mode_switching): Declare.
7744         * lcm.c (tm_p.h, insn-attr.h): #include.
7745         (seginfo, bb_info): New structs.
7746         (antic, transp, comp, delete, insert) : New file-scope static variables.
7747         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
7748         (reg_becomes_live, optimize_mode_switching): Likewise.
7749         * tm.texi: Add description of mode switching macros.
7750         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
7751
7752         * sh-protos.h (remove_dead_before_cse): Remove prototype.
7753         (fldi_ok, fpscr_set_from_mem): New prototypes.
7754         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
7755         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
7756         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
7757         (sh_flag_remove_dead_before_cse): Remove declaration.
7758         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
7759         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
7760         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
7761         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
7762         (barrier_align): Allow for JUMP_INSNS containing a parallel.
7763         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
7764         (fldi_ok): New function.
7765         (get_fpscr_rtx): Add fpscr_rtx as GC root.
7766         (emit_sf_insn): Only generate fpu switches when optimize < 1.
7767         (emit_df_insn): Likewise.
7768         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
7769         (sh_flag_remove_dead_before_cse): Delete.
7770         (get_free_reg, fpscr_set_from_mem): New functions.
7771         * sh.md (movdf, movsf): Remove no_new_pseudos code.
7772         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
7773
7774 2000-02-15  Loren Rittle  <ljrittle@acm.org>
7775
7776         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
7777
7778 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7779
7780         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
7781         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
7782
7783         * cccp.c: Include version.h and/or don't declare `version_string'.
7784         * collect2.c: Likewise.
7785         * alpha.c: Likewise.
7786         * arm/aof.h: Likewise.
7787         * arm/coff.h: Likewise.
7788         * arm/elf.h: Likewise.
7789         * arm/pe.h: Likewise.
7790         * arm/tcoff.h: Likewise.
7791         * arm/telf.h: Likewise.
7792         * arm/tpe.h: Likewise.
7793         * arm/vxarm.h: Likewise.
7794         * convex/convex.c: Likewise.
7795         * i386/dgux.c: Likewise.
7796         * i386/sun386.h: Likewise.
7797         * m88k/m88k.c: Likewise.
7798         * mcore/mcore-pe.h: Likewise.
7799         * mips/mips.h: Likewise.
7800         * romp/romp.h: Likewise.
7801         * sh/sh.c: Likewise.
7802         * cpphash.c: Likewise.
7803         * cppinit.c: Likewise.
7804         * dwarf2out.c: Likewise.
7805         * dwarfout.c: Likewise.
7806         * gcc.c: Likewise.
7807         * gcc.h: Likewise.
7808         * mips-tfile.c: Likewise.
7809         * protoize.c: Likewise.
7810         * toplev.c: Likewise.
7811         * tree.h: Likewise.
7812         
7813         * version.c (version_string): Constify a char*.
7814
7815         * version.h: New file.
7816
7817 2000-02-14  Nick Clifton  <nickc@cygnus.com>
7818
7819         * configure.in: Add mcore-elf and mcore-pe targets.
7820         * configure: Regenerate.
7821
7822         * NEWS: Add note that MCore port has been contributed.
7823
7824         * invoke.texi: Document command line switches for MCore port.
7825         * install.texi: Add MCore to list of supported targets.
7826
7827 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
7828
7829         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
7830         then we will need to import the frame handling functions.
7831         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
7832         to import the frames themselves.
7833
7834 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
7835                           Jason Eckhardt  <jle@cygnus.com>
7836
7837         * basic_block.h: Added prototype for reorder_basic_blocks.
7838         * toplev.c: Changes to add -freorder-blocks and graph dump after
7839         block reordering is done.
7840         * flow.c (reorder_block_def): New structure for use during block
7841         reordering.
7842         (REORDER_BLOCK_*): New macros to access members of above structure.
7843         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
7844         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
7845         functions for block reordering.
7846
7847 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7848
7849         * gcc.texi (Passes): Fix typo.
7850         * md.texi (Standard Names): Ditto.
7851         * tm.texi (Storage Layout): Ditto.
7852
7853 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
7854
7855         * cpplib.c (do_define): Only free the old definition if it
7856         actually had one.
7857
7858 2000-02-13   Neil Booth  <NeilB@earthling.net>
7859
7860         * cppfiles.c (read_and_prescan): When emitting deferred
7861         newlines, test speccase[] again instead of checking each
7862         possible whitespace character in turn.  When we encounter \r,
7863         look behind for \n first, then ahead.
7864
7865 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
7866
7867         * cse.c (cse_altered): New internal flag.
7868         (cse_insn): Set it if we changed an insn.
7869         (cse_main): Clear cse_altered before each basic block.
7870         Only garbage collect if cse_altered is true afterward.
7871
7872 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7873
7874         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
7875
7876 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
7877
7878         * combine.c (simplify_comparison): Fix typo.
7879
7880 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
7881
7882         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
7883         consistently.
7884
7885 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7886
7887         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
7888         previously inserted node instead of root node.  Caller changed.
7889
7890 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7891
7892         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
7893
7894 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7895
7896         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
7897         __dereg_frame_dtor): Add prototype argument.
7898
7899         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
7900
7901         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
7902
7903         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
7904
7905         * gthr-vxworks.h (__gthread_once): Likewise.
7906
7907         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
7908
7909 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
7910
7911         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
7912         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
7913         stack pointer in functions w/o saved registers, output LEAVE more often
7914         on TARGET_USE_LEAVE machines.
7915
7916 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
7917
7918         * config/arm/arm.c (arm_init_cumulative_args); New function:
7919         Initlaise the CUMULATIE_ARGS strcuture for a function
7920         defintion. 
7921         (arm_function_arg): New function: Determine where to place a
7922         function's argument.  Also handles deciding the function's
7923         call cookie.
7924         (current_file_function_operand): New function: Return true if
7925         the symbol is a function which has already been compiled.
7926         (arm_is_long_call_p): New function: Return true if the
7927         indicated function should be called via a long call.
7928         (arm_valid_type_attribute_p): New function: Return true if the
7929         attribute is a valid, arm specific, attribute.
7930         (arm_comp_type_attribute): New function: Return true if the
7931         two types have compatable, arm specific, attributes.
7932
7933         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
7934         structure.
7935         (FUNCTION_ARG): Redefine to call arm_function_arg.
7936         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
7937         structure field.
7938         (INIT_CUMULATIVE_ARGS): Redefine to call
7939         arm_init_cumulative_args.
7940         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
7941         field. 
7942         (SETUP_INCOMING_VARARGS): Redefine to use correct structure 
7943         field. 
7944         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
7945         functions.
7946         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
7947         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
7948         (COMP_TYPE_ATTRIBUTES): Define.
7949
7950         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
7951         if a long call is needed.
7952         (call_value): Call arm_is_long_call_p to decide if a long call
7953         is needed.
7954         (call_symbol): Call arm_is_long_call_p to decide if a long call
7955         is needed.
7956
7957         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
7958
7959 2000-02-11  Denis Chertykov  <denisc@overta.ru>
7960
7961         * README.AVR: New file with information about the avr ports.
7962         * config/avr: New directory with avr port files.
7963
7964 2000-02-11  Andreas Jaeger  <aj@suse.de>
7965
7966         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
7967
7968 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
7969
7970         * cpphash.c: Fix formatting, update commentary.
7971         (dump_definition): Take three separate arguments instead of a
7972         MACRODEF structure argument.
7973         * cpphash.h: Update prototype of dump_definition.
7974         * cppinit.c (cpp_finish): Update call of dump_definition.
7975
7976         * cpplib.c (do_define): Always create new hash entry with
7977         T_MACRO type.  Remove redundant check for redefinition of
7978         poisoned identifier.  Update call of dump_definition.
7979         (do_undef): Don't call check_macro_name.  Rename sym_length to
7980         len.
7981         (do_error, do_warning): Don't use copy_rest_of_line or
7982         SKIP_WHITE_SPACE.
7983         (do_warning): Don't use pedwarn for the actual warning,
7984         only the notice about its not being in the standard.  (Fixes
7985         bug with #warning in system headers.)
7986         (do_ident): Stricter argument checking - accept only a single
7987         string after #ident.  Also, macro-expand the line.
7988         (do_xifdef): Use cpp_defined.  De-obfuscate.
7989
7990         (do_pragma): Split out specific pragma handling to separate
7991         functions.  Use get_directive_token.  Update commentary.  Do
7992         not pass on #pragma once or #pragma poison to the front end.
7993         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
7994         do_pragma_default): New.
7995
7996 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
7997
7998         * jump.c (jump_optimize_1): The first operand in a relational
7999         can be a CONST_INT.
8000         * optabs.c (emit_conditional_move): Handle relationals which
8001         have a known true/false result.
8002
8003 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
8004
8005         * function.c (thread_prologue_and_epilogue_insns): Don't insert
8006         a RETURN insn into a block which already ends with a jump.
8007
8008 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
8009
8010         * haifa-sched.c (BUF_LEN): Increase a lot.
8011
8012 2000-02-11  Nick Clifton  <nickc@cygnus.com>
8013
8014         * configure.in: Add tm_p_file specification for thumb targets.
8015         * configure: Regenerate.
8016
8017         * config/arm/thumb-protos.h: New file: Prototypes for exported
8018         functions defined in thumb.c.
8019
8020 2000-02-11  Robert Lipe  <robertl@sco.com>
8021
8022         * Makefile.in (bootstrap-lean): Remove additional files.
8023         (bootstrap2-lean): Likewise.
8024         (VOL_FILES): List of files for above.
8025
8026 2000-02-11  Nathan Sidwell  <nathan@acm.org>
8027
8028         * cpphash.c (special_symbol): Remove spurious argument to
8029         cpp_lookup.
8030
8031 2000-02-11  Joel Sherrill (joel@OARcorp.com>
8032
8033         * configure.in: (i*86-*-rtems*): Swapped elf and coff
8034         stanzas.
8035         * configure: Rebuilt.
8036
8037 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
8038         
8039         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
8040
8041 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
8042
8043         * pa.c, pa.h: Remove trigraph sequences within comments.
8044
8045 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
8046
8047         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
8048
8049 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
8050
8051         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
8052
8053 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8054         
8055         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
8056
8057 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8058
8059         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
8060         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
8061         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
8062         (ASM_FILE_END): Use c4x_file_end.
8063         * config/c4x/c4x.c (c4x_global_label): New function.
8064         (c4x_external_ref, c4x_file_end): Likewise.
8065
8066         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
8067         (c4x_external_ref, c4x_end_file): Likewise.
8068
8069 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
8070
8071         * cppexp.c: Don't include cpphash.h.
8072         (parse_charconst, cpp_lex): Use cpp_defined.
8073         (cpp_lex): Use get_directive_token throughout.  Remove
8074         unnecessary cases from switch.  Move assertion-handling code
8075         down to OTHER case.
8076         (cpp_parse_expr): If we see '+' or '-', check the context to
8077         determine if they are unary or binary operators.  Streamline
8078         the jumps a bit.  Do not call skip_rest_of_line.
8079
8080         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
8081         static.  Export get_directive_token.  Update commentary.
8082         (cpp_defined): New function.
8083         (do_define): Remove reference to T_PCSTRING.  Call
8084         free_definition to release memory for old definition, when
8085         redefining a macro.
8086         (eval_if_expression): Set only_seen_white to 0 before calling
8087         cpp_parse_expr.  Call skip_rest_of_line after it returns.
8088         (cpp_read_check_assertion): Don't preserve a pointer into the
8089         token buffer across a call to cpp_get_token.
8090
8091         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
8092         * cppfiles.c (redundant_include_p): Use cpp_defined.
8093         * cpphash.c (free_definition): New function.
8094         (delete_macro): Use it.  Update commentary.
8095         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
8096         free_definition.
8097         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
8098         from enum node_type.  Prototype cpp_defined and get_directive_token.
8099         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
8100
8101         * fix-header.c (check_macro_names): Use cpp_defined.
8102         (read_scan_file): Set inhibit_warnings and inhibit_errors in
8103         the options structure.
8104
8105 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8106
8107         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
8108
8109 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
8110
8111         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
8112         rather than die->die_tag.
8113
8114 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8115
8116         * combine.c (make_extraction, force_to_mode): Avoid warning on
8117         mixed-signedness conditionals.
8118         (make_field_assignment, nonzero_bits): Likewise.
8119         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
8120         (store_split_bit_field, extract_split_bit_field): Likewise.
8121         (extract_fixed_bit_field, store_bit_field, 
8122         * expr.c: Change alignment to be unsigned everywhere.
8123         (move_by_pieces, store_constructor_field, store_constructor): 
8124         Alignment parm is unsigned.
8125         (emit_block_move, emit_group_load, emit_group_store): Likewise.
8126         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
8127         (do_compare_rtx_and_jump): Likewise.
8128         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
8129         Compare align with GET_MODE_ALIGNMENT.
8130         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
8131         (get_inner_reference): Likewise.
8132         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
8133         (expand_assignment): Local vars for alignment now unsigned.
8134         (store_constructor, store_field, expand_expr, do_jump): Likewise.
8135         (do_compare_and_jump): Likewise.
8136         (store_field): Call new function expr_align.
8137         * expr.h (emit_block_move, emit_group_load, emit_group_store):
8138         Alignment arg now unsigned.
8139         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
8140         (do_compare_rtx_and_jump, store_bit_field): Likewise.
8141         (extract_bit_field): Likewise.
8142         * fold-const.c (add_double): Add cast to eliminate signedness warning.
8143         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
8144         (get_best_mode): Alignment arg is unsigned.
8145         * rtl.h (move_by_pieces): Likewise.
8146         * store-layout.c (maximum_field_alignment, set_alignment):
8147         Now unsigned.
8148         (layout_decl): Alignment arg is now unsigned.
8149         Remove unneeded casts.
8150         (layout_record, layout_union, layout_type): Remove unneeded casts.
8151         Local alignment variables now unsigned.
8152         (get_best_mode): Alignment arg now unsigned.
8153         * tree.c (expr_align): New function.
8154         * tree.h (expr_align): Likewise.
8155         (maximum_field_alignment, set_alignment): Now unsigned.
8156         (get_inner_reference): Alignment argument is now pointer to unsigned.
8157         * varasm.c (assemble_variable): Add cast to eliminate warning.
8158
8159 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
8160
8161         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
8162         then store directly into op0.
8163
8164         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
8165         the CALL_INSN, and emit the note immediately after it.
8166
8167 2000-02-10  Nick Clifton  <nickc@cygnus.com>
8168
8169         * config/arm/thumb.md (epilogue): Include a (return) in the
8170         generated insn, and emit it using emit_jump_insn not
8171         emit_insn. 
8172
8173 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
8174
8175         * function.c (assign_temp): Change zero-sized arrays to size 1.
8176         * integrate.c (expand_inline_function): Do not update
8177         stack_alignment_needed
8178         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
8179         add some sanity checking, remove optimization for function with
8180         zero frame size.
8181
8182 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8183
8184         * flow.c (mark_regs_live_at_end): Delete unused variables.
8185
8186         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
8187
8188         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
8189         in macro FRAME_GROWS_DOWNWARD.
8190
8191         * stmt.c (expand_end_bindings): Delete unused variable.
8192
8193         * unroll.c (iteration_info): Mark parameter `loop' with
8194         ATTRIBUTE_UNUSED.
8195
8196 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8197
8198         * fixinc/server.c (load_data): Return NULL if the marker line is
8199         not found.
8200         (run_shell): If load_data returns NULL, retry the command once, in
8201         a new shell.
8202
8203         * configure: Rebuilt.
8204
8205 2000-02-09  Bruce Korb  <bkorb@gnu.org>
8206
8207         * gcc/fixincludes:  ** DELETED **
8208         * gcc/fixcpp:  ** DELETED **
8209         * gcc/fixinc-nt.sed:  ** DELETED **
8210         * gcc/just-fixinc:  ** DELETED **
8211         * gcc/Makefile.in:  Removed out-dated commentary
8212         * gcc/configure.in: Removed fast-fixincludes disablement.
8213         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
8214
8215 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
8216         * function.c (thread_prologue_and_epilogue_insns): Uncomment
8217         last change.
8218
8219 2000-02-09  Richard Henderson  <rth@cygnus.com>
8220
8221         * jump.c (delete_insn): Don't delete user labels at -O0.
8222
8223 2000-02-09  Robert Lipe  <robertl@sco.com>
8224
8225         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
8226         Don't link with HOST_LIBS. 
8227
8228 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
8229
8230         * configure.in: Correct --help text for --with-dwarf2.
8231         Put tm-dwarf2.h after other tm files, if it's requested.
8232         * configure: Regenerate.
8233         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
8234         defining it.
8235
8236 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
8237
8238         * cpplib.h: Provide HASHNODE typedef and forward decl of
8239         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
8240         DEFINITION, struct hashnode, struct macrodef, struct
8241         definition, scan_decls prototype, default defn of
8242         INCLUDE_LEN_FUDGE moved elsewhere.
8243
8244         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
8245         definition, and struct hashnode moved here. Remove the unused
8246         'predefined' field from struct definition.  Replace the 'args'
8247         union with its sole member.  All users updated (cpphash.c).
8248         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
8249         multiple include guard.
8250
8251         * cpphash.c (hashf): Make static; use better algorithm; drop
8252         HASHSIZE parameter; return an unsigned int.
8253         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
8254         used. Calculate HASHSIZE modulus here.
8255         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
8256         here.
8257         (create_definition): Drop PREDEFINITION parameter.
8258         * cpplib.c (do_define): Don't calculate a hash value here.
8259         Don't pass (keyword == NULL) to create_definition.
8260
8261         * scan.h: Prototype scan_decls here.
8262         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
8263         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
8264         callers of cpp_lookup and cpp_install updated.
8265         
8266         * cpphash.c (macarg): Hoist all the flag diddling out of the
8267         function...
8268         (macroexpand): ... and out of the loop that calls macarg.
8269         Skip over the initial paren before macro arguments with
8270         cpp_get_non_space_token; point may be some distance before
8271         that paren.  Abort if it's not there.
8272
8273         * cpplib.c (parse_clear_mark): Delete function.
8274         (parse_set_mark, parse_goto_mark): Make static.
8275         (ACTIVE_MARK_P): New macro.
8276         (skip_block_comment, skip_line_comment): Do not bump the line
8277         if ACTIVE_MARK_P is true.
8278         (cpp_pop_buffer): The buffer to be popped may not have an
8279         active mark.
8280         (cpp_get_token): When looking for the initial paren before
8281         macro arguments, only set a mark in a file buffer, Always
8282         return to that mark before proceeding to call macroexpand or
8283         return a NAME token.
8284
8285         * cpplib.h: Remove prototypes of parse_set_mark,
8286         parse_clear_mark, parse_goto_mark.
8287         (struct cpp_options): Rename 'put_out_comments' to
8288         'discard_comments' and invert its sense.
8289         * cppinit.c, cpphash.c, cpplib.c: All users of
8290         put_out_comments changed to use discard_comments, with
8291         opposite sense.
8292
8293 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
8294
8295         * function.c (thread_prologue_and_epilogue_insns): Don't delete
8296         the edge from a block that both jumps and falls through to the
8297         fallthru block.
8298
8299 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
8300
8301         * config/arm/arm.md (movsi): In PIC mode, make sure that a
8302         constant source address is legitimate.
8303
8304 2000-02-09  Philip Blundell  <pb@futuretv.com>
8305
8306         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
8307         correctly.
8308
8309         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
8310         generating PIC.
8311         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
8312
8313 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
8314
8315         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
8316         ends with a newline and a NUL.  Don't be so clever manipulating
8317         strings.
8318
8319 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
8320
8321         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
8322         not to BIGGEST_ALIGNMENT.
8323
8324 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
8325
8326         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
8327         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
8328         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
8329         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
8330         * frame.c (execute_cfa_insn): Handle 
8331         DW_CFA_GNU_negative_offset_extended.
8332
8333 2000-02-08  Richard Henderson  <rth@cygnus.com>
8334
8335         * flow.c (tidy_fallthru_edges): Split out from ...
8336         (delete_unreachable_blocks): ... here.
8337         (find_basic_blocks): Use it.
8338
8339 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8340
8341         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
8342
8343 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
8344
8345         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
8346         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
8347         (fix-header.o): Don't depend on cpphash.h.
8348
8349         * scan.c (hashstr): New function. 
8350         * scan.h: Prototype it.
8351         * fix-header.c: Don't include cpphash.h.  Use hashstr.  
8352         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
8353         hashstr.  Report hash table statistics.  Add private     
8354         definition of xrealloc.
8355
8356 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8357
8358         * i386.h (TARGET_SWITCHES): Fix typo in option name.
8359
8360 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
8361
8362         * function.c (thread_prologue_and_epilogue_insns): Don't replace
8363         jumps with returns unless they are jumps to the fallthru block.
8364
8365 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
8366
8367         * i386.md (addqi3_cc): Fix contraints.
8368
8369 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8370
8371         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
8372
8373 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
8374
8375         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
8376         carriage return after a macro name.
8377
8378 2000-02-07  Fred Fish  <fnf@be.com>
8379
8380         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
8381         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
8382
8383 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
8384
8385         * cppfiles.c (deps_output): Count spacers in deps_column.
8386
8387 2000-02-07  Neil Booth  <NeilB@earthling.net>
8388
8389         * cppinit.c (initialize_dependency_output): If there is no
8390         suffix, don't try to look for known suffixes.  Use strrchr.
8391         (cpp_start_read): Remove duplicate initialization.
8392
8393 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
8394
8395         * calls.c (compute_argument_block_size): New argument
8396         preferred_stack_boundary.
8397         (expand_call): update cfun->preferred_stack_boundary, update call of
8398         compute_argument_block_size
8399         (emit_library_call): Increate cfun->preferred_stack_boundary
8400         to PREFERRED_STACK_BOUNDARY
8401         (emit_library_call_value): Likewise.
8402         * explow.c (allocate_dynamic_stack_spave): Likewise.
8403         * function.c (prepare_function_start): Set
8404         cfun->preferred_stack_boundary
8405         * function.h (struct function): Add preferred_stack_boundary field.
8406         * integrate.c (expand_inline_function): Update
8407         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
8408         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
8409         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
8410
8411 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
8412
8413         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
8414         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
8415         cpp_pedwarn, cpp_pedwarn_with_line,
8416         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
8417         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
8418         v_cpp_error_with_line, v_cpp_warning_with_line,
8419         cpp_message_from_errno, cpp_perror_with_name): Delete.
8420
8421         * cpperror.c (cpp_print_containing_files): Take starting
8422         buffer as argument.
8423         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
8424         (v_cpp_message): Now called directly by all entry points.
8425         Remove -1 case.
8426         (cpp_pfatal_with_name, cpp_message): Delete.
8427         (cpp_notice_from_errno, cpp_ice): New functions.
8428         (cpp_notice): Is now for reporting error conditions, just
8429         without an associated file.
8430         (cpp_error, cpp_error_with_line): Don't do anything if
8431         opts->inhibit_errors is on.
8432         (cpp_pedwarn_with_file_and_line): Take column argument also.
8433
8434         * cpplib.h: Update prototypes of exported functions.
8435         (struct cpp_options): Add inhibit_errors.
8436
8437         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
8438         non-error messages.  Include intl.h.
8439
8440         * cppinit.c, cppmain.c: Likewise.  Also, use
8441         cpp_notice_from_errno instead of cpp_perror_with_name or
8442         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
8443
8444         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
8445         report internal errors.
8446
8447         * cpplib.c (do_define): Switch bcopy to memcpy.
8448         Give cpp_pedwarn_with_file_and_line a dummy column argument.
8449
8450         * cpplib.c (copy_rest_of_line): Revert previous change: don't
8451         bail out early if we hit a line comment.
8452
8453 2000-02-06  Richard Henderson  <rth@cygnus.com>
8454
8455         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
8456         * basic-block.h: Declare them.
8457         * emit-rtl.h (active_insn_p): New.
8458         (next_active_insn, prev_active_insn): Use it.
8459         * rtl.h: Declare it.
8460         * function.c (emit_return_into_block): New.
8461         (thread_prologue_and_epilogue_insns): Insert return insns instead
8462         of epilogues when possible.
8463         * jump.c (jump_optimize_1): Remove code to insert a return insn
8464         on the fallthru to the exit block.
8465
8466         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
8467         and for non-empty stack frames.
8468         * i386.md (return): Expand to return-pop as needed.
8469
8470 2000-02-06  Richard Henderson  <rth@cygnus.com>
8471
8472         * simplify-rtx.c (simplify_relational_operation): Canonicalize
8473         constant to op1 for testing.
8474
8475 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8476
8477         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
8478         (fixuns_truncqfqi2): Use it.
8479
8480 2000-02-06  Richard Henderson  <rth@cygnus.com>
8481
8482         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
8483         as a TYPE_LEA insn.
8484
8485         * i386.md (widening and peepholes): Mask the constant instead of
8486         using gen_lowpart.
8487
8488 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
8489
8490         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
8491         input pointer before possibly branching off to the backslash
8492         code.
8493         * cpphash.c (macroexpand): Correctly delete \r escapes when
8494         stringifying parameters.
8495         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
8496         if we can; bail out early if we hit a line comment.
8497         (handle_directive): Treat '# 123' in an .S file just like
8498         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
8499         Return 1 for '# not_a_directive'.
8500         (get_directive_token): Pop macro buffers here, so that
8501         cpp_get_token can't sneakily move past a newline.
8502         Add sanity checks. 
8503         (cpp_get_token): goto randomchar if handle_directive returns 0.
8504
8505         * cppalloc.c: Update copyright.
8506         * cpplib.c: Merge all the static function prototypes into one
8507         block.
8508         * cpplib.h: Remove #if 0 block.
8509
8510         * cpperror.c: Remove #ifdef EMACS block.
8511         * cppmain.c: Likewise.
8512         * cpphash.c: Remove #if 0 blocks.
8513         * cppinit.c: Remove #if 0 blocks, and the -lint option.
8514         * cpplib.c: Remove #if 0 blocks and code referencing
8515         pcp_inside_if or for_lint.  Remove duplicate error message.
8516         Fix error messages for #else after #else or #elif.  Reformat.
8517         Remove archaic TODO list.
8518         * cpplib.h: Remove pcp_inside_if and for_lint flags.
8519
8520 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
8521
8522         * i386/osf1elf.h: Add missing backslash to multiline string.
8523
8524 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8525
8526         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
8527
8528 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8529
8530         * Makefile.in (c-common.o): Depend on $(EXPR_H).
8531
8532         * c-common.c: Include expr.h.
8533
8534         * c-pragma.c (mark_align_stack): Add prototype.
8535
8536         * caller-save.c (add_stored_regs): Likewise.
8537
8538         * combine.c (record_promoted_value): Likewise.
8539
8540         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
8541         Likewise.
8542
8543         * cppinit.c (new_pending_define): Likewise.
8544
8545         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
8546
8547         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
8548         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
8549         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
8550         class_scope_p): Likewise.
8551
8552         * dwarf2out.h (dwarf2out_set_demangle_name_func,
8553         dwarf2out_add_library_unit_info): Likewise.
8554
8555         * ggc.h (ggc_page_print_statistics): Likewise.
8556
8557         * haifa-sched.c (propagate_deps): Likewise.
8558
8559         * reg-stack.c (next_flags_user, record_label_references): Likewise.
8560
8561         * rtl.h (set_stack_check_libfunc): Likewise.
8562
8563         * toplev.h (set_fatal_function): Likewise.
8564
8565         * toplev.c (set_fatal_function): Delete prototype.
8566         
8567         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
8568         
8569 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
8570
8571         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
8572         (FUNC_END): Likewise.
8573
8574 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8575
8576         * caller-save.c: Include tm_p.h.
8577
8578 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8579
8580         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
8581
8582 2000-02-04  Neil Booth  <NeilB@earthling.net>
8583
8584         * cccp.c (main): Check 'dir' for a NULL pointer before passing
8585         it to strcmp.
8586
8587 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
8588
8589         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
8590         * genflags.c: Use the max_operand_1 logic from genemit.c to
8591         calculate how many arguments gen_insn prototypes have.  Remove
8592         NO_MD_PROTOTYPES ifdefs from the generated file.
8593         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
8594         file.  Cast gen_insn initializers to insn_gen_fn.
8595         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
8596         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
8597
8598 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8599
8600         * fixinc/Makefile.in (HDR): Add machname.h.
8601         (clean): Likewise.
8602
8603 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8604
8605         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
8606         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
8607         (c4x_cpu_version): Ditto.
8608         * config/c4x/c4x-protos.h: ... here.
8609
8610 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
8611
8612         * dwarf2out.c (add_abstract_origin_attribute): Don't call
8613         gen_abstract_function on our context if we're a nested function.
8614
8615 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8616
8617         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
8618         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
8619
8620 2000-02-04  Bruce Korb  <bkorb@gnu.org>
8621
8622         * fixinc/genfixes(machname.h):
8623         Move the functionality from gen-machine.h into this file.
8624         UNdef MN_NAME_PAT if there are no names to change.
8625         Also, be a little kinder when AutoGen is not present.
8626
8627         * fixinc/Makefile.in(machname.h):
8628         Change the generation rule to use genfixes.
8629
8630         * fixinc/fixfixes.c(machine_name):
8631         machine_name_fix's functionality now dependent upon whether
8632         MN_NAME_PAT is defined.
8633
8634         * fixinc/fixtests.c(machine_name):
8635         ditto.
8636
8637         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
8638         of MN_NAME_PAT.
8639
8640         * fixinc/fixlib.h(mn_get_regexps):
8641         ditto
8642
8643         * fixinc/gen-machine.h: DELETED
8644
8645 2000-02-04  Jan Hubicka  <jh@suse.cz>
8646             Richard Henderson  <rth@cygnus.com>
8647
8648         * i386.c (SAVE_REGS_FIRST): Remove.
8649         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
8650         (ix86_compute_frame_size): Likewise.
8651         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
8652         (ix86_emit_restore_regs): Remove.
8653         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
8654         when a frame pointer is in use.
8655         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
8656         instead of pop to restore a register when profitable; emit leave
8657         when profitable.
8658         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
8659         as a TYPE_LEA insn.
8660         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
8661         * i386.md (prologue_allocate_stack): Remove.
8662         (epilogue_deallocate_stack): Remove.
8663         (pro_epilogue_adjust_stack): New.
8664
8665 2000-02-04  Richard Henderson  <rth@cygnus.com>
8666
8667         * function.c (diddle_return_value): Rework to use a callback function.
8668         Use current_function_return_rtx if it's been set up.
8669         (do_clobber_return_reg, clobber_return_register): New.
8670         (do_use_return_reg, use_return_register): New.
8671         (expand_function_end): Use them.
8672         * stmt.c (expand_null_return): Likewise.
8673         * function.h: Declare them.
8674         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
8675         (mark_reg): Change arguments as appropriate for callback.
8676         * integrate.c (expand_inline_function): Revert 19 Jan change.
8677
8678 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8679
8680         * tm.texi (Values in Registers): Fix typo: "fo" "for".
8681         (Misc): Say the scheduler, not the Haifa scheduler.
8682
8683 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
8684
8685         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
8686         when in_mem is set.  Update all callers.
8687
8688 2000-02-04  Richard Henderson  <rth@cygnus.com>
8689
8690         * i386/openbsd.h (INT_ASM_OP): Define.
8691
8692 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8693
8694         * tm.texi: Fix various typos.
8695
8696 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
8697
8698         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
8699         (MD_STARTFILE_PREFIX_1): New macro.
8700
8701 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
8702
8703         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
8704         destination when needed.
8705         (strmovsi, strsetsi): New expander.
8706         (strmovsi_1, strsetsi_1): New pattern.
8707         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
8708         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
8709         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
8710         * invoke.texi (align-stringops, inline-all-stringops): Document.
8711
8712 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
8713
8714         * i386/netbsd.h (INT_ASM_OP): Define.
8715
8716 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
8717
8718         * cpplib.h (cpp_reader): Add new flag, no_directives.
8719         * cpphash.c (macarg): Set it.
8720         * cpplib.c (handle_directive): If no_directives is on and we
8721         find a directive, issue an error and discard the line.
8722
8723 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
8724
8725         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
8726         FP constants.  Add ! TARGET_FPU check for FP constants.
8727
8728 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
8729         
8730         * flow.c (find_basic_blocks): Don't kill label_value_list
8731         here.
8732         (cleanup_cfg): Kill it here.
8733
8734 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8735
8736         * expr.c (store_field): Ensure ALIGN is no stricter than the
8737         alignment of EXP.
8738
8739 2000-02-02  Richard Henderson  <rth@cygnus.com>
8740
8741         * jump.c (delete_insn): Partially revert 19 Jan change; 
8742         don't convert unused code labels to notes at -O0.
8743
8744 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8745
8746         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
8747         split_all_insns to recreate REG_LABEL notes for flow2 pass.
8748
8749 2000-02-01  Richard Henderson  <rth@cygnus.com>
8750
8751         * i386.c (general_no_elim_operand): New.
8752         (nonmemory_no_elim_operand): New.
8753         (ix86_expand_move): Copy eliminable operands before a push.
8754         * i386-protos.h: Declare new functions.
8755         * i386.h (CAN_ELIMINATE): Simplify.
8756         (PREDICATE_CODES): Update.
8757         * i386.md (push insns): Don't allow eliminable register operands.
8758
8759 2000-02-01  Richard Henderson  <rth@cygnus.com>
8760
8761         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
8762         replace BLKmode with DECL_RTL's mode.
8763
8764 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
8765
8766         * frame.c (find_fde): Convert for loop to do-while so compiler
8767         sees it's always executed at least once.
8768         * libgcc2.c (BBINBUFSIZE): Kill.
8769         (__bb_init_prg): Use fgets.
8770         (__bb_exit_trace_func): Don't paste strings.
8771         * unroll.c (unroll_loop): Initialize unroll_type, not
8772         unroll_number, and tweak logic to match.
8773
8774         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
8775         all failure paths.
8776         (ix86_flags_dependant): Likewise.  Disentangle control flow.
8777         (ix86_sched_reorder): Break guts out to
8778         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
8779         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
8780         any possible use.
8781
8782         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
8783         use string concatenation.  Don't save and restore esi.
8784
8785         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
8786         (machname.h): Remove script to separate file.  Use two-step
8787         sequence so target is not created if script fails.
8788         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
8789         identifiers are defined.
8790         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
8791         an empty string, machine_name doesn't need to do anything at
8792         all.
8793         (is_cxx_header): Add more cases to regexp.
8794         * fixinc/fixlib.h: Update prototype.
8795         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
8796         mn_get_regexps.
8797         * fixinc/fixincl.c: Define NO_BOGOSITY.
8798
8799         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
8800         (hp_sysfile): Add missing comma.
8801         (math_exception): Put the wrapper ifdefs at the beginning and
8802         the end of the file.
8803         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
8804
8805 2000-02-01  Richard Henderson  <rth@cygnus.com>
8806
8807         * sparc.c (fp_zero_operand): Turn into a normal predicate.
8808         Use CONST0_RTX.  Update all callers.
8809         * sparc.h, sparc-protos.h: Update accordingly.
8810         * sparc.md (fp mov insns): Use fp_zero_operand directly
8811         where applicable.
8812
8813 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8814
8815         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
8816         example.
8817
8818 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8819
8820         * Makefile.in (specs.ready): New target.
8821         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
8822
8823 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8824
8825         * fixinc.irix: Use unique filenames for writing into /tmp,
8826         * fixinc.ptx: Likewise.
8827         * fixinc.sco: Likewise.
8828         * fixinc.svr4: Likewise.
8829         * fixinc.winnt: Likewise.
8830
8831 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8832
8833         * tsystem.h: New file.
8834
8835         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
8836         s-crtS): Depend on tsystem.h.
8837
8838         * crtstuff.c: Include tsystem.h.
8839         * frame.c: Likewise.
8840         * libgcc2.c: Likewise.
8841
8842 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
8843
8844         * builtins.c (expand_builtin_memset): Expand for variable sized
8845         lengths too.
8846
8847 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au> 
8848
8849         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
8850         on ABI.
8851
8852 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8853
8854         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
8855
8856         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
8857
8858 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
8859
8860         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
8861         case 3->2 combining (combining with splitting) in which 2 is CC0
8862         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are 
8863         checked at the begining of the function with the aid of calling 
8864         function 'can_combine_p'. 
8865
8866 2000-01-31  Dave Brolley  <brolley@redhat.com>
8867
8868         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
8869
8870 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
8871
8872         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
8873         new label.
8874
8875 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8876
8877         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
8878         
8879         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
8880         PROTO -> PARAMS.
8881
8882 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
8883
8884         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
8885         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
8886         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
8887         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
8888         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
8889         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
8890         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
8891         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
8892         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
8893         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
8894         
8895         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
8896         Add %(cpp_cpu) to CPP_SPEC.
8897
8898         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
8899         Add %(cc1_cpu) to CC1_SPEC.
8900
8901 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
8902
8903         * c-decl.c (c_decode_option): Accept optional numeric argument to
8904         -Wformat and set warn_format.
8905         * c-common.c: Don't emit warning about non-constant printf format
8906         string unless warn_format > 1.
8907
8908 2000-01-30  Richard Henderson  <rth@cygnus.com>
8909
8910         * alpha.md (return_internal): Allow after reload only.
8911
8912 2000-01-30  Richard Henderson  <rth@cygnus.com>
8913
8914         * i386.c (ix86_compute_frame_size): Omit padding1 if the
8915         local frame size is zero.
8916
8917 2000-01-30  Richard Henderson  <rth@cygnus.com>
8918
8919         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
8920         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
8921         * alpha.md (return): Turn into an expander.
8922         (return_internal): Don't use $26.
8923         (epilogue): Emit the return insn.
8924
8925 2000-01-30  Richard Henderson  <rth@cygnus.com>
8926
8927         * alpha.md (negtf2, abstf2): Fix word order thinko.
8928         (extendsftf2): New.
8929         (trunctfsf2): Avoid intermediate rounding errors.
8930
8931 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
8932
8933         * cppfiles.c (find_position): Drop 'colp' argument, return the
8934         new line base.
8935         (read_and_prescan): Adjust to match.  Don't ever manipulate
8936         line or line_base except via find_position.
8937
8938 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
8939
8940         * c-parse.in: Apply Ulrich's changes from c-parse.y.
8941         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
8942         Regenerate.
8943
8944 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
8945
8946         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
8947         just print "<command line>".  If 'filename' is null or an
8948         empty string, print "<stdin>" for the filename.
8949         * cpplib.c (do_define): Don't print the 'location of the
8950         previous definition' message if we're still parsing the
8951         command line.
8952         (cpp_pedwarn_with_file_and_line): Always call
8953         cpp_file_line_for_message.
8954
8955 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
8956
8957         * flow.c (mark_regs_live_at_end): Fix typo.
8958
8959 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
8960
8961         * c-common.c: Adjust variable names, comments, help strings to c99.
8962         * c-lex.c: Likewise.
8963         * c-parse.y: Likewise.
8964         * c-tree.h: Likewise.
8965         * cccp.c: Likewise.
8966         * cpplib.h: Likewise.
8967         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
8968         * cppinit.c: Likewise.
8969
8970 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8971
8972         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
8973         * c4x.c: Define the optab rtx values.
8974         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
8975         (c4x_emit_libcall): Use new optab rtx values.
8976         (c4x_emit_libcall3): Likewise.
8977         (c4x_emit_libcall_mulhi): Likewise.
8978         * c4x-protos.h: Add prototypes for optab rtx values and change
8979         prototypes for above c4x_emit_libcall functions.
8980
8981 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8982
8983         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
8984         syntax is used.
8985         (c4x_function_prologue): Use regnames intead of float_reg_names when
8986         TI syntax is used.
8987         (c4x_function_epilogue): Likewise.
8988         (c4x_print_operand): Likewise.
8989         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
8990         * c4x.md (set_high): Disable for TARGET_TI.
8991
8992 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8993
8994         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
8995         of framepointer + constant to ADDR_REGS class.
8996         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
8997         * c4x.c (std_or_reg_operand): New function.
8998         * c4x-protos.h (std_or_reg_operand): Prototype it.
8999
9000 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9001
9002         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
9003                 object names as libgcc2.c.
9004         * libgcc.S: Use newly defined names.
9005
9006 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
9007         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
9008         function.
9009         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
9010         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
9011         (FLOW_LOOP_LAST_BLOCK): Likewise.
9012
9013 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9014
9015         * basic-block.h (struct loop): New fields 'first' and 'last'.
9016         * flow.c (flow_loops_find): Compute loop->first and loop->last.
9017         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
9018         and loop->last to check for NOTE_INSN_LOOP_END.
9019
9020 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
9021
9022         * predict.c (estimate_probability): Use the new FIRST and LAST fields
9023         of the loop descriptor rather than HEADER and LATCH. Also added
9024         missing break statements as well making some coding style modifications
9025         as suggested by Michael Hayes.
9026
9027 2000-01-28  Richard Henderson  <rth@cygnus.com>
9028
9029         * flow.c (find_basic_blocks): Remove do_cleanup argument.
9030         Break out that code ...
9031         (cleanup_cfg): ... here.
9032         (commit_one_edge_insertion): Detect a return instruction being
9033         emitted to an edge.  Emit a barrier following; clear fallthru.
9034         (commit_edge_insertions): Verify CFG consistency.
9035         * function.c (expand_function_start): Kill unused variable.
9036         (expand_function_end): Likewise.
9037         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
9038         to insert the epilogue.
9039
9040         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
9041         (delete_null_pointer_checks): Likewise.
9042         * output.h: Likewise.
9043         * reg-stack.c (reg_to_stack): Likewise.
9044         * toplev.c (rest_of_compilation): Likewise.  Run
9045         thread_prologue_and_epilogue_insns after rebuilding the CFG.
9046
9047 2000-01-28  Richard Henderson  <rth@cygnus.com>
9048
9049         * Makefile.in (flow.o): Revert 24 Jan change.
9050         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
9051         FUNCTION_VALUE result to DECL_RESULT's mode.
9052
9053         * haifa-sched.c (schedule_insns): Don't recompute reg info
9054         after reload.
9055
9056 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
9057
9058         * configure.in: Make --enable-cpplib the default.
9059         * configure: Regenerate.
9060         * gcc.dg/990119-1.c: No longer expected to fail.
9061
9062 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
9063
9064         * jump.c (jump_optimize_1): Delete an optimization that is also done
9065         by merge_blocks in flow.
9066
9067 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9068
9069         * diagnostic.c (build_message_string, output_printf,
9070         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
9071         (build_location_prefix): Fix non-literal format string.
9072
9073 2000-01-27  Richard Henderson  <rth@cygnus.com>
9074
9075         * alpha.md (trunctfsf2): New.
9076
9077 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
9078
9079         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
9080
9081 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
9082
9083         * cppinit.c (cpp_handle_option): Recognize C++ comments under
9084         -std=gnu89.
9085         * cpplib.c (skip_block_comment, skip_line_comment): Split code
9086         out of...
9087         (skip_comment) ... here.  Permit C++ comments in system
9088         headers always.  Warn about C++ comments in user code under
9089         -std=gnu89 -pedantic.
9090         (copy_comment): Use skip_comment.
9091         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
9092         return EOF.
9093         (consider_directive_while_skipping, do_else, do_endif): Call
9094         validate_else unconditionally.
9095         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
9096         text after the conditional in a system header.
9097         * cpplib.h (struct cpp_buffer): Add flag
9098         warned_cplusplus_comments.
9099
9100 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
9101
9102         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
9103         Use unshare_all_rtl_1.
9104         (unshare_all_rtl_again): New function.
9105         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
9106
9107         * function.c (purge_addressof_1): Use unshare_all_rtl_again
9108         rather than resetting the 'used' flags ourself.
9109
9110         * toplev.c (rest_of_compilation): Add current_function_decl
9111         to the unshare_all_rtl call.
9112         * tree.h: Prototype unshare_all_rtl.
9113         * rtl.h: Prototype unshare_all_rtl_again here.
9114
9115 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
9116
9117         * genoutput.c (output_prologue): Include ggc.h in generated
9118         files.
9119         * Makefile.in (insn-output.o): Depends on ggc.h.
9120
9121 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
9122             Hans-Peter Nilsson  <hp@bitrange.com>
9123
9124         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
9125         Remove redundant include of xm-ns32k.h.
9126         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
9127         Remove redundant include of xm-ns32k.h.
9128         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
9129         Remove redundant include of xm-ns32k.h.
9130         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
9131
9132         * ns32k/ns32k.h: Update comment on multiply-add instructions.
9133         (TARGET_SWITCHES): Add documentation strings.
9134         (DWARF_FRAME_REGNUM): Override default definition.
9135         (REG_CLASS_CONTENTS): Add comments.
9136         (SUBSET_P): Format to reduce line length.
9137         (SMALL_REGISTER_CLASSES): Make a run time option.
9138         (GO_IF_NONINDEXED_ADDRESS): Reformat.
9139         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
9140         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
9141         (regclass_map): fix typo in comment.
9142         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
9143         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
9144         (trace, reg_or_mem_operand): Delete, unused function.
9145         (calc_address_cost): Small offsets are cheaper than large ones.
9146         (expand_block_move): Generate more efficient code when bytes is a
9147         known at compile time.
9148         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
9149         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
9150         instead of reg_or_mem_operand.
9151
9152         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
9153         not general_operand.  Similarly use "=rm" or stricter, not "=g".
9154         For input operands, use stricter constraints than "g" if not
9155         general_operand.  Similarly use stricter predicate than
9156         "general_operand" when stricter constraints than "g" are present,
9157         except for matching constraints.
9158         (movstrsi): Use "memory_operand" for operands 0 and 1.
9159         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
9160         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
9161         not reg_or_mem_operand.
9162         (udivmoddisi4): Ditto.
9163         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
9164         Use nonimmediate_operand for operand 3, not register_operand.
9165         (udivmoddiqi4_internal): Use register_operand for operand 1, not
9166         reg_or_mem_operand.
9167
9168 2000-01-27  Fred Fish  <fnf@be.com>
9169
9170         * gthr-posix.h: Fix typo; compatibily -> compatibility.
9171         * gthr-single.h: Likewise.
9172         * gthr-solaris.h: Likewise.
9173         * gthr-vxworks.h: Likewise.
9174         * gthr-win32.h: Likewise.
9175         * gthr.h: Likewise.
9176
9177 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
9178
9179         * cppinit.c: Add " (cpplib)" to end of string printed by
9180         -v / --version.
9181
9182 2000-01-27  Richard Henderson  <rth@cygnus.com>
9183
9184         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
9185         testing for a signed comparison.
9186         (alpha_emit_floatuns): New.
9187         * alpha-protos.h: Declare it.
9188         * alpha.md (floatunsdisf2, floatunsdidf2): New.
9189         (extendsfdf2): Tidy.
9190
9191 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
9192
9193         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
9194         no -g option specifying debugging format, default to -gstabs+.
9195
9196 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
9197
9198         * calls.c (special_function_p): New argument fork_or_exec.
9199         (expand_call): When profile_arc_flag is set and the function
9200         is in the fork_or_exec group, call __bb_fork_func first.
9201         * libgcc2.c, _bb module (__bb_fork_func): New function.
9202         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
9203         output file.
9204         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
9205         * tree.h (special_function_p): Update prototype.
9206
9207 2000-01-26  Richard Henderson  <rth@cygnus.com>
9208
9209         * alpha.c (alpha_split_tfmode_pair): New.
9210         * alpha-protos.h: Declare it.
9211         * alpha.md (abstf2, negtf2): New.
9212         (movtf insn): Add input G constraint.
9213         (movtf splitter): Use alpha_split_tfmode_pair.
9214
9215 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9216
9217         * i386/cygwin.h: PROTO -> PARAMS.
9218
9219 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
9220
9221         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
9222         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
9223         using _Qp_cmp/_Q_cmp and testing the return value.
9224         (print_operand): Call reverse_condition_maybe_unordered if
9225         we are handling CCFPmode or CCFPEmode.
9226         Handle ORDERED, UN* and LTGT comparisons.
9227         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
9228         if not TARGET_HARD_QUAD.
9229         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
9230         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
9231         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
9232         Adjust gen_b* calls so that they reflect return comparison of
9233         sparc_emit_float_lib_cmp.
9234
9235 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9236
9237         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
9238         incoming operands array is large enough for one more operand.
9239         (alpha_emit_xfloating_arith): Likewise.
9240
9241 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
9242
9243         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
9244         file with one line and no trailing newline.
9245         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
9246         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
9247         checking if the match is on the line.
9248         * fixinc/gnu-regex.c: Provide regerror not __regerror.
9249
9250 2000-01-25  Richard Henderson  <rth@cygnus.com>
9251
9252         * sparc.c (output_cbranch): Fix accidental squashing of the
9253         fp branch pre-delay nop.
9254
9255 2000-01-25  Richard Henderson  <rth@cygnus.com>
9256
9257         * tree.def (UNNE_EXPR): Remove.
9258         * c-typeck.c (build_binary_op): Don't handle it.
9259         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
9260
9261         * rtl.def (UNNE): Remove.
9262         (LTGT): Add.
9263         * jump.c (reverse_condition): Update accordingly.
9264         (swap_condition): Likewise.
9265         (comparison_dominates_p): Handle unordered comparisons.
9266         (reverse_condition_maybe_unordered): New.
9267         * rtl.h (reverse_condition_maybe_unordered): Declare.
9268
9269         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
9270         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
9271         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
9272         * sparc.md (bltgt): New.
9273
9274 2000-01-25  Nick Clifton  <nickc@redhat.com>
9275
9276         * emit-rtl.c (emit_insn): Only check machine class insns for
9277         improper emission of a RETURN.
9278
9279 2000-01-25  Richard Henderson  <rth@cygnus.com>
9280
9281         * Makefile.in (flow.o): Depend on $(EXPR_H).
9282         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
9283         duplicate the structure of diddle_return_value for keeping regs live.
9284
9285 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9286
9287         * loop.c (current_loop_info): Delete.
9288         (consec_sets_invariant_p): Add loop argument, update callers.
9289         (get_condition_for_loop): Likewise.
9290         (count_nonfixed_reads, update_giv_derive): Likewise.
9291         (simplify_giv_expr, general_induction_var): Likewise.
9292         (consec_sets_giv, recombine_givs): Likewise.
9293         (move_movables): Delete loop_start and loop_end arguments,
9294         add loop argument, and update callers.
9295         (find_mem_givs, check_final_value): Likewise.
9296         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
9297         (loop_invariant_p): Rename from invariant_p, add loop argument, and
9298         update callers.
9299         (basic_induction_var): Add loop argument, delete loop_level argument,
9300         and update callers.
9301         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
9302         add loop argument, and update callers.
9303         (find_splittable_regs, find_splittable_givs): Likewise.
9304         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
9305         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
9306         (biv_total_increment): Delete loop_start and loop_end arguments;
9307         update callers.
9308         (precondition_loop_p): Delete loop_start and loop_info arguments;
9309         update callers.
9310         * loop.h (get_condition_for_loop): Add loop argument.
9311         (biv_total_increment): Delete loop_start and loop_end arguments.
9312         (precondition_loop_p): Delete loop_start and loop_info arguments;
9313         add loop argument.
9314         (final_biv_value): Delete loop_start and loop_end arguments;
9315         add loop argument.
9316         (final_giv_value, back_branch_in_range_p): Likewise.
9317
9318 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
9319
9320         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
9321
9322 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
9323
9324         * Makefile.in (c-gperf.h) : Change the "See" pointer to
9325         point to the new "generated_files" doc.
9326
9327 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
9328
9329         * config/fp-bit.c (_unord_f2): Fix typo.
9330
9331 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
9332
9333         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
9334         c-typeck.c, objc/objc-act.c: Remove all references to obstack
9335         functions obsoleted by GC, such as push_obstacks_nochange,
9336         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
9337         and code which existed only to decide whether or not to call
9338         them.  Remove now-unused NESTED argument from start_function;
9339         all callers changed.  Do not change behavior based on ggc_p.
9340         The use of the ixp_obstack in c-iterate.c and the util_obstack
9341         in objc/objc-act.c remain; these are not obsoleted by garbage
9342         collection.
9343         * c-tree.h: Update prototype for start_function.
9344
9345         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
9346
9347 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
9348
9349         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
9350         mips16.
9351
9352 2000-01-25  Richard Henderson  <rth@cygnus.com>
9353
9354         * sparc-protos.h (select_cc_mode): Declare.
9355         * sparc.c (select_cc_mode): New.  Handle unordered compares.
9356         (output_cbranch): Always reverse via code change.  Handle
9357         unordered compares.  Factor tests and string updates.
9358         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
9359         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
9360         * sparc.md (bunordered, bordered): New.
9361         (bungt, bunlt, buneq, bunge, bunle): New.
9362
9363 2000-01-25  Richard Henderson  <rth@cygnus.com>
9364
9365         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
9366         * ggc-common.c (ggc_add_rtx_varray_root): New.
9367         (ggc_mark_rtx_varray): New.
9368         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
9369         functions down below ggc_mark_foo.
9370         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
9371
9372 2000-01-25  Richard Henderson  <rth@cygnus.com>
9373
9374         * alpha.c (secondary_reload_class): Don't allocate a secondary
9375         for integral mode memories into FLOAT_REGS.  Rearrange the more
9376         complicated memory expression inward.
9377
9378 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
9379
9380         * inclhack.def: Fixes to play nicer with FreeBSD, and
9381         corrections to comments.
9382         (cxx_unready): Add select expression.
9383         (irix_sockaddr): Add bypass expression.
9384         (machine_ansi_h_va_list): New fix.
9385         (stdio_va_list): No need to edit _BSD_VA_LIST_.
9386         Split out addition of "#include <stdarg.h>" to...
9387         (stdio_stdarg_h): ... here.
9388         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
9389         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
9390         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
9391         size_t.
9392         (ultrix_ifdef): Tighten up select expression.
9393
9394         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
9395         re_ct and max_mach to avoid use of shell.  Make printed names
9396         match names in inclhack.def.  Use static copyright date.
9397         Don't count c_test and test expressions as requiring regex_t
9398         slots.  Add some commentary.
9399         * inclhack.tpl: Do not include the 'This script contains N
9400         fixup scripts' line if PROGRAM is defined.  Use static
9401         copyright date.
9402
9403 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
9404
9405         * dwarf2out.c: include "varray.h", not dyn-string.h.
9406         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
9407         (addr_const_to_string, addr_to_string): Lose.
9408         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
9409         (struct dw_val_struct): val_addr is now an rtx.
9410         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
9411         (used_rtx_varray): New varray.
9412         (dwarf2out_init): Initialize it.
9413         (save_rtx): New fn.
9414         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
9415         addr_to_string.
9416         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
9417         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
9418         * Makefile.in (dwarf2out.o): Update dependencies.
9419
9420 2000-01-24  Richard Henderson  <rth@cygnus.com>
9421
9422         * i386.c (i386_dwarf_output_addr_const): New.
9423         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
9424
9425         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
9426         if defined.
9427         * dwarfout.c (output_mem_loc_descriptor): Likewise.
9428         * i386.c (i386_simplify_dwarf_addr): New.
9429         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
9430
9431 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
9432
9433         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
9434         TYPE_STUB_DECL is NULL.
9435
9436 2000-01-24  Richard Henderson  <rth@cygnus.com>
9437
9438         * builtins.c (expand_tree_builtin): Move ...
9439         * c-common.c (expand_tree_builtin): ... here.
9440
9441 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9442
9443         * loop.h (LOOP_INFO): New accessor macro.
9444         * basic-block.h (struct loop): Rename field `info' to `aux'.
9445         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
9446         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
9447         * unroll.c (loop_iterations, unroll_loop): Likewise.
9448
9449 2000-01-24  Christopher Faylor <cgf@cygnus.com>
9450
9451         * config/i386/t-cygwin: Accomodate new winsup directory layout
9452         when searching for include files.
9453
9454 2000-01-24  Richard Henderson  <rth@cygnus.com>
9455
9456         * rtl.def: Add unordered fp comparisions.
9457         * tree.def: Likewise.
9458         * tree.h: Add ISO C 9x unordered fp comparision builtins.
9459
9460         * builtins.c (expand_tree_builtin): New function.
9461         * c-typeck.c (build_function_call): Use it.
9462         (build_binary_op): Support unordered compares.
9463         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
9464
9465         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
9466         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
9467         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
9468         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
9469         * jump.c (reverse_condition): Don't abort for UNLE etc, but
9470         return UNKNOWN.
9471         (swap_condition): Handle unordered compares.
9472         (thread_jumps): Check can_reverse before reversing.
9473         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
9474         reversed for FP.
9475
9476         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
9477         setcc is present before acking for cmp_optab.  Update all callers.
9478         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
9479         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
9480         * expr.c (expand_expr): Likewise.  Support unordered compares.
9481         (do_jump, do_store_flag): Likewise.
9482         * expr.h (enum libfunc_index): Add unordered compares.
9483
9484         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
9485         (DPBIT_FUNCS): Add _unord_df.
9486         * config/fp-bit.c (_unord_f2): New.
9487         * fp-test.c (main): Try unordered compare builtins.
9488
9489         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
9490         * alpha.c (alpha_comparison_operator): Check mode properly.
9491         (alpha_swapped_comparison_operator): Likewise.
9492         (signed_comparison_operator): Likewise.
9493         (alpha_fp_comparison_operator): New.
9494         (alpha_emit_conditional_branch): Handle unordered compares.
9495         * alpha.h (PREDICATE_CODES): Update.
9496         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
9497         (bunordered, bordered): New.
9498
9499 2000-01-24  Richard Henderson  <rth@cygnus.com>
9500
9501         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
9502         * alpha.md (movtf): New expander, insn, and splitter.
9503
9504 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
9505
9506         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
9507         dead registers.
9508
9509 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
9510
9511         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
9512         (FIXED_REGISTERS, CALL_USED_REGISTERS,
9513          REG_ALLOC_ORDER): Add frame pointer
9514         (FRAME_POINTER_REGNUM): Set to 20
9515         (HARD_FRAME_POINTER_REGNUM): New macro.
9516         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
9517         to HARD_FRAME_POINTER.
9518         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
9519         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
9520         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
9521         (HI_REGISTER_NAMES): Add "frame".
9522         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
9523         (debug_reg): Handle FRAME_POINTER_REGNUM.
9524         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
9525         GENERAL_REGS and INDEX_REGS.
9526         * i386.c (SAVED_REGS_FIRST): new macro.
9527         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
9528         (ix86_decompose_address, memory_address_length): Likewise.
9529         (regclass_map): Add frame pointer.
9530         (call_insn_operand): Handle frame_pointer_rtx.
9531         (reg_no_sp_operand): Likewise.
9532         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
9533         (print_operand, legitimize_pic_address): Fix formating.
9534         (ix86_compute_frame_size): Make static, update prototype, new
9535         parameters padding1, padding2, use ix86_nsaved_regs, use
9536         stack_alignment_needed.
9537         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
9538         to HARD_FRAME_POINTER_REGNUM conversions.
9539         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
9540         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
9541         (print_reg): Abort on FRAME_POINTER_REGNUM
9542
9543 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
9544
9545         * i386.h (PREDICATE_CODES): Add aligned_operand.
9546         * i386.c (aligned_operand): New function.
9547         (ix86_aligned_p): Kill.
9548         * i386.md (movhi_1): Emit mov for aligned operands.
9549         (promoting peep2s): Use aligned_operand.
9550
9551 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
9552
9553         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
9554         expression to allow underscores in macro names.
9555         (fix_char_macro_defines): Increment scanning pointer.
9556
9557 2000-01-23  Richard Henderson  <rth@cygnus.com>
9558
9559         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
9560         * alpha/osf5.h: New file.
9561         * configure.in (alpha-*-osf5): Add it to tm_file.
9562
9563         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
9564
9565         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
9566         (alpha_emit_xfloating_cvt, function_arg): Declare.
9567         * alpha.c (alpha_emit_conditional_branch): Call
9568         alpha_emit_xfloating_compare for TFmode compares.
9569         (alpha_lookup_xfloating_lib_func): New.
9570         (alpha_compute_xfloating_mode_arg): New.
9571         (alpha_emit_xfloating_libcall): New.
9572         (alpha_emit_xfloating_arith): New.
9573         (alpha_emit_xfloating_compare): New.
9574         (alpha_emit_xfloating_cvt): New.
9575         (print_operand): Add default abort case.
9576         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
9577         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
9578         (BIGGEST_ALIGNMENT): Increase to 128 bits.
9579         (RETURN_IN_MEMORY): True for TF/TCmode.
9580         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
9581         (FUNCTION_ARG): Move to function_arg.
9582         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
9583         (ASM_OUTPUT_LONG_DOUBLE): New.
9584         (ASM_OUTPUT_DOUBLE): Always output bits.
9585         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
9586         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
9587         (extenddftf2, trunctfdf2): New.
9588
9589 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9590
9591         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
9592         * config/sparc/sol2.h: ... here.
9593
9594 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9595
9596         * basic-block.h (struct loops): New field `levels'.
9597         * flow.c (flow_loops_level_compute): Traverse all outer loops.
9598         (flow_loop_level_compute): Initialise level to 1.
9599         (flow_loops_find): Set loops->levels.
9600         (flow_loops_dump): Print loops->levels.
9601
9602 2000-01-23  Richard Henderson  <rth@cygnus.com>
9603
9604         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
9605         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
9606
9607 2000-01-23  Richard Henderson  <rth@cygnus.com>
9608
9609         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
9610         * i386.h (DBX_REGISTER_NUMBER): Use them.
9611         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
9612         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
9613         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
9614         * i386/sequent.h: Kill incorrect comment.
9615
9616 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
9617
9618         * ggc-page.c (struct page_entry): Make `context_depth' an
9619         `unsigned short'.
9620         (struct globals): Likewise.
9621
9622 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
9623
9624         * loop.c (check_dbra_loop): When checking a loop for
9625         reversability, check the source of any stores to ensure
9626         they don't depend on an initial value.
9627
9628 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9629
9630         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
9631
9632 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
9633
9634         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
9635         'pz_scan' into scope of entire function.  Only affects
9636         compiles with -DDEBUG.
9637
9638 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
9639
9640         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
9641         section naming to that prior to 2000-01-07 patch.
9642         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
9643         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
9644         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
9645         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
9646         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
9647
9648 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
9649
9650         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
9651         constant.
9652
9653 2000-01-21  Jim Wilson  <wilson@cygnus.com>
9654
9655         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
9656         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
9657
9658 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
9659
9660         * cpphash.c (change_newlines): Delete function.
9661         (struct argdata): Delete 'newlines' and 'use_count' fields.
9662         (macroexpand): Remove code referencing those fields.
9663
9664 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9665
9666         * loop.c (loops_info): New variable.
9667         (loop_optimize): Allocate loops->array and free it on exit.
9668         Allocate memory for loops_info and assign to each loop,
9669         replacing alloca.
9670         (find_and_verify_loops): Do not allocate loops->array.
9671
9672 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
9673
9674         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
9675
9676 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
9677
9678         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
9679         pseudos if expanded after first flow.
9680         (movdi_pic_label_ref): Likewise.
9681
9682 2000-01-20  Richard Henderson  <rth@cygnus.com>
9683
9684         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
9685
9686 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
9687
9688         * Makefile.in (fixinc.sh): Depend on specs.
9689         * fixinc/Makefile.in: Add rule to create machname.h.
9690         (fixlib.o): Depend on machname.h.
9691         * fixinc/fixtests.c (machine_name): New test.
9692         * fixinc/fixfixes.c (machine_name): New fix.
9693         * fixinc/fixlib.c (mn_get_regexps): New helper function for
9694         the machine_name test and fix.
9695         * fixinc/fixlib.h: Prototype it.
9696         * fixinc/inclhack.def (machine_name): Use the C test and fix.
9697         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
9698
9699         * gcc.c (do_spec_1) [case P]: Take care not to create
9700         identifiers with three leading or trailing underscores.
9701
9702         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
9703         (fixincl): Don't specify libraries twice on link line.
9704         (gnu-regex.o): Remove special rule.
9705         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
9706         defined by config.h.  Do not define _REGEX_RE_COMP.
9707         (regcomp): Allocate and initialize a fastmap.
9708         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
9709
9710 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
9711
9712         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
9713
9714 2000-01-19  Richard Henderson  <rth@cygnus.com>
9715
9716         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
9717         arguments with BB.  Update all callers.  Tidy line wrapping.
9718
9719 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
9720
9721         * emit-rtl.c (try_split): Return last_insn if we split the
9722         last_insn.
9723
9724 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
9725
9726         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
9727         (ix86_initial_elimination_offset): Declare.
9728         * i386.c (ix86_nsaved_regs): Break out from ...
9729         (ix86_can_use_return_insn_p): ... here.
9730         (ix86_emit_save_regs): Break out from ...
9731         (ix86_expand_prologue): ... here.
9732         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
9733         out from ...
9734         (ix86_expand_epilogue): ... here.
9735         (ix86_compute_frame_size): Make static, add prototype.
9736         (ix86_initial_elimination_offset): Break out from ...
9737         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
9738
9739 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9740
9741         * recog.h (OUT_FCN): Delete.
9742
9743         * vax.md: Call `get_insn_template' instead of OUT_FCN.
9744
9745 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9746
9747         * cppalloc.c: PROTO -> PARAMS.
9748         * cpperror.c: Likewise.
9749         * cppfiles.c: Likewise.
9750         * cpplib.c: Likewise.
9751         * cpplib.h: Likewise.
9752
9753         * config/arm/arm-protos.h: PROTO -> PARAMS.
9754         * config/arm/arm.c: Likewise.
9755         * config/c4x/c4x.c: Likewise.
9756         * config/fr30/fr30-protos.h: Likewise.
9757         * config/nextstep.c: Likewise.
9758         * config/pa/pa.c: Likewise.
9759         * config/pj/pj.c: Likewise.
9760         * config/rs6000/rs6000.c: Likewise.
9761         * config/v850/v850-protos.h: Likewise.
9762         * config/v850/v850.c: Likewise.
9763
9764 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9765
9766         * i370-protos.h: New file.
9767
9768         * i370.c: Include tm_p.h.  Fix compile time warnings.
9769
9770         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
9771         warnings.
9772
9773         * i370.md: Likewise.
9774
9775 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9776
9777         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
9778         (target_isinf, target_isnan, eisnan): Mark parameter with
9779         ATTRIBUTE_UNUSED.
9780         (eiisinf): Wrap in INFINITY.
9781         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
9782         (ibmtoe): Remove unused variable `rndsav'.
9783
9784 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9785
9786         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
9787         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
9788
9789 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
9790
9791         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
9792         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
9793         (fix_char_macro_defines, fix_char_macro_uses): New functions.
9794
9795         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
9796         Recognize Emacs mode markers also.
9797         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
9798         C++ comments in C++ headers.  Call is_cxx_header only if
9799         necessary.
9800
9801         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
9802         bypass for ncurses.
9803         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
9804         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
9805         ... these, which use the new C fixes.
9806         (math_exception): Escape literal '+' in bypass expression.
9807
9808         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
9809         Regenerate.
9810
9811 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
9812
9813         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
9814         inside the MEM.
9815
9816 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9817
9818         * loop.c (loop_optimize): Allocate loop_info structure for each loop
9819         prior to calling scan_loop.
9820
9821 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9822
9823         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
9824         (split_branches, calc_live_regs): Likewise.
9825
9826 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9827
9828         * sh.md (fpu_single, fp_mode): New attributes.
9829
9830 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9831
9832         * loop.c (current_loop_info): Renamed from loop_info_data
9833         and changed to a pointer.
9834         (loop_optimize): Allocate loop_info structure for each loop
9835         and initialise to zero.
9836         (scan_loop): Set current_loop_info.
9837
9838         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
9839         on iteration_var.
9840
9841 2000-01-19  Richard Henderson  <rth@cygnus.com>
9842
9843         * stupid.c: Die die die.
9844         * Makefile.in (OBJS): Remove stupid.o.
9845         (stupid.o): Likewise.
9846
9847         * except.c (emit_eh_context): Don't emit USEs for stupid.
9848         * explow.c (probe_stack_range): Likewise.
9849         * flags.h (obey_regdecls): Remove.
9850         * flow.c (find_basic_blocks): Don't run try_merge_blocks
9851         when not optimizing.
9852         (life_analysis): Limit data collection when not optimizing.
9853         (mark_regs_live_at_end): Always mark the return value registers.
9854         (mark_used_regs): Remove dummy RETURN case.
9855         (print_rtl_with_bb): Don't consult obey_regdecls.
9856         * function.c (use_variable, use_variable_after): Remove.
9857         (assign_parms): Consult optimize not obey_regdecls.
9858         (expand_function_start): Don't emit USEs for stupid.
9859         (expand_function_end): Likewise.
9860         * global.c (build_insn_chain): Export.
9861         * integrate.c (expand_inline_function): Kill return-value USE
9862         handling code.
9863         * jump.c (jump_optimize_1): Do simple jump optimizations and
9864         dead code elimination.
9865         (calculate_can_reach_end): Remove check_deleted argument.
9866         (delete_insn): Patch out insns even when not optimizing.
9867         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
9868         * rtl.h (use_variable, use_variable_after): Remove declarations.
9869         (build_insn_chain): Declare.
9870         * stmt.c (expand_value_return): Don't emit USEs for stupid.
9871         (expand_end_bindings): Likewise.
9872         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
9873         * toplev.c (obey_regdecls): Remove.
9874         (rest_of_compilation): Don't set it.  Kill stupid in favour of
9875         flow1, local-alloc, and reload.
9876         (main): Don't set obey_regdecls.
9877
9878         * config/nextstep.c (handle_pragma): Likewise.
9879
9880         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
9881
9882         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
9883
9884 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9885
9886         * alpha-protos.h: PROTO -> PARAMS.
9887         * alpha.c: Likewise.
9888         * elf.h: Likewise.
9889         * h8300.c: Likewise.
9890         * i386-protos.h: Likewise.
9891         * i386.c: Likewise.
9892         * m32r-protos.h: Likewise.
9893         * m32r.c: Likewise.
9894         * mips.c: Likewise.
9895         * mips.md: Likewise.
9896         * gmon-sol2.c: Likewise.
9897         * sparc.c: Likewise.
9898
9899 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9900
9901         * ns32k-protos.h: New file.
9902
9903         * ns32k.c: Fix compile time warnings.
9904
9905         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
9906         warnings.
9907
9908         * ns32k.md: Likewise.
9909
9910 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9911
9912         * vax-protos.h: New file.
9913
9914         * vax.c: Fix compile time warnings.
9915
9916         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
9917         warnings.
9918
9919         * vax.md: Likewise.
9920
9921         * vaxv.md: Likewise.
9922
9923 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9924
9925         * romp-protos.h: New file.
9926
9927         * romp.c: Fix compile time warnings.
9928
9929         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
9930         warnings.
9931
9932         * romp.md: Likewise.
9933
9934 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9935
9936         * we32k-protos.h: New file.
9937
9938         * we32k.c: Fix compile time warnings.
9939
9940         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
9941         warnings.
9942
9943 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9944
9945         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
9946
9947         * except.c (eh_regs): Likewise.
9948
9949         * final.c (output_operand): Likewise.
9950
9951         * fold-const.c (target_isinf, target_isnan): Likewise.
9952
9953 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
9954
9955         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
9956         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
9957
9958         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
9959         when optimize_size.
9960         (clrstrsi): Rewrite.
9961         (strsethi, strsetqi): New expanders.
9962         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
9963         (cmpstrsi): Emit compare insn before cmpstrsi_1
9964         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
9965         (strlensi_1): Likewise.
9966         (cmpstrsi_1): Likewise; do not output compare.
9967         (strlen expander): Do not unroll when optimizing for size.
9968         (*subsi3_carry): Rename to subsi3_carry
9969         (addqi3_cc): New pattern.
9970         * i386.h (processor_costs): Add move_ratio field.
9971         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
9972         * i386.c (*_cost): Set move_ratio.
9973         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
9974         (x86_expand_strlensi_1): Rewrite the main loop.
9975
9976 2000-01-17  Richard Henderson  <rth@cygnus.com>
9977
9978         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
9979         * cse.c (find_comparison_args, fold_rtx): Likewise.
9980         * integrate.c (subst_constants): Likewise.
9981         * loop.c (get_condition): Likewise.
9982
9983         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
9984
9985         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
9986
9987 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9988
9989         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
9990         (RESTORE_WARN_FLAGS): Unpack it.
9991         Change semantic type of extension to ttype.
9992         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
9993         * c-parse.y, c-parse.c, objc/objc-parse.y,
9994         objc/objc-parse.c: Regenerate.
9995
9996 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
9997
9998         * fixinc/fixlib.c: Add copyright notice.
9999         (compile_re): New function.
10000         * fixinc/fixlib.h: Prototype compile_re.
10001
10002         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
10003         Use compile_re to compile regular expressions.
10004
10005         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
10006         where the pattern matched.
10007
10008         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
10009         use 'replace'.
10010         (ultrix_ansi_compat): Likewise.
10011         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
10012         add egrep test.
10013         (interactv_add2, interactv_add3): Delete.
10014         (x11_sprintf): Don't use filename glob.
10015         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
10016         Regenerate.
10017
10018 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10019
10020         * print-rtl.c: PROTO -> PARAMS.
10021         * real.c: Likewise.
10022         * reg-stack.c: Likewise.
10023         * resource.c: Likewise.
10024         * sdbout.h: Likewise.
10025         * simplify-rtx.c: Likewise.
10026         * stor-layout.c: Likewise.
10027         * stupid.c: Likewise.
10028         * xcoffout.c: Likewise.
10029         * xcoffout.h: Likewise.
10030
10031 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10032
10033         * toplev.c: PROTO -> PARAMS.
10034         * toplev.h: Likewise.
10035         * tree.c: Likewise.
10036         * tree.h: Likewise.
10037         * unroll.c: Likewise.
10038         * varasm.c: Likewise.
10039         * varray.c: Likewise.
10040         * varray.h: Likewise.
10041
10042 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10043
10044         * reload.c: PROTO -> PARAMS.
10045         * reload.h: Likewise.
10046         * reload1.c: Likewise.
10047         * reorg.c: Likewise.
10048         * resource.h: Likewise.
10049         * rtl.c: Likewise.
10050         * rtl.h: Likewise.
10051         * rtlanal.c: Likewise.
10052         * sbitmap.h: Likewise.
10053         * sdbout.c: Likewise.
10054         * stack.h: Likewise.
10055         * stmt.c: Likewise.
10056         * system.h: Likewise.
10057
10058 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10059
10060         * machmode.h: PROTO -> PARAMS.
10061         * mbchar.h: Likewise.
10062         * mips-tdump.c: Likewise.
10063         * mips-tfile.c: Likewise.
10064         * optabs.c: Likewise.
10065         * output.h: Likewise.
10066         * prefix.c: Likewise.
10067         * profile.c: Likewise.
10068         * protoize.c: Likewise.
10069         * real.h: Likewise.
10070         * recog.c: Likewise.
10071         * recog.h: Likewise.
10072         * regclass.c: Likewise.
10073         * regmove.c: Likewise.
10074         * regs.h: Likewise.
10075
10076 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10077
10078         * ggc-common.c: PROTO -> PARAMS.
10079         * ggc-page.c: Likewise.
10080         * ggc-simple.c: Likewise.
10081         * ggc.h: Likewise.
10082         * global.c: Likewise.
10083         * graph.c: Likewise.
10084         * gthr-win32.h: Likewise.
10085         * haifa-sched.c: Likewise.
10086         * halfpic.h: Likewise.
10087         * integrate.c: Likewise.
10088         * integrate.h: Likewise.
10089         * jump.c: Likewise.
10090         * lcm.c: Likewise.
10091         * local-alloc.c: Likewise.
10092         * loop.c: Likewise.
10093         * loop.h: Likewise.
10094
10095 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10096
10097         * genattr.c: PROTO -> PARAMS.
10098         * genattrtab.c: Likewise.
10099         * gencheck.c: Likewise.
10100         * gencodes.c: Likewise.
10101         * genconfig.c: Likewise.
10102         * genemit.c: Likewise.
10103         * genextract.c: Likewise.
10104         * genflags.c: Likewise.
10105         * gengenrtl.c: Likewise.
10106         * genopinit.c: Likewise.
10107         * genoutput.c: Likewise.
10108         * genpeep.c: Likewise.
10109         * genrecog.c: Likewise.
10110
10111 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
10112
10113         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
10114
10115 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10116
10117         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
10118         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
10119         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
10120         * configure, config.in: Rebuilt.
10121
10122 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
10123
10124         * config/i386/i386.md: Add peephole to merge successive stack
10125         adjusts.
10126
10127 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
10128
10129         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
10130         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
10131         when walking backwards to find all the parameter loads when
10132         the basic block ends in a call.
10133
10134 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10135
10136         * loop.c (this_loop_info): Delete.
10137         (uid_loop): Add in place of uid_loop_num.  All uses updated.
10138         (loop_number_exit_count): Delete and replace with entry in loop
10139         structure.  All uses updated.
10140         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
10141         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
10142         (loop_outer_loop): Likewise.
10143         (loop_invalid, loop_number_exit_labels): Likewise.
10144         (loop_used_count_register): Delete and replace with entry in
10145         loop_info structure.
10146         (find_and_verify_loops): Add loops argument.
10147         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
10148         loop_end, etc. arguments with loop structure pointer.  All callers
10149         changed.
10150         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
10151         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
10152         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
10153         (insert_bct): Likewise.
10154         (basic_induction_var): New argument level.
10155         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
10156         vtop, and cont.  Add used_count_register.
10157         (uid_loop): Delete declaration.
10158         (loop_number_exit_count): Likewise.
10159         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
10160         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
10161         (loop_outer_loop, loop_used_count_register): Likewise.
10162         (loop_invalid, loop_number_exit_labels): Likewise.
10163         (unroll_loop): Replace loop_start and loop_end arguments
10164         with loop structure pointer.
10165         (loop_precondition_p, loop_iterations): Likewise.
10166         Include basic-block.h.
10167         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
10168         with loop structure pointer.
10169         (loop_precondition_p, loop_iterations): Likewise.
10170         * basic-block.h (struct loop): New entries vtop, cont,
10171         cont_dominator, start, end, top, scan_start, exit_labels,
10172         exit_count.
10173         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
10174
10175 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10176
10177         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
10178
10179 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
10180
10181         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
10182
10183 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10184
10185         * pdp11-protos.h: New file.
10186
10187         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
10188         time warnings.
10189
10190         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
10191         warnings.
10192
10193         * pdp11.md: Likewise.
10194
10195         * 2bsd.h: Likewise.
10196
10197 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10198
10199         * mn10300-protos.h: New file.
10200
10201         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
10202         time warnings.
10203
10204         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
10205         warnings.
10206
10207         * mn10300.md: Likewise.
10208
10209 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10210
10211         * mn10200-protos.h: New file.
10212
10213         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
10214         time warnings.
10215
10216         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
10217         warnings.
10218
10219         * mn10200.md: Likewise.
10220
10221 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10222
10223         * h8300-protos.h: New file.
10224
10225         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
10226         time warnings.
10227
10228         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
10229         warnings.
10230
10231         * h8300.md: Likewise.
10232
10233 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10234
10235         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
10236         (asm_emit_uninitialised): Likewise.
10237
10238 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
10239
10240         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
10241         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
10242
10243 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10244
10245         * config/mips/mips.c (override_options): Don't turn on extra
10246         alignment for mips16.
10247
10248 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10249
10250         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
10251         eabi, and make sure queued POSTINCREMENT rtl is emitted at
10252         the right point.
10253
10254 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10255
10256         * builtins.c (PAD_VARARGS_DOWN): Define.
10257         (std_expand_builtin_va_arg): Use the above macro.
10258         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
10259         * tm.texi (Register Arguments): Document the above macro.
10260
10261 2000-01-14  Nick Clifton  <nickc@cygnus.com>
10262
10263         * emit-rtl.c (emit_insn): If checking is enabled, make sure
10264         that this function has not been used to emit a jump
10265         instruction.
10266
10267         * jump.c (return_jump_1): Cope with being passed a null rtx.
10268
10269 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10270
10271         * eh-common.h: PROTO -> PARAMS.
10272         * emit-rtl.c: Likewise.
10273         * errors.c: Likewise.
10274         * errors.h: Likewise.
10275         * except.c: Likewise.
10276         * except.h: Likewise.
10277         * explow.c: Likewise.
10278         * expmed.c: Likewise.
10279         * expr.c: Likewise.
10280         * expr.h: Likewise.
10281         * final.c: Likewise.
10282         * fix-header.c: Likewise.
10283         * flow.c: Likewise.
10284         * fold-const.c: Likewise.
10285         * function.c: Likewise.
10286         * function.h: Likewise.
10287         * gcc.c: Likewise.
10288         * gcov-io.h: Likewise.
10289         * gcov.c: Likewise.
10290         * gcse.c: Likewise.
10291
10292 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10293
10294         * sh-protos.h: New file.
10295
10296         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
10297         Add static prototypes.  Fix compile time warnings.
10298
10299         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
10300         * sh.md: Likewise.
10301         * elf.h: Likewise.
10302
10303 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10304
10305         * arc-protos.h: New file.
10306
10307         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
10308         time warnings.
10309
10310         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
10311         warnings.
10312
10313         * arc.md: Likewise.
10314
10315 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10316
10317         * dsp16xx-protos.h: New file.
10318
10319         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
10320         time warnings.
10321
10322         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
10323         warnings.
10324
10325         * dsp16xx.md: Likewise.
10326
10327 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10328
10329         * convex-protos.h: New file.
10330
10331         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
10332         time warnings.
10333
10334         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
10335         warnings.
10336
10337 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10338
10339         * elxsi-protos.h: New file.
10340
10341         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
10342         time warnings.
10343
10344         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
10345         warnings.
10346
10347         * elxsi.md: Likewise.
10348
10349 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10350
10351         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
10352         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
10353         match the comment for MIPS16.
10354
10355 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
10356
10357         * flow.c (split_edge): Do not call set_block_for_insn if we
10358         do not have a basic_block_for_insn structure.
10359
10360         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
10361         and destination functions are 32bit aligned within the trampoline.
10362         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
10363         (TRAMPOLINE_ALIGNMENT): Define.
10364
10365         * cse.c (cse_insn): When changing (set (pc) (reg)) to
10366         (set (pc) (label_ref)), verify the change creates a valid insn.
10367
10368         * fr30.c (call_operand): Tighten and rework to match rules for
10369         call RTL expressions.
10370         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
10371         * fr30.md (call patterns): Improve constraints.
10372
10373 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
10374
10375         * fr30.c (fr30_expand_epilogue): Revert last change.
10376         Use emit_jump_insn for the return insn.
10377
10378 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
10379                           Stan Cox  <scox@cygnus.com>
10380
10381         * predict.c: New file. Preliminary infrastructure work for static
10382         branch prediction and basic block reordering.
10383         * basic-block.h: Add prototype for estimate_probability.
10384         * Makefile.in: Add rules for predict.o.
10385
10386 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
10387
10388         * fixincludes (va_list): Use __not_va_list__ for the dummy.
10389         * fixinc/*: Likewise.
10390
10391 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10392
10393         * cccp.c: PROTO -> PARAMS.
10394         * cexp.y: Likewise.
10395         * collect2.c: Likewise.
10396         * combine.c: Likewise.
10397         * convert.h: Likewise.
10398         * cse.c: Likewise.
10399         * dbxout.c: Likewise.
10400         * dbxout.h: Likewise.
10401         * diagnostic.c: Likewise.
10402         * doprint.c: Likewise.
10403         * dwarf2out.c: Likewise.
10404         * dwarf2out.h: Likewise.
10405         * dwarfout.c: Likewise.
10406         * dwarfout.h: Likewise.
10407         * dyn-string.h: Likewise.
10408
10409 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10410
10411         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
10412         macro conditionals guarding use.
10413
10414         * dwarf2out.c: Include "tm_p.h".
10415
10416         * function.c (locate_and_pad_parm): Mark parameter with
10417         ATTRIBUTE_UNUSED.
10418         (expand_function_end): Likewise for variable `context'.
10419
10420         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
10421
10422 2000-01-13  Nick Clifton  <nickc@cygnus.com>
10423
10424         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
10425         register to prevent compile time warnings.
10426
10427 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
10428
10429         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
10430         to avoid -Wtraditional warning.
10431
10432 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10433
10434         * 1750a-protos.h: New file.
10435
10436         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
10437         time warnings.
10438
10439         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
10440         warnings.
10441
10442         * 1750a.md: Likewise.
10443
10444 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10445
10446         * a29k-protos.h: New file.
10447
10448         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
10449         time warnings.
10450
10451         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
10452         warnings.
10453
10454 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10455
10456         * clipper-protos.h: New file.
10457
10458         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
10459         time warnings.
10460
10461         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
10462         warnings.
10463
10464 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10465
10466         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
10467
10468 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
10469
10470         * configure.in (--enable-new-gxx-abi): New option.
10471         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
10472         * Makefile.in (GXX_ABI_FLAG): New variable.
10473         * configure: Regenerate.
10474
10475 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10476
10477         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
10478         * tm.texi (FORCE_STRUCT_BLK): Document.
10479         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
10480
10481 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
10482
10483         * config/ns32k/ns32k.md: Revert Jan 9 change.
10484
10485         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
10486         to a mode-test, if the predicate is address_operand.
10487
10488 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
10489
10490         * combine.c (if_then_else_cond): Be careful about what kinds
10491         of RTL expressions are passed to operand_subword.
10492
10493         * flow.c (split_edge): If we have to insert a new jump, make
10494         sure to associate it with a basic block.
10495
10496         * flow.c (commit_one_edge_insertion): A block with one successor
10497         can end in a JUMP_INSN that is not a simplejump.
10498
10499 2000-01-12  Robert Lipe  <robertl@sco.com>
10500
10501         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
10502         (BUILD_VA_LIST_TYPE): Define.
10503         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
10504         with crtstuff.c.
10505
10506 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
10507
10508         * cccp.c (do_pragma): Add cast to (char *).
10509
10510 2000-01-12  Richard Henderson  <rth@cygnus.com>
10511             Fred Fish  <fnf@be.com>
10512             Jason Merrill  <jason@cygnus.com>
10513
10514         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
10515         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
10516         * i386/beos-elf.h, i386/beos-pe.h: New files.
10517
10518         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
10519         * cross-make (SYSTEM_HEADER_DIR): Define using
10520         CROSS_SYSTEM_HEADER_DIR.
10521
10522         * gcc.c (LIBRARY_PATH_ENV): Provide default.
10523         (process_command): Use it.
10524         (main): Likewise.  Kill trailing = from env vars.
10525         (build_search_list): Put it back.
10526         * collect2.c (main): Use LIBRARY_PATH_ENV.
10527
10528         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
10529         * toplev.c: Use NEED_DECLARATION_ENVIRON.
10530
10531         * tm.texi (Frame Layout): Document SMALL_STACK.
10532         * c-common.c (c_common_nodes_and_builtins): Check it.
10533
10534         * system.h: Undef alloca after including glibc's <stdlib.h>,
10535         if USE_C_ALLOCA is defined.
10536
10537         * gcc.c (set_input): New fn.
10538         (main): After all input files are compiled, reset the input file
10539         info to the first.
10540
10541         * aclocal.m4 (rindex, index): If already defined, don't attempt
10542         to redefine.
10543
10544         * ginclude/varargs.h: (__va_list__): Define ifndef.
10545         * ginclude/stdarg.h: Likewise.
10546
10547         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
10548         instead of unsigned char.
10549
10550         * hash.h (true, false, boolean): Undef before enum.
10551
10552         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
10553         proper type of "HOST_WIDE_INT *", rather than their natural type of
10554         "unsigned HOST_WIDE_INT *".
10555
10556 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10557
10558         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
10559
10560         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
10561
10562         * regclass.c (choose_hard_reg_mode): Likewise.
10563
10564         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
10565
10566         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
10567
10568 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10569
10570         * c-common.c: PROTO -> PARAMS.
10571         * c-common.h: Likewise.
10572         * c-decl.c: Likewise.
10573         * c-iterate.c: Likewise.
10574         * c-lang.c: Likewise.
10575         * c-lex.c: Likewise.
10576         * c-lex.h: Likewise.
10577         * c-parse.in: Likewise.
10578         * c-pragma.c: Likewise.
10579         * c-pragma.h: Likewise.
10580         * c-tree.h: Likewise.
10581         * c-typeck.c: Likewise.
10582         * objc/objc-act.c: Likewise.
10583         * objc/objc-act.h: Likewise.
10584
10585 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10586
10587         * m88k-protos.h: New file.
10588
10589         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
10590         time warnings.
10591
10592         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
10593
10594         * m88k.md: Likewise.
10595
10596         * tekXD88.h: Likewise.
10597
10598 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10599
10600         * m68k-protos.h: New file.
10601
10602         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
10603         time warnings.
10604
10605         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
10606
10607         * mot3300.h: Likewise.
10608
10609 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
10610
10611         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
10612         extract_bitlst.
10613         (extract_bitlist): Declare bitlen.
10614
10615 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
10616
10617         * cccp.c: Accept and ignore -lang-fortran.
10618
10619         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
10620         qualifiers don't match at any level of pointerness.
10621
10622 2000-01-12  Robert Lipe  <robertl@sco.com>
10623
10624         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
10625
10626 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
10627
10628         * reload1.c (reload_reg_unavailable): New static variable.
10629         (reload_reg_free_p): Test it.
10630         (reload_reg_free_for_value_p): Test it instead of
10631         reload_reg_used.
10632         (choose_reload_regs_init): Compute it.
10633
10634 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
10635
10636         * reorg.c (fill_slots_from_thread): Check modified_in_p
10637         before replacing.
10638
10639 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
10640
10641         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
10642         these nodes even if INTERNALS is not set.
10643
10644 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
10645
10646         * gcse.c (delete_null_pointer_checks_1): Cope when
10647         get_condition cannot determine the condition.
10648
10649 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
10650
10651         * toplev.h (set_message_length): Declare.
10652
10653         * diagnostic.c (obstack_chunk_alloc): Define macro.
10654         (obstack_chunk_free): Likewise.
10655         (struct output_buffer): New data structure.
10656         (vmessage): Remove.
10657         (output_maximum_width): New variable.
10658         (doing_line_wrapping, set_message_length, init_output_buffer,
10659         get_output_prefix, output_space_left, emit_output_prefix,
10660         output_newline, output_append, output_puts, dump_output,
10661         vbuild_message_string, build_message_string, build_location_prefix,
10662         voutput_notice, output_printf, line_wrapper_printf,
10663         vline_wrapper_message_with_location):  New functions. Implement
10664         automatic line wrapping.
10665         (v_message_with_decl): Make it handle automatic line wrapping.
10666         (v_error_with_file_and_line): Likewise.
10667         (v_warning_with_file_and_line): Likewise.
10668         (announce_function): Likewise.
10669         (default_print_error_function): Likewise.
10670
10671 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
10672
10673         * cpplib.h (struct cpp_options): Change lang_asm to char.
10674         Add lang_fortran.
10675         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
10676         done in cpp_handle_option now.
10677         (initialize_builtins): Take out special case code used only by
10678         __STDC_VERSION__.
10679         (cpp_handle_option): Turn off trigraphs and trigraph warnings
10680         if -traditional.  Recognize -lang-fortran and set
10681         lang_fortran, also turn off cplusplus_comments.
10682         (print_help): Document -lang-fortran.
10683         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
10684         lang_asm. Ignore all directives other than `# 123 "file"' if
10685         CPP_PREPROCESSED.
10686         (cpp_get_token): If -traditional, don't recognize directives
10687         unless the # is in column 1.
10688         (parse_string): If lang_fortran or lang_asm, silently
10689         terminate strings ('' or "") at end of line.
10690         Remove unnecessary braces.
10691
10692 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10693             Richard Henderson  <rth@cygnus.com>
10694
10695         * resource.c (mark_referenced_resources): Mark a set strict_low_part
10696         as used.
10697         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
10698         strict_low_part when possible.
10699
10700 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10701
10702         * alias.c: PROTO -> PARAMS.
10703         * basic-block.h: Likewise.
10704         * bitmap.c: Likewise.
10705         * bitmap.h: Likewise.
10706         * builtins.c: Likewise.
10707         * c-aux-info.c: Likewise.
10708         * caller-save.c: Likewise.
10709         * calls.c: Likewise.
10710
10711 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10712
10713         * Makefile.in (toplev.o): Depend on regs.h.
10714
10715         * output.h (tdesc_section): Prototype.
10716
10717         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
10718
10719         * sdbout.c: Include "tm_p.h".
10720
10721         * toplev.c: Include "regs.h".
10722
10723 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
10724
10725         * unroll.c (unroll_loop): Add EH support.
10726
10727 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10728
10729         * pa-protos.h: New file.
10730
10731         * pa.c: Include recog.h and tm_p.h.
10732         (compute_zdepwi_operands, compute_movstrsi_length,
10733         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
10734         find_addr_reg, import_milli): Add static prototypes.
10735         (pa_cpu_string, pa_arch_string): Constify a char*.
10736         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
10737         (read_only_operand): Add argument `mode'.
10738         (singlemove_string, output_move_double, output_fp_move_double,
10739         output_block_move, output_and, output_ior, output_ascii,
10740         remove_useless_addtr_insns, milli_names, output_mul_insn,
10741         output_div_insn, output_mod_insn, output_arg_descriptor,
10742         output_cbranch, output_bb, output_bvb, output_dbra, ,
10743         output_millicode_call, output_call, hppa_encode_label,
10744         output_parallel_movb, output_parallel_addb): Constify a char*.
10745         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
10746         (output_parallel_addb): Remove extra arg to `constrain_operands'
10747
10748         * pa.h:  Move all prototypes to pa-protos.h.
10749         (pa_cpu_string, pa_arch_string): Constify a char*.
10750         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
10751
10752         * pa.md: Call `function_label_operand' with mode argument.
10753         Likewise for `read_only_operand'.
10754         Fix nesting of parens in call to `symbolic_operand'.
10755
10756 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10757
10758         * i860-protos.h: New file.
10759
10760         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
10761         time warnings.
10762
10763         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
10764
10765         * i860.md: Likewise.
10766
10767 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
10768
10769         * i386.md (movstrsi expander): Rewrite.
10770         (movstrsi_1 insn): Deleted.
10771         (strmovhi, strmovqi expander): New expanders.
10772         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
10773         * i386.c (x86_single_stringop): New global variable.
10774         * i386.h (x86_single_stringop): Declare.
10775         (TARGET_SINGLE_STRINGOP): New macro.
10776
10777 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
10778
10779         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
10780         integer vararg POSTINCREMENT before the destination of the jump
10781         for the hard fp case.
10782         (function_arg_pass_by_reference): Pass a copy of CUM to
10783         FUNCTION_ARG.
10784
10785         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
10786         for CONSTANT_ADDRESS_P above while loop for subreg.
10787
10788 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
10789
10790         * flow.c (propagate_block): When a prologue/epilogue insn
10791         is marked dead, unconditionally clear libcall_is_dead and
10792         insn_is_dead, and only dump rtl if warnings aren't being
10793         suppressed.
10794
10795 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
10796
10797         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
10798         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
10799         (FIXED_REGISTERS): Set dirflag as fixed.
10800         (CALL_USED_REGISTERS): Set dirflag as used.
10801         (REG_ALLOC_ORDER): Set dirflag as last one.
10802         (DIRFLAG_REG): New macro.
10803         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
10804         (HI_REGISTER_NAMES): Add dirflag.
10805         (DEBUF_PRINT_REG): Handle dirflag.
10806         * i386.md (type attribute): New cld and str types.
10807         (length_opcode attribute): Set cld and str to 1.
10808         (memory attribute): Set str to unknown - it is not clear from the
10809         patterns.
10810         (pent_np function unit): Prefixed string operations takes 12 cycles
10811         minimally; cld takes 2 cycles.
10812         (ppro_uops attribute): Str is "many" and cld is "few".
10813         (ppro_p0 unit): Handle cld here.
10814         (k6_alux unit): Handle cld and str types.
10815         (k6_load unit): It is ocupied by str opcodes.
10816         (k6_store unit): It is ocupied by str opcodes.
10817         (athlon_decode): Str is vector decoded.
10818         (athlon_ieu): Handle str and cld.
10819         (cld pattern): New.
10820         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
10821         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
10822         cmpstrsi_nz_1 insn): Do not output cld instruction
10823
10824 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
10825
10826         * gcc.texi (G++ and GCC): Add Java and Chill.
10827         (Bug Critera): Don't list languages.
10828
10829         * gcc.texi (Incompatibilities): No longer claim most C compilers
10830         are K&R.
10831
10832         * gcc.texi (G++ and GCC): Update other front-ends list.
10833
10834 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
10835
10836         * i386.c (ix86_expand_setcc): Fix typo.
10837         (ix86_expand_movcc): Similarly.
10838
10839         * Band-aid until haifa's bitset implementation is nuked.
10840         * haifa-sched.c (extract_bitlst): New parameter for size of the
10841         bitset in bits.  All callers changed.  Avoid looking at undefined
10842         bits in the bitset.
10843         (edgeset_bitsize): New variable.
10844         (schedule_region): Initialize edgeset_bitsize.
10845
10846 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10847
10848         * Makefile.in (optabs.o): Depend on real.h
10849         (resource.o): Depend on insn-attr.h
10850
10851         * builtins.c (result_vector): Wrap prototype in macro conditions
10852         governing definition and use.
10853
10854         * c-common.c: Include tm_p.h.
10855
10856         * c-lex.c: Likewise.
10857
10858         * elfos.h: Constify a char*.
10859
10860         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
10861         (get_attr_length, shorten_branches, profile_after_prologue): Mark
10862         parameter with ATTRIBUTE_UNUSED.
10863
10864         * fold-const.c (exact_real_inverse): Wrap variable `i' in
10865         CHECK_FLOAT_VALUE.
10866
10867         * haifa-sched.c (schedule_insns): Mark parameter with
10868         ATTRIBUTE_UNUSED.
10869
10870         * optabs.c: Include real.h.
10871
10872         * real.h (ereal_atof): Add prototype arguments.
10873
10874         * resource.c: Include insn-attr.h.
10875
10876         * sdbout.c (sdbout_queue_anonymous_type,
10877         sdbout_dequeue_anonymous_types): Wrap in macro
10878         SDB_ALLOW_FORWARD_REFERENCES.
10879         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
10880         ATTRIBUTE_UNUSED.
10881
10882         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
10883
10884         * stupid.c: Include tm_p.h.
10885
10886         * tree.c (real_value_from_int_cst): Mark parameter with
10887         ATTRIBUTE_UNUSED.
10888
10889 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10890
10891         * i960-protos.h: New file.
10892
10893         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
10894         time warnings.
10895
10896         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
10897
10898 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10899
10900         * combine.c (expand_field_assignment): Do not discard SUBREGs
10901         while computing nonzero_bits.
10902
10903 2000-01-09  Nick Clifton  <nickc@cygnus.com>
10904
10905         * config/arm/arm.c: Fix compile time warnings about signed vs
10906         unsigned constants.
10907         * config/arm/arm.h: Fix compile time warnings about signed vs
10908         unsigned constants.
10909
10910 2000-01-09  Philip Blundell  <philb@gnu.org>
10911
10912         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
10913         than `ldm' with only one register.
10914         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
10915         only one register.
10916
10917         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
10918         clobbered.
10919
10920 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
10921
10922         * config/ns32k/ns32k.md (load or push effective address): Operand 1
10923         must have SImode.
10924
10925 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10926
10927         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
10928         assignment used as truth value.
10929
10930         * function.c (assign_temp): Mark parameter `dont_promote' with
10931         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
10932         PROMOTE_FOR_CALL_ONLY.
10933
10934         * genrecog.c (write_subroutine): Mark variable `operands' with
10935         ATTRIBUTE_UNUSED.
10936
10937         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
10938         ATTRIBUTE_UNUSED.
10939
10940         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
10941         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
10942
10943         * toplev.c (note_deferral_of_defined_inline_function): Likewise
10944         for `decl'.
10945
10946 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10947
10948         * config/c4x.h: Tidy up comments.
10949         * config/c4x.c: Likewise.
10950
10951 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
10952
10953         * fold-const.c (lshift_double, rshift_double): Handle
10954         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
10955
10956 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10957
10958         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
10959         in prepare_function_start().
10960
10961 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
10962
10963         * config/v850/v850.c (expand_epilogue): Interrupt functions no
10964         longer allocate extra stack for function calls.
10965
10966 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10967
10968         * config/c4x/c4x.md (*subqf3_set): Fix typo.
10969
10970 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10971
10972         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
10973
10974 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
10975
10976         * rs6000.c (processor_target_table): Add power3 as alias for 630.
10977         * aix43.h: Revert Aug 2 change.
10978         (HAS_INIT_SECTION): Define, not visible yet.
10979         (LD_INIT_SWITCH): Define, not visible yet.
10980         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
10981
10982         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
10983
10984         * collect2.c (main): Expand ld2 size further.
10985         (export_object_lst): Cast assignment to avoid warning.
10986         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
10987         (scan_prog_file, COFF): Do not collect initialization or
10988         finalization functions generated for entire shared object if
10989         init/fini support present.
10990
10991 2000-01-07  Nick Clifton  <nickc@cygnus.com>
10992
10993         * config/elfos.h: Tidy up formatting of marcos.  Make sure
10994         that .section directives are always prefixed by a tab.
10995
10996         * config/svr4.h: Add #include "elfos.h" and remove duplicate
10997         definitions.
10998
10999 2000-01-07  Matt Austern  <austern@sgi.com>
11000
11001         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
11002         expon.
11003
11004 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
11005
11006         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
11007         crtstuff.c.
11008         (crtbegin.o, s-crtS): Likewise.
11009
11010 2000-01-06  Richard Henderson  <rth@cygnus.com>
11011
11012         * alpha.md (adddi_2+1): Limit offset such that it will be
11013         loadable with a single ldah+lda pair.
11014         (adddi_2+2): Explicitly fail split if we can't make it work.
11015
11016 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
11017
11018         * protoize.c: Conditionally include unistd.h.
11019         (IS_SAME_PATH_CHAR): New macro.
11020         (IS_SAME_PATH): New macro.
11021         (CPLUS_FILE_SUFFIX): New macro.
11022         (cplus_suffix): New static variable.
11023         (is_abspath): New static function.
11024         (in_system_include_dir): Handle DOS style pathnames.
11025         (file_could_be_converted): Likewise.
11026         (file_normally_convertible): Likewise.
11027         (directory_specified_p): Likewise.
11028         (file_excluded_p): Likewise.
11029         (abspath): Likewise.
11030         (shortpath): Likewise.
11031         (referenced_file_is_newer): Likewise.
11032         (save_def_or_dec): Likewise.
11033         (do_processing): Likewise.
11034         (main): Likewise.
11035         (edit_file): Likewise. Use rename instead of link.
11036         (rename_c_file): Likewise. Don't rename syscalls file.
11037         (munge_compile_params): Define null device for DOS based systems.
11038         (process_aux_info_file): Use binary mode if appliable.
11039         (edit_file): Likewise.
11040         * invoke.texi (Running Protoize): Document C++ suffixes used.
11041
11042         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
11043         IS_DIR_SEPARATOR macros.
11044         * collect2.c: Likewise.
11045         * cppinit.c: Likewise.
11046         * dwarf2out.c: Likewise.
11047         * gcc.c: Likewise.
11048         * gcov.c: Likewise.
11049         * prefix.c: Likewise.
11050         * rtl.c: Likewise.
11051         * toplev.c: Likewise.
11052         * system.h: And move to here.
11053
11054         * prefix.c (update_path): Fix typo in variable name.
11055
11056 2000-01-06  Richard Henderson  <rth@cygnus.com>
11057
11058         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
11059         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
11060         (count_reg_sets_1, count_reg_references): Likewise.
11061         (flow_loops_level_compute): Start counting actual loop depth at 1.
11062         (flow_loops_find): Likewise.
11063         * local-alloc.c (update_equiv_regs): Likewise.
11064         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
11065
11066 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
11067
11068         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
11069         FIRST_PSEUDO_REGISTER
11070         * dwarf2out.c: Don't include frame.h
11071         * dwarfout.c: Likewise
11072         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
11073         frame.h
11074
11075 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
11076
11077         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
11078         dead registers.
11079
11080         * i386.c (movsf splitter): Fix typo in my last checkin.
11081
11082 2000-01-05  Nick Clifton  <nickc@cygnus.com>
11083
11084         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
11085         own definition of this macro.
11086         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
11087         flag_data_sections or UNIQUE_SECTION_P are true.
11088
11089         * tm.texi (UNIQUE_SECTION): Document that it can be called for
11090         unitialised data decls.
11091
11092         * config/i386/winnt.c (i386_pe_unique_section): Cope with
11093         being called for uninitialised data.
11094
11095         * config/i386/interix.c (i386_pe_unique_section): Cope with
11096         being called for uninitialised data.
11097
11098         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
11099         for uninitialised data.
11100
11101         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
11102         for uninitialised data.
11103
11104         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
11105         for uninitialised data.
11106
11107         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
11108         (UNIQUE_SECTION_P): Always generate a unique section if
11109         flag_data_sections is true.
11110         (UNIQUE_SECTION): Also generate unique sections for
11111         uninitialised data.
11112         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
11113         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
11114         named_section().
11115
11116 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11117
11118         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
11119         SI, or DI.
11120
11121 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11122
11123         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
11124         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
11125         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
11126         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
11127         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
11128
11129         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
11130
11131 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
11132
11133         * c-decl.c (finish_enum): Simplify code to determine minimum and
11134         maximum values of the enum, and calculate the type.  Remove check
11135         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
11136         the DECL_INITIAL of each enumeration constant with a copy converted
11137         to the enumeration type.  When updating variant types, don't bother
11138         updating the type itself.
11139
11140         * c-typeck.c (build_binary_op): Simplify conditional expressions
11141         when weeding out spurious signed-unsigned warnings.  Add new
11142         spurious warning category: if the unsigned quantity is an enum
11143         and its maximum value fits in signed_type(result_type).  Update
11144         commentary.
11145         (build_conditional_expr): Warn here if one alternative is signed
11146         and the other is unsigned.
11147
11148 2000-01-05  Nick Clifton  <nickc@cygnus.com>
11149
11150         * config/fr30/fr30.h: Remove extraneous comments.
11151
11152 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
11153
11154         * reload1.c (choose_reload_regs): When disabling a reload, also
11155         set reload_spill_index to -1.
11156
11157 2000-01-04  Joel Sherrill (joel@OARcorp.com>
11158
11159         * configure.in (m68*-*-rtemscoff*): New target, formal name for
11160         old m68*-*-rtems*.
11161         (m68*-*-rtemself*): New target.
11162         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
11163         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
11164         (sparc*-*-rtemself*): New target.
11165         (sparc*-*-rtems*): Now elf not a.out.
11166         * config/i386/rtems.h: Include config/rtems.h.
11167         * config/i386/rtemself.h: Include config/rtems.h.
11168         * config/i960/rtems.h: Include config/rtems.h.
11169         * config/m68k/rtems.h: Include config/rtems.h.
11170         * config/m68k/rtemself.h: Include config/rtems.h.
11171         * config/mips/rtems64.h: Include config/rtems.h.
11172         * config/pa/rtems.h: Include config/rtems.h.
11173         * config/rs6000/rtems.h: Include config/rtems.h.
11174         * config/sh/rtems.h: Include config/rtems.h.
11175         * config/sh/rtemself.h: Include config/rtems.h.
11176         * config/sparc/rtems.h: Include config/rtems.h.
11177         * config/sparc/rtemself.h: Include config/rtems.h
11178
11179 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
11180
11181         * final.c (shorten_branches): Correctly compute length of
11182         asms without operands.
11183
11184 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
11185
11186         * configure.in: Add pj target.
11187         * configure: Regenerate.
11188         * config/pj: New directory.
11189         * config/pj/lib1funcs.S: New file.
11190         * config/pj/linux.h: New file.
11191         * config/pj/pj.c: New file.
11192         * config/pj/pj.md: New file.
11193         * config/pj/pjl.h: New file.
11194         * config/pj/t-pj: New file.
11195         * config/pj/xm-pj.h: New file
11196
11197 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
11198
11199         * toplev.c (rest_of_compilation): Run shorten-branches before
11200         reg-stack for now.
11201
11202 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11203
11204         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
11205         macros so that they're consistent with their names.
11206         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
11207         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
11208
11209 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11210
11211         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
11212         modified inadvertently.
11213
11214 2000-01-04  Joel Sherrill <joel@OARcorp.com>
11215
11216         * configure.in (v850*-*-rtems*): New target.
11217         * configure: Regenerate.
11218         * config/v850/rtems.h: New file.
11219
11220 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
11221
11222         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
11223         (__gthread_key_create): Likewise.
11224         (__gthread_key_dtor):  Likewise.
11225         (__gthread_once): Fix logic.
11226         (__gthread_key_delete): Cast away constness.
11227
11228         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
11229         * invoke.texi: Document.
11230         * i386/mingw32.h (CPP_SPEC): Use.
11231         (LIBGCC_SPEC): Likewise.
11232         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
11233
11234 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
11235
11236         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
11237         (HANDLE_PRAGMA_PACK): Undefine.
11238         (SLOW_UNALIGNED_ACCESS): Define.
11239
11240 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
11241
11242         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
11243         to default definition.
11244         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
11245         (store_fixed_bit_field): Call macro with word_mode and alignment.
11246         (extract_bit_field): Call macro with relevant mode and alignment.
11247         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
11248         to default definition.
11249         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
11250         and alignment.
11251         (move_by_pieces_ninsns): Likewise.
11252         (clear_by_pieces): Likewise.
11253         (emit_push_insn): Likewise.
11254         (store_field): Call macro with relevant mode and alignment.
11255         (expand_expr): Likewise.
11256         (expand_expr_unaligned): Likewise.
11257
11258         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
11259         (SLOW_UNALIGNED_ACCESS): Define.
11260         (CASE_VECTOR_MODE): Always use 32-bit offsets.
11261         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
11262         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
11263         (toc_section): Likewise and .toc pseudo-op.
11264         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
11265         64-bit mode.
11266         (TEXT_SECTION_ASM_OP): Likewise.
11267         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
11268         32-bit offsets.
11269
11270         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
11271         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
11272         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
11273         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
11274         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
11275
11276 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
11277
11278         * regclass.c: Revert my Jan 4 change to loop cost computation.
11279
11280 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
11281
11282         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
11283         compilation.
11284
11285 2000-01-04  Stan Cox  <scox@cygnus.com>
11286
11287         * haifa-sched.c (build_control_flow): Change unreachable simple
11288         loop test to check if current block has only one predecessor.
11289         (find_rgns): Initialize degree.  Use dest as degree index, not src.
11290
11291 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11292
11293         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
11294
11295         * calls.c (expand_call): Likewise for
11296         `old_stack_arg_under_construction'.
11297
11298         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
11299
11300         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
11301         `save_constant'.
11302
11303         * gcc.c (execute): Likewise for `ut' and `st'.
11304
11305         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
11306
11307         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
11308
11309         * jump.c (jump_optimize_1): Likewise for `temp2'.
11310
11311         * local-alloc.c (block_alloc): Likewise for `r1'.
11312
11313         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
11314
11315         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
11316         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
11317
11318         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
11319         and `set2'.
11320
11321         * reload.c (find_reloads): Likewise for `goal_alternative_number'
11322         and `goal_earlyclobber'.
11323
11324         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
11325
11326         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
11327
11328         * stupid.c (stupid_life_analysis): Likewise for `chain'.
11329
11330         * unroll.c (copy_loop_body): Likewise for `copy'.
11331
11332         * varasm.c (output_constructor): Likewise for `byte'.
11333
11334 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
11335
11336         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
11337         all FP constants for constant->reg moves.
11338         (ix86_split_to_parts): Try to convert memory address into immediate
11339         when available in the constant pool.
11340         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
11341         moves.
11342         (LEGITIMATE_CONSTANT_P): Return 1.
11343         * i386.md (pushsf): New splitter to convert constant pool memory
11344         reference to immediate.
11345         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
11346         reload.
11347
11348 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
11349
11350         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
11351         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
11352         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
11353         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
11354         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
11355
11356 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
11357
11358         * ginclude/stdbool.h:  Support compilation as C++.
11359
11360 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11361
11362         * fold-const.c (make_range): Don't try to reverse an unbounded range.
11363
11364 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
11365
11366         * regclass.c (regclass): Properly compute loop_cost.  Adjust
11367         comments.
11368
11369         * regclass.c: Fix minor whitespace problems.
11370
11371 2000-01-03  Anthony Green  <green@cygnus.com>
11372
11373         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
11374         Restore the pic register if required.
11375
11376 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
11377
11378         * c-common.c (format_char_info): Update comment.
11379         (check_format_info): Recognize 'z' modifier in the same way 'Z'
11380         was recognized.  Emit warning for formats new in ISO C99 only
11381         if flag_isoc9x is not set.
11382
11383 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
11384
11385         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
11386
11387 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
11388
11389         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
11390         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
11391         (make_compound_operation): Choose cheaper alternative between
11392         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
11393
11394         * regclass.c (op_costs): Remove global variable.
11395         (record_reg_classes): New parameter "op_costs" and "reg_pref".
11396         (record_operand_costs): Break out from ...
11397         (scan_one_insn): ... here.
11398         (dump_regclass): Make dumps nicer.
11399         (regclass): Dump preferrences choosed and changes done during passes.
11400
11401 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
11402
11403         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
11404
11405 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
11406
11407         * config/sparc/sparc.c (gen_df_reg): New function.
11408         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
11409         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
11410         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
11411         movtf_cc_reg_sp64+1): Use it.
11412
11413 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
11414
11415         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
11416         copied LABEL_DECLs.
11417
11418 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11419
11420         * config/i386/i386.c (ix86_expand_unary_operator): Function
11421         definition made void.
11422         (ix86_expand_binary_operator): Update outdated preceding comment.
11423         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
11424         prototype.
11425
11426         * config/i386/i386.c (override_options): Fix option-name typo.
11427
11428 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
11429
11430         * system.h (CEIL): Define.
11431         * builtins.c (CEIL): Remove.
11432         * expmed.c (CEIL): Likewise.
11433         * expr.c (CEIL): Likewise.
11434         * stor-layout.c (CEIL): Likewise.
11435
11436 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11437
11438         * expr.c (store_constructor_field): Fix typo introduced with last
11439         gcc2 merge.
11440
11441 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
11442
11443         * tree.h (BINFO_N_BASETYPES): New macro.
11444
11445 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
11446
11447         * expmed.c (emit_store_flag): Prevent losing a pending stack
11448         adjust the same way we prevent losing queued increments.
11449
11450 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11451
11452         * function.c (update_temp_slot_address): Handle case where sum of
11453         temporary address plus offset in register is a valid address.
11454
11455 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11456
11457         * genrecog.c (change_state) Corrected typo.
11458
11459 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11460
11461         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
11462         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
11463         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
11464
11465 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
11466
11467         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
11468         case, expand GT comparisons correctly.  Fix a comment before this
11469         part of the code.
11470
11471 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
11472
11473         * dwarfout.c: Include "frame.h"
11474         * dwarf2out.c: Likewise.
11475         * Makefile.in (dwarfout.o): Depend on frame.h
11476         (dwarf2out.o): Likewise.
11477
11478 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
11479
11480         Restore i386 binary compatibility in Dwarf EH info.
11481         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
11482         value of FIRST_PSEUDO_REGISTER.
11483         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
11484         (struct frame_state): Use DWARF_FRAME_REGISTERS.
11485         * dwarfout.c (output_reg_number): Ditto.
11486         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
11487         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
11488
11489 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
11490
11491         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
11492         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
11493         (<hack>_RE_CT): not needed
11494         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
11495         rewritten to scan the file text once only
11496         "template<..." test added
11497         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
11498         (is_cxx_header): declaration added
11499         * fixinc/fixtests.c(is_cxx_header): removed
11500         (apply_fix_p_t): removed
11501         (double_slash_test): is_cxx_header is only called once now
11502         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
11503         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
11504         within the templates.
11505         The borken spelling of "broken" was fixed.
11506         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
11507         The default level depends on FIXINC_DEBUG.
11508
11509 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11510
11511         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
11512         Otherwise provide a declaration for atexit.
11513         (init_dummy): Make sure dummy call to atexit is nevertheless
11514         called with correct number of args.
11515
11516         * frame.c: Update comments referring to other files.
11517
11518         * libgcc2.c: Likewise.
11519
11520 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11521
11522         * cse.c (free_element, get_element): Remove unused prototypes.
11523
11524         * fold-const.c (extract_muldiv): Initialize variables `op0' and
11525         `op1'.
11526
11527         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
11528         `else' clauses.
11529
11530 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
11531
11532         * configure.in,configure: case arm for mn10200-*-* now sets
11533         float_format=i32 so that float.h will correctly claim "double"
11534         to be 32 bits. Ran autoconf to generate configure from .in file.
11535
11536 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
11537
11538         * pa.md (conditional zero): If op1 is a register, force it into
11539         the same register as op0.
11540
11541 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
11542
11543         * tree.h (BINFO_BASETYPES): Improve documentation.
11544
11545 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11546
11547         * configure.in (--enable-checking): Use a more portable `for'
11548         loop syntax.
11549
11550 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11551
11552         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
11553         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
11554
11555         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
11556         Delete files.
11557
11558         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
11559         Delete descriptions.
11560
11561         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
11562         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
11563         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
11564         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
11565         xm-svr4.h: Remove all instances of sys_siglist handling.
11566
11567 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
11568
11569         * config/sparc/sparc.md (cmp_zero_qi,
11570         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
11571         cmp_zero_extendqidi2_andcc_set): New patterns.
11572
11573 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
11574
11575         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
11576         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
11577         (fpgnulib.c, xfgnulib.c): Add rules.
11578         * m68k/t-mot3300-gas: Likewise.
11579
11580 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
11581
11582         * configure.in: Avoid [[ by using test and changequote.  Add
11583         changequote required by 1999-12-14 change.
11584         * configure: Rebuild.
11585
11586 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
11587
11588         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
11589
11590 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
11591
11592         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
11593         * flow.c (find_use_as_address): Likewise.
11594         * function.c (fixup_var_refs_1): Likewise.
11595         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
11596         * jump.c (invert_exp, redirect_exp): Likewise.
11597         * loop.c (replace_call_address): Likewise.
11598         (count_nonfixed_reads): Likewise.
11599         * rtlanal.c (modified_between_p): Likewise.
11600         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
11601         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
11602         * unroll.c (remap_split_bivs): Likewise.
11603
11604 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11605
11606         * diagnostic.c (v_message_with_decl): Use .* format specifier
11607         instead of building the format specifier width manually.
11608
11609         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
11610         determining whether to provide a prototype.  Remove the
11611         sys_siglist clause in the conditional.
11612
11613 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11614
11615         * fold-const.c (operand_equal_p): Use memcmp to compare string
11616         constants.
11617         Suggested by D. J. Bernstein
11618
11619 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
11620
11621         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
11622         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
11623         compiling libgcc2.
11624         * config/mips/mips.h (TARGET_64BIT): Likewise.
11625         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
11626         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
11627         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
11628         dsps.  Give routines proper names if SI/DI modes are not used.
11629         * longlong.h: Use DWunion instead of DIunion.
11630
11631 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
11632
11633         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
11634         GC_CHECKING, GC_ALWAYS_COLLECT.
11635         * configure.in: Allow --enable-checking with an argument
11636         listing check modes to enable.
11637         * config.in, configure: Rebuilt.
11638         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
11639         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
11640         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
11641         ENABLE_GC_ALWAYS_COLLECT.
11642         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
11643         throughout.
11644         * tree.h, tree.c: Change ENABLE_CHECKING to
11645         ENABLE_TREE_CHECKING throughout.
11646
11647 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11648
11649         * fold-const.c (fold_truthop): Properly check for FP RHS.
11650
11651 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
11652
11653         * toplev.h (note_deferall_of_defined_inline_function): Declare.
11654         * toplev.c (note_deferral_of_defined_inline_function): New
11655         function, split out from ...
11656         (rest_of_compilation): ... here.  Use it.
11657
11658 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11659
11660         * expr.c (store_constructor): Don't call clear_storage if size is
11661         variable.
11662
11663 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11664
11665         * Makefile.in (toplev.o): Depend on loop.h.
11666
11667         * dwarfout.c: Include tm_p.h.
11668
11669         * emit-rtl.c (restore_emit_status): Mark parameter with
11670         ATTRIBUTE_UNUSED.
11671
11672         * final.c (final_scan_insn): Likewise.
11673
11674         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
11675         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
11676         flow_depth_first_order_compute, flow_loop_pre_header_find,
11677         flow_loop_tree_node_add, flow_loops_tree_build,
11678         flow_loop_level_compute, flow_loops_level_compute,
11679         flow_loop_outside_edge_p): Add prototypes.
11680         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
11681
11682         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
11683         Mark with ATTRIBUTE_NORETURN.
11684
11685         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
11686
11687         * local-alloc.c (no_conflict_p): Likewise.
11688
11689         * loop.c (insert_bct): Hide definitions of variables with hidden
11690         usage.
11691         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
11692
11693         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
11694         with ATTRIBUTE_UNUSED.
11695         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
11696         (reg_scan): Likewise.
11697
11698         * reload.c (find_reloads): Remove unused variables `changed'.
11699
11700         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
11701         away const-ness.
11702         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
11703         Remove unused variable `insn'.
11704
11705         * toplev.c: Include loop.h.
11706         (report_file_and_line): Remove unnecessary prototype.
11707
11708         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
11709
11710         * unroll.c (biv_total_increment): Likewise.
11711
11712 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11713
11714         * reload1.c (emit_input_reload_insns): Restore old behaviour
11715         wrt. 'special' reloads.
11716
11717 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
11718
11719         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
11720         hash.h.  (cse.c): Don't depend on hashtab.h.
11721
11722         * cse.c: Don't include hashtab.h.
11723         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
11724         of dead functions.
11725         * ggc-simple.c: Don't include hash.h.
11726
11727 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
11728
11729         * dwarf2out.c (add_abstract_origin_attribute): Call
11730         gen_abstract_function on our function context.
11731
11732 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
11733
11734         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
11735
11736 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11737
11738         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
11739         case in switch.
11740
11741 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11742
11743         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
11744         constraints to "a!r".
11745
11746 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
11747
11748         * Makefile.in (calls.o): Depend on function.h.
11749         (alias.o): Likewise.
11750
11751 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
11752
11753         * reload1.c (emit_reload_insns): Break out code and variables into...
11754         (input_reload_insns, other_input_address_reload_insns,
11755         other_input_reload_insns, input_address_reload_insns,
11756         inpaddr_address_reload_insns, output_reload_insns,
11757         output_address_reload_insns, outaddr_address_reload_insns,
11758         operand_reload_insns, other_operand_reload_insns,
11759         other_output_reload_insns): ... new static variables, and...
11760         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
11761         do_output_reload): ... new functions.
11762
11763 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11764
11765         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
11766
11767 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11768
11769         * md.texi: Add c4x constraints documentation.
11770
11771 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11772
11773         * config/i386/dgux.c (struct option): Rename to
11774         lang_independent_option.
11775         (struct m_options): Add description field.
11776         (output_options): Rename option type, add sep declaration, output
11777         ix86_cpu_string and ix86_arch_string only if set.
11778         (output_file_start): Rename option type.
11779
11780 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
11781
11782         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
11783         stmp-int-hdrs.
11784         (libgcc2.a): Similarly.
11785
11786 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
11787
11788         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
11789         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
11790         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
11791
11792 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
11793
11794         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
11795         Remove redundant initialization of "frexpon" and "expon".
11796
11797 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11798
11799         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
11800
11801         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
11802         (store_constructor_field, expand_expr): Pass new arg.
11803
11804 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
11805
11806         * Makefile.in (explow.o): Depend on function.h.
11807
11808         * stor-layout.c (set_sizetype): Fix typo.
11809
11810 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
11811
11812         * function.c (cfun): Renamed from current_function.  All users
11813         changed.
11814         * function.h (cfun): Rename declaration as well.
11815
11816         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
11817         to be of type regset_head, not regset.  All users changed by adding
11818         address operator.
11819         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
11820
11821 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11822
11823         * config/c4x/rtems.h: New file.
11824
11825 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
11826
11827         * reload1.c (spill_failure): Take class of failed reload as argument
11828         and print it.  Caller changed.
11829
11830 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11831
11832         * rs6000.h (SUBTARGET_DEFAULT): New macro.
11833         (TARGET_SWITCHES): Allow subtargets to default switches.
11834         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
11835
11836 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
11837
11838         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
11839         in a main program.
11840
11841 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
11842
11843         * cccp.c (main): Define __STDC_VERSION__ as necessary.
11844         * cppinit.c (cpp_handle_option): Likewise.
11845
11846         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
11847         determine when to define.
11848
11849 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
11850
11851         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
11852         cmove with mismatched test and data modes.
11853
11854 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
11855
11856         * c-typeck.c (c_expand_start_case): Don't warn for long switch
11857         in system headers.
11858
11859 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11860
11861         * alias.c: Minor reformatting.
11862         * flow.c: Likewise.
11863         * regs.h: Likewise.
11864         * stor-layout.c: Likewise.
11865         * fold-const.c: Likewise.
11866         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
11867         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
11868         not arg itself.
11869         (size_int_wide): Cache nodes even if garbage collecting.
11870         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
11871         of SAVE_EXPR has no side effects.
11872         * cse.c: Move a comment.
11873         * tree.c: Minor reformatting.
11874         (int_size_in_bytes): Return -1 if constant overflows.
11875
11876 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11877
11878         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
11879
11880 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
11881
11882         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
11883         after any change to c-parse.in, even if objc-parse.y didn't
11884         change.  Oops.
11885
11886 1999-12-18  David S. Miller  <davem@redhat.com>
11887
11888         * toplev.c (rest_of_compilation): Restore BLOCK tree
11889         reconstruction and branch shortening changes lost in
11890         December 18th change.
11891
11892 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
11893
11894         * config/arm/linux-elf.h: Change all instances of
11895         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
11896         * config/arm/uclinux-elf.h: Likewise.
11897
11898 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
11899
11900         * toplev.c (notice, vmessage, v_message_with_file_and_line,
11901         v_message_with_decl, file_and_line_for_asm,
11902         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
11903         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
11904         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
11905         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
11906         pfatal_with_name, fatal_io_error, need_error_newline,
11907         last_error_function, last_error_tick, announce_function,
11908         default_print_error_function, print_error_function,
11909         report_error_function, fnotice, error_with_file_and_line,
11910         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
11911         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
11912         warning_with_decl, warning_for_asm, warning, pedwarn,
11913         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
11914         diagnostic.c
11915         (compile_file): Use fnotice instead of notice.  Adjust call.
11916
11917         * diagnostic.c: New file.
11918
11919         * Makefile.in (OBJS): Include diagnostic.o
11920         (diagnostic.o): Define dependence.
11921
11922 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11923
11924         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
11925         Tweak formatting.
11926
11927 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11928
11929         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
11930
11931 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
11932
11933         * fixtests.c (is_cxx_header): New fn, split out of
11934         double_slash_test.
11935         (else_endif_label): Allow "#endif // comment" in C++ headers,
11936         as determined by is_cxx_header.
11937         * fixfixes.c (else_endif_label_fix): Update comment.
11938         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
11939         a tty.
11940         * genfixes: Correct double thinko in commandline parsing.
11941         * hackshell.tpl: Generate correct sh syntax for bypass
11942         entries.
11943
11944         * inclhack.def (all): Whenever an inserted preprocessor
11945         conditional is split over multiple lines, use double
11946         backslashes in this file so the fixed header will be readable.
11947
11948         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
11949         and add bypass entry for correct version of this header.
11950         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
11951         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
11952
11953         (hpux8_bogus_inlines): New fix, split from...
11954         (ultrix_atof_param) ... here.
11955         (math_expression): Add bypass entry keyed to glibc comment
11956         indicating the problem has been dealt with; disable
11957         unnecessary sed operations; update commentary.
11958         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
11959         add select and bypass entries, simplify shell operation.
11960         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
11961
11962         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
11963          ultrix_atof_param): Add select entry.
11964         (stdio_va_list, sunos_mather_decl): Add bypass entry.
11965         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
11966         comments with the fixes they describe.
11967
11968         * c-parse.in (string action): Do not warn about ANSI string
11969         concatenation in system headers.  Affects C parser only.
11970         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
11971
11972 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
11973
11974         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
11975         compiling libgcc2 the macro depends always on arch cpp defines.
11976
11977 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
11978
11979         * loop.c (insert_loop_mem): Don't record MEMs from inside
11980         EXPR_LISTs.
11981
11982 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
11983
11984         * regclass.c (regclass): Do not use flowgraph when not optimizing.
11985
11986         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
11987         notes too, create one when replacement failed, attempt to simplify
11988         resulting notes.
11989         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
11990         or REG_EQUIV notes.
11991
11992 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
11993
11994         * crtstuff.c (__dso_handle): Declare.
11995         (__cxa_finalize): Likewise.
11996         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
11997         non-NULL.
11998
11999         * invoke.texi: Document -fuse-cxa-atexit.
12000
12001         * tree.h (ptr_type_node): Document.
12002         (const_ptr_type_node): Likewise.
12003
12004 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12005
12006         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
12007         (optimize_reg_copy_2): Likewise.
12008         (optimize_reg_copy_3): Likewise.
12009         (fixup_match_2): Likewise.
12010         (regmove_optimize): Likewise.
12011         (fixup_match_1): Liekwise.
12012
12013         * i386.md (HI to SImode promoting splitters): Rewrite.
12014         (pushsf mem peep2): New.
12015         (testhi to andhi peep2): Remove.
12016         * i386.h (x86_promote_QImode): New.
12017         (TARGET_PROMOTE_QImode): New.
12018         (PREDICATE_CODES): Add promotable_binary_operator.
12019         * i386.c (x86_promote_QImode0: New.
12020         (promotable_binary_operator): New.
12021         * i386-protos.h (promotable_binary_operator): New.
12022
12023         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
12024         condition.
12025         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
12026
12027 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
12028
12029         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
12030         * function.c (insert_block_after_note): Remove.
12031         (retrofit_block): Likewise.
12032         (identify_blocks): Fix indentation.
12033         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
12034         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
12035         * function.h (insert_block_after_note): Remove prototype.
12036         (retrofit_block): Likewise.
12037         * integrate.c (expand_inline_function): Don't call
12038         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
12039         just expand_start_bindings.  Use the block_map to remap old
12040         NOTE_BLOCKs to new ones.
12041         (integrate_decl_tree): Keep track of remapped blocks.
12042         * integrate.h (struct inline_remap): Add block_map.
12043         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
12044         NOTE_BLOCK on the notes.
12045         (expand_start_bindings): Rename to ...
12046         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
12047         (expand_end_bindings): Set NOTE_BLOCK.
12048         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
12049         reconstruct the BLOCK tree.
12050         * tree.h (expand_start_bindings): Macroize.  Call ...
12051         (expand_start_bindings_and_block): New function.
12052
12053 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
12054
12055         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
12056         to match the format.
12057
12058 1999-12-16  David S. Miller  <davem@redhat.com>
12059
12060         * expr.c (emit_move_insn_1): Only emit clobbers if one of
12061         the outputs is a SUBREG.
12062         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
12063         change.
12064
12065         * config/sparc/sparc.c (epilogue_renumber): Add default case
12066         to switch stmt.
12067
12068 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12069
12070         * toplev.c (rest_of_compilation): Run branch shortening after
12071         reg-stack.
12072
12073         * regclass.c (loop_depth): Remove
12074         (scan_one_insn): Do not handle LOOP_NOTE insns.
12075         (regclass): Go through basic blocks and set loop_cost
12076
12077 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
12078
12079         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
12080
12081 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12082
12083         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
12084         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
12085         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
12086
12087 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
12088
12089         * loop.c (insert_loop_mem): Ignore memory clobbers.
12090
12091         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
12092         to (OP A B).
12093
12094 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
12095
12096         * profile.c: Remove redundant #include "output.h".
12097
12098         * h8300.md (HImode preinc peephole): Fix typo.
12099
12100 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
12101
12102         * function.c (retrofit_block): Abort if we don't find a suitable insn.
12103         (insert_block_after_note): Abort if we don't have a previous block.
12104         Remove FN parameter.
12105         * function.h: Adjust.
12106
12107 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
12108
12109         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
12110         argument more than once.
12111
12112 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
12113
12114         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
12115
12116 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
12117
12118         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
12119
12120 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12121
12122         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
12123         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
12124         update stack_alignment_needed.
12125         (prepare_function_start): Initialize stack_alignment_needed
12126         * function.h (struct function): Add field stack_alignment_needed.
12127
12128 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12129
12130         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
12131         Handle live_throughout / dead_or_set instead of live_before /
12132         live_after.
12133         (save_call_clobbered_regs): Get register livenessinformation from
12134         chain->live_throughout.
12135         (add_stored_regs): New function.
12136         (insert_restore, insert_save): Add restored / saved registers to
12137         dead_or_set.
12138         * global.c (reg_dies): New parameter chain.
12139         (reg_becomes_live): Third parameter is regs_set now.
12140         Changed all callers.
12141         (reg_dies): New parameter chain.  Changed all callers.
12142         (build_insn_chain): Set live_throughout instead of
12143         live_before / live_after.
12144         * reload.h (struct insn_chain): Replace members live_before /
12145         live_after with live_throughout / dead_or_set.
12146         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
12147         instead of live_before / live_after.
12148         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
12149         (order_regs_for_reload, find_reg, finish_spills): Likewise.
12150         (choose_reload_regs_init): Likewise.
12151         * stupid.c (current_chain, find_clobbered_regs): Delete.
12152         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
12153         instead of chain->live_before / chain->live_after.
12154         (mark_hard_ref): New function.
12155         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
12156
12157 1999-12-15  David S. Miller  <davem@redhat.com>
12158
12159         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
12160
12161 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12162
12163         * flow.c (calculate_loop_depth): Make global, remove prototype,
12164         rewrite to use new loop infrastructure.
12165         (find_basic_block): Remove calculate_loop_depth call.
12166         * toplev.c (rest_of_compilation): Call find_basic_block.
12167         * output.h (calculate_loop_depth): Declare.
12168
12169         * flow.c (dump_flow_info): Dump loop_depth.
12170         (flow_loops_nodes_find): Increase loop_depth for basic block in the
12171         body.
12172         (flow_loops_find): Initialize the loop_depth for each basic block.
12173
12174 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
12175
12176         * tree.c (decl_function_context): Handle virtual functions.
12177
12178         * tlink.c (scan_linker_output): Don't look in demangled name when
12179         looking for linker output keywords.
12180
12181         * dwarfout.c (output_type): We can defer namespace-scope classes.
12182
12183 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
12184
12185         * regclass.c (record_reg_classes): Update comment for merging
12186         register class preferences in reg->reg copies.  Tighten conditions
12187         for merging register class preferences in reg->reg copies.
12188
12189 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
12190
12191         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
12192
12193 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
12194
12195         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
12196         (INIT_SECTION_ASM_OP): Delete.
12197         (FINI_SECTION_ASM_OP): Delete.
12198         (STARTFILE_SPEC): Define to hold just crtbegin.o.
12199
12200 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
12201
12202         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
12203         the abstract origin wasn't emitted.
12204
12205         * dwarf2out.c (class_scope_p): New fn.
12206         (gen_subprogram_die): Use it.
12207         (gen_variable_die): Use it.  Tweak logic.
12208         (gen_struct_or_union_type_die): Check context_die to determine
12209         if we're function-local.
12210         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
12211
12212 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12213
12214         * loop.c (check_dbra_loop): Can't reverse a biv that has
12215         maybe_multiple set.
12216
12217 1999-12-14  Nick Clifton  <nickc@cygnus.com>
12218
12219         * config/arm/arm.c: Add support for -mcpu=arm720 command line
12220         switch.
12221
12222 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12223
12224         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
12225         for givs made from biv increments.
12226
12227 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
12228
12229         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
12230         * alpha.c (override_options): Recognize -mcpu=ev67.
12231         * alpha.h (CPP_CPU_EV67_SPEC): New.
12232         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
12233         (EXTRA_SPECS): Update.
12234
12235 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
12236
12237         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
12238         appropriate for -lang-c89 and -std=*.
12239         * cppinit.c (cpp_handle_option): Likewise.
12240         (new_pending_define): New, split out from cpp_handle_option.
12241         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
12242         or enable trigraphs for -ansi/-std=*.
12243
12244         * ginclude/stdarg.h (__va_copy): New.
12245         (va_copy): Don't define for C89.
12246
12247 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
12248
12249         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
12250         for long long multiply-accumulate.
12251
12252 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12253
12254         * regclass.c (scan_one_insn): Set loop_cost to 1 when
12255         optimizing for size.
12256
12257 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12258
12259         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
12260         if something changed.  Back out that part of yesterday's changes.
12261
12262         * loop.c (loop_max_reg): New static variable.
12263         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
12264         max_reg_num.
12265         (scan_loop): Call reg_scan_update whenever we may have added new
12266         registers, and update loop_max_reg.
12267
12268 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12269
12270         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
12271         when source does not die.
12272
12273         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
12274
12275 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
12276
12277         * config/sparc/linux64.h (TARGET_LIVE_G0,
12278         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
12279         variants on Linux.
12280         * config/sparc/linux.h (TARGET_LIVE_G0,
12281         TARGET_BROKEN_SAVERESTORE): Likewise.
12282         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
12283         TARGET_BROKEN_SAVERESTORE): Likewise.
12284
12285         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
12286         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
12287         not %g2.
12288         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
12289         as sparc64 block profiling register.
12290         * config/sparc/sparc.c (sparc_override_options): Allow block
12291         profiling with -m32.
12292         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
12293         profiling register.
12294         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
12295         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
12296         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
12297
12298         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
12299         for sparc64.
12300         * config/sparc/sparc.h: Likewise.
12301         * config/sparc/xm-sysv4-64.h: Likewise.
12302         * config/float-sparc.h: Likewise.
12303         * glimits.h: Likewise.
12304         * longlong.h: Likewise.
12305
12306         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
12307         (ASM_IDENTIFY_GCC): Remove.
12308
12309 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12310
12311         * combine.c (combine_simplify_rtx): Don't make shared rtl.
12312         (simplify_logical): Likewise.
12313
12314 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
12315
12316         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
12317         * cppfiles.c (INO_T_EQ): Likewise.
12318
12319 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
12320
12321         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
12322         * i386/mingw32.h (LIB_SPEC): Likewise.
12323         (STARTFILE_SPEC): Likewise.
12324         * i386/uwin.h (LIB_SPEC): Likewise.
12325         (STARTFILE_SPEC): Likewise.
12326
12327         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
12328         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
12329
12330 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
12331
12332         * combine.c (combine_simplify_rtx): Fix order of checks for
12333         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
12334
12335 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
12336
12337         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
12338         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
12339
12340 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
12341
12342         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
12343         defined.
12344         * regclass.c (inv_reg_alloc_order): New array.
12345         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
12346
12347         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
12348         counted_for_groups, counted_for_nongroups.  Add fields rld and
12349         n_reloads.
12350         * reload.c (push_secondary_reload): Don't set nongroup field of
12351         new reloads.
12352         (push_reload): Likewise.
12353         (find_reloads): Delete code to compute nongroup fields.
12354         * reload1.c (reload_insn_firstobj): New static variable.
12355         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
12356         users changed.
12357         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
12358         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
12359         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
12360         functions.
12361         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
12362         functions.
12363         (struct hard_reg_n_uses): Deleted.
12364         (potential_reload_regs): Deleted.
12365         (init_reload): Initialize spilled_pseudos and pseudos_counted.
12366         (reload): Don't try to allocate reload registers if we already know
12367         we have to make another pass.  Call select_reload_regs.  Free memory
12368         starting with reload_firstobj when starting another pass.
12369         Don't allocate spilled_pseudos.
12370         (calculate_needs_all_insns): Call copy_reloads for an insn that
12371         needs reloads; don't call calculate_needs.
12372         (spill_cost): New static array.
12373         (used_spill_regs_local): New static variable.
12374         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
12375         to compute potential_reload_regs.
12376         (find_reload_regs): Completely rewritten to use find_reg.
12377         (allocate_reload_reg): Don't test counted_for_groups or
12378         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
12379         all cllers changed.
12380         (choose_reload_regs): Add fallback code that uses the existing
12381         register allocation from find_reload_regs.
12382
12383 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
12384
12385         * flow.c (create_edge_list): Cast xmalloc return value.
12386
12387 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
12388
12389         * doprnt.c: Remove incorrect comment closure.
12390
12391         * cse.c: Fix a few minor whitespace goofs.
12392
12393 1999-12-13  Don Bowman  <don@pixstream.com>
12394
12395         * mips/vxworks.h: Fix problem with comment termination.
12396         (EXTRA_SECTIONS): Add in_sbss.
12397         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
12398
12399 1999-12-12  David S. Miller  <davem@redhat.com>
12400
12401         * cse.c (struct cse_reg_info): Add hash_next member,
12402         reorder rest of struct for better packing on 64-bit
12403         hosts.
12404         (cse_reg_info_tree): Kill.
12405         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
12406         REGHASH_FN): New custom pow2 hash mechanism.
12407         (NBUCKETS): Kill.
12408         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
12409         use a pow2 hash table.
12410         (get_cse_reg_info): Rework to use new REGHASH.
12411         (new_basic_block): Likewise, use HASH_SIZE, and inline
12412         free_element call.
12413         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
12414         and inline free_element call.
12415         (lookup_as_function, insert, flush_hash_table, invalidate,
12416         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
12417         invalidate_for_call, use_related_value, find_comparison_args,
12418         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
12419         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
12420         get_element): Kill.
12421
12422 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
12423
12424         * cse.c (cse_basic_block): Free qty_table consistently.
12425
12426 1999-12-12  David S. Miller  <davem@redhat.com>
12427             Jakub Jelinek    <jakub@redhat.com>
12428
12429         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
12430         SUBREGs by hand, gen the appropriate hard reg directly.
12431         (movtf reg/mem split): Likewise and alter_subreg on destination
12432         if necessary.
12433         (movtf mem/reg split): Similarly.
12434         (movdf_cc_sp64): Rename from hidden pattern.
12435         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
12436         (movtf_cc_sp64, following split): New pattern and splitter.
12437         (movdf_cc_reg_sp64): Rename from hidden pattern.
12438         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
12439         TARGET_HARD_QUAD.
12440         (movtf_cc_reg_sp64, following split): New pattern and splitter.
12441
12442 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
12443
12444         * loop.c (load_mems): Don't hoist written floating point mem
12445         if -ffloat-store.
12446
12447 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
12448
12449         * except.h (struct eh_queue): Add `next' pointer.
12450         (struct eh_status): Make x_ehqueue a pointer.
12451         (push_ehqueue):  Declare.
12452         (pop_ehqueue): Likewise.
12453         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
12454         pointer.
12455         (expand_fixup_region_end): Likewise.
12456         (expand_leftover_cleanups): Likewise.
12457         (push_ehqueue): Define.
12458         (pop_ehqueue): Likewise.
12459         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
12460         than doing it inline.
12461         (expand_start_all_catch):  Adjust now that ehqueue is a
12462         pointer.
12463         (mark_eh_queue): Mark all level of the queue.
12464         (mark_eh_status):  Adjust now that ehqueue is a
12465         pointer.
12466         (init_eh_for_function): Allocate ehqueue.
12467         (free_eh_status): Free it.
12468         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
12469         expansion for a fixup.
12470
12471 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12472
12473         * gthr-single.h (__gthread_active_p): Add prototype arguments.
12474
12475         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
12476         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
12477         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
12478         function_ptr, getpagesize, __enable_execute_stack,
12479         __enable_execute_stack, __clear_insn_cache,
12480         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
12481         _cleanup, _exit, __default_terminate, __terminate_func,
12482         __terminate, __empty, __throw, new_eh_context,
12483         eh_context_initialize, eh_context_static, eh_context_specific,
12484         get_eh_context, __get_eh_context, __get_eh_info,
12485         init_reg_size_table, eh_threads_initialize,
12486         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
12487         __unwinding_cleanup, throw_helper, __throw, __rethrow,
12488         __pure_virtual): Add prototype arguments.
12489         (__bb_exit_func): Cast a sizeof to long when comparing against one.
12490         Cast a signed value to unsigned long when comparing against one.
12491         (new_eh_context): Wrap in _GTHREADS macro.
12492         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
12493         declaration.
12494         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
12495         (throw_helper): Initialize variables `handler_p' and `pc_p'.
12496
12497 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12498
12499         * combine.c (record_promoted_value): Remove unused variable
12500         `links2'.
12501
12502         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
12503
12504         * global.c (record_conflicts): Likewise for `j'.
12505
12506         * genoutput.c (output_insn_data): Don't unnecessarily cast away
12507         const-ness.
12508
12509 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12510
12511         * i386-protos.h (output_387_binary_op, output_fix_trunc,
12512         output_fp_compare): Constify a char*.
12513
12514         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
12515         static prototypes.
12516         (override_options, ix86_comp_type_attributes, print_operand,
12517         output_387_binary_op, output_fix_trunc, output_fp_compare):
12518         Constify a char*.
12519         (ix86_sched_reorder): Mark parameter `clock_var' with
12520         ATTRIBUTE_UNUSED.
12521
12522         * i386.h (DEBUG_PRINT_REG): Constify a char*.
12523
12524 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12525
12526         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
12527         operand, for use in the Java front-end.
12528
12529 1999-12-10  Ben Collins  <bcollins@debian.org>
12530
12531         * configure.in: Fix typo for "-64" in 64bit as check.
12532         * configure: Rebuilt.
12533
12534 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
12535
12536         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
12537         appropriate.
12538
12539 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12540
12541         * c-parse.in (string): With -Wtraditional, warn if ANSI string
12542         concatenation is utilized.
12543
12544         * invoke.texi (-Wtraditional): Document it.
12545
12546 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12547
12548         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
12549         Cast a ptrdiff_t to long and pass it to printf with %ld.
12550
12551 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
12552
12553         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
12554         68881, we have no 68881 registers at all.
12555         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
12556         value in a 68881 register if it is available.
12557
12558 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
12559
12560         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
12561         for long long multiply-accumulate.
12562
12563 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
12564
12565         * loop.c (insert_loop_mem): Undo last change.
12566
12567 1999-12-10  David S. Miller  <davem@redhat.com>
12568
12569         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
12570         New functions.
12571         * config/sparc/sparc-protos.h: Add them.
12572         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
12573         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
12574         constraints which use those helpers.
12575         (EXTRA_CONSTRAINT): Use this new macro.
12576         * md.texi: Update sparc target constraints documentation.
12577         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
12578         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
12579         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
12580         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
12581         (movsf high/lo_sum split): Rework for new patterns.
12582         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
12583
12584 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
12585
12586         * c-common.c (c_common_nodes_and_builtins):
12587         Create __builtin_ptrdiff_t and __builtin_size_t.
12588
12589 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
12590
12591         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
12592
12593 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12594
12595         * regclass.c (globalize_reg): Re-instate test that allows
12596         fixed registers to be declared as a variable even after functions
12597         are defined.
12598
12599 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12600
12601         * i386.md (cpu attribute): Add "athlon".
12602         (athlon_decode): New attribute.
12603         (Athlon scheduling units definitions): New.
12604         (fcmp and shld patterns): Set athlon_decode to "vector".
12605         * i386.c (athlon_cost): New.
12606         (m_ATHLON): New.
12607         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
12608         x86_use_sahf): Set for Athlon.
12609         (x86_use_fiop): Unset for Athlon.
12610         (override_options): Define Athlon alignments and "athlon" name.
12611         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
12612         * i386.h (TARGET_ATHLON): New.
12613         (enum processor_type): Add PROCESSOR_ATHLON.
12614         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
12615         for CPU_DEFAULT==5
12616         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
12617
12618 1999-12-09  Andreas Jaeger  <aj@suse.de>
12619
12620         * loop.c (record_biv): Declare parameter as int.
12621
12622         * config/i386/i386-protos.h: Declare long_memory_operand.
12623
12624 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
12625
12626         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
12627         EXPR_WITH_FILE_LOCATION.
12628
12629 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
12630
12631         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
12632         in expander.
12633
12634         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
12635
12636         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
12637         updating code.
12638
12639 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
12640
12641         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
12642         default on linux64 again.
12643         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
12644         models for multilibing.
12645         * genmultilib: Accept | as alternative separator within a set in
12646         MULTILIB_OPTIONS.
12647
12648         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
12649
12650         * calls.c (precompute_arguments): Make sure initial_value contains
12651         value pseudo which CSE expects.
12652         * cse.c (struct set): New entry orig_src.
12653         (cse_insn): Set it early on entry, use it for libcall EQUIV note
12654         replacement.
12655
12656 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
12657
12658         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
12659
12660 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
12661
12662         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
12663
12664 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
12665
12666         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
12667         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
12668
12669         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
12670         if TARGET_ARCH32.
12671
12672         * longlong.h: Merge in changes from glibc.
12673         Also don't clobber %g2 register in 32bit SPARC assembly, so that
12674         -mno-app-regs libgcc can be compiled.
12675         * libgcc2.c: Add defines so that the updated longlong.h
12676         can be used in libgcc2.a. Also, make sure on most architectures
12677         (at least on all which have optimized code in longlong.h defined
12678         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
12679
12680 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12681
12682         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
12683         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
12684         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
12685         is GNU ld.
12686         * configure: Rebuilt.
12687
12688 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
12689
12690         * alpha.c (secondary_reload_class): For !BWX, sub-simode
12691         outputs require a register.
12692
12693 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
12694
12695         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
12696         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
12697         functions like dptoul will be resolved.
12698         (libgcc2.a): Make sure that the object files from DPBIT are named
12699         differently (prefix `_dp') from those that would be coming from
12700         FPBIT.
12701
12702 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
12703
12704         * configure.in: When target is sparc* and tm_file contains 64,
12705         test for 64bit support in assembler.  If not supported, remove
12706         sparc/t-sol2-64 from target-dependent Makefile fragments.
12707         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
12708         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
12709         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
12710         * acconfig.h (AS_SPARC64_FLAG): Added.
12711         * configure, config.in: Rebuilt.
12712         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
12713         support.  Use AS_SPARC64_FLAG.
12714
12715 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
12716
12717         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
12718         suitable for holding OFmode values so that gcc works with complex
12719         quad long doubles.
12720         (hard_64bit_mode_classes): Likewise.
12721
12722         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
12723         so that it is actually matched.
12724         (sethi_di_medlow): Likewise.
12725
12726         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
12727         as legitimate constant if -mvis.
12728         * config/sparc/sparc.md (movtf): Likewise.
12729         (clear_sf): Use const_double_operand.
12730         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
12731
12732         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
12733         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
12734         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
12735         routines, _Qp_* cannot be handled like that now.
12736         (INIT_TARGET_OPTABS): Likewise.
12737         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
12738         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
12739         sparc_emit_float_lib_cmp if ARCH64 and soft float.
12740         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
12741         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
12742         divtf3, sqrttf3): New expanders.
12743         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
12744         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
12745         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
12746         non-_hq patterns.
12747
12748         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
12749         * configure: Rebuilt.
12750         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
12751         -mcpu is given and we're doing 64bit compiles.
12752
12753 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
12754
12755         * loop.h (struct induction): Add multi_insn_incr.
12756         * loop.c (basic_induction_var): New multi_insn_incr argument.
12757         Set it if we search back through previous insns for the biv.
12758         (record_biv): New multi_insn_incr argument; fill in struct induction.
12759         (strength_reduce): Discard an iv with multiple bivs, any of
12760         which require multiple insns to increment.
12761
12762 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12763
12764         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
12765         documentation.
12766
12767 1999-12-06  David S. Miller  <davem@redhat.com>
12768
12769         * combine.c (check_promoted_subreg): Do not conditionalize this upon
12770         PROMOTE_FUNCTION_RETURN.
12771
12772 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
12773
12774         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
12775         and handle REG_UNUSED note on insn.
12776
12777         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
12778         inner_mask instead of mask.
12779
12780 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
12781
12782         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
12783         zero if there was an error.
12784
12785 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
12786
12787         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
12788         output string.
12789
12790         * longlong.h: Fix clobbers in SPARC asm statements.
12791
12792         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
12793         valid sethi operations when TARGET_ARCH64.
12794
12795         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
12796         always use move_by_pieces to avoid infinite recursion.
12797         (restore_fixed_argument_area): Likewise.
12798
12799         * combine.c (check_promoted_subreg, record_promoted_value): New
12800         functions.
12801         (combine_instructions): Use them to retain nonzero and sign bit
12802         information after SUBREGs are eliminated by optimizations in
12803         this pass if PROMOTE_FUNCTION_RETURN.
12804
12805         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
12806         .register declaration. Don't use variables with __ prefixes.
12807
12808 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12809
12810         * fold-const.c (optimize_bit_field_compare): Only use one mode
12811         for both RHS and LHS in non-constant case.
12812
12813 1999-12-06  Nathan Sidwell  <nathan@acm.org>
12814
12815         * frame.c (start_fde_sort): Only allocate erratic array, if
12816         linear one was allocated. Return allocated flag.
12817         (fde_insert): Only insert, if there's a valid array.
12818         (fde_end_sort): Split, sort and merge if linear and erratic
12819         arrays exist, else just sort linear one.
12820         (search_fdes): New function. Linear search through original fde
12821         structure.
12822         (frame_init): Permit multiple initializations. Cope with
12823         memory shortages.
12824         (find_fde): Fallback on linear search, if failed to sort array.
12825         (__deregister_frame_info): Only free sorted array, if we
12826         allocated it.
12827
12828 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
12829
12830         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
12831
12832 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
12833
12834         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
12835
12836 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
12837
12838         * tree.h (special_function_p): Declare.
12839         * calls.c (special_function_p): Make it global.  Don't take `name'
12840         as a parameter.  Fix typo in 1999-11-28 change.
12841         (expand_cal): Adjust.
12842
12843 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
12844
12845         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
12846         * tree.h (EXPR_WFL_FILENAME): Define in terms of
12847         EXPR_WFL_FILENAME_NODE.
12848         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
12849         the TREE_CHAIN.
12850         * print-tree.c (print_note): Print TREE_PRIVATE and
12851         TREE_PROTECTED.
12852
12853         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
12854         the original die cannot be found.
12855
12856         * varray.h (varray_head_tag): Add elements_used.
12857         (VARRAY_PUSH): New macro.
12858         (VARRAY_POP): Likewise.
12859         (VARRAY_TOP): Likewise.
12860         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
12861         types.
12862         * varray.c (varray_init): Initialize elements_used.
12863         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
12864         (INTEGRATE_H): New variable.
12865         (integrate.o): Depend on INTEGRATE_H.
12866         (unroll.o): Likewise.
12867
12868         * function.h (insert_block_after_note): Declare.
12869         * function.c (insert_block_after_note): Split out from ...
12870         (retrofit_block): ... here.
12871
12872         * stmt.c (expand_fixup): Fix typo in comment.
12873
12874 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12875
12876         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
12877         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
12878         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
12879         (regmove_optimize, fixup_match_1): Likewise.
12880
12881 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12882
12883         * flow.c (flow_loops_dump): Add missing argument when calling
12884         flow_loop_nested_p.
12885
12886 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
12887             Greg McGary  <gkm@gnu.org>
12888
12889         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
12890         (init_attributes): Add A_NO_LIMIT_STACK.
12891         (decl_attributes): Handle A_NO_LIMIT_STACK.
12892         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
12893         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
12894         Handle stack bounds checking.
12895         * flags.h (flag_stack_check): Use the word 'probe' rather than
12896         'check', because the flag doesn't actually cause any checking to
12897         be done.
12898         * function.c (expand_function_start): Set
12899         current_function_limit_stack.
12900         * function.h (struct function): Add limit_stack.
12901         (current_function_limit_stack): Define.
12902         * invoke.texi (Code Gen Options): Document new options.
12903         * rtl.h: Declare stack_limit_rtx.
12904         * toplev.c (stack_limit_rtx): New variable.
12905         (decode_f_option): Handle new options -fstack-limit-register=REG,
12906         -fstack-limit-symbol=IDENT, -fno-stack-limit.
12907         (main): Add stack_limit_rtx as GC root.
12908         * tree.h (DECL_NO_LIMIT_STACK): New macro.
12909         (struct tree_decl): New member no_limit_stack.
12910
12911         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
12912         stack_limit_rtx.
12913         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
12914         (conditional_trap+1): Get new mnemonic correct.
12915         (conditional_trap+2): New pattern for DImode traps.
12916
12917         * config/m68k/m68k.c (output_function_prologue): Handle
12918         stack_limit_rtx.
12919         * config/m68k/m68k.md (trap): New insn.
12920         (conditional_trap): New insn.
12921         * md.texi (Standard Names): Document `trap' and
12922         `conditional_trap'.
12923         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
12924         so a cc0 setter doesn't get emitted at some random place in the
12925         function.
12926
12927         * config/i960/i960.md (trap): New insn.
12928         (conditional_trap): New expander.
12929         (conditional_trap+1, conditional_trap+2): New insns for signed
12930         and unsigned cases.
12931         * config/i960/i960.c (i960_function_prologue): Use
12932         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
12933
12934 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
12935                           Geoffrey Keating  <geoffk@cygnus.com>
12936
12937         * flags.h (warn_padded, warn_packed): Add global var decls.
12938         * toplev.c (warn_padded, warn_packed): Add global var defns.
12939         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
12940         * stor-layout.c (layout_record): Add local variable `type'
12941         to hold often-used TREE_TYPE (field).  Add local variable
12942         `unpacked_align' to hold alignment that would be in force
12943         if no `packed' attribute were present.  Warn if `packed' attribute
12944         is unnecessary, or even harmful.  Warn when gcc inserts padding
12945         to satisfy alignment requirements of members.  Use NULL_TREE
12946         when checking whether var_size is set.
12947         * invoke.texi: Document new flags.
12948
12949 1999-12-03  Nathan Sidwell  <nathan@acm.org>
12950
12951         * frame.c (fde_split): Reimplement to avoid variable sized array.
12952
12953 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12954
12955         * combine.c (try_combine): Before fixing up LOG_LINKS for the
12956         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
12957
12958 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
12959
12960         * invoke.texi: Document the mips option -mno-crt0
12961
12962 1999-12-02  Mike Karr  <mkarr@mathworks.com>
12963
12964         * cccp.c (argdata): Added free_ptr member.
12965         (macroexpand): Initialize free_ptr of each argument. When an
12966         argument's buffers are freed, if the argument's free_ptr corresponds
12967         to a buffer on the input stack, then return the free_ptr to that stack
12968         frame, otherwise, free it.
12969         (macarg): If an argument begins and ends on the same input stack level,
12970         then transfer the free_ptr of that buffer to the argument in case
12971         the stack is popped during the processing of a subsequent argument.
12972
12973 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
12974
12975         * loop.c (note_reg_stored): New function.
12976         (struct note_reg_stored_arg): New structure.
12977         (try_copy_prop): Change to be more conservative; only replace within
12978         one extended basic block and stop replacing if a store to the
12979         replacement reg is seen.
12980
12981 1999-12-02  Nick Clifton  <nickc@cygnus.com>
12982
12983         * config/fp-bit.c: Initialise all fields of the NAN
12984         constants.
12985
12986         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
12987         to HANDLE_PRAGMA.
12988
12989 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
12990
12991         * i386.md (extend?f?f2): Force the input into a register, not
12992         the output.
12993
12994 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
12995
12996         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
12997         regclass' sake.
12998         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
12999         alternative because setting up 64bit constant is usually costly,
13000         especially when reload is in progress or completed.
13001         (movdf_const_intreg_sp64): Likewise.
13002         (movdf_const_intreg split): Fix building up constants when
13003         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
13004
13005 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
13006
13007         * combine.c (if_then_else_cond): Use const_true_rtx instead of
13008         const1_rtx for return values in EQ/NE comparison against (const_int 0)
13009         case.
13010
13011         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
13012         (asm_file_start): Emit .am33 into assembly file when compiling for
13013         the AM33.
13014         (print_operand_address): Handle POST_INC addresses.
13015         (can_use_return_insn, initial_offset): Check AM33 registers too.
13016         (expand_prologue): Check & save AM33 registers too.
13017         (expand_epilogue): Similarly.
13018         (secondary_reload_class): Handle AM33 specific secondary reloads.
13019         (output_tst): Emit efficient code for the AM33 too.
13020         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
13021         (TARGET_SWITCHES): Add -mam33 switch.
13022         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
13023         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
13024         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
13025         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
13026         (enum reg_class, REG_CLASS_NAMES): Likewise.
13027         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
13028         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
13029         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
13030         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
13031         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
13032         (HAVE_POST_INCREMENT): Define.
13033         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
13034         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
13035         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
13036         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
13037         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
13038         (zero_extend to SI from QI/HI): Likewise.
13039         (sign_extend to SI from QI/HI): Likewise.
13040         (mulsidi3, umulsidi3): New patterns for the AM33.
13041         (tstsi with zero extension from QI/HI): Add AM33 variants.
13042         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
13043         (return_internal_regs, store_movm): Handle new AM33 registers.
13044         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
13045         (LIBGCC, INSTALL_LIBGCC): Likewise.
13046         * invoke.texi: Document new flags.
13047
13048 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13049
13050         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
13051         (addsi3_carry): Likewise.
13052         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
13053         (sbbsi3_carry): Likewise.
13054         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
13055         (mulhi3): Likewise.
13056         (test?i_1): Ensure that only one operand is memory.
13057         (conditional move patterns): likewise.
13058         (shift and rotate patterns): Rewrite to expander, add
13059         "binary_operator_ok" to the condition.
13060
13061         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
13062         * i386.h (procesor_costs): Add movzbl_load field.
13063         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
13064         non-Q registers, accept DImode registers anywhere.
13065         (Q_CLASS_P): New.
13066         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
13067         * i386.c (*_cost): Set value for movxbl_load field.
13068
13069         * (addsi): New add to lea splitter.
13070         (ashlsi): Likewise.
13071         (lea to add/shift peep2): New.
13072
13073 1999-12-01  Mark Salter <msalter@cygnus.com>
13074
13075         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
13076         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
13077         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
13078
13079 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13080
13081         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
13082         * i386.md (movsi_xor): New.
13083         (movsi_or): New.
13084         (movsi_1, movhi_1, movqi_1): Remove.
13085         (movsi_2): Rename to movsi_1.
13086         (movhi_2): Rename to movhi_1.
13087         (movqi_2): Rename to movqi_1.
13088         (movdi_1): Remove; remove splitter.
13089         (movdi_2): Rename to movdi_1.
13090         (divmodsi4 splitter): Do not emit clobbers for move patterns.
13091         (long move peep2): Do not create QI or HI mode mov0s
13092         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
13093
13094         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
13095         rewrite splitters.
13096
13097         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
13098         (abs?f2_if): Likewise.
13099
13100 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
13101
13102         * ggc.h (ggc_test_and_set_mark): New macro.
13103         (ggc_mark_rtx): Use ggc_test_and_set_mark.
13104         (ggc_mark_tree): Likewise.
13105         (ggc_mark_rtvec): Likewise.
13106         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
13107
13108 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
13109
13110         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
13111         containing types.
13112         (decl_scope_table): Just an array of trees now.
13113         (push_decl_scope): Simplify.
13114         (dwarf2out_init): Adjust.
13115         (local_scope_p): New fn.
13116         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
13117         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
13118         (gen_typedef_die): Likewise.
13119         (gen_lexical_block_die): Don't call push/pop_decl_scope.
13120         (gen_inlined_subroutine_die): Likewise.
13121         (gen_abstract_function): Set current_function_decl temporarily.
13122         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
13123         Handle block extern declarations.  Don't call push/pop_decl_scope.
13124         (gen_decl_die): Fix logic for block externs.
13125
13126 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13127
13128         * calls.c (special_function_p): Remove `realloc' and add `strdup'
13129         to the list of functions which have attribute malloc by default.
13130
13131 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13132
13133         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
13134         integer constant does not match the traditional type, limit the
13135         warnings to cases where the base of the type is ten.
13136
13137         * invoke.texi (-Wtraditional): Document it.
13138
13139 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13140
13141         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
13142         * rs6000.md: Only access a CONST_INT with INTVAL
13143
13144 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
13145
13146         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
13147         (compute_nearerout): Likewise.
13148         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
13149         size_t to unsigned long for formatting.
13150
13151 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
13152
13153         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
13154         Allow the user to override call-used/fixed state of %g2-5
13155         registers from the command line (with the exception of %g4 for
13156         embedded model).
13157         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
13158         there is a higher chance of having a leaf function.
13159         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
13160         for ARCH64 which has %ccr register.
13161         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
13162         patterns.
13163         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
13164         insn accept into delay slot any insn which does not use %[ol]
13165         registers.  Accept some LO_SUM and shift left by 1 for the normal
13166         restore case.
13167         (output_function_epilogue): Likewise.
13168         (epilogue_renumber): Added argument which inhibits any renumbering
13169         and just tests if the rtx does not use any %[ol] registers.
13170         (output_return): Reflect above change.
13171
13172 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
13173
13174         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
13175         aggregate passing for sizes <= 16 bytes.
13176
13177 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
13178
13179         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
13180         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
13181         * reload.c (find_dummy_reload): Likewise.
13182         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
13183         * reload1.c (reload_as_needed): Likewise.
13184         * stupid.c (stupid_find_reg): Likewise.
13185         * tm.texi (Obsolete Register Macros): Delete section.
13186         * gmicro.h: Remove all traces of the two macros.
13187         * i386.h: Likewise.
13188         * m88k.h: Likewise.
13189         * mips.h: Likewise.
13190
13191 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
13192
13193         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
13194         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
13195         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
13196         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
13197         units for the sparclite86x chip.
13198         (flush): Revert October 14th change; add SImode specifically.
13199         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
13200         * invoke.texi: Document it.
13201
13202 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
13203
13204         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
13205         psimode_truncation_operand.
13206
13207         * config/mn10200/mn10200.c (psimode_truncation_operand): New
13208         function.  Return true if the operand is either a MEM valid
13209         for a PSImode address or not a MEM at all.
13210
13211         * config/mn10200/mn10200.md (truncsipsi2): Use
13212         psimode_truncation_operand.
13213
13214 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13215
13216         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
13217         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
13218         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
13219         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
13220         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
13221         (flow_loop_level_compute, low_loops_level_compute): Likewise.
13222         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
13223         * basic-block.h: Protect from multiple inclusion.
13224         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
13225         (struct loops, struct loop): Define structures.
13226         * sbitmap.c (sbitmap_a_subset_b_p): New function.
13227         * sbitmap.h: Protect from multiple inclusion.
13228         (sbitmap_a_subset_b_p): Add prototype.
13229         * Makefile.in (LOOP_H): New macro.
13230         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
13231
13232 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
13233
13234         * cppinit.c (CAT): The argument list of this macro may not contain
13235         spaces !
13236
13237 1999-11-29  David S. Miller  <davem@redhat.com>
13238
13239         Move quantity tables and register equivalence chains into
13240         per-qty and per-register structure arrays respectively.
13241         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
13242         qty_const_insn, qty_comparison_code, qty_comparison_const,
13243         qty_comparison_qty): Delete, replace with...
13244         (qty_table): this structure table.
13245         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
13246         (reg_eqv_table): this structure table.
13247         (make_new_qty): Add argument MODE.  Caller updated.
13248         Update to use qty_table and reg_eqv_table.
13249         (make_regs_eqv, delete_reg_equiv, insert_regs,
13250         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
13251         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
13252         cse_process_notes, cse_main, cse_basic_block): Likewise.
13253
13254 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13255
13256         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
13257         operation if C is negative.
13258         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
13259         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
13260         law for some divisions if constant is negative and change other
13261         divisions to the opposite rounding.
13262
13263         * expr.c (store_constructor_field): If bit position is not multiple
13264         of alignment of TARGET's mode, use BLKmode.
13265
13266         * expr.c (expand_expr_unaligned): Add more code from full case
13267         that is needed when OP0 is in a register.
13268
13269 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13270
13271         * dwarfout.c (field_byte_offset): Size can be zero if there was
13272         an error.
13273
13274 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
13275
13276         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
13277         (associate_trees): Delete unused var TEM.
13278         (extract_muldiv): Delete unused var CANCEL_P.
13279
13280         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
13281         (target_isinf, target_isnan, target_negative): Add return types to
13282         function definitions.
13283
13284 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
13285
13286         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
13287         * fixinc/hackshell.tpl: ditto
13288         * fixinc/fixtests.c(double_slash_test): more C++ header testing
13289         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
13290
13291 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
13292
13293         * reload.c (push_reload): When looking for a register to put into
13294         reg_rtx, make sure all hard regs in a multi-reg register are in the
13295         right class and nonfixed.
13296
13297         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
13298         pending_read_insns, pending_write_insns, pending_read_mems,
13299         pending_write_mems, pending_list_length, last_pending_memory_flush,
13300         last_function_call, sched_before_next_call): Move static variables
13301         into a structure.
13302         (bb_ prefixed versions): Replace with single array bb_deps.
13303         (struct deps): New structure.
13304         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
13305         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
13306         argument of type "struct deps *"; use that instead of global
13307         variables.  All callers changed.
13308         (init_rgn_data_dependencies): Delete function.
13309         (init_rtx_vector): Delete function.
13310         (init_deps): New function.
13311
13312         (free_pending_lists): Simplify, we always use the bb_deps array even
13313         if only one basic block.
13314         (compute_block_backward_dependences): Likewise.
13315         (schedule_region): Likewise.
13316
13317         (propagate_deps): New function, broken out of
13318         compute_block_backward_dependences.
13319         (compute_block_backward_dependences): Use it.
13320
13321         * alpha.md: Delete useless patterns that tried to work around
13322         register elimination problems.
13323
13324         * unroll.c (loop_iterations): Don't abort if iteration variable
13325         was made by loop.
13326
13327         From Joern Rennecke:
13328         * reload1.c (reloads_conflict): Reverse test comparing operand
13329         numbers when testing for conflict between output/outaddr reloads.
13330
13331 1999-11-29  David S. Miller  <davem@redhat.com>
13332
13333         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
13334         arg.
13335         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
13336
13337 1999-11-28  Robert Lipe  <robertl@cygnus.com>
13338
13339         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
13340         table from .fini into .dtor.
13341
13342 1999-11-28  Anthony Green  <green@cygnus.com>
13343
13344         * tree.h (struct tree_decl): Add malloc_flag.
13345         (DECL_IS_MALLOC): Define.
13346         * c-common.c (attrs): Add A_MALLOC attribute.
13347         (init_attributes): Add this attribute to the table.
13348         (decl_attributes): Handle malloc attribute.
13349         * calls.c (special_function_p): Check for the malloc attribute.
13350         * extend.texi (Function Attributes): Document malloc attribute.
13351
13352 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
13353
13354         * pa.md (reload shift-add patterns): Remove.
13355
13356 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13357
13358         * reorg.c (dbr_schedule) Print more statistics. Corrected
13359         problem when printing info when 3 delay slots are filled.
13360
13361 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
13362
13363         * combine.c (setup_incoming_promotions): Pass an outgoing
13364         regno to FUNCTION_ARG_REGNO_P which it expects.
13365
13366 1999-11-28  Andreas Jaeger  <aj@suse.de>
13367
13368         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
13369
13370 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
13371
13372         * cccp.c (do_include): Avoid initialization of automatic variable.
13373
13374         * integrate.c (mark_stores): Function definition made void, to match
13375         previous declaration.
13376         * regclass.c (dump_regclass): Ditto.
13377         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
13378
13379 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13380
13381         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
13382         known to be multiple of divisor.
13383
13384         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
13385
13386         * combine.c (try_combine): Add code to try to merge a set of a
13387         two-word pseudo to a constant with a setting of one of those words
13388         to a constant.
13389
13390         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
13391         (split_tree): Completely rework to make more general.
13392         (make_range, fold): Call negate_expr.
13393         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
13394         (fold, associate): Call new split_tree and associate_trees.
13395         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
13396
13397 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
13398
13399         * loop.c (try_copy_prop): Avoid GNU C extension.
13400
13401 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
13402
13403         * except.c (init_eh_for_function): Still zero eh_return_context,
13404         eh_return_stack_adjust, and eh_return_handler.
13405
13406         * except.h (eh_status): Adjust documentation for x_protect_list.
13407         (begin_protect_partials): New function.
13408         * except.c (enqueue_eh_entry): Fix formatting.
13409         (get_first_handler): Add consistency check.
13410         (add_partial_entry): Adjust usage of protect_list.
13411         (emit_cleanup_handler): Save and restore ehqueue.
13412         (expand_start_all_catch): Add comment.
13413         (begin_protect_partials): New function.
13414         (end_protect_partials): Adjust usage of protect_list.
13415         (init_eh_for_function): Use xcalloc.
13416
13417 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13418
13419         * c-common.c (check_format_info): Don't call a variadic function
13420         with a non-literal format string.
13421
13422         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
13423
13424         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
13425         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
13426         Likewise.
13427
13428         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
13429         Likewise.
13430
13431         * collect2.c (collect_wait): Likewise.
13432
13433         * dbxout.c (dbxout_type): Likewise.
13434
13435         * gcc.c (do_spec_1): Likewise.
13436
13437         * genemit.c (gen_insn, gen_expand): Likewise.
13438
13439         * genrecog.c (write_switch, write_subroutine): Likewise.
13440
13441         * mips-tfile.c (catch_signal, botch): Likewise.
13442
13443         * print-rtl.c (print_rtx): Likewise.
13444
13445         * toplev.c (default_print_error_function, report_error_function,
13446         _fatal_insn): Likewise.
13447
13448 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
13449
13450         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
13451
13452 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13453
13454         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
13455         operations when needed.
13456         * i386.md (fop_?f_comm): New.
13457         (fop_?f_1): Do not accept commutative operands.
13458
13459 1999-11-25  Andreas Jaeger  <aj@suse.de>
13460
13461         * config/mips/mips.md (casesi_internal): Add missing brace.
13462
13463 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
13464
13465         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
13466         (splice_child_die): Handle moving a child DIE from the declaration
13467         DIE of a class to its specification.
13468         (gen_struct_or_union_type_die): Use 'complete' consistently.
13469         (gen_decl_die): Generate the virtual context DIE first.
13470         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
13471
13472 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
13473
13474         * config/mips/mips.md (call_value_multiple_interanal1): New.
13475
13476 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
13477
13478         * dwarf2out.c (free_AT, free_die): New fns.
13479         (remove_children): Call them.
13480         (output_line_info): Disable removal of duplicate notes.
13481
13482         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
13483         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
13484         means pretend the type isn't defined.
13485         Don't defer emitting types.
13486         (gen_type_die_for_member): New fn.
13487         (gen_decl_die): Call it.
13488         (splice_child_die): New fn.
13489         (gen_member_die): Call it rather than generate duplicate dies.
13490
13491         Defer emitting information for the abstract instance of an inline
13492         until we either inline it or emit an out-of-line copy.
13493         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
13494         from output_inline_function if DECL_ABSTRACT is also set.
13495         (block_ultimate_origin): Likewise.
13496         (gen_abstract_function): New fn.
13497         (gen_decl_die, gen_inlined_subroutine_die): Call it.
13498         (gen_subprogram_die):  An abstract instance is not a declaration
13499         just because it doesn't match current_function_decl.  Don't abort
13500         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
13501         has an abstract origin.
13502         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
13503         abstract instance here.
13504
13505 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
13506
13507         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
13508         where we need to reload fpul from a system register.
13509
13510 1999-11-24  Andreas Jaeger  <aj@suse.de>
13511
13512         * config/mips/linux.h (CPP_PREDEFINES): Added.
13513         (LINK_SPEC): Remove -Y since this is only needed on sparc.
13514
13515 1999-11-24  Andreas Jaeger  <aj@suse.de>
13516
13517         * config/mips/linux.h (TARGET_VERSION): Added.
13518         (HANDLE_SYSV_PRAGMA): Added.
13519         (DEFAULT_VTABLE_THUNKS): Added.
13520
13521 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13522
13523         * local-alloc.c (qty): New structure and static variable.
13524         (qty_phys_reg): Remove, all references changed to qty.
13525         (qty_n_refs): Likewise.
13526         (qty_min_class): Likewise.
13527         (qty_birth): Likewise.
13528         (qty_death): Likewise.
13529         (qty_size): Likewise.
13530         (qty_mode): Likewise.
13531         (qty_n_calls_crossed): Likewise.
13532         (qty_alternate_class): Likewise.
13533         (qty_changes_size): Likewise.
13534         (qty_first_reg): Likewise.
13535         (alloc_qty): Rename variable QTY to QTYNO.
13536         (finf_free_reg): Likewise.
13537         (local_alloc): Allocate qty, do not allocate the removed variables.
13538
13539 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
13540
13541         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
13542         when -membedded-pic is passed.
13543
13544         * config/mips/mips.md (casesi): Handle 64-bit case too.
13545         (casesi_internal_di): New insn.
13546
13547         * config/mips/mips.c (embedded_pic_offset): Always make the
13548         embedded-pic subtractions relative to the name of the current
13549         function by use of the magic string "..CURRENT_FUNCTION".
13550         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
13551
13552 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
13553
13554         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
13555         of (const_int 0), when what we really care about is
13556         whether it's a zero constant anyway.
13557         (div_trap_mips16): Likewise.
13558
13559 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
13560
13561         * loop.c (loop_optimize): Always find_loop_tree_blocks and
13562         unroll_block_trees when generating debuggable code.
13563
13564         * tree.h (unsave_expr_1): New function.
13565         (lang_unsave): New variable.
13566         (get_callee_fndecl): New function.
13567         * tree.c (unsave_expr_now_r): New function.
13568         (lang_unsave): Define.
13569         (unsave_expr_1): Likewise.
13570         (unsave_expr_now_r): Split out from unsave_expr_now.
13571         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
13572         call unsave_expr_now_r.
13573         (get_callee_fndecl): Define.
13574
13575         * Makefile.in (gencheck): Don't depend on lang_tree_files.
13576         (gencheck.o): Do depend on lang_tree_files.
13577
13578         * integrate.h (copy_decl_for_inlining): New declaration.
13579         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
13580         (copy_decl_for_inlining): New function.
13581         (integrate_parm_decls): Use it.
13582         (integrate_decl_tree): Likewise.
13583
13584 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
13585
13586         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
13587         the second two from the first.
13588         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
13589         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
13590         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
13591         ISA_HAS_FP4.
13592         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
13593         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
13594         ISA_HAS_FP4.
13595
13596 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
13597
13598         * pa.md (call_internal_symref, call_value_internal_symref): No mode
13599         needed on the address operand.
13600         * pa.c (call_operand_address): Check for the correct mode.
13601
13602 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
13603
13604         * loop.c: Include "basic-block.h".
13605         (try_copy_prop, replace_loop_reg): New functions.
13606         (load_mems): Detect registers that just hold copies of the hoisted
13607         mem, and call try_copy_prop to eliminate them.
13608         * Makefile.in (loop.o): Update dependencies.
13609
13610 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
13611
13612         * Makefile.in (gencheck.o): Depend on gencheck.h.
13613         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
13614         (insn-peep.o): Depend on except.h and function.h.
13615         (insn-attrtab.o): Depend on RECOG_H.
13616         (insn-output.o): Depend on toplev.h and flags.h.
13617         (gengenrtl.o): Depend on real.h.
13618         (gen-protos.o): Depend on cpplib.h and cpphash.h.
13619         Unify all dependencies to be on RECOG_H rather than recog.h.
13620
13621 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13622
13623         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
13624         * configure.in: Try building a bi-arch 32/64-bit compiler on
13625         sparc-*-solaris2.7 and higher.
13626         * configure: Rebuild.
13627
13628 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
13629
13630         * config/freebsd.h: New, FreeBSD architecture independent file.
13631         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
13632         independent pieces.
13633         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
13634         directly by i386/freebsd.h.
13635         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
13636         independent configuration file.
13637         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
13638         directly by i386/freebsd.h.
13639         * configure: Rebuilt.
13640
13641         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
13642         which is in the user's namespace.
13643         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
13644         `i386' which is not in our namespace.
13645
13646 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
13647
13648         * invoke.texi (ARM Options): Add in -mno-alignment-traps
13649
13650 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
13651
13652         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
13653         (add_dwarf_attr, add_child_die): Just push onto the front.
13654         (reverse_die_lists): New fn.
13655         (add_sibling_attributes): Use it.
13656         (push_decl_scope): Reorganize.
13657         (add_name_and_src_coords_attributes): Don't set file and line for
13658         an artificial decl.
13659         (gen_subprogram_die): An artificial function doesn't need to match
13660         file and line.
13661         (gen_compile_unit_die): Return the generated die.  Only add
13662         AT_comp_dir if the filename is relative.
13663         (remove_AT): Simplify loop.  Also free string values.
13664         (output_die): A DIE ref can't be null.
13665         (output_value_format, value_format): Take a dw_attr_ref.
13666         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
13667         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
13668         AT_addr, AT_lbl): New fns.
13669         (various): Use them.
13670         (various): Constify.
13671
13672 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13673
13674         * combine.c (combine_simplify_rtx): When handling a SUBREG,
13675         take SUBREG_WORD into account.
13676         (if_then_else_cond): Likewise.
13677
13678 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
13679
13680         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
13681         clause from BSD license, pursuant with
13682
13683           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
13684
13685 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
13686
13687         * loop.c (load_mems): Reformat slightly.
13688         * basic-block.h (regset_head): New typedef.
13689         (INIT_REG_SET): New macro.
13690
13691 1999-11-22  Bruce Korb  <autogen@linuxbox.com
13692
13693         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
13694         (mips-dec-bsd*): non-functional code
13695         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
13696
13697         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
13698         added three replacement fixes
13699         (no_double_slash): removed comments that are not (any longer) pertinent
13700         (bad_lval): this fix currently runs against many files.
13701         The comment seems to indicate that we should select for files
13702         containing 'pragma extern_prefix'.
13703
13704         * fixinc/fixinc.x86-linux-gnu: deleted
13705         * fixinc/inclhack.sh:  regen
13706         * fixinc/fixincl.x:  regen
13707         * fixinc/fixincl.sh:  regen
13708
13709 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
13710
13711         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
13712         its code is INSN and it has no notes.
13713
13714 1999-11-22  Andrew Haley  <aph@cygnus.com>
13715
13716         * varasm.c (function_defined): Remove.
13717         (make_function_rtl): Don't set function_defined.
13718         (make_decl_rtl): Remove global register warning.
13719         * regclass.c (no_global_reg_vars): New variable.
13720         (globalize_reg): Warn if function has already been defined.
13721         (regclass_init): Set no_global_reg_vars.
13722
13723 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13724
13725         * regclass.c (reg_pref): New structure and static variable
13726         (prefclass): Delete.
13727         (altclass): Delete.
13728         (all uses of prefclass and altclass): Use reg_pref instead.
13729
13730 1999-11-21  Nick Clifton  <nickc@cygnus.com>
13731
13732         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
13733         -malignment-traps.
13734         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
13735         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
13736         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
13737
13738 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
13739
13740         * varasm.c (output_constructor): Solve problem with long long
13741         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
13742
13743 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13744
13745         * global.c (allocno): New structure and static variable.
13746         (allocno_reg): Remove, all references replaced by allocno.
13747         (allocno_size): Likewise.
13748         (hard_reg_conflicts): Likewise.
13749         (hard_reg_preferences): Likewise.
13750         (hard_reg_copy_preferences): Likewise.
13751         (hard_reg_full_preferences): Likewise.
13752         (regs_someone_prefers): Likewise.
13753         (allocno_calls_crossed): Likewise.
13754         (allocno_n_refs): Likewise.
13755         (allocno_live_length): Likewise.
13756         (find_reg): Rename ALLOCNO to NUM.
13757
13758         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
13759         references updated.
13760         (may_move_out_cost): New variable.
13761         (init_reg_sets_1): Initialize may_move_out_cost.
13762         (record_reg_classes): Use may_move_out_cost.
13763
13764         * regclass.c (dump_regclass): New function.
13765         (regclass): New parameter DUMP, call DUMP_REGCLASS.
13766         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
13767         pass rtl_dump_file to regclass.
13768         * rtl.h (regclass): Update prototype.
13769
13770 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13771
13772         * i386.md (neg, not and abs patterns): Revmap to use
13773         ix86_expand_unary_operator and ix86_unary_operator_ok.
13774         (add?f and sub?f expanders): Force operand 1 to register.
13775         * i386.c (ix86_expand_unary_operator): Rewrite.
13776         (ix86_unary_operator_ok): Ensure that memory operands
13777         match real opcode.
13778         (ix86_binary_operator_ok): Do not allow operand 1 to
13779         come into memory and operand 0 not.
13780         (ix86_expand_binary_operator): Ensure that
13781         src1 is not non-matching memory.
13782
13783         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
13784         to support integer registers and memory.
13785         (abss?2_integer): Likewise.
13786
13787         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
13788         (REG_CLASS_NAMES): Likewise.
13789         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
13790         and GENERAL_REGS.
13791         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
13792         (movsf): Likewise; unify 4th and 5th alternative.
13793         (pushdf): Likewise.
13794         (movdf_1): Likewise; rename to movdf_integer.
13795         (pushxf): Likewise; rename to pushxf_integer; fix output template;
13796         remove redundant splitter.
13797         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
13798         (movdf_nointeger): New.
13799         (movxf_nointeger): New.
13800         (pushxf_nointeger): New.
13801
13802         * i386.md (extend?f?f): Split to expander and pattern, refuse two
13803         memory operands in patterns.
13804         (fop*): Refuse two memory operands.
13805
13806         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
13807         on !TARGET_USE_CLTD CPUs.
13808
13809 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
13810
13811         * extend.texi: Document C++ restricted pointers and references.
13812
13813 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
13814
13815         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
13816         (invalidate_skipped_set): Call it unconditionally.
13817         (cse_set_around_loop): Likewise.
13818
13819 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
13820
13821         * rtl.texi (mem): Add documentation for alias-set argument
13822         to RTX `mem'.
13823
13824 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13825
13826         * i386.h (struct_processor_costs): New fields int_load, int_store,
13827         fp_move, fp_load and fp_store
13828         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
13829         fp->int moves
13830         (MEMORY_MOVE_COST): New macro.
13831         * i386.c (386_cost): Define new fields.
13832         (i486_cost): Likewise.
13833         (pentium_cost): Likewise.
13834         (pentiumpro_cost): Likewise.
13835         (k6_cost): Likewise.
13836
13837 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
13838                           Geoffrey Keating  <geoffk@cygnus.com>
13839
13840         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
13841
13842         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
13843         MASK_ALIGN_INT.
13844
13845         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
13846         (TARGET_STRICT_ALIGNMENT): New macro.
13847         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
13848         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
13849         * invoke.texi (M680x0 Options): Document -mstrict-align.
13850
13851 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
13852                           Richard Henderson  <rth@cygnus.com>
13853
13854         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
13855         (ix86_split_long_move): Declare.
13856         * i386.c (split_xf, ix86_split_movdi): Remove.
13857         (ix86_split_to_parts, ix86_split_long_move): New.
13858         * i386.md (dimode move splitters): Use ix86_split_long_move.
13859         (dfmode move splitters): Likewise.
13860         (xfmode move splitters): Likewise.
13861         (movsf_1): Allow F->r.
13862         (movdf_1, movxf_1): Allow F->ro.
13863
13864 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
13865
13866         * except.h (struct eh_entry): Add goto_entry_p.
13867         (eh_region_from_symbol): Remove prototype.
13868         * except.c (find_func_region_from_symbol): New function.
13869         (emit_cleanup_handler): Likewise.
13870         (eh_region_from_symbol): Make it static.
13871         (add_new_handler): Verify the argument.
13872         (find_func_region): Update comment.
13873         (expand_eh_region_end): Expand handlers here, rater than waiting
13874         until expand_leftover_cleanups or start_all_catch.
13875         (expand_leftover_cleanups): Don't expand here.
13876         (expand_start_all_catch): Or here.
13877         (expand_rethrow): Check the return value from find_func_region.
13878         * function.c (expand_function_end): Emit the catch_clauses.
13879
13880 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
13881
13882         * integrate.c (expand_inline_function): Add necessary check for NULL.
13883
13884 1999-11-18  Nick Clifton  <nickc@cygnus.com>
13885
13886         * toplev.c (main): Correctly detect an unrecognised option.
13887
13888         * cppinit.c (cpp_handle_option): Do not claim to have consumed
13889         a -f option if it has not been recognised.
13890
13891 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
13892
13893         * basic-block.h (update_life_extent): Remove trailing comma on
13894         enumeration type list.
13895
13896 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13897
13898         * varasm.c (output_constructor) Solved problem with long long
13899         bitfields. Corrected calculating this_time and shift. Also
13900         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
13901
13902 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
13903
13904         * flow.c (split_edge): Take looping structure into account when
13905         determining where to put the new block note.
13906
13907 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
13908
13909         * Makefile.in (ggc-none.o): Provide host specific version if
13910         needed.
13911
13912 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
13913
13914         * cse.c (delete_trivially_dead_insns): Identify no-op insns
13915         containing subregs too.
13916
13917 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
13918
13919         * invoke.texi: Add documentation for -muninit-const-in-rodata.
13920         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
13921         (TARGET_UNINIT_CONST_IN_RODATA): Define.
13922         (text_section): Add switches -munint-const-in-rodata and
13923         -mno-uninit-const-in-rodata.
13924         (ASM_OUTPUT_COMMON): Remove.
13925         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
13926         const objects should be placed in read-only data. Otherwise declare
13927         them in common.
13928
13929 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
13930
13931         * jump.c (jump_optimize_1): Revert last change.
13932
13933 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
13934
13935         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
13936         test if optimizing for size.
13937
13938 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
13939
13940         * Makefile.in (toplev.o): Depend on except.h.
13941         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
13942
13943 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13944
13945         * i386.md (divmodsi4): Rewrite to expander.
13946         (*divmodsi4_nocltd): New.
13947         (*divmodsi4_cltd): New.
13948         (divmodsi4 splitter): Handle the case when input comes in edx.
13949         (udivmodhi4): Do not use constraints in exander.
13950         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
13951
13952 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
13953
13954         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
13955         for the common case.
13956
13957 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
13958
13959         * explow.c (hard_function_value): Add outgoing argument.
13960         * expr.h (hard_function_value): Declare it.
13961         * calls.c (expand_call, emit_library_call_value): Update callers.
13962         * function.c (aggregate_value_p): Ditto.
13963         (diddle_return_value): Must look at the outgoing registers
13964         on archs with register windows.
13965
13966 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
13967
13968         * alpha.c (alpha_build_va_list): Use make_lang_type and
13969         initialize TYPE_NAME for the va_list record.
13970
13971         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
13972
13973         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
13974         for printing.
13975         * ggc.h (struct ggc_statistics): Rearrange elements for better
13976         packing on 64-bit hosts.
13977         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
13978         (compute_nearerout): Likewise.
13979
13980 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
13981
13982         * config/rs6000/rs6000.c (first_reg_to_save): Save
13983         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
13984
13985 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
13986
13987         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
13988         notion of nesting to find the DIE for a type or function.
13989         DIEs can go in limbo even if we got a context_die.
13990         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
13991         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
13992         for local type.
13993         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
13994         (gen_type_die): Writing out the context doesn't cause member class
13995         template instantiations to be written out as well.
13996
13997 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
13998
13999         * rs6000.h (ASM_OUTPUT_DEF): New.
14000         Based on proposed addition from David Edelsohn.
14001
14002 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
14003             Bruce Korb  <autogen@linuxbox.com>
14004
14005         * fixinc/inclhack.def
14006         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
14007         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
14008                 in net/inet.h.
14009         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
14010         (svr4_endian): enabled with SVR5
14011         (svr4_mkdev): simplified syntax and enabled with SVR5
14012
14013 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
14014
14015         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
14016         * configure: Rebuilt.
14017         * config/t-freebsd-thread: New file.
14018
14019 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
14020
14021         * i386.c (ix86_decompose_address): Verify the base is a REG
14022         before trying to examine its register number.
14023
14024         * basic-block.h: Remove all #defines and prototypes related to
14025         integer lists.
14026         (free_bb_mem, compute_preds_succs): Remove prototype.
14027         * rtl.h (free_bb_mem): Remove prototype.
14028         * flow.c (alloc_int_list_node); Remove function.
14029         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
14030         (compute_preds_succs, free_bb_mem): Likewise.
14031         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
14032         * toplev.c (rest_of_compilation): Likewise.
14033         * haifa-sched.c (build_control_flow): Use flow generated edge
14034         list to build the haifa specific edge list.
14035         (find_rgns): Use new CFG data structures instead of pred/succ lists.
14036         (schedule_insns): Do not build pred/succ lists anymore.  Instead
14037         build the edge table.
14038
14039         * basic-block.h (dump_bb_data): Remove declaration.
14040         * flow.c (dump_bb_data): Remove function.
14041         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
14042         (sbitmap_union_of_predsucc): Likewise.
14043
14044         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
14045         argument.  All callers changed.
14046         (delete_null_pointer_checks_1): No longer need to compute the
14047         pred/succ lists.
14048
14049         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
14050         All callers changed.
14051         (pre_expr_reaches_here_p_work): Likewise.
14052         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
14053         * lcm.c (compute_laterin): Fix initialization of LATER.
14054         (compute_nearerout): Similarly for NEARER.
14055
14056 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14057
14058         * cse.c (set_nonvarying_address_components): Delete unused function.
14059         (refers_to_p): Likewise.
14060
14061 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
14062
14063         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
14064         needed.
14065
14066 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14067
14068         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
14069         definition in do while (0).
14070
14071 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
14072
14073         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
14074
14075 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
14076
14077         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
14078
14079 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
14080
14081         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
14082         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
14083         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
14084         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
14085
14086         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
14087         saved on the stack.  Output more accurate stack frame statistics
14088         into assembler file.
14089
14090 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
14091
14092         * genextract.c (record_insn_name): New function.
14093         (get_insn_name): No longer a stub.
14094         (main): Call record_insn_name for each insn.  After each label
14095         written, print the insn name in a comment.
14096
14097 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14098
14099         * output.h (const_section, init_section, fini_section): Add
14100         prototypes.
14101
14102         * alpha/elf.h (const_section): Delete declaration.
14103
14104         * svr4.h (const_section): Likewise.
14105
14106 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
14107
14108         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
14109         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
14110         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
14111         expressions.
14112         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
14113         variable-sized array bounds.
14114
14115 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
14116
14117         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
14118         ASM_OUTPUT_LABEL.
14119
14120 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14121
14122         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
14123         addresses the same way GO_IF_LEGITIMATE_INDEX does.
14124
14125 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14126
14127         * cse.c (hash_arg_in_struct): Delete.
14128         (struct table_elt): Delete elt in_struct.
14129         (struct set): Delete elt src_in_struct.
14130         (merge_equiv_classes): Don't set either hash_arg_in_struct or
14131         the corresponding in_struct elts.
14132         (canon_hash): Likewise.
14133         (safe_hash): Likewise.
14134         (find_best_addr): Likewise.
14135         (record_jump_cond): Likewise.
14136         (cse_insn): Likewise.
14137
14138 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
14139
14140         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
14141
14142         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
14143         unsigned types.
14144
14145 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
14146
14147         * function.c (diddle_return_value): Put back check that the DECL_RTL
14148         for the function is a register.
14149
14150         * function.c (diddle_return_value): Use hard_function_value to
14151         get an rtx suitable for use in the USE/CLOBBER insn.
14152
14153         * global.c (global_conflicts): Update comments.
14154         (record_conflicts): No need to record conflicts between pseudos here.
14155
14156 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
14157
14158         * fixinc/fixincl.c: Added verbose levels for status messages
14159
14160 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14161
14162         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
14163         operand as argument to expand_and or expand_binop.
14164
14165 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
14166
14167         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
14168         gcc_add_string_root.
14169
14170 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
14171
14172         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
14173
14174 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
14175
14176         * flow.c (compute_flow_dominators): Initially put all blocks on
14177         the worklist.
14178         * lcm.c (compute_antinout_edge, compute_available): Similarly.
14179         * gcse.c (compute_cprop_avinout): Remove.
14180         (compute_cprop_data): Use compute_available.
14181         (delete_null_pointer_checks_1): Use compute_available.
14182
14183         * basic-block.h (compute_available): Returns a void now.
14184         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
14185         to return a value anymore.
14186         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
14187         worklists.  Fix boundary cases. Compute maximal solutions.
14188         (compute_laterin, compute_nearerout): Similarly.
14189
14190         * dwarf2out.c (add_AT_location_description): Allow
14191         (mem (plus (pseudo) (...)) too.
14192
14193 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
14194
14195         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
14196
14197 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
14198                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14199
14200         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
14201
14202         * gansidecl.h: Likewise.
14203
14204         * rtl.c: Likewise.
14205
14206         * rtl.h: Likewise.
14207
14208         * toplev.h: Likewise.
14209
14210         * tree.c: Likewise.
14211
14212         * tree.h: Likewise.
14213
14214         * varray.c: Likewise.
14215
14216         * varray.h: Likewise.
14217
14218 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
14219
14220         * gcov.c (struct arcdata): Add hits and total, remove prob.
14221         (output_branch_counts): New.
14222         (process_args): Set output_branch_counts if -c.
14223         (calculate_branch_probs): Store hits and total instead of
14224         percentage.
14225         (output_data): Emit counts if output_branch_counts is true.
14226         * gcov.texi (Invoking Gcov): Document -c switch..
14227
14228 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
14229
14230         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
14231         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
14232
14233 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
14234
14235         * invoke.texi (C Dialect Options): Add missing builtins from
14236         c-common.c to list.
14237         * extend.texi (Other Builtins): Copy to this list.
14238
14239 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14240
14241         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
14242         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
14243         redundant bitmap.h.
14244
14245 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
14246
14247         * flow.c (compute_flow_dominators): No longer treat basic block 0
14248         or (n_basic_blocks - 1) specially.  Clear the AUX field before
14249         starting computation of doms/pdoms.  Fix initial state for pdoms.
14250
14251 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14252
14253         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
14254         match rtl.o's: added ggc.h and toplev.h
14255         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
14256         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
14257         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
14258
14259 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
14260
14261         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
14262         from HAVE_DOS_BASED_FILESYSTEM.
14263         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
14264         HAVE_DOS_BASED_FILESYSTEM.
14265         (main): Likewise.
14266         (split_directories): Only special-case DOS file names if
14267         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
14268         instead of explicit tests.  Conditionalize on !VMS.
14269         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
14270         tests.  Conditionalize on !VMS.
14271         (process_command): Only use make_relative_prefix if !VMS.
14272         (free_split_directories): Conditionalize on !VMS.
14273         (DIR_UP): Conditionalize on !VMS.
14274
14275 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
14276
14277         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
14278
14279 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
14280
14281         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
14282         case.
14283
14284 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
14285
14286         * invoke.texi (Environment Variables): Document relative path
14287         lookup.
14288         * gcc.c (DIR_UP): If not defined, define as "..".
14289         (standard_bindir_prefix): New static, holds target location to
14290         install binaries.
14291         (split_directories): New function to split a filename into
14292         component directories.
14293         (free_split_directories): New function, release memory allocated
14294         by split_directories.
14295         (make_relative_prefix): New function, make a relative pathname if
14296         the compiler is not in the expected location.
14297         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
14298         can figure out an appropriate prefix from argv[0].
14299         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
14300         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
14301         STANDARD_BINDIR_PREFIX.
14302
14303 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14304
14305         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
14306         in c4x.c.
14307         * config/c4x/c4x.h: Moved prototypes to c4x.h.
14308         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
14309         c4x_secondary_memory_needed) Delete.
14310         (fp_zero_operand): Add mode argument.
14311
14312 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
14313
14314         * reload1.c (reload_reg_free_for_value_p): Don't use a register
14315         that is in reload_reg_used.
14316
14317 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
14318
14319         * config/arm/arm-protos.h: New file: Prototypes for functions
14320         defined in arm.c and pe.c.
14321         * config/arm/arm.h: Fix compile time warnings.
14322         * config/arm/arm.c: Fix compile time warnings.
14323         * config/arm/pe.h: Fix compile time warnings.
14324         * config/arm/aout.h: Fix compile time warnings.
14325
14326 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
14327
14328         * config/m32r/m32r-protos.h: New file: Prototypes for functions
14329         defined in m32r.c
14330
14331         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
14332         Add support for subtargets.
14333         Add prototypes for new predicates.
14334         Add scheduling macros.
14335
14336         * config/m32r/m32r.c: Fix compile time warnings.
14337         (int8_operand): New predicate function.
14338         (reg_or_cmp_int16_operand): New predicate function.
14339         (extend_operand): New predicate function.
14340         (m32r_adjust_code): New scheduling function.
14341         (m32r_adjust_priorty): New scheduling function.
14342         (m32r_sched_init): New scheduling function.
14343         (m32r_sched_reorder): New scheduling function.
14344         (m32r_sched_variable_issue): New scheduling function.
14345         (direct_return): New codegen function.
14346         (m32r_not_same_reg): New rtl testsing function.
14347
14348         * config/m32r/m32r.md: Fix compile time warnings.
14349         Add support for pre decrement and post increment memory
14350         references.
14351         Add S<cc> patterns.
14352         Add fabs patterns.
14353
14354 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14355
14356         * global.c (EXECUTE_IF_CONFLICT): Don't define.
14357         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
14358         (find_reg): Likewise.
14359
14360 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
14361
14362         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
14363         to avoid assembler errors.
14364
14365 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
14366
14367         * config/v850/v850-protos.h: New file: Prototypes for functions
14368         defined in v850.c
14369         * config/v850/v850.h: Move prototypes to v850-protos.h
14370         * config/v850/v850.c: Move prototypes to v850-protos.h
14371         * config/v850/v850.md: Fix compile time warnings.
14372
14373         * config/fr30/fr30-protos.h: New file: Prototypes for functions
14374         defined in fr30.c
14375         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
14376         * config/fr30/fr30.c: Fix compile time warnings.
14377         * config/fr30/fr30.md: Fix compile time warnings.
14378
14379 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
14380
14381         * tree.h (get_containing_scope): Declare it.
14382         * tree.c (get_containing_scope): New fucntion.
14383         (decl_function_context): Use it.
14384         * toplev.c (rest_of_compilation): Use get_containing_scope.
14385
14386 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14387
14388         * Makefile.in (rtl.o): Depend on toplev.h.
14389
14390 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
14391
14392         * cse.c (delete_trivially_dead_insns): Replace alloca with
14393         xmalloc/xcalloc.
14394         * except.c (update_rethrow_references): Likewise.
14395         (init_eh_nesting_info): Likewise.
14396         * function.c (identify_blocks): Likewise.
14397         * gcse.c (dump_hash_table): Likewise.
14398         * graph.c (print_rtl_graph_with_bb): Likewise.
14399         * loop.c (combine_movables): Likewise.
14400         (move_movables): Likewise.
14401         (count_loop_regs_set): Likewise.
14402         (strength_reduce): Likewise.
14403         * profile.c (compute_branch_probabilities): New function, split
14404         out from ...
14405         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
14406         * regclass.c (regclass): Likewise.
14407         * regmove.c (regmove_optimize): Likewise.
14408         * toplev.c (compile_file): Likewise.
14409         (main): Don't mess with the stack rlimit.
14410
14411 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
14412
14413         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
14414         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
14415
14416 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
14417
14418         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
14419
14420 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
14421
14422         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
14423         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
14424         macro expansion.
14425
14426 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
14427
14428         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
14429
14430 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
14431
14432         * gcse.c (post_dominators): Kill.
14433         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
14434         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
14435         pass in a pdom array since we do not need pdoms.
14436         * haifa-sched.c (schedule_insns): Similarly.
14437         * flow.c (compute_dominators): Remove dead function.
14438         (compute_flow_dominators): Do not compute doms or pdoms if the
14439         caller does not request them.  Split up loop to build doms and
14440         pdoms.  Use a worklist to compute doms and pdoms.
14441         * basic-block.h (compute_dominators): Remove prototype.
14442
14443 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
14444
14445         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
14446         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
14447         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
14448         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
14449         (cant_move, fed_by_spec_load, is_load_insn): Remove.
14450         (schedule_region): Remove unused variable.
14451         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
14452
14453 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
14454
14455         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
14456         (update_equiv_regs): Likewise.
14457         (block_alloc): Likewise.
14458         * reg-stack.c (reg_to_stack): Likewise.
14459         (convert_regs_2): Likewise.
14460         * reload1.c (reload_as_needed): Likewise.
14461
14462 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
14463
14464         * Makefile.in (dbxout.o): Depend on ggc.h.
14465         (dwarf2out.o): Likewise.
14466         (xcoffout.o): Likewise.
14467         * dbxout.c: Include ggc.h.
14468         (dbxout_init): Register lastfile as a root.
14469         * dwarf2out.c: Include ggc.h.
14470         (dwarf2out_line): Register lastfile as a root.
14471         * xcoffout.c: Include ggc.h.
14472         (xcoffout_source_line): Register xcoff_lastfile as a root.
14473
14474 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
14475
14476         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
14477
14478 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
14479
14480         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
14481         defined.
14482         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
14483
14484 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14485
14486         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
14487         (EXECUTE_IF_CONFLICT): Likewise.
14488         (ALLOCNO_LIVE_P): Avoid signed division.
14489         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
14490         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
14491         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
14492
14493 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
14494
14495         * haifa-sched.c (schedule_block): Don't crash if there's no
14496         next insn for an interblock movement.
14497         (add_branch_dependences): Don't allow clobber insns to move either.
14498
14499 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
14500
14501         * i386.c (split_xf): New.
14502         * i386-protos.h: Declare it.
14503         * i386.md (movxf_1): Add general regs alternatives.
14504         (movxf_1+1): New splitter for same.
14505
14506 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
14507
14508         * function.c (purge_addressof_1): Add missing return values.
14509
14510 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
14511
14512         * function.c (is_addressof): New function.  Returns true if
14513         the given piece of RTL is an ADDRESSOF.
14514         (purge_addressof_1): Make boolean.  Return false if the
14515         ADDRESSOFs could not be purged.
14516         (purge_addressof): If ADDRESSOFs could not be purged from the
14517         notes attached to an insn, remove the offending note(s),
14518         unless they are attached to a libcall.
14519
14520 1999-11-05  Andreas Jaeger  <aj@suse.de>
14521
14522         * genoutput.c (null_operand =): Initialize all fields.
14523
14524         * errors.h: Add extern to prototypes.
14525
14526 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
14527
14528         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
14529         * configure: Rebuilt.
14530
14531 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14532
14533         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
14534         (mirror_conflicts): New function.
14535         (global_alloc): Call it.
14536         (expand_preferences): Remove redundant CONFLICTP test.
14537         (find_reg, dump_conflicts): Likewise.
14538         (prune_preferences): Process conflicts one word at a time.
14539
14540 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
14541
14542         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
14543         instead of an explicit loop.
14544
14545 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
14546
14547         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
14548         if REG_RETVAL check succeeds, then put classp in src_elt.
14549
14550 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
14551
14552         * function.c (pad_to_arg_alignment): Only update argument_pad
14553         if the argument's alignment is greater than STACK_BOUNDARY.
14554
14555 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
14556
14557         * bitmap.h (BITMAP_XFREE): New.
14558         * flow.c (life_analysis): Use it.
14559         (life_analysis_1): Free blocks.
14560
14561         * combine.c (undo_commit): New.
14562         (try_combine): Use it.  Don't zap undobuf.undos.
14563         (combine_instructions): Don't zap undobuf.undos; free the
14564         undobuf.frees list.
14565
14566         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
14567
14568         * stmt.c (cost_table_): New.
14569         (estimate_case_costs): Use it instead of xmalloc.
14570
14571         * toplev.c (compile_file): Reuse dumpname memory instead
14572         of strdup'ing it.
14573
14574 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
14575
14576         * reg-stack.c (convert_regs_1): Initialize target_stack->top
14577         after verifying an EH edge.
14578
14579         * haifa-sched.c (init_rgn_data_dependences): Correctly
14580         size bb_pending_lists_length when zeroing.
14581
14582 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
14583
14584         * function.c (diddle_return_value): New.
14585         (expand_function_end): Use it.
14586         * stmt.c (expand_null_return): Likewise.
14587         (expand_value_return): Likewise.
14588
14589         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
14590
14591         * reload1.c (reload): Don't remove return value clobbers.
14592
14593 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
14594
14595         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
14596
14597 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
14598
14599         * cse.c (cse_main): Use xmalloc, not alloca.
14600         (cse_basic_block): Likewise.
14601         * local-alloc.c (local_alloc): Likewise.
14602
14603 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
14604                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14605
14606         * rtl.c: Include toplev.h.
14607         (fatal): Remove declaration.
14608
14609 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
14610
14611         * haifa-sched.c (schedule_block): Fix thinko.
14612
14613 1999-11-03  James McKelvey <mckelvey@fafnir.com>
14614
14615         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
14616         S_IR* defined values
14617
14618 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
14619
14620         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
14621         call `malloc' instead.
14622
14623 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
14624
14625         * flags.h (flag_renumber_insns): Declare.
14626         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
14627         renumbering table.
14628         * rtl.h (renumber_insns): Change prototype.
14629         * toplev.c (flag_renumber_insns): Define.
14630         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
14631
14632 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
14633
14634         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
14635         and fpsqrtd.  Use them and create fdiv function unit to more
14636         accurately represent fpu sqrt pipeline semantics on UltraSparc.
14637         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
14638
14639 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
14640
14641         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
14642         3 on UltraSparc.
14643         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
14644         insn into ready list, do not use just a raw swap.
14645
14646 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
14647
14648         * rtl.h (renumber_insns): New function.
14649         (remove_unnecessary_notes): Likewise.
14650         * emit-rtl.c (renumber_insns): Define.
14651         (remove_unncessary_notes): Likewise.
14652         * toplev.c (rest_of_compilation): Remove dead code.
14653         Use renumber_insns and remove_unncessary_notes.
14654
14655         * gcse.c (struct null_pointer_info): New type.
14656         (get_bitmap_width): New function.
14657         (current_block): Remove.
14658         (nonnull_local): Likewise.
14659         (nonnull_killed): Likewise.
14660         (invalidate_nonnull_info): Take a null_pointer_info as input.
14661         (delete_null_pointer_checks_1): New function.
14662         (delete_null_pointer_checks): Use it.
14663
14664         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
14665         (split_edges): Likewise.
14666         (schedule_block): Likewise.
14667         (compute_block_backward_dependencies): Likewise.
14668         (schedule_region): Likewise.
14669         (schedule_insns): Likewise.
14670
14671 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
14672
14673         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
14674         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
14675         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
14676         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
14677         * jump.c (delete_unreferenced_labels): Don't delete if
14678         LABEL_ALTERNATE_NAME is set.
14679         * print-rtl.c (print_rtx): Dump alternate name.
14680         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
14681         * rtl.h (LABEL_ALTERNATE_NAME): Define.
14682         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
14683         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
14684
14685 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14686
14687         * fix-header.c (recognized_extern, recognized_function): Constify
14688         a char*.
14689
14690         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
14691         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
14692         (compute_available): Remove unused variable `last'.
14693         (compute_nearerout): Remove unused variable `temp_bitmap'.
14694         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
14695         Remove unused variable `x'.
14696
14697         * scan.h (recognized_function, recognized_extern): Constify a
14698         char*.
14699
14700         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
14701
14702 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14703
14704         * varasm.c (decode_rtx_const): Use XSTR to access the string
14705         of a SYMBOL_REF.
14706
14707 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
14708
14709         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
14710
14711 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14712
14713         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
14714
14715 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
14716
14717         * pa.c (ireg_operand): New function.
14718         * pa.h (PREDICATE_CODES): Handle ireg_operand.
14719         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
14720         Fix out of date comment.
14721
14722         * pa.md (negdi2): Turn into expander + anonymous pattern.
14723
14724         * reload.c (find_reloads): Fix typos in recent change.
14725
14726         * dwarf2out.c: Do not include ctype.h.
14727
14728 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14729
14730         * regclass.c (record_reg_classes): Always use may_move_cost when
14731         seeing how operand fits with various register classes.
14732
14733 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
14734
14735         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
14736         * toplev.c: Revert Nov 1 13:22 change.
14737
14738 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
14739
14740         * config/pa/pa.md (height reduction patterns): Add checks for
14741         overlapping operands to avoid semantic-destroying splits for
14742         height reduction patterns.
14743
14744 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14745
14746         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
14747         have been an hyphen, fixed.
14748         * configure: Rebuilt.
14749
14750 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
14751
14752         * config/arm/tpe.h: Add prototypes for exported functions.
14753         * config/arm/pe.c: Fix compile time warnings.
14754         * config/arm/semi.h: Fix compile time warnings.
14755         * config/arm/arm.c: Fix compile time warnings.
14756         * config/arm/arm.h: Fix compile time warnings.
14757         * config/arm/arm.md: Fix compile time warnings.
14758         * config/arm/thumb.c: Fix compile time warnings.
14759         * config/arm/thumb.h: Fix compile time warnings.
14760         * config/arm/thumb.md: Fix compile time warnings.
14761
14762 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
14763
14764         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
14765         detection code
14766
14767         * unroll.c (unroll_loop): Remove LOOP notes when loop is
14768         completely unrolled.
14769
14770 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14771
14772         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
14773
14774 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
14775
14776         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
14777         * rtl.h (rtx_equal_p): Move prototype.
14778         * rtl.c (rtx_equal_function_value_matters): Move from
14779         rtlanal.c
14780         (rtx_equal_p): Likewise.
14781         * rtlanal.c (rtx_equal_function_value_matters): Delete.
14782         (rtx_equal_p): Likewise.
14783
14784 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
14785
14786         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
14787         ! HAS_INIT_SECTION.
14788
14789 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
14790
14791         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
14792
14793         * pa.h (ADDR_VEC_ALIGN): Define.
14794
14795         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
14796         notes when presented with "if (foo) break; end_of_loop" and
14797         the break sequence gets moved out of the loop.
14798
14799         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
14800         Remove explicit zero initializations of entries within MAP.
14801
14802 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
14803
14804         * reg-stack.c (convert_regs_1): Handle EH edges specially.
14805
14806 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
14807
14808         * bitmap.h (BITMAP_XMALLOC): New macro.
14809         * flow.c (CLEAN_ALLOCA): Remove.
14810         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
14811         (life_analysis): Likewise.
14812         (update_life_info): Don't use CLEAN_ALLOCA.
14813         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
14814         (calculate_global_regs_live): Likewise.
14815         (print_rtl_with_bb): Likewise.
14816         (verify_flow_info): Likewise.
14817         * global.c (global_alloc): Likewise.
14818         (global_conflicts): Likewise.
14819         * integrate.c (save_for_inline_nocopy): Likewise.
14820         (expand_inline_function): Likewise.
14821         * jump.c (jump_optimize_1): Likewise.
14822         (duplicate_loop_exit_test): Likewise.
14823         (thread_jumps): Likewise.
14824         * loop.c (loop_optimize): Likewise.
14825         (combine_givs): Likewise.
14826         (recombine_givs): Likewise.
14827         * reorg.c (dbr_schedule): Likewise.
14828         * unroll.c (unroll_loop): Likewise.
14829
14830         * combine.c (combine_instructions): Use xmalloc instead of alloca.
14831
14832 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
14833
14834         * toplev.c (rest_of_compilation): Don't optimize the CFG
14835         when rebuilding, just before dbr.
14836
14837 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14838
14839         * output.h (assemble_end_function, assemble_destructor,
14840         assemble_constructor, assemble_gc_entry, assemble_global,
14841         assemble_label, output_constant_pool) Constify a char*.
14842
14843         * varasm.c (assemble_destructor, assemble_constructor,
14844         assemble_gc_entry, assemble_end_function, assemble_global,
14845         assemble_label, output_constant_pool): Likewise.
14846
14847 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
14848
14849         * config/arm/thumb.c (thumb_expand_prologue): Add comments
14850         explaining what is goin on in this function.
14851
14852 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14853
14854         * regclass.c (record_reg_classes): In matching case, recompute
14855         costs since the direction of movement is different.
14856
14857 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
14858
14859         * resource.c (mark_target_live_regs): For unconditional branches,
14860         the resources found at the branch target should be added to the
14861         resources found so far, not intersected.
14862
14863 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
14864
14865         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
14866         old cpp's.
14867         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
14868         (sys/mman.h): Include this file only if #HAVE_MMAP.
14869         (run_compiles): Initialize `esac_fmt' with one old KR string, not
14870         with automatically concatenated ANSI strings.
14871
14872 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
14873
14874         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
14875         (DIV_ROUND_UP): Robustify.
14876         (ggc_recalculate_in_use_p): New function.
14877         (release_pages): Don't inline it.
14878         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
14879         outer contexts.
14880         (ggc_pop_context): Use ggc_recalculate_in_use_p.
14881         (clear_marks): Always save in_use_p.
14882         (sweep_pages): Use ggc_recalculate_in_use_p.
14883         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
14884         Release pages before counting statistics.
14885
14886 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
14887
14888         * toplev.c (rest_of_compilation): Fix thinko in this change:
14889
14890         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
14891
14892         (rest_of_compilation): If inside an inlined external function,
14893         pretend we are just being declared.
14894
14895 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
14896
14897         * flow.c (calculate_global_regs_live): Fix thinko.
14898
14899         * integrate.c (expand_inline_function): Fix bugs in previous
14900         change from Oct 28, 1999.
14901
14902 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
14903
14904         * stmt.c (expand_value_return): Fix typo in this change:
14905
14906         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14907         (expand_value_return): Correctly convert VAL when promoting function
14908         return; support RETURN_REG being a PARALLEL.
14909
14910 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
14911
14912         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
14913
14914 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14915
14916         * hard-reg-set.h (reg_names): Constify a char*.
14917
14918         * regclass.c  (reg_names): Likewise.
14919
14920         * regs.h (reg_names): Likewise
14921
14922         * a29k/a29k.c (reg_names): Delete declaration.
14923
14924         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
14925
14926         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
14927         arc_output_function_epilogue): Likewise.
14928
14929         * elxsi/elxsi.c (reg_names): Likewise.
14930
14931         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
14932
14933         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
14934         Likewise.
14935
14936         * m88k/m88k.c (output_function_profiler): Likewise.
14937
14938         * sparc/sparc.c (sparc_flat_output_function_prologue,
14939         sparc_flat_output_function_epilogue): Likewise.
14940
14941 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
14942
14943         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
14944         warning from -Wuninitialized and put it under -W.
14945         * function.c (uninitialized_vars_warning): Warn only when the
14946         corresponding flag is set.
14947
14948 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
14949
14950         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
14951         is nonzero and the single set does not have an elt, then assign
14952         it an elt.
14953
14954         * simplify-rtx.c: New file.
14955         * Makefile.in (OBJS): Add simplify-rtx.o
14956         (simplify-rtx.o): Add dependencies.
14957         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
14958         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
14959         (cse_gen_binary, simplify_unary_operation): Delete.
14960         (simplify_binary_operation, simplify_plus_minus): Likewise.
14961         (check_fold_consts, simplify_relation_operation): Likewise.
14962         (simplify_ternary_operation): Likewise.
14963         (delete_trivially_dead_insns): Simplify the contents of the
14964         REG_EQUAL note before trying to substitute it into the source
14965         of the reg-reg copy at the end of a libcall sequence.
14966
14967         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
14968         references/callers changed.
14969
14970         * mn10200.c (mn10200_va_arg): Force the return value into a
14971         register.
14972
14973         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
14974
14975         * cccp.c (macroexpand): Avoid out of range accesses for omitted
14976         arguments.
14977
14978 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
14979
14980         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
14981
14982 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
14983
14984         * fold-const.c (fold): Fix thinko when optimizing comparisons
14985         against -0.0.
14986
14987 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
14988
14989         * gcc.texi (Passes): Update front-end files to their current
14990         location.
14991
14992 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
14993
14994         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
14995         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
14996         (PREDICATE_CODES): Add addition_operation.
14997         * alpha-protos.h (addition_operation): Declare.
14998         (secondary_reload_class): Likewise.
14999         * alpha.c (addition_operation): New.
15000         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
15001         * alpha.md (adddi3): Turn into expander.
15002         (*lda, *adddi_2): New.
15003         (movsf, movdf patterns): Don't preference integer regs.
15004         (movsi, movdi patterns): Don't preference fp regs.
15005
15006 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
15007
15008         * genrecog.c (write_switch): Check for duplicate CODE cases.
15009
15010 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
15011
15012         * ggc-common.c: Update pre-function commentary.
15013         * ggc-page.c: Likewise.
15014         (poison): Remove.
15015         (poison_pages): Use memset directly.
15016         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
15017         (ggc_collect): Poison before sweeping.
15018         * ggc-simple.c: Update pre-function commentary.
15019         (ggc_alloc_obj): Poison non-zeroed memory.
15020
15021 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
15022
15023         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
15024         match format string, even on 64-bit hosts.
15025         * gcc-page.c (ggc_page_print_statistics): Likewise.
15026
15027 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
15028
15029         * config/i386/i386.c (ix86_cpu): Revert last patch.
15030         * config/i386/i386.h (ix86_cpu): Ditto.
15031
15032 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
15033
15034         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
15035         TYPE_SIZE, convert type of result to sizetype.
15036
15037 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
15038
15039         * flow.c (count_or_remove_death_notes): Equate NULL with the
15040         universal set.
15041
15042         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
15043         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
15044         dbr_schedule.
15045
15046         * i386.c (pic_label_no): Delete.
15047         (ix86_attr_length_default): Don't use single_set to peek
15048         inside a parallel.
15049
15050         * recog.c (peephole2_optimize): Allow recog_next_insn to index
15051         the first insn after bb->end.
15052         * i386.md (push mem peeps): Scratch is live after evaluation
15053         of the memory.
15054         (cmp mem peep): Similarly.
15055
15056 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
15057
15058         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
15059         * function.c (pad_to_arg_alignment): Add missing braces.
15060
15061 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15062
15063         * alpha/alpha-protos.h (literal_section): Add prototype.
15064         (alpha_need_linkage, alpha_start_function,alpha_end_function):
15065         Constify a char*.
15066
15067         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
15068         prototype.
15069         (alpha_start_function, alpha_end_function, float_strings,
15070         alpha_need_linkage): Constify a char*
15071
15072         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
15073
15074         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
15075
15076         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
15077
15078         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
15079
15080 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15081
15082         * flow.c (debug_flow_info): Add prototype.
15083
15084         * gcc.c (main): Likewise.
15085
15086         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
15087         Likewise.
15088
15089         * reload1.c (failed_reload, set_reload_reg): Likewise.
15090
15091         * mips-tfile.c (main): Likewise.
15092         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
15093         with ATTRIBUTE_NORETURN.
15094
15095 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
15096
15097         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
15098         DECL is not a memory ref.
15099
15100 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
15101
15102         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
15103         * config/i386/i386.c (ix86_cpu): Add extern attribute.
15104
15105 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
15106
15107         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
15108         * config/mips/elf64.h: ditto.
15109
15110 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
15111
15112         * expr.c (emit_push_insn): New argument alignment_pad.
15113         Update all callers.  Adjust stack pointer based on alignment pad.
15114         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
15115         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
15116         (locate_and_pad_parm): New argument alignment_pad.  Update all
15117         callers.
15118         * expr.h (emit_push_insn): Update prototype.
15119         (locate_and_pad_parm): Update prototype.
15120         * calls.c (arg_data):  Add new field alignment_pad.
15121         (initialize_argument_information): Initialize alignment_pad.
15122
15123 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
15124
15125         * except.c (free_eh_nesting_info): Free the info itself.
15126         * function.c (free_after_compilation): Don't free NULL.
15127         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
15128         (pre_edge_insert): Free inserted.
15129         * stmt.c (free_stmt_status): Don't free NULL.
15130
15131 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
15132
15133         * gcov.c (DIR_SEPARATOR): Provide default.
15134         (output_data): Add test for MS-DOS format absolute filename.
15135         (fancy_abort): Correct program name.
15136         (open_files): Open all files in binary mode.
15137         * libgcc2.c (__bb_exit_func): Likewise.
15138
15139         * profile.c (init_branch_prob): Specify binary when opening files.
15140
15141         * flags.h (flag_unwind_tables): New decl.
15142         * toplev.c (flag_unwind_table): New definition.
15143         (f_options): Add -funwind-tables.
15144         (decode_g_option): Clarify warning when unknown -g option is given.
15145         (rest_of_compilation): If inside an inlined external function,
15146         pretend we are just being declared.
15147
15148         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
15149         (dwarf2out_frame_finish): Likewise.
15150
15151 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
15152
15153         * fold-const.c (merge_ranges): If not in0, but in1, handle
15154         upper bounds equal like subset case.
15155
15156 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
15157
15158         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
15159         passed in a register but moved to the stack.
15160
15161 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
15162
15163         * gcc.c (pass_exit_codes, greatest_status): New variables.
15164         (struct option_map): Add entry for "--pass-exit-codes".
15165         (execute): Update greatest_status if error.
15166         (display_help): Add documentation for -pass-exit-codes.
15167         (process_command): Handle -pass-exit-codes.
15168         (main): Look at pass_exit_codes and greatest_status on call to exit.
15169
15170 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15171
15172         * reload.c (find_reloads): Refine test for no input reload
15173         case to not includes reloads emitted after insn.
15174
15175         * function.c (find_temp_slots_from_address): Handle sum involving
15176         a register that points to a temp slot.
15177         (update_temp_slot_address): Make recursive call if both old and
15178         new are PLUS with a common operand.
15179         * calls.c (expand_call): Mark temp slot for result as having
15180         address taken.
15181
15182         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
15183
15184         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
15185         component as well as "BINUTILS".
15186
15187         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
15188         * integrate.c (copy_rtx_and_substitute): Likewise.
15189         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
15190         All callers changed.
15191         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
15192
15193         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
15194         gdb extensions, write size of type; also be more consistent
15195         in using references when this is a subtype.
15196
15197         * pa.md (extv, extzv, insv): Use define_expand to reject constant
15198         that is out of range.
15199
15200         * loop.c (unknown_constant_address_altered): New variable.
15201         (prescan_loop): Initialize it.
15202         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
15203         (invariant_p, case MEM): Remove handling for volatile and readonly;
15204         check new variable if readonly.
15205         (check_dbra_loop): Chdeck unknown_constant_address_altered.
15206
15207         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
15208         (addr_affects_sp_p): Removed from note_mem_written and only
15209         define #ifdef AUTO_INC_DEC.
15210
15211         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
15212
15213         * regclass.c (record_reg_classes): Properly handle register move
15214         directions.
15215
15216         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
15217         Don't think valid if both operands are invalid.
15218         (struct constant_descriptor): New field RTL.
15219         (mark_const_hash_entry): Mark it.
15220         (record_constant{,_rtx}): Initialize it.
15221         (output_constant_def): Allocate RTL in permanent obstack and
15222         save in table.
15223         ({record,compare}_constant_1): Modes must match for
15224         CONSTRUCTOR of ARRAY_TYPE.
15225
15226         * c-common.h (initializer_constant_valid_p): Delete decl from here.
15227         * output.h (initializer_constant_valid_p): Move decl to here.
15228         * c-common.c (initializer_constant_valid_p): Delete function from here.
15229         * varasm.c (initializer_constant_valid_p): Move function to here.
15230
15231         * tree.h (STRIP_SIGN_NOPS): New macro.
15232         * fold-const.c (optimize_minmax_comparison): New function.
15233         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
15234         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
15235         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
15236         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
15237         widening conversions.
15238         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
15239         to look at size of mode, not precision of type; also add missing cases.
15240         (optimize_bit_field_compare, decode_field_reference): Don't try to
15241         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
15242
15243         * dwarf2out.c (ctype.h): Include.
15244         (dwarf2out_set_demangle_name_func): New function.
15245         (size_of_line_info): Deleted.
15246         (output_line_info): Compute size of line info table from difference
15247         of labels.
15248         (base_type_die, add_name_attribute): Call demangle function, if any.
15249         (field_byte_offset): Use bits per word for variable length fields.
15250         (gen_array_type_die): Add array name.
15251         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
15252         (dwarf2out_add_library_unit_info): New function.
15253
15254         * explow.c (set_stack_check_libfunc): New function.
15255         (stack_check_libfunc): New static variable.
15256         (probe_stack_range): Allow front-end to set up a libfunc to call.
15257
15258         * combine.c (simplify_comparison): When making comparison in wider
15259         mode, check for having commuted an AND and a SUBREG.
15260         (contains_muldiv): New function.
15261         (try_combine): Call it when dividing a PARALLEL.
15262         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
15263         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
15264         a PLUS.
15265         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
15266         use one of the CLOBBERs instead.
15267         (if_then_else_cond): If comparing against zero, just return thing
15268         being compared.
15269
15270         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
15271         Don't generate shifts and subtract if have conditional arithmetic.
15272
15273         * rtl.h (delete_barrier): New declaration.
15274         * jump.c (jump_optimize): Set up to handle conditional call.
15275         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
15276         (delete_barrier): New function.
15277
15278         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
15279
15280         * recog.c (nonmemory_operand): Accept ADDRESSOF.
15281
15282         * tree.c (build_type_attribute_variant): Push to obstack of
15283         ttype around type_hash_canon call.
15284
15285         * expr.c (placeholder_list): Move decl to file scope.
15286         (expand_expr): Don't force access to volatile just because its
15287         address is taken.
15288         If ignoring reference operations, just expand the operands.
15289         (expand_expr, case COMPONENT_REF): Propagate
15290         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
15291         Refine test for using bitfield operations vs pointer punning.
15292         (expand_expr, case CONVERT_EXPR): If converting to
15293         BLKmode UNION_TYPE from BLKmode, just return inner object.
15294         Use proper mode in store_field call.
15295         Properly set sizes of object to store and total size in store_field
15296         call for convert to union.
15297         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
15298         memory (like for ADDR_EXPR).  Also, don't put constant in register if
15299         we'll want it in memory.
15300         (readonly_fields_p): New function.
15301         (expand_expr, case INDIRECT_REF): Call it if LHS.
15302         (expand_assignment): Handle a RESULT_DECL where
15303         DECL_RTL is a PARALLEL.
15304         (do_jump, case WITH_RECORD_EXPR): New case.
15305         (get_inner_reference): Always go inside a CONVERT_EXPR
15306         and NOP_EXPR if both modes are the same.
15307         (store_field): Use bitfield operations if size of bitsize is not same
15308         as size of RHS's type.
15309         Check for bitpos not a multiple of alignment in BLKmode case.
15310         Do block move in largest possible alignment.
15311         (store_constructor): Set BITSIZE to -1 for variable size and properly
15312         in case of array of BLKmode.
15313         (expand_expr_unaligned): New function.
15314         (do_compare_and_jump): Call it.
15315
15316         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
15317         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
15318         does not include 'o'.
15319
15320         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
15321         both SET_DEST and SET_SRC reference a virtual register.
15322         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
15323
15324         * integrate.c (expand_inline_function): Handle case of setting
15325         virtual stack vars register (from built in setjmp); when parameter
15326         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
15327         (subst_constant): Add new parm, MEMONLY.
15328         (expand_inline_function, integrate_parm_decls): Pass new parm.
15329         (integrate_decl_tree): Likewise.
15330         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
15331         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
15332         (copy_rtx_and_substitute, case SET): Add explicit calls to
15333         copy_rtx_and_substitute for both sides.
15334
15335         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
15336         constraints.
15337         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
15338         within INDEX_TYPE, instead of before.
15339         (fixup_gotos): Use f->target_rtl, not the next insn,
15340         since latter may be from a later fixup.
15341         (expand_value_return): Correctly convert VAL when promoting function
15342         return; support RETURN_REG being a PARALLEL.
15343         (expand_return): When checking for result in regs and having
15344         cleanup, consider PARALLEL in DECL_RTL as being in regs.
15345
15346 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
15347
15348         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
15349         last_nominal_fname): Mark const.
15350         (struct include_hash: name, nshort, control_macro): Mark
15351         const.
15352         (struct macrodef: symnam): Mark const.
15353         (struct if_stack: fname): Mark const.
15354         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
15355         (IStable): New character-syntax array which encompasses all
15356         the old is_foo arrays.
15357         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
15358         is_space): New macros for interrogating IStable.
15359         (check_macro_name): Kill last argument.  All callers changed.
15360
15361         * cppinit.c (initialize_char_syntax): Delete.
15362         (is_idchar, is_idstart, is_hor_space, is_space,
15363         trigraph_table): Delete.
15364         (IStable): New.  Initialize with clever macros to avoid
15365         information duplication.
15366         (builtin_array): Table of builtins to get rid of explicit list
15367         in initialize_builtins.
15368         (initialize_builtins): Use builtins_array.
15369         (cpp_start_read): Call init_IStable, and set IStable['$'] if
15370         opts->dollars_in_ident.
15371
15372         * cppexp.c: Change all refs to is_xyz[] arrays to use new
15373         is_xyz() macros.
15374         (cpp_parse_expr): Avoid 'format string is not constant'
15375         warning. Use ISGRAPH to identify printable chars.
15376         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
15377         is_xyz() macros.
15378         (read_and_prescan): Map trigraphs to chars with open-coded
15379         if-else-if-... sequence, not a lookup table.
15380         * cpphash.c: Change all refs to is_xyz[] arrays to use new
15381         is_xyz() macros.
15382         * cpplib.c: Change all refs to is_xyz[] arrays to use new
15383         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
15384         (check_macro_name): Remove ability to report an invalid
15385         assertion name, which is never used.
15386         (do_line): Constify a couple of char *'s.
15387         * cppmain.c (main): Call cpp_cleanup before returning.
15388
15389 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
15390
15391         * ggc.h (struct ggc_statistics): New type.
15392         (ggc_get_size): New function.
15393         (ggc_print_statistics): Likewise.
15394         * ggc-common.c (ggc_stats): New variable.
15395         (ggc_mark_rtx_children): Keep statistics.
15396         (ggc_mark_tree_children): Likewise.
15397         (ggc_print_statistics): New function.
15398         * ggc-page.c (struct globals): Add bytes_mapped field.
15399         (alloc_anon): Update it.
15400         (release_pages): Likewise.
15401         (ggc_get_size): New function.
15402         (ggc_page_print_statistics): New function.
15403         * ggc-simple.c (ggc_get_size): New function.
15404
15405 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
15406
15407         * flow.c (propagate_block): When the last reference to a label
15408         before an ADDR_VEC is deleted because the reference is a dead
15409         store, delete the ADDR_VEC.
15410
15411 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
15412
15413         * resource.c (find_free_register): Don't use the frame pointer
15414         if frame_pointer_needed.
15415
15416 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
15417
15418         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
15419         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
15420
15421         * config/i960/i960.c (i960_va_start): New locals base, num.
15422         Use INDIRECT_REF instead of ARRAY_REF on valist.
15423         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
15424
15425 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
15426
15427         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
15428
15429 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
15430
15431         * tree.def (PLACEHOLDER_EXPR): Update comments.
15432
15433 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15434
15435         * c-common.c (check_format_info): Avoid non-literal format string
15436         warnings when `first_arg_num' is zero.
15437
15438 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15439
15440         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
15441
15442 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
15443
15444         * arm.md (casesi_insn): Add a clobber of the condition code
15445         register.
15446
15447 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
15448
15449         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
15450         used by both cc1 and cc1plus.
15451
15452 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
15453
15454         * config/arm/arm.c: Initialise arm_structure_size_boundary to
15455         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
15456         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
15457         to the value 32 if it has not already been defined.
15458         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
15459         Override definition in arm.h with a value of 8.
15460
15461 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
15462
15463         * c-pragma.c (push_alignment): Don't check the return value
15464         of xmalloc.
15465
15466 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
15467
15468         * sparc.h (ADJUST_COST): Fix thinko.
15469
15470 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
15471
15472         * cccp.c (rescan): Fixed obp pointer handling around call to
15473         check_expand subroutine.
15474
15475 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
15476
15477         * gcse.c (delete_null_pointer_checks): Only record non-null info
15478         for pseudos when examining stores.
15479
15480         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
15481         splitters for these patterns.  Use "#" for output templates.
15482         (addsi3_carryin_shift): New pattern.
15483
15484 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
15485
15486         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
15487         of the function return register into a plain REG until
15488         after function inlining is done.
15489
15490 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
15491
15492         * jump.c (jump_optimize_1): If we did cross-jumping, and
15493         the data will matter, rebuild the CFG.
15494         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
15495         not optimizing.  Don't run shorten_branches.
15496         * toplev.c (rest_of_compilation): Run shorten_branches after
15497         reg_to_stack.
15498
15499 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
15500
15501         * rtl.h (note_stores): Add additional paramter.
15502         * rtlanal.c (reg_set_p_1): Take additional paramter.
15503         (reg_set_last_1): Likewise.
15504         (reg_set_p): Adjust call to note_stores.
15505         (reg_set_last): Likewise.
15506         (note_stores): Pass data parameter to worker function.
15507         * alias.c (record_set): Take additional parameter.
15508         (init_alias_analysis): Pass it.
15509         * caller-save.c (mark_set_regs): Take additional parameter.
15510         (save_call_clobbered_regs): Pass NULL to note_stores.
15511         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
15512         parameter.
15513         (record_dead_and_set_regs_1): Likewise.
15514         (reg_dead_at_p_1): Likewise.
15515         (combine_instructions): Adjust calls to note_stores.
15516         (try_combine): Likewise.
15517         (record_dead_insn): Remove.
15518         (record_dead_and_set_regs): Adjust calls to note_stores.
15519         (reg_dead_at_p): Likewise.
15520         * cse.c (invalidate_skipped_set): Take additional parameter.
15521         (cse_check_loop_start): Likewise.
15522         (cse_check_loop_start_value): Remove.
15523         (cse_set_around_loop): Adjust calls to note_stores.
15524         * flow.c (notice_stack_pointer_modification): Take additional
15525         parameter.  Remove duplicate declaration.
15526         (record_volatile_insns): Adjust calls to note_stores.
15527         * gcse.c (record_set_info): Take additional parameter.
15528         (record_last_set_info): Likewise.
15529         (invalidate_nonnull_info): Likewise.
15530         (record_set_insn): Remove.
15531         (compute_sets): Adjust calls to note_stores.
15532         (last_set_insn): Remove.
15533         (compute_hash_table): Adjust calls to note_stores.
15534         (insert_insn_end_bb): Likewise.
15535         (delete_null_pointer_checks): Likewise.
15536         * global.c (mark_reg_store): Take additional parameter.
15537         (mark_reg_clobber): Likewise.
15538         (reg_becomes_live): Likewise.
15539         (global_conflicts): Adjust calls to note_stores.
15540         (build_insn_chain): Likewise.
15541         * integrate.c (note_modified_parmregs): Take additional parameter.
15542         (mark_stores): Likewise.  Make it static.
15543         (save_for_inline_nocopy): Adjust calls to note_stores.
15544         (try_constants): Likewise.
15545         * integrate.h (mark_stores): Remove declaration.
15546         * jump.c (mark_modified_reg): Take additional parameter.
15547         (thread_jumps): Adjust calls to note_stores.
15548         * local-alloc.c (validate_equiv_mem_from_store): Take additional
15549         parameter.
15550         (no_equiv): Likewise.
15551         (reg_is_set): Likewise.
15552         (validate_equiv_mem): Adjust calls to note_stores.
15553         (update_equiv_regs): Likewise.
15554         (block_alloc): Likewise.
15555         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
15556         (note_addr_stored): Take additional parameter.
15557         (note_set_pseudo_multiple_uses): Likewise.
15558         (record_initial): Likewise.
15559         (prescan_loop): Adjust calls to note_stores.
15560         (strength_reduce): Likewise.
15561         (check_dbra_loop): Likewise.
15562         * regmove.c (flags_set_1): Take additional paramter.
15563         (mark_flags_life_zones): Adjust calls to note_stores.
15564         * reload1.c (mark_not_eliminable): Take additional parameter.
15565         (forget_old_reloads_1): Likewise.
15566         (reload_cse_invalidate_rtx): Likewise.
15567         (reload_cse_check_clobber): Likewise.
15568         (reload_combine_note_store): Likewise.
15569         (move2add_note_store): Likewise.
15570         (reload): Adjust calls to note_stores.
15571         (reload_as_needed): Likewise.
15572         (emit_reload_insns): Likewise.
15573         (reload_cse_regs_1): Likewise.
15574         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
15575         (reload_combine): Adjust calls to note_stores.
15576         * resource.c (update_live_status): Take additional paramter.
15577         (mark_target_live_regs): Adjust calls to note_stores.
15578         * stupid.c (find_clobbered_regs): Take additional parameter.
15579         (stupid_life_analysis): Adjust calls to note_stores.
15580
15581 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
15582
15583         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
15584         definition.
15585
15586         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
15587         definition.
15588
15589         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
15590         of the variable arm_structure_size_boundary.
15591
15592 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
15593
15594         * alias.c (init_alias_analysis): Allocate reg_known_value and
15595         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
15596         and reg_seen.
15597         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
15598         * cse.c (cse_main): Call end_alias_analysis.
15599         * haifa-sched.c (schedule_insns): Likewise.
15600         * local-alloc. (update_equiv_regs): Likewise.
15601         * reload1.c (reload_cse_regs): Likewise.
15602
15603 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15604
15605         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
15606         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
15607         mapping from MASK_FPU.
15608
15609 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
15610
15611         * sparc.md (call): Don't bound structure return size to 0xfff.
15612
15613 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
15614
15615         * resource.c (mark_target_live_regs): Check that the target
15616         insn wasn't created after compute_bb_for_insn.
15617
15618 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
15619
15620         * ggc-page.c (poison_pages): Don't be overzealous.
15621
15622 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
15623
15624         * alias.c: Update comments for ADDRESS.
15625         (nonlocal_reference_p): Look inside the ADDRESS to determine if
15626         it is a local memory reference.
15627
15628         * c-typeck.c (build_function_call): Check that the built-in
15629         function is of class BUILT_IN_NORMAL before trying to recongize
15630         it as BUILT_IN_ABS.
15631         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
15632         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
15633
15634 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
15635
15636         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
15637         of alloca.
15638         (pre_gcse): Likewise.
15639         (hoist_expr_reaches_here_p): Likewise.
15640         (hoist_code): Likewise.
15641         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
15642         code to ...
15643         (pre_expr_reaches_here_p_work): ... here.
15644         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
15645         code to ...
15646         (expr_reaches_here_p_work): ... here.
15647
15648 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
15649
15650         * resource.c (find_basic_block): Delete.
15651         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
15652         (init_resource_info): Call compute_bb_for_insn.
15653
15654 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
15655
15656         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
15657         with already adjacent blocks, but no fallthru.
15658         (merge_blocks_move_successor_nojumps): Simplify.
15659         (debug_flow_info): New.
15660
15661         * toplev.c (rest_of_compilation): Open jump1 dump file before
15662         jump and close after, as opposed to just using dump_rtl.
15663
15664 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15665
15666         * reload.h (earlyclobber_operand_p): Declare.
15667         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
15668         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
15669         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
15670         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
15671
15672 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
15673                           Richard Henderson  <rth@cygnus.com>
15674
15675         * emit-rtl.c (emit_block_insn_before): New.
15676         (emit_block_insn_after): New.
15677         * basic-block.h: Declare them.
15678
15679         * bitmap.h: Protect from multiple inclusion.
15680
15681         * recog.c (scratch_operand): Handle VOIDmode correctly.
15682
15683         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
15684
15685         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
15686         * function.c (assign_parms): Likewise.
15687         * global.c (global_conflicts): Clarify STACK_REGS commentary.
15688
15689         * reg-stack.c (max_uid): Remove.
15690         (blocks, block_begin, block_end, block_drops_in): Remove.
15691         (block_stack_in, block_out_reg_set, block_number): Remove.
15692         (struct block_info_def, BLOCK_INFO): New.
15693         (enum emit_where): New.
15694         (current_block): New.
15695         (BLOCK_NUM): Remove.
15696         (mark_regs_pat, record_label_references): Remove.
15697         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
15698         (nan): New.
15699         (goto_block_pat, print_blocks, dump_stack_info): Remove.
15700         (reg_to_stack): Simplified test for existance of fp code.  Use
15701         flow.c code.  Call shorten_branches after cross-jump opt.
15702         (check_asm_stack_operands): Renamed from record_asm_reg_life.
15703         Return false if the asm doesn't use stack regs.  Don't do life
15704         analysis on the asm.
15705         (emit_pop_insn): Replace function pointer arg `when' with
15706         enum `where'.  Update all callers.
15707         (change_stack): Likewise.  Update basic block end.
15708         (emit_swap_insn): Use current_block->head to limit reverse search
15709         for start of block.  Use emit_block_insn_after.
15710         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
15711         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
15712         structure assignment instead of bcopy.
15713         (print_stack): New.
15714         (convert_regs_entry, convert_regs_exit): New.
15715         (convert_regs_1, convert_regs_2): Split out from convert_regs.
15716         Work on basic blocks and the CFG.
15717         (convert_regs): Use them.
15718
15719         * i386.c (output_fix_trunc): Remove code for DImode input operand
15720         not at top-of-stack.
15721         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
15722         appropriate mode.
15723         (fix_truncdi_1): Allow any mode scratch.
15724
15725 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
15726
15727         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
15728         * linux.h, netbsd.h, vms.h: Not here.
15729
15730 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
15731
15732         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
15733         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
15734         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
15735         CONDITIONAL_REGISTER_USEAGE): Use them.
15736         * config/mips/mips.c (mips_move_1word,mips_move_2words,
15737         gen_conditional_branch,override_options) : Use them.
15738         * config/mips/mips.md : Use them.
15739
15740 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
15741
15742         * i386.md (zero_extendqihi2): Use SImode register name with andl.
15743
15744 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
15745
15746         * integrate.c (function_cannot_inline_p): Don't allow inlining
15747         if setjmp is used.
15748
15749 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15750
15751         * c-parse.in (cast_expr): Constify.
15752
15753         * cccp.c (special_symbol): Likewise.
15754
15755         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
15756
15757         * dwarf2out.c (base_type_die): Likewise.
15758
15759         * global.c (allocno_compare): Likewise.
15760
15761         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
15762
15763         * regclass.c (fix_register): Likewise.
15764
15765         * rtl.h (fix_register): Likewise.
15766
15767         * stupid.c (stupid_reg_compare): Likewise.
15768
15769         * toplev.c (decode_f_option): Likewise.
15770
15771         * tree.c (build_complex_type): Likewise.
15772
15773 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
15774
15775         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
15776
15777 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15778
15779         * reload.c (find_reloads): Compute mode and nregs fields of all
15780         reloads.
15781         * reload1.c (calculate_needs_all_insns): Simplify a bit.
15782         (calculate_needs): Use precomputed mode/nregs values.
15783         (allocate_reload_reg): Likewise.
15784         Break out two...
15785         (failed_reload, set_reload_reg): ... new functions.
15786         (choose_reload_regs_init): New function, mostly broken out from...
15787         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
15788         Also lose one #if 0 block.
15789
15790 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
15791
15792         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
15793         substitution.
15794
15795 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
15796
15797         * tree.h (BLOCK_TYPE_TAGS): Remove.
15798         (BLOCK_END_NOTE): Likewise.
15799         (BLOCK_LIVE_RANGE_FLAG): Likewise.
15800         (BLOCK_LIVE_RANGE_START): Likewise.
15801         (BLOCK_LIVE_RANGE_END): Likewise.
15802         (tree_block): Remove live_range_flag, live_range_var_flag, and
15803         type_tags.  Remove end_note, live_range_start, and live_range_end.
15804         (remember_end_note): Remove prototype.
15805         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
15806         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
15807         remember_end_note.
15808         * ggc-common.c (ggc_mark_tree_children): Don't mark
15809         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
15810         * integrate.c (adjust_copied_decl_tree): Remove.
15811         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
15812         * stmt.c (last_block_end_note): Remove.
15813         (init_stmt): Don't add a GC root for it.
15814         (expand_fixup): Don't set it.
15815         (remember_end_note): Remove.
15816         (expand_end_bindings): Don't set last_block_end_note.
15817
15818 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15819
15820         * reload1.c (reload_reg_free_for_value_p): Show
15821         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
15822         reloads.
15823
15824 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
15825
15826         * expmed.c (extract_bit_field): Allow for the case of non-integer
15827         objects that are smaller than a word (like SFmode on a 64-bit
15828         machine).
15829
15830         * loop.c (basic_induction_var): A non-integer variable which is
15831         being set by a paradoxical subreg is probably not a biv.
15832
15833 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15834
15835         * prefix.c (translate_name) Check for empty prefix string.
15836
15837 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
15838
15839         * Makefile.in (CPP_CROSS_NAME): New variable.
15840         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
15841         xcpp.
15842         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
15843         names of the files to be uninstalled.
15844
15845 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
15846
15847         * collect2.c (IS_DIR_SEPARATOR): Define.
15848         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
15849
15850         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
15851         functions too.
15852
15853         * haifa-sched.c (add_dependence): Update the true dependency
15854         cache the first time we add a true dependence to the LOG_LINKS chain.
15855
15856 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
15857
15858         * fold-const.c (fold): Fix comment.
15859
15860 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15861
15862         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
15863         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
15864         dbxout_start_new_source_file, dbxout_source_file,
15865         dbxout_source_line, dbxout_finish, dbxout_type_fields,
15866         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
15867         Constify a char*.
15868         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
15869         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
15870         (dbxout_block): Initialize variable `blocknum'.
15871
15872         * dbxout.h (dbxout_init, dbxout_finish,
15873         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
15874         dbxout_args, dbxout_source_line): Constify a char*.
15875
15876         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
15877         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
15878         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
15879         low_pc_attribute, high_pc_attribute, body_begin_attribute,
15880         body_end_attribute, comp_dir_attribute, sf_names_attribute,
15881         src_info_attribute, mac_info_attribute, producer_attribute,
15882         lookup_filename, generate_macinfo_entry, fundamental_type_code,
15883         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
15884         dwarfout_undef): Constify a char*.
15885         (add_incomplete_type, retry_incomplete_types): Add prototypes.
15886
15887         * dwarfout.h (dwarfout_define, dwarfout_undef,
15888         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
15889
15890 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
15891
15892         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
15893         (MULTILIB_ISA_DEFAULT): New.
15894         (MULTILIB_DEFAULTS): Use it.
15895         * config/mips/mips.c (): Remove the now unnecessary definition
15896         of MIPS_ISA_DEFAULT.
15897         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
15898         unnecessary definition.
15899
15900 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
15901
15902         * arm.md (pic_load_addr): Add constraints to operand 1.
15903
15904 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
15905
15906         * fixinc/genfixes:  Provide a means for specifying -D options to
15907         AutoGen
15908
15909 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
15910
15911         * arm.c (arm_override_options): Correct initialization of
15912         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
15913         arm_is_strong, and arm_is_6_or_7.
15914
15915         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
15916         (note_set_pseudo_multiple_uses): New function.
15917         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
15918         if a pseudo set in the loop exit is used elsewhere.
15919
15920 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
15921
15922         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
15923
15924 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
15925
15926         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
15927         a single load-address pattern.
15928
15929 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
15930
15931         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
15932         depending on whether or not line-number notes are present.
15933
15934 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15935
15936         * cccp.c (progname, file_buf, default_include, include_file,
15937         macrodef, definition, hashval, wchar_type, user_label_prefix,
15938         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
15939         expand_to_temp_buffer, is_system_include, base_name,
15940         absolute_filename, read_name_map, open_include_file,
15941         record_control_macro, check_precompiled, check_preconditions,
15942         pcfinclude, pass_thru_directive, create_definition,
15943         check_macro_name, comp_def_part, collect_expansion,
15944         check_assertion, read_token_list, assertion_install,
15945         assertion_lookup, eval_if_expression, conditional_skip,
15946         validate_else, skip_quoted_string, quote_string, macarg1,
15947         error_from_errno, install, lookup, hashf, dump_defn_1,
15948         perror_with_name, pfatal_with_name, main, trigraph_pcp,
15949         check_white_space, rescan, handle_directive, monthnames,
15950         special_symbol, do_include, remap_include_file, write_output,
15951         arglist, do_assert, do_unassert, do_line, do_error, do_once,
15952         do_ident, do_sccs, do_xifdef, skip_if_group,
15953         output_line_directive, macroexpand, macarg, change_newlines,
15954         initialize_builtins, make_definition): Constify a char*.
15955
15956         * pcp.h (stringdef): Likewise.
15957
15958 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
15959
15960         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
15961         not of pattern.
15962
15963 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
15964                           Richard Henderson  <rth@cygnus.com>
15965
15966         * alias.c: Include ggc.h.
15967         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
15968         (record_set): Verify enough room in reg_base_value.
15969         (init_alias_analysis): Allocate reg_base_value with xcalloc.
15970         Register it as a GC root.
15971         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
15972         * Makefile.in (alias.o): Depend on ggc.h.
15973
15974         * unroll.c (unroll_loop): Verify the insn before a barrier
15975         is a JUMP_INSN before checking JUMP_LABEL.
15976
15977 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15978
15979         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
15980         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
15981         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
15982         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
15983         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
15984         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
15985
15986 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15987
15988         * output.h (ctors_section, dtors_section, bss_section): Prototype.
15989
15990         * alpha/alpha-interix.h (text_section): Delete prototype.
15991         * alpha/elf.h (text_section): Likewise.
15992         * arm/linux-elf.h (text_section): Likewise.
15993         * arm/linux-telf.h (text_section): Likewise.
15994         * c4x/c4x.h (text_section): Likewise.
15995         * dsp16xx/dsp16xx.h (bss_section): Likewise.
15996         * elfos.h (text_section): Likewise.
15997         * i386/aix386ng.h (text_section): Likewise.
15998         * i386/i386-interix.h (text_section): Likewise.
15999         * i386/sco5.h (text_section): Likewise.
16000         * i386/svr3gas.h (text_section): Likewise.
16001         * nextstep.h (text_section): Likewise.
16002         * psos.h (text_section): Likewise.
16003         * ptx4.h (text_section): Likewise.
16004         * svr3.h (text_section): Likewise.
16005         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
16006
16007 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16008
16009         * final.c (peephole): Delete prototype.
16010
16011         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
16012         (pre_insert_copies): Remove unused variable `bb'.
16013
16014         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
16015         prototypes.
16016
16017         * output.h (peephole): Add prototype.
16018
16019 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
16020
16021         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
16022         -O0.
16023
16024 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
16025
16026         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
16027         for inlined declarations.
16028
16029 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
16030
16031         * arm.c (logical_binary_operator): New fucntion.
16032         * arm.h (logical_binary_operator): Declare it.
16033         (PREDICATE_CODES): Handle logical_binary_operator.
16034         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
16035         output constraints.  Add appropriate splitters.
16036         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
16037         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
16038         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
16039
16040 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16041
16042         * genoutput.c (struct operand_data): New elt eliminable.
16043         (output_operand_data): Write it.
16044         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
16045         (compare_operands): Take it into account.
16046         * recog.h (struct insn_operand_data): New elt eliminable.
16047         * reload1.c (check_eliminable_occurrences, elimination_effects): New
16048         functions.
16049         (old_asm_operands_vec, new_asm_operands_vec): Delete.
16050         (eliminate_regs): Move code that detects changes to elimination
16051         target regs into new function elimination_effects.
16052         Delete one #if 0 block.
16053         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
16054         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
16055         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
16056         Only call eliminate_regs for real operands of the insn, not for parts
16057         of its structure or parts matched by things like match_operator.
16058         Use elimination_effects and check_eliminable_occurrences.  Use
16059         copy_insn to duplicate the pattern when not in the final pass.
16060
16061 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
16062
16063         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
16064         and fld.
16065
16066 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
16067
16068         * fixinc/README: document the "mach" machine matching test
16069         * fixinc/fixfixes.c: Implement the #else/#endif label fix
16070         * fixinc/fixtests.c: Implement the #else/#endif label test
16071         * fixinc/inclhack.def: utilize these tests and fixes
16072         * fixinc/inclhack.sh:  regen
16073         * fixinc/fixincl.x:  regen
16074         * fixinc/fixincl.sh:  regen
16075
16076 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
16077
16078         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
16079         depend on ggc.h.
16080
16081 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
16082
16083         * gcc.1: Document exit codes.
16084
16085 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16086
16087         * calls.c: Include tm_p.h later, so everything we need is defined.
16088         * expr.c: Likewise.
16089         * function.c: Likewise.
16090
16091         * except.c: Include tm_p.h.
16092
16093         * sparc.c: Likewise.
16094         (dwarf2out_cfi_label): Don't prototype.
16095         (check_return_regs, epilogue_renumber,
16096         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
16097         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
16098         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
16099         ultra_schedule_insn): Add static prototype.
16100         (data_segment_operand, text_segment_operand): Call itself with the
16101         proper number of arguments.
16102         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
16103
16104         * sparc.h: Move all declarations to sparc-protos.h.
16105         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
16106         symbolic_operand.
16107
16108         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
16109
16110         * config/svr4.h (text_section, ctors_section, dtors_section): Add
16111         Prototypes.
16112         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
16113         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
16114         ASM_OUTPUT_ASCII): Constify a char*.
16115
16116         * sparc-protos.h: New file for sparc prototypes.
16117
16118 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16119
16120         * function.c (record_insns, contains): Always declare and define.
16121         (record_insns): Mark with ATTRIBUTE_UNUSED.
16122
16123 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
16124
16125         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
16126         to .section when outputting a .bss section to deal with multiple
16127         .bss input sections (as happens with -fdata-sections)
16128         Also output %progbits, not @progbits so the assembler doesn't treat as
16129         a comment.
16130         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
16131
16132         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
16133         thumb parts even when building with non-thumb CPUs, by forcing
16134         thumb mode.
16135
16136 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
16137
16138         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
16139         (movdf_const_intreg_sp64): Similarly.
16140
16141         * local-alloc.c (update_equiv_regs): Check the correct insn
16142         for pre-existing REG_EQUIV notes.
16143
16144 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
16145
16146         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
16147         block reached by a branch if we're not going to actually process
16148         this block.
16149
16150 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
16151
16152         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
16153         a local extern function declaration.
16154
16155 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
16156
16157         * i386.c (ix86_expand_prologue): Properly wrap USE around
16158         reg for CALL_INSN_FUNCTION_USAGE.
16159
16160 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
16161
16162         * config/mips/mips.md (movdf_internal1a): Allow floating-point
16163         move between GP_REGs.
16164
16165 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
16166
16167         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
16168         the mode size when finding out if an offset is legal.
16169
16170 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
16171
16172         * basic-block.h (PROP_*): Move constants from ...
16173         * flow.c: ... here.
16174         (compute_bb_for_insn): Free the array before reallocating.
16175         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
16176         (allocate_reg_life_data): Reset all reg variables collected by
16177         propagate_block.
16178         (get_block_head_tail): Don't convert from bb to block.
16179         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
16180         (find_insn_reg_weight): Take block not bb.
16181         (schedule_block): Don't set block num for moved insns.
16182         (schedule_region): Don't update_life_info or find_insn_reg_weight.
16183         (schedule_insns): Do it here instead.
16184         * combine.c (combine_instructions): Invoke compute_bb_for_insn
16185         before update_life_info.
16186         * recog.c (split_all_insns, peephole2_optimize): Update for
16187         new arg to update_life_info.
16188         * rtlanal.c (remove_note): Cope with NULL note.
16189         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
16190         if we did sched1.
16191
16192 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
16193
16194         * jump.c (jump_optimize_1): More accurately detect casesi insns.
16195
16196         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
16197         block records so that merge_blocks_nomove will clean up correctly.
16198         (split_edge): Handle casesi insns.
16199
16200         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
16201
16202 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
16203
16204         * pa.md (call, call_value): Do not emit a blockage after restoring
16205         the PIC register.
16206
16207 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
16208
16209         * c-typeck.c (c_expand_asm_operands): Fix typo.
16210
16211 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16212
16213         * arm.c (fpu_rhs_operand): Verify modes.
16214         (fpu_add_operand): Likewise.
16215         (di_operand): Likewise.
16216         (soft_df_operand): Likewise.
16217
16218 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
16219
16220         * arm.c (arm_return_in_memory): APCS rules state that the elements
16221         of a structure returned in a register must be 'integer-like'.
16222
16223 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
16224
16225         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
16226         in the source tree when the generated targets are out of date
16227         * fixinc/genfixes: Alter it to run individual fixes for make.
16228         * fixinc/README: rewrite
16229         * fixinc/inclhack.def: moved initial comments to README
16230
16231 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
16232
16233         * toplev.c (main): Do not generate an error message if an
16234         unrecognised command line switch is recognisable by another
16235         language.  If extra_warnings are enabled, then generate a
16236         warning message instead.
16237
16238 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
16239
16240         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
16241         (insert_pack_attributes): Delete prototype.
16242
16243         * c-pragma.c (default_alignment): New static variable.
16244         (push_alignment): Initialize to current effective alignment.
16245         (pop_alignment): Use to set new alignment.
16246         (insert_pack_attributes): Delete function.
16247         (handle_pragma_token): Set default_alignment as well each time
16248         a #pragma pack(<n>) is encountered.
16249
16250 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
16251
16252         * reg-stack.c (stack_result): Aggregates are not returned in
16253         stack registers.
16254
16255 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
16256
16257         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
16258
16259 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
16260
16261         * basic-block.h (set_block_num): Declare.
16262         * flow.c (update_life_info): Don't call compute_bb_for_insn
16263         or free_basic_block_vars.
16264         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
16265         (insn_orig_block): Remove.
16266         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
16267         (schedule_block): Keep BLOCK_NUM up-to-date.
16268         (schedule_insns): Use compute_bb_for_insn.
16269         * recog.c (split_all_insns): Likewise.
16270         (peephole2_optimize): Likewise.
16271
16272 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
16273
16274         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
16275         if the pic register is used.
16276
16277 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16278
16279         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
16280         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
16281         if that tests TREE_PERMANENT.
16282
16283 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
16284
16285         * cse.c (invalidate_for_call): Do not remove memory references from
16286         the table here.  It's handled elsewhere.
16287
16288         * haifa-sched.c (add_dependence): Protect references to the
16289         true dependency cache with #ifdef INSN_SCHEDULING.
16290         (remove_dependence): Similarly.
16291
16292         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
16293         to the cfg code that this is a return instruction.
16294         * mn10300.md (return_internal): Similarly.
16295
16296         * combine.c (get_last_value): If the last set of a register
16297         is after subst_low_cuid, then we can not use it to determine
16298         the register's last value.
16299
16300 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
16301
16302         * Makefile.in: Back out previous change.
16303
16304 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
16305
16306         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
16307
16308         * haifa-sched.c (add_dependence): Only check/update the cache
16309         if it exists.
16310         (remove_dependence): Likewise.
16311         (schedule_insns): Only create the true_dependency_cache if the
16312         average number of instructions in a basic block is very large.
16313
16314 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
16315
16316         * Makefile.in (ggc-common.o): Depend on genrtl.h.
16317         (ggc-simple.o): Likewise.
16318         (ggc-page.o): Likewise.
16319
16320 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
16321
16322         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
16323         Prototype for exported functions.
16324         (pre_lcm, pre_rev_lcm): Remove prototypes.
16325         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
16326         (compute_available): Move to lcm.c, and change parameter order.
16327         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
16328         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
16329         (gcse_main): No longer call compute_preds_succs.  Rebuild the
16330         set table after reach pre pass.
16331         (pre_insert_map, pre_delete_map, edge_list): New.
16332         (alloc_pre_mem): Allocate edge vectors.
16333         (free_pre_mem): Delete edge vectors.
16334         (compute_pre_data): Call new edge based lcm routines.
16335         (process_insert_insn): New function.
16336         (insert_insn_end_bb): Use it.
16337         (pre_edge_insert): New function.
16338         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
16339         needed.
16340         (pre_insert_copies): Revamp using new edge based lcm outputs.
16341         (pre_delete): Likewise.
16342         (one_pre_gcse_pass): Insert & remove fake edges to the exit
16343         block.
16344         (compute_code_hoist_vbeinout): New new edge based routines.
16345         * lcm.c: Remove all the old LCM functions.  Replace with new ones
16346         that work with the new cfg datastructures and work with edges
16347         instead of blocks.
16348
16349 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16350
16351         * reload.h (struct reload): Add new fields "mode" and "nregs".
16352         * reload1.c: Change all occurrences of reload_mode and reload_nregs
16353         to reference the "mode" and "nregs" field within struct reload.
16354
16355 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
16356
16357         * haifa-sched.c (true_dependency_cache): New.
16358         (add_dependence): Use the true dependency cache to avoid expensive
16359         walks down the LOG_LINKS dependency list.  Add entries to the
16360         cache as necessary.
16361         (remove_dependence): Remove entries from the true dependency cache
16362         as needed.
16363         (schedule_insns): Allocate and initialize and free the true
16364         dependency cache.
16365
16366         * haifa-sched.c (schedule_insns): Do not remove inter-block
16367         dependencies anymore.
16368
16369 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
16370
16371         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
16372         * i386/t-winnt: Likewise.
16373
16374 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
16375
16376         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
16377
16378 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
16379
16380         * Makefile.in (LANGUAGES): Omit "proto".
16381         (clean): Remove stale comment about removing unprotoize.c.
16382
16383 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16384
16385         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
16386         using arithmetic on void pointers.
16387
16388 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
16389
16390         * haifa-sched.c (compute_block_forward_dependencies): Only check
16391         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
16392
16393 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
16394
16395         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
16396         (expr_equiv_p): Reject memories with different alias sets.
16397
16398 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
16399
16400         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
16401         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
16402         (f_options): Add "bounded-pointers" and "bounds-check" entries.
16403         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
16404         (lang_init): Set default for flag_bounds_check if still "unspecified".
16405
16406 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16407
16408         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
16409
16410 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16411
16412         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
16413         instructions.
16414
16415 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16416
16417         * config/c4x/c4x.md (*db_noclobber,
16418         *decrement_and_branch_until_zero_noclobber): New patterns and
16419         associated splitters.
16420
16421 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16422
16423         * config/c4x/c4x.md (parallel instruction patterns): Rework
16424         constraints to keep reload happy.
16425
16426 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16427
16428         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
16429         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
16430         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
16431         Add new patterns and associated post-reload splitters.
16432
16433 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16434
16435         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
16436
16437 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16438
16439         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
16440         if appropriate.
16441         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
16442
16443 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16444
16445         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
16446         memory mode.
16447
16448 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
16449
16450         * pa.c (move_operand): Rely on memory_address_p to determine the
16451         validity of non-indexed memory addresses.
16452         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
16453         operand in DFmode and SFmode when generating PA2.0 code.
16454
16455 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
16456
16457         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
16458
16459 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
16460
16461         * mips.c (function_prologue): Fix argument types.
16462         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
16463         (casesi_internal): Write to the scratch register.
16464
16465 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
16466
16467         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
16468         to U_CHAR **.
16469         (parse_charconst): Delete unnecessary cast when calling
16470         cpp_parse_escape.
16471         (cpplib.h): Kill prototype of cpp_parse_escape.
16472
16473 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
16474
16475         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
16476         * unroll.c (unroll_loop): Cast return value of alloca.
16477         * i370/i370.c: Include function.h and toplev.h.
16478         (i370_label_scan): Remove c++ commented abort.
16479         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
16480         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
16481         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
16482         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
16483
16484 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
16485
16486         * config/t-freebsd: Do not override USER_H.
16487         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
16488
16489 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
16490                           Mumit Khan  <khan@xraylith.wisc.edu>
16491
16492         * c-parse.in (component_decl): Support anonymous struct/union.
16493         (%expect): Update.
16494         * c-parse.y: Regenerate.
16495         * c-parse.c: Likewise.
16496         * objc/objc-parse.y: Likewise.
16497         * objc/objc-parse.c: Likewise.
16498         * c-decl.c (finish_struct): Don't sort the fields.
16499         (field_decl_cmp): Delete unused function.
16500
16501 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
16502
16503         * sparc.md (movsf_const_intreg): Revert last constraint change.
16504         (movdf_const_intreg_sp32): Likewise.
16505
16506 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
16507
16508         * cse.c: Include hashtab.h instead of splay-tree.h
16509         (struct cse_reg_info): No longer use variant union.  Add new
16510         field "regno".  All references changed to avoid union.
16511         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
16512         (free_cse_reg_info): Remove.
16513         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
16514         (get_cse_reg_info): Revamp to use expandable hash tables instead
16515         of splay trees.  Initialize new fields in cse_reg_info structure.
16516         (new_basic_block): Similarly.
16517
16518 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
16519
16520         * genrecog.c (message_with_line): Prototype.
16521         (validate_pattern): Pass along the set for the dest, not a flag.
16522         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
16523         Check for PC/CC0 as sources.
16524         (nodes_identical): Check for children position match before
16525         allowing the combination.
16526
16527         * rtl.c (read_rtx): Track line number across \\\n.
16528
16529 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
16530
16531         * mips.h (SPECIAL_MODE_PREDICATES): New.
16532         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
16533         (movdi+1, movsi+1): Add output reload constraint.
16534         (casesi_internal): Likewise.  Fix commentary.
16535         (return_internal): Use pmode_register_operand.
16536
16537 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
16538
16539         * 1750a.md (movstrqi): Add missing output reload constraint.
16540         (call_value): Likewise.
16541         * a29k.md (cpxxx patterns): Add missing match_operator mode.
16542         (jmpfdec): Add missing inout reload constraint.
16543         * elxsi.md (addsi patterns): Add missing output reload constraint.
16544         (move from sp): Use @ alternates.
16545         (call_value): No constraint on output.
16546         * fr30.md (movsi_pop): Add missing output reload constraint.
16547         (movsf_constant_store): Likewise.
16548         (splits): Remove constraints.
16549         (subsi3): Add missing mode.
16550         * i370.md (cmpstrsi+1): Add missing output reload constraint.
16551         (call_value): Likewise.
16552         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
16553         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
16554         * m32r.md (movsicc_internal): Add output reload constraint.
16555         (movstrsi_internal): Add inout reload constraints.
16556         * m88k.h (reg_names): Don't declare.
16557         (SPECIAL_MODE_PREDICATES): New.
16558         * m88k.md (*): Use register_operand not reg_or_0_operand
16559         on destinations.
16560         * mn10200.h (PREDICATE_CODES): New.
16561         * ns32k.md (ffs pattern): Add output reload constraint.
16562         * pdp11.md (sob pattern): Add inout reload constraint.
16563         * sh.md (splits): Remove constraints.
16564         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
16565         * v850.md (pattern_is_ok_for_epilogue): Likewise.
16566         * vax.md (jgequ pattern): Add inout reload constraint.
16567
16568 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
16569
16570         * configure.in (djgpp): Revert previous patch.
16571         * configure: Rebuit.
16572         * config/i386/djgpp.h: Revert previous patch.
16573
16574 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
16575
16576         * fixinc/inclhack.def: Restore patch lost during last merge of
16577         "no_bogosity" branch.
16578         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
16579
16580 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
16581
16582         * fixincludes: Add a HPUX 11 fix for inttypes.h.
16583         * fixinc/inclhack.def: Same.
16584         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
16585
16586 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
16587
16588         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
16589         as the base of a PLUS.
16590
16591 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16592
16593         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
16594         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
16595
16596 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
16597
16598         * pa.md (post_stw+1): Use pmode_register_operand.
16599         (dcacheflush, icacheflush): Likewise.
16600
16601         * i386.md (movstricthi_1): Allow r/r.
16602
16603 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
16604
16605         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
16606         to (not (and (arg0) (arg1))). Similary for and.
16607
16608         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
16609         fallthrough to associate code.
16610         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
16611         bits in common.
16612
16613         * combine.c (simplify_logical): Convert XOR to IOR if operands have
16614         no bits in common; remove XOR to ROTATE conversion.
16615
16616 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16617
16618         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
16619
16620 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16621
16622         * config/c4x/c4x.c (dst_operand): New.
16623         (PREDICATE_CODES): Update.
16624         * config/c4x/c4x.h (dst_operand): Declare it.
16625         * config/c4x/c4x.md:  Define mode for each unspec usage.
16626         (move patterns):  Use dst_operand predicate instead of src_operand.
16627         (movqi_update, movqf_update): Delete.
16628
16629 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
16630
16631         * recog.c (pmode_register_operand): New.
16632         * recog.h: Declare it.
16633         * genrecog.c (pred_codes): Likewise.
16634         (special_mode_pred_table): Likewise.
16635         (validate_pattern): Don't warn no mode for address_operand.
16636
16637         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
16638         if the operand is not insn-like.
16639
16640 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
16641                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
16642
16643         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
16644
16645 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
16646
16647         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
16648         instead of general_operand in a SET_DEST.  Use const_double_operand
16649         instead of an explicit test against CONST_DOUBLE.
16650         (movsf_const_lo): Add missing register mode.
16651         (goto_handler_and_restore): Add auxiliary test for Pmode.
16652         (flush): Adjust to use address_operand.
16653         (return_sf_no_fpu): Add missing output constraint.
16654
16655 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
16656
16657         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
16658         for call return value.
16659         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
16660
16661 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
16662
16663         * toplev.c (main): Only warn about options for other languages.
16664         * collect2.c (main): Pass -w to sub-gcc.
16665
16666 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
16667
16668         * flow.c (propagate_block): Add call-clobbered registers to
16669         significant too.
16670
16671         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
16672         zapping mem_set_list.
16673         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
16674         (mark_set_1, mark_used_regs): Likewise.
16675
16676 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
16677
16678         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
16679
16680 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16681
16682         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
16683         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
16684         options. Also add a new item "C-only Warning Options" to the
16685         option summary.
16686
16687 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
16688
16689         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
16690         from multiple calls.
16691
16692 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
16693
16694         * i386.md (call value patterns): Move to the end of the file.
16695         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
16696
16697 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
16698
16699         * configure.in (djgpp configuration): Define extra_objects..
16700         * configure: Rebuilt.
16701         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
16702         (DTORS_SECTION_ASM_OP): Define.
16703         (INIT_SECTION_ASM_OP): Define.
16704         (FINI_SECTION_ASM_OP): Define.
16705         (DATA_SECTION_ASM_OP): Define.
16706         (TEXT_SECTION_ASM_OP): Define.
16707         (EH_FRAME_SECTION_ASM_OP): Define.
16708         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
16709         (STARTFILE_SPEC): Add crtbegin.o.
16710         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
16711         to here from LINK_COMMAND_SPEC.
16712         (DO_GLOBAL_CTORS_BODY): Define.
16713         (CRTSTUFF_USE_FINI_SECTION): Define
16714         (HAS_INIT_SECTION): Delete.
16715
16716 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
16717
16718         * Makefile.in (all.cross): Depend on xcpp$(exeext).
16719
16720 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
16721
16722         * pa.h (PREDICATE_CODES): New.
16723
16724         * genrecog.c (validate_pattern): Condense the destination
16725         non-lvalue message.
16726
16727 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
16728
16729         * alpha.md (call-1): Supply missing mode for operator.
16730         (*): Add missing output reload constraints.  Remove constraints
16731         from define_splits.
16732
16733         * i386.h (SPECIAL_MODE_PREDICATES): New.
16734         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
16735         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
16736         (addsi_lea_3): Add missing mode for op 3.
16737         (prologue_set_got, prologue_get_pc): Add missing modes.
16738         (*) Add missing output reload constraints.
16739
16740 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
16741
16742         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
16743         check for member bit-size overflow and use var_size if it occurs.
16744         (layout_record): Use bitsize_int() to define the type size in bits.
16745         Likewise for computation and assignment to DECL_FIELD_BITPOS.
16746         (layout_decl): Likewise when assigning to DECL_SIZE.
16747
16748 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
16749
16750         * genrecog.c (validate_pattern): Typo last change.  Verify
16751         that output operands have output reloads.
16752
16753 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
16754
16755         * genrecog.c (special_mode_pred_table): New.
16756         (NUM_SPECIAL_MODE_PREDS): New.
16757         (find_operand): New.
16758         (validate_pattern): New argument `insn'.  Warn for assignment to
16759         any predicate accepting non-lvalues.  Conditionaly warn for
16760         match_operand without a mode.  Try much harder to match source
16761         and destination modes on a set.
16762         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
16763
16764 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
16765
16766         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
16767
16768 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
16769
16770         * combine.c (simplify_logical): Recognize xor pattern that encodes
16771         rotation.
16772
16773 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16774
16775         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
16776         alignment.
16777
16778 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
16779
16780         * ggc-page.c (MAP_FAILED): Provide default.
16781
16782 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
16783
16784         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
16785         * sparc.h (PREDICATE_CODES): Update.
16786
16787 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
16788
16789         * alpha.c (some_ni_operand): New.
16790         * alpha-protos.h: Declare it.
16791         * alpha.h (PREDICATE_CODES): Update.
16792         * alpha.md (sXaddq reload insns): Use some_ni_operand
16793         for SET_DEST instead of some_operand.
16794
16795 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
16796                           Jim Wilson  <wilson@cygnus.com>
16797
16798         * genrecog.c (maybe_both_true_2): Don't compare modes of
16799         two DT_pred tests.
16800         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
16801         after find_afterward.
16802         (debug_decision_1): Dump next and afterward codes.
16803
16804 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
16805
16806         * rtl.c (dump_and_abort): Remove.
16807         (fatal_with_file_and_line): New.
16808         (fatal_expected_char): New.
16809         (read_rtx_lineno, read_rtx_filename): New.
16810         (read_skip_spaces): Track line number.
16811         (read_name): Use fatal_with_file_and_line.
16812         (read_rtx): Use fatal_expected_char.  Track line number.
16813         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
16814
16815         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
16816         if it isn't a CODE_LABEL.
16817
16818         * genattr.c (main): Set read_rtx_filename.
16819         * genattrtab.c (main): Likewise.
16820         * gencodes.c (main): Likewise.
16821         * genconfig.c (main): Likewise.
16822         * genemit.c (main): Likewise.
16823         * genextract.c (main): Likewise.
16824         * genflags.c (main): Likewise.
16825         * genopinit.c (main): Likewise.
16826         * genoutput.c (main): Likewise.
16827         * genpeep.c (main): Likewise.
16828
16829         * genrecog.c (decision_test.u.insn): Add `lineno'.
16830         (pattern_lineno, error_count): New variables.
16831         (message_with_line): New.
16832         (add_to_sequence): Break out checking code to ...
16833         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
16834         (merge_insn): Use message_with_line.
16835         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
16836         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
16837
16838 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16839
16840         * expr.c (store_constructor): Clear union if constructor is empty.
16841
16842 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
16843
16844         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
16845         Add !endian checks.  Change %{...} to %(...).
16846
16847 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
16848
16849         * i386.md (*addsi3_cc): Renamed from addcsi3.
16850         (*addsi3_carry): Renamed from addxsi3.
16851         (*subsi3_cc): Renamed from subcsi3.
16852         (*subsi3_carry): Renamed from subxsi3.
16853         (*xorqi_cc_1): Renamed from xorcqi_1.
16854         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
16855         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
16856
16857 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
16858
16859         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
16860         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
16861
16862 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
16863
16864         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
16865         climb up the chain of insns.
16866
16867 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
16868
16869         * genrecog.c (write_subroutine): Careful for null trees.
16870         (process_tree): Don't elide empty functions.
16871
16872 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
16873
16874         * Makefile.in (genrtl.o): Depend on ggc.h.
16875         * configure.in (valloc): Probe for it.
16876         (with-gc): Use ggc-page if valloc present.
16877         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
16878         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
16879         (ggc_alloc_string): Moved from ggc-page.c.
16880         * ggc-none.c (ggc_alloc_obj): New.
16881         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
16882         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
16883         (struct globals): Likewise for dev_zero_fd.
16884         (init_ggc): Likewise for it's initialization.
16885         (ggc_allocated_p): Move careful dereference from ...
16886         (ggc_lookup_page_table): ... here.  Delete.
16887         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
16888         (alloc_anon): Use valloc if no mmap.
16889         (release_pages): Use free if using valloc.
16890         (ggc_alloc_obj): Renamed from alloc_obj.
16891         (ggc_set_mark): Renamed from mark_obj.
16892         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
16893         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
16894         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
16895         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
16896         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
16897         (ggc_collect): Use fp printing instead of our own rounding.
16898         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
16899         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
16900         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
16901         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
16902         (struct ggc_string, struct ggc_any): Delete.
16903         (offsetof): Provide default definition.
16904         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
16905         (PTR_KEY): New.
16906         (struct ggc_mem): New, from corpse of ggc_any.
16907         (struct ggc_status): Delete.
16908         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
16909         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
16910         (n_strings_collected, n_anys_collected): Delete.
16911         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
16912         (ggc_alloc_string, ggc_alloc): Delete.
16913         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
16914         (ggc_free_string, ggc_free_any): Delete.
16915         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
16916         (ggc_compare_addresses, ggc_mark_string): Delete.
16917         (ggc_mark_string_if_gcable, ggc_mark): Delete.
16918         (search_data): Delete.
16919         (struct globals): New.
16920         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
16921         (tree_insert, tree_lookup): New.
16922         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
16923         (clear_marks, sweep_objs): New.
16924         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
16925         (init_ggc): Set allocated_last_gc.
16926         (ggc_push_context): Gut.  Use G.context.
16927         (ggc_pop_context): Likewise.
16928         (ggc_pop_context_1): New.
16929         (debug_ggc_tree): New.
16930         (debug_ggc_balance, tally_leaves): New.
16931         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
16932         (ggc_mark_string_if_gcable): Remove decl.
16933         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
16934         (ggc_mark_rtvec_children): New.
16935         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
16936         (ggc_mark_if_gcable): New decl.
16937         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
16938         (ggc_alloc_tree, ggc_alloc): Likewise.
16939         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
16940         (ggc_alloc_obj): New decl.
16941         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
16942         (ggc_alloc_tree, ggc_alloc): Likewise.
16943         (ggc_set_mark): New decl.
16944         * rtl.h (struct rtx_def): Remove gc_mark.
16945         (struct rtvec_def): Likewise.
16946         * tree.h (struct tree_common): Likewise.
16947
16948 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
16949
16950         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
16951         float_format and thread_file definitions.
16952         * configure: Rebuilt.
16953
16954 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
16955
16956         * extend.texi (Function Names): Document types of function names.
16957
16958 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16959
16960         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
16961         an earlyclobbered output conflict with RELOAD_INPUT reloads.
16962
16963 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16964
16965         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
16966
16967 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16968
16969         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
16970
16971 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
16972
16973         * collect2.c (main): Do prelimnary link on AIX if rflag.
16974
16975 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
16976
16977         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
16978         __CTOR_LIST__ in opposite order, which is the correct order for sorted
16979         constructors.
16980         (__do_global_dtors): similarly for __DTOR_LIST__.
16981
16982 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16983                                 Diego Novillo <dnovillo@cygnus.com>
16984
16985         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
16986         FPUL_REGS.
16987
16988 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
16989
16990         * fixincl/*: Merged "no_bogosity" branch
16991         * fixincl/fixlib.h: protect against doubly defining t_bool
16992         * fixincl/server.h: protect against doubly defining t_bool
16993
16994 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
16995
16996         * genoutput.c: Include toplev.h.
16997
16998 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
16999
17000         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
17001         Undef.
17002         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
17003         * configure: Regenerate.
17004
17005 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
17006
17007         * gcse.c (delete_null_pointer_checks): Returns void.
17008
17009 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17010
17011         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
17012         * emit-rtl.c (copy_insn_1): Likewise.
17013
17014 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
17015
17016         * config/mips/mips.c (mips_build_va_list): Correct
17017         TREE_CHAIN setting when hard-float.
17018         (mips_va_start): Use corrected setting.
17019         (mips_va_arg): Likewise.  Also pass a tree to build of
17020         POSTINCREMENT_EXPR rather than a naked 'int'.
17021
17022 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
17023
17024         * ggc.h (ggc_push_context): Fix comment.
17025         (ggc_pop_context): Likewise.
17026         (mark_string_if_gcable): Likewise.
17027         * ggc-common.c (ggc_mark_rtx_children): Use
17028         ggc_mark_string_if_gcable.
17029         * ggc-page.c (ggc_lookup_page_table): New function.
17030         (ggc_allocated_p): Likewise.
17031         (mark_obj): Fix formatting.
17032         (ggc_mark_string_if_gcable): New function.
17033         * ggc-simple.c (ggc_allocated_strings): New variable.
17034         (ggc_strings_used): Likewise.
17035         (ggc_compare_addresses): New function.
17036         (ggc_pop_context): Pop the `any' memory too.
17037         (ggc_mark_string_if_gcable): New function.
17038         (ggc_collect): Initialize and tear down ggc_allocated_strings.
17039
17040 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
17041
17042         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
17043         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
17044         * rs6000.c (expand_block_move): Match movstrsi_?reg register
17045         changes.
17046
17047 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
17048
17049         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
17050         (sched_reg_live_length, sched_reg_basic_block): Delete.
17051         (current_block_num, bb_live_regs, old_live_regs): Delete.
17052         (dead_notes, struct sometimes): Delete.
17053         (sched_note_set, birthing_insn_p): Delete.
17054         (adjust_priority): Gut useless reg lifetime code.
17055         (create_reg_dead_note, attach_deaths): Delete.
17056         (attach_deaths_insn, new_sometimes_live): Delete.
17057         (finish_sometimes_live): Delete.
17058         (find_pre_sched_live, find_post_sched_live): Delete.
17059         (update_reg_usage): Delete.
17060         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
17061         (schedule_insns): Delete reg lifetime code.
17062         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
17063         (unlink_other_notes): Adjust REG_NOTE commentary.
17064         (reemit_notes): Use REG_SAVE_NOTE.
17065         (schedule_block): Likewise.
17066         (schedule_region): Allocate bitmap of blocks in region.  Use
17067         count_or_remove_death_notes.  Use update_life_info.
17068
17069         * rtl.h (REG_SAVE_NOTE): New.
17070         * rtl.c (reg_note_name): Update.
17071
17072 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
17073
17074         * combine.c (refresh_blocks, need_refresh): New.
17075         (combine_instructions): Allocate refresh_blocks.  Invoke
17076         update_life_info if needed.
17077         (distribute_notes): Mark refresh_blocks instead of installing
17078         USE insns.
17079         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
17080         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
17081
17082         * Makefile.in (recog.o): Depend on basic-block.h.
17083
17084 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
17085
17086         * genrecog.c (add_to_sequence): Thinko last change: delete
17087         shadowing allow_const_int variable.
17088
17089 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17090
17091         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
17092         __GNUC__ and __GNUC_MINOR__.
17093
17094         * gansidecl.h: Likewise.
17095
17096         * rtl.c: Likewise.
17097
17098         * rtl.h: Likewise.
17099
17100         * toplev.h: Likewise.
17101
17102         * tree.c: Likewise.
17103
17104         * tree.h: Likewise.
17105
17106         * varray.c: Likewise.
17107
17108         * varray.h: Likewise.
17109
17110 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17111
17112         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
17113         use one before a jump table.
17114
17115         * rtl.def (ADDRESS): Change documentation to match reality.
17116         * md.texi: Don't document it.
17117         * gmicro.md (load address pattern): Use 'p' constraint, delete use
17118         of ADDRESS rtx.
17119
17120         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
17121
17122 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
17123
17124         * genrecog.c (add_to_sequence): Move allow_const_int test outside
17125         known predicate block; default allow_const_int true.
17126         (debug_decision_list): New.
17127
17128 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
17129
17130         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
17131
17132 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
17133
17134         * gcse.c (gcse_main): Avoid global optimizations if we have a
17135         large number of basic blocks and the ratio of edges to blocks
17136         is high.
17137         (delete_null_pointer_checks): Likewise.
17138
17139 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
17140
17141         * c-common.c (check_format_info): Warn if format string isn't a
17142         string literal.
17143
17144 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
17145
17146         * configure.in (arm*-*-*): Don't let autoconf remove brackets
17147         * configure: regenerate
17148
17149 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
17150
17151         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
17152         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
17153         (peepholes): Re-enable.
17154
17155 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
17156
17157         * Makefile.in (flow.o): Depend on TREE_H.
17158         * basic-block.h (REG_SET_EQUAL_P): New.
17159         (XOR_REG_SET): New.
17160         (n_edges): Declare.
17161         (free_regset_vector): Remove declaration.
17162         (flow_delete_insn_chain): Declare.
17163         (enum update_life_extent): New.
17164         (update_life_info, count_or_remove_death_notes): Declare.
17165         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
17166         Verify register live at bb->global_live_at_start before adding USE.
17167         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
17168         (CLEAN_ALLOCA): New.
17169         (n_edges): New.
17170         (PROP_*): New flags.
17171         (find_basic_blocks_1): Use alloc_EXPR_LIST.
17172         (clear_edges): Zero n_edges.
17173         (make_edge): Increment n_edges.
17174         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
17175         (flow_delete_insn_chain): Export.
17176         (delete_block): Decrement n_edges.
17177         (merge_blocks_nomove): Likewise.
17178         (life_analysis): Give life_analysis_1 PROP flags.
17179         (verify_wide_reg_1, verify_wide_reg): New.
17180         (verify_local_live_at_start): New.
17181         (update_life_info): Rewrite to call into propogate_block.
17182         (mark_reg): New.
17183         (mark_regs_live_at_end): After reload, if epilogue as rtl,
17184         always mark stack pointer.  Conditionally mark PIC register.
17185         After reload, mark call-saved registers, return regsiters.
17186         (life_analysis_1): Accept PROP flags not remove_dead_code.
17187         Call mark_regs_live_at_end before zeroing regs_ever_live.
17188         Use calculate_global_regs_live.  Copy global_live_at_end before
17189         calling final propagate_block.  Zero reg_next_use on exit.
17190         (calculate_global_regs_live): New.
17191         (allocate_bb_life_data): Don't allocate bb->local_set.
17192         (init_regset_vector, free_regset_vector): Remove.
17193         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
17194         Test flags before every operation.  Warn if prologue/epilogue insn
17195         would have been deleted.
17196         (mark_set_regs, mark_set_1): Accept and use FLAGS.
17197         Use alloc_EXPR_LIST.
17198         (mark_used_regs): Accept and use FLAGS, not FINAL.
17199         Remove special handling for RETURN.
17200         (try_pre_increment): Use alloc_EXPR_LIST.
17201         (dump_flow_info): Dump n_edges.
17202         (unlink_insn_chain, split_hard_reg_notes): Remove.
17203         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
17204         (find_insn_with_note, new_insn_dead_notes): Remove.
17205         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
17206         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
17207         (replace_insns): Remove.
17208         (count_or_remove_death_notes): New.
17209         (verify_flow_info): Abort on error after all checks.
17210         (remove_edge): Decrement n_edges.
17211         (remove_fake_edges): Tweak format.
17212         * haifa-sched.c (schedule_insns): Use split_all_insns.
17213         * output.h (update_life_info): Remove declaration.
17214         * recog.c (split_all_insns): From the corpse of split_block_insns,
17215         do the whole function block by block.  Use update_life_info.
17216         (recog_last_allowed_insn): New.
17217         (recog_next_insn): Mind it.
17218         (peephole2_optimize): Set it.  Walk backwards through blocks.
17219         Use update_life_info.
17220         * rtl.h (update_flow_info, replace_insns): Remove declarations.
17221         (split_all_insns): Declare.
17222         * toplev.c (rest_of_compilation): Thread prologue before flow2.
17223         Use split_all_insns.
17224
17225         * i386.md (or -1 peep2s): Disable.
17226
17227 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
17228
17229         * config/mips/mips.md (movstrsi+[123]) : Combine these into
17230         a single pattern.  Scrap the 'd' versions as unnecessary.
17231
17232         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
17233         tablejump_mips162,tablejump_internal4): The operands to a
17234         label_ref must be VOIDmode.
17235
17236 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17237
17238         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
17239
17240 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
17241
17242         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
17243
17244 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
17245
17246         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
17247         cache every function if ggc_p.
17248
17249 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17250
17251         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
17252         instead of copy_rtx.  Accept sequences that contain asm statements.
17253         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
17254         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
17255         orig_asm_operands_vector, copy_asm_operands_vector,
17256         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
17257         variables.
17258         * rtl.h (copy_insn, copy_insn_1): Declare.
17259
17260 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17261
17262         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
17263
17264         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
17265         arguments to `current_file_function_operand'.
17266
17267         * genrecog.c: Include hard-reg-set.h and resource.h in the
17268         generated output file.
17269
17270         * real.c: Include tm_p.h.
17271
17272 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17273
17274         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
17275         output operand.
17276
17277 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
17278
17279         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
17280         before the fctiwz insn.
17281
17282 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17283                           Mark Mitchell  <mark@codesourcery.com>
17284
17285         * tree.c (make_lang_type_fn): New funtion pointer.
17286         (make_lang_type): Call it.
17287         * tree.h (make_lang_type): Declare.
17288         (make_lang_type_fn): Likewise.
17289         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
17290
17291 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
17292
17293         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
17294         make sure that HIGH instructions are copied into BASE_REGS.
17295
17296 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
17297
17298         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
17299
17300 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
17301
17302         * c-decl.c (finish_struct): Use simpler method of
17303         removing elements of a singly-linked list.
17304
17305 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
17306
17307         * alpha.md (peephole2's): Comment out peephole2's that generate
17308         buggy code.
17309
17310 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
17311
17312         * genrecog.c (add_to_sequence): Disable mode check for
17313         wildcard matches.
17314
17315 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17316
17317         * ggc-simple.c (init_ggc): Set empty_string.
17318
17319 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
17320
17321         * configure.in: Detect mmap.  Add --with-gc=foo to select
17322         garbage collector; default to page if mmap available.
17323         * Makefile.in (GGC): Substitute.
17324
17325 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
17326
17327         * c-decl.c (ggc_p): Enable.
17328
17329 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17330
17331         * flow.c (verify_flow_info): Make it extern & unconditionally define.
17332
17333 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
17334
17335         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
17336         string for little-endian-data.
17337
17338 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
17339
17340         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
17341         case somebody tries to compile --enable-checking code with gcc
17342         1.34 or such.
17343
17344 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
17345
17346         * genrecog.c (add_to_sequence): Verify operand to label_ref is
17347         VOIDmode.
17348
17349 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
17350
17351         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
17352         * jump.c (jump_optimize_1): Document why.
17353
17354 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17355
17356         * collect2.c (scan_prog_file, scan_libraries): Prototype function
17357         pointers and casts for `int_handler' and `quit_handler'.
17358
17359         * flow.c (verify_flow_info, split_hard_reg_notes,
17360         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
17361         remove_edge, remove_fake_successors): Add static prototypes.
17362         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
17363         (mark_set_1): Initialize variable `regno'.
17364         (unlink_insn_chain): Likewise for variable `curr'.
17365         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
17366
17367         * loop.c (strength_reduce): Initialize variable
17368         `unrolled_insn_copies'.
17369         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
17370         prototypes.  Change these functions to take const PTR parameters
17371         to avoid prototype conflict when used as the comparson argument
17372         for qsort.
17373         (check_dbra_loop): Initialize variable `comparison_val'.
17374
17375         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
17376         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
17377         (find_valid_class): Initialize variable `best_class'.
17378         (find_reloads): Call memcpy, not bcopy.
17379
17380         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
17381         (hard_reg_use_compare): Don't needlessly cast away const.
17382         (reload_reg_class_lower): Likewise.
17383         (choose_reload_regs): Initialize variable `regno'.
17384
17385 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
17386
17387         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
17388
17389 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
17390
17391         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
17392         ({,d}discard): Add forward declarations.  Declare parameter as
17393         unused.
17394         (main_without_main): Explicitly declare return type to be int.
17395         (memcpy): Properly declare.
17396
17397         * libgcc2.c (toplevel): If inhibit_libc is defined and not
17398         building the trampoline support, declare malloc, free, and
17399         atexit.
17400         (__clear_cache): Mark arguments as potentially unused.
17401
17402         * frame.c (toplevel): If inhibit_libc is defined, declare
17403         malloc and free.
17404
17405 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
17406
17407         * flow.c (make_edge): Accept an optional 2D bitmap in which
17408         to cache edge existence.  Update all callers.
17409         (make_label_edge, make_eh_edge): Pass through the edge cache.
17410         (make_edges): Provide the cache.
17411
17412 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17413
17414         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
17415         a char*.
17416         (local_mbtowc): Change the type of variable `i' from int to size_t.
17417
17418         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
17419         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
17420
17421 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
17422
17423         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
17424         after other includes that define the appropriate types.  Include
17425         tm_p.h for getting user prototypes.
17426         * ggc-callbacks.c (toplevel): Ditto.
17427         * ggc-none.c (toplevel): Ditto.
17428         * gcc-page.c (toplevel): Ditto.
17429         * ggc-simple.c (toplevel): Ditto.
17430
17431 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
17432                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
17433
17434         * config/mips/mips.c (mips_move_2words): Split doubles if
17435         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
17436
17437 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
17438
17439         * genrecog.c (struct decision_test): New.
17440         (struct decision): Remove test-related members, sort the rest by size.
17441         (IS_SPLIT): Simplify.
17442         (new_decision, new_decision_test): New.
17443         (add_to_sequence): Use them.  No special handling for args of
17444         non-MATCH codes.
17445         (maybe_both_true): Renamed from not_both_true; return sense changed.
17446         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
17447         of maybe_both_true and adjusted for decision_test.
17448         (position_merit): Remove.
17449         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
17450         (merge_accept_insn): New, broken out of merge_trees.
17451         (merge_trees): Use them.  No special case for c_test; no node
17452         splitting; use test type instead of position_merit.
17453         (factor_tests): New.
17454         (simplify_tests): New.
17455         (break_out_subroutines): Don't write code now.
17456         (find_afterward): New.
17457         (write_afterward, write_switch, write_cond): New.
17458         (write_action, is_unconditional): New.
17459         (write_node): New.  Use them.
17460         (write_tree_1): Rewrite.  Use the new functions above.
17461         (write_tree): Remove afterward processing.
17462         (write_subroutine): Simplify function variant emission.
17463         (write_subroutines): New.
17464         (same_codes, clear_codes): Remove.
17465         (same_modes, clear_modes): Remove.
17466         (write_header): New, broken out of main.
17467         (make_insn_sequence): Use new_decision and new_decision_test.
17468         (process_tree): New, broken out of main.
17469         (main): Adjust for merge_trees interface change.
17470         Don't #define operands in the output file.
17471         (record_insn_name): New, broken out of make_insn_sequence.
17472         (debug_decision_2, debug_decision_1, debug_decision_0): New.
17473         (debug_decision): New.
17474
17475 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
17476
17477         * resource.c (find_free_register): Mark class_str argument const.
17478         * resource.h: Update prototype to match.
17479
17480         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
17481         * i386.md: Give all anonymous insns names.
17482
17483 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
17484
17485         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
17486         blocks.
17487
17488 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
17489
17490         * toplev.c (dbr_sched_time): Unconditional.
17491         (peephole2_time): New.
17492         (compile_file): Add pass numbers to all of the dump file suffixes.
17493         Dump peephole2_time.  Don't dump times for non-applicable passes.
17494         (rest_of_compilation): Add pass numbers to dump file suffixes.
17495         Conditionalize calls to the scheduler.
17496         * invoke.texi: Update.
17497
17498 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
17499
17500         * flow.c (make_edges): Fix insn iteration.
17501         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
17502         (find_basic_blocks_1): Fix spelling mistake.
17503
17504 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
17505
17506         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
17507         always have side-effects.  Use memset not bzero.
17508         (make_node): Likewise.
17509
17510 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
17511
17512         * stmt.c (expand_anon_union_decl): When any of the elements of the
17513         union is addressable, so is the entire union.
17514
17515 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
17516
17517         * sbitmap.c (sbitmap_ones): Don't set too many bits.
17518
17519         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
17520         * bitmap.c (bitmap_operation): Return true iff TO changed.
17521         (bitmap_equal_p): New.
17522         (bitmap_bit_p): Tidy arithmetic.
17523         (debug_bitmap_file): Likewise.
17524
17525 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
17526
17527         * toplev.c (rest_of_compilation): Turn on cse_not_expected
17528         before cse2 instead of after.
17529
17530 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
17531
17532         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
17533         register offsets.
17534
17535 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17536
17537         * cppinit.c (is_idchar initializer): Loosen tests to accept
17538         gcc 2.>6 and >2.
17539
17540 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
17541
17542         * mips.md: Define conditional move patterns for floating point
17543         operands and DI mode conditions.
17544
17545 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
17546
17547         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
17548         always have side-effects.
17549
17550 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
17551
17552         * mn10200.c (asm_file_start): Fix typo.
17553
17554         * cppinit.c (is_idchar initializer): Tighten tests for when
17555         to put the table into initialized memory.
17556
17557         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
17558         not an array of rtunion.
17559         * gcc-page.c (ggc_alloc_rtvec): Similarly.
17560         * gcc-simple (ggc_free_rtvec): Similarly.
17561
17562         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
17563         of rtunions.
17564
17565         * mbchar.h: Add missing #endif.
17566
17567         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
17568         (FPBIT, DPBIT): Define.
17569
17570 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17571
17572         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
17573
17574         * profile.c (instrument_arcs, output_gcov_string,
17575         tablejump_entry_p): Add static prototypes.
17576         (output_gcov_string): Constify a char*.
17577
17578         * regmove.c (replacement_quality, fixup_match_2): Add static
17579         prototypes.
17580
17581         * resource.h (reg_dead_p): Add extern prototype.
17582
17583         * rtl.c (trim_filename): Add static prototype.
17584
17585         * scan-decls.c (skip_to_closing_brace): Likewise.
17586
17587         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
17588         (expand_end_case): Initialize variable `range'.
17589         (emit_case_nodes): Remove unused prototype `rtx_fn'.
17590
17591         * varasm.c (asm_emit_uninitialised): Add static prototype.
17592         (asm_emit_uninitialised, assemble_variable): Mark parameter with
17593         ATTRIBUTE_UNUSED.
17594
17595 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17596
17597         * cpplib.c (if_directive_nameo): Add static prototype.
17598
17599         * cse.c (cse_insn): Remove unused variable `p'.
17600
17601         * except.c (create_rethrow_ref, push_entry,
17602         receive_exception_label, new_eh_region_entry, find_func_region,
17603         clear_function_eh_region, process_nestinfo): Add static prototypes.
17604         (get_reg_for_handler): Hide definition.
17605         (process_nestinfo): Initialize variable `extra_handlers'.
17606
17607         * expr.h (expand_builtin_longjmp): Add extern prototype.
17608
17609         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
17610
17611         * function.c (prepare_function_start): Likewise.
17612         (pop_function_context_from): Mark parameter `context' with
17613         ATTRIBUTE_UNUSED.
17614         (push_temp_slots_for_block, flush_addressof): Hide definition.
17615
17616         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
17617         solve_program_flow_graph, calculate_branch_probs,
17618         function_summary, main, fancy_abort): Add prototypes.
17619
17620         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
17621         (add_hash): Constify a char*.
17622
17623         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
17624         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
17625         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
17626
17627         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
17628
17629         * lists.c (free_list, zap_lists): Likewise.
17630
17631 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17632
17633         * alias.c (nonlocal_reference_p): Add static prototype.
17634
17635         * bitmap.c (bitmap_element_allocate): Prototype args in function
17636         pointer cast.
17637
17638         * builtins.c (stabilize_va_list): Add static prototype.
17639         (expand_builtin_va_arg): Constify a char*.
17640
17641         * c-lex.c (getch, put_back, extend_token_buffer_to,
17642         read_line_number, token_getch, token_put_back): Add static
17643         prototypes.
17644
17645         * c-parse.gperf (hash, is_reserved_word): Likewise.
17646
17647         * cccp.c (is_dir_separator): Likewise.
17648
17649 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17650
17651         * graph.h: New file to prototype functions exported by graph.c.
17652
17653         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
17654
17655         * graph.c: Include graph.h.
17656
17657         * toplev.c: Likewise.  Remove redundant prototypes.
17658
17659 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
17660
17661         * invoke.texi: Removed duplicated description for -Q.
17662
17663 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
17664
17665         * extend.texi: Grammar fix in __extension__ text.
17666
17667 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
17668
17669         * md.texi (define_peephole2): New section.
17670
17671 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
17672
17673         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
17674         (mov $-1 to or peepholer): Enable for pentium when optimizing for
17675         speed.
17676
17677 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
17678
17679         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
17680
17681 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
17682
17683         * i386.md (ffs expander): Emit Pentium friendly code for
17684         TARGET_PENTIUM.
17685
17686 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
17687
17688         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
17689         for non-trees.
17690         (build1): Likewise.
17691
17692 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17693
17694         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
17695
17696 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
17697
17698         * config/m68k/m68k.c (use_return_insn): Return false if the pic
17699         register is in use.
17700
17701 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17702
17703         * md.texi (No Constraints): Delete section.
17704         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
17705         * final.c (final_scan_insn): We always have register constraints.
17706         * genattrtab.c: Don't include "insn-config.h".
17707         (write_attr_case): We always have register constraints.
17708         * genconfig.c (register_constraint_flag): Delete.
17709         (walk_insn_part): Don't check whether we have register constraints.
17710         (main): Don't write out "#define REGISTER_CONSTRAINTS".
17711         * genoutput.c (have_constraints): Delete.
17712         (main): Don't set it.
17713         (output_operand_data): We always have constraints.
17714         (scan_operands): Likewise.
17715         (compare_operands): Likewise.
17716         * local-alloc.c (block_alloc): We always have constraints.
17717         (requires_inout): Always compile this function.
17718         * recog.c (extract_insn): We always have constraints.
17719         (constrain_operands, reg_fits_class_p): Always compile these
17720         functions.
17721         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
17722         fields.
17723         (struct insn_operand_data): Likewise.
17724         * regclass.c (regclass): We always have constraints.
17725         (record_reg_classes, copy_cost, record_address_regs,
17726         auto_inc_dec_reg_p): Always compile these functions.
17727         * regmove.c (regmove_optimize): We always have constraints.
17728         * reload.c (find_reloads): Likewise.
17729         * reload1.c (reload): Likewise.
17730         (reload_cse_simplify_operands): Likewise.
17731         * i860.c (output_delay_insn): Likewise.
17732
17733 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
17734
17735         * iris6.h (BUILD_VA_LIST_TYPE): Define.
17736
17737 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17738
17739         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
17740         for the va_list record.
17741
17742 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
17743
17744         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
17745         prologues.
17746
17747 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
17748
17749         * alias.c: Include insn-flags.h.
17750         * Makefile.in (alias.o): Update.
17751
17752 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
17753
17754         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
17755         to LTU and GEU.  Handle more cases using sbb.
17756
17757 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
17758
17759         * i386.md (truncatexfdf splitters): Do not use subreg.
17760         (fop XFmode patterns): Fix mode in operand testing.
17761
17762 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
17763
17764         * jump.c (jump_optimize_1): Amend last change to test only the
17765         form of the operand, not the insn.
17766
17767         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
17768         not register_operand to determine when B may need preloading.
17769
17770 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
17771
17772         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
17773         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
17774         (call-value patterns): Move to end of file.
17775         (*): Remove mode from label_ref in (pc) context.
17776         (movstrqi): Use memory not general_operand for BLKmode operands.
17777         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
17778         to register_operand operands.
17779         (peep2 patterns): Convert from commented-out peephole patterns.
17780
17781 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17782
17783         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
17784         to BUILT_IN_INIT_DWARF_REG_SIZES.
17785         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
17786         Renamed from BUILT_IN_DWARF_REG_SIZE; call
17787         expand_builtin_init_dwarf_reg_sizes.
17788         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
17789         with __builtin_init_dwarf_reg_size_table.
17790         * dwarf2out.c (struct reg_size_range): Delete.
17791         (expand_builtin_init_dwarf_reg_sizes): New function.
17792         (expand_builtin_dwarf_reg_size): Delete.
17793         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
17794         (expand_builtin_dwarf_reg_size): Don't declare.
17795         * libgcc2.c (dwarf_reg_size_table_initialized): New.
17796         (dwarf_reg_size_table): New.
17797         (init_reg_size_table): New function.
17798         (copy_reg): Use dwarf_reg_size_table.
17799         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
17800         before use.
17801
17802 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
17803
17804         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
17805         Correctly build argument list to constructor and destructor functions.
17806
17807 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
17808
17809         * c-tree.h (warn_float_equal): Declare.
17810         * c-decl.c (warn_float_equal): Define.
17811         (c_decode_option): Recognize -W[no-]float-equal.
17812         * c-typeck.c (build_binary_op): Conditionally warn
17813         about equality tests of floating point types.
17814         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
17815         * invoke.texi: Add docs for -Wfloat-equal warning.
17816
17817 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
17818
17819         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
17820         generating RTL directly.
17821         * mips.h (INIT_TARGET_OPTABS): Likewise.
17822         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
17823
17824         * expr.h (init_mov_optab): Delete declaration
17825
17826         * h8300.c (WORD_REG_USED): Update to avoid useless register
17827         saves in interrupt functions and functions which never return.
17828
17829         * cse.c (struct set): Delete inner_dest_loc field.
17830         (cse_insn): Remove assignments to inner_dest_loc field.
17831
17832 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
17833
17834         * ggc-page.c: Don't include <unistd.h> etc taken care of
17835         by "system.h".  Include <sys/mman.h> afterward.
17836
17837 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
17838
17839         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
17840         ggc_alloc_string.
17841
17842 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
17843
17844         * xcoffout.c (xcoffout_declare_function): Add documentation.
17845         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
17846         TARGET_64BIT.  Compare constant to -1, not bit pattern.
17847         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
17848         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
17849         gen_movsi typos.
17850
17851 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
17852
17853         * dwarf2out.c (add_abstract_origin_attribute): Abort if
17854         origin_die is NULL.
17855         (gen_inlined_enumeration_type_die): Do not abort if the type has
17856         not been writeen out.
17857         (gen_inlined_structure_type_die): Do not abort if the type has
17858         not been writeen out.
17859         (gen_inlined_union_type_die): Do not abort if the type has
17860         not been writeen out.
17861         (gen_tagged_type_instantiation_die): Do not abort if the type
17862         has not been written out.
17863
17864 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17865
17866         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
17867         call it.
17868         * reg-stack.c (straighten_stack): Copy hard reg set with
17869         COPY_HARD_REG_SET.
17870
17871 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
17872
17873         * builtins.c (stabilize_va_list): Stabilize array type va_list
17874         to a pointer type, not the base record type.
17875         (expand_builtin_va_copy): Dereference the pointers explicitly;
17876         use the correct size for the copy.
17877
17878         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
17879         (rs6000_va_arg): Likewise.
17880
17881 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
17882
17883         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
17884
17885 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
17886
17887         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
17888         field.
17889         (DECL_BUILT_IN_CLASS): Adjust accordingly.
17890
17891 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
17892
17893         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
17894         (init_ggc): Use it instead of a constant.
17895         (ggc_collect): Bound allocated_last_gc by it.
17896
17897 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
17898
17899         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
17900         with va_list.
17901
17902 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
17903
17904         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
17905         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
17906         * configure:  Regen.
17907         * config/mips/openbsd.h:  New, OpenBSD little endian target.
17908         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
17909         * config/mips/xm-openbsd.h:  New, OpenBSD host.
17910
17911 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
17912
17913         * config/m68k/m68k.c (output_function_prologue,
17914         output_function_epilogue): Use
17915         current_function_uses_pic_offset_table instead of regs_ever_live
17916         to decide whether to save/restore pic register.
17917         (legitimize_pic_address): Don't modify regs_ever_live any more.
17918
17919 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
17920
17921         * function.h (struct function): Add x_dont_save_pending_sizes_p.
17922         * stor-layout.c (variable_size): Don't add sizes to the pending
17923         sizes list if x_dont_save_pending_sizes_p is set.
17924
17925 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
17926
17927         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
17928         for symbolic_operand().
17929         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
17930
17931 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17932
17933         * combine.c (gen_rtx_combine): Add missing call to va_end().
17934
17935         * final.c (asm_fprintf): Likewise.
17936
17937         * genattrtab.c (attr_rtx): Likewise.
17938
17939 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
17940
17941         * cse.c: Update comments.
17942         (cse_insn): When converting a conditional/computed jump into
17943         an unconditional jump, always make sure a BARRIER immediately
17944         follows the converted jump.  Do not delete unreachable code.
17945         (cse_basic_block): Do not delete unreachable code.
17946         * toplev.c (rest_of_compilation): Move call to
17947         delete_trivially_dead_insns after the conditional call to
17948         jump_optimize.
17949
17950 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17951
17952         * collect2.c (make_temp_file): Don't prototype.
17953
17954         * gcc.c (make_temp_file): Likewise.
17955
17956         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
17957
17958 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
17959
17960         * varasm.c (asm_emit_uninitialised): New function: Generate
17961         the assembler statements necessary to declare an uninitialised
17962         variable.
17963         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
17964         variable.
17965         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
17966         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
17967         section.
17968         (assemble_variable): Use asm_emit_uninitialised to emit an
17969         uninitialised variable.
17970
17971 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
17972
17973         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
17974         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
17975         <geoffk@cygnus.com>.
17976
17977 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17978
17979         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
17980         * c-common.h (builtin_function): Don't declare.
17981
17982         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
17983         DECL_BUILT_IN.
17984         (pushdecl): Likewise.
17985         (finish_decl): Likewise.
17986         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
17987         int.  All callers changed.
17988         Set the builtin's DECL_BUILT_IN_CLASS.
17989         * tree.h (enum built_in_class): New.
17990         (enum built_in_function): Delete NOT_BUILT_IN.
17991         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
17992         in a union.
17993         (DECL_SET_FUNCTION_CODE): Likewise.
17994         (DECL_BUILT_IN_CLASS): New macro.
17995         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
17996         (struct tree_decl): Split builtin function code field into a
17997         struct.
17998         (builtin_function): Declare.
17999
18000 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
18001
18002         * optabs.c (init_traps): Fix typo in last change.
18003
18004 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
18005
18006         * toplev.c (rest_of_decl_compilation): Update comment.
18007
18008 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
18009
18010         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
18011         in .sbss if appropriate.
18012         (EXTRA_SECTION_FUNCTIONS): Add sbss.
18013         (SBSS_SECTION_ASM_OP): New macro.
18014         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
18015         (EXTRA_SECTIONS): Add in_sbss.
18016         * config/mips/mips.h: Prototype sbss_section.
18017
18018 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
18019
18020         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
18021         to disappear.
18022
18023 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
18024
18025         * optabs.c (init_traps): Register trap_rtx as a GC root.
18026
18027 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18028
18029         * config/mips/mips.c (function_arg_pass_by_reference): Define
18030         unconditionally, since it's called unconditionally.
18031
18032 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
18033
18034         * toplev.c (documented_lang_options): Add -fshort-wchar.
18035         * c-decl.c (c_decode_option): Likewise.
18036         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
18037         for wchar_t.
18038         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
18039         * gcc.c (default_compilers): If -fshort-wchar,
18040         override __WCHAR_TYPE__.
18041         * tm.texi (C Dialect Options): Add -fshort-wchar.
18042
18043         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
18044         symbol for a variable.
18045
18046         * cpplib.h (CPP_PREPROCESSED): New macro.
18047         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
18048         we're seeing this input for a second time.
18049
18050 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
18051
18052         * emit-rtl.c (init_emit_once): Initialize modes first.
18053
18054 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
18055
18056         * config/i386/i386.c (pic_label_name): Change to char pointer.
18057         (global_offset_table): New variable.
18058         (load_pic_register): Fill global_offset_table if it hasn't
18059         already been done.  Allocate pic_label_name dynamically.
18060         * ggc.h (empty_string): New variable.
18061         * ggc-simple.c (empty_string): Likewise.
18062         (init_ggc): Allocate empty_string and add as root.
18063         * stmt.c (digit_strings): New variable.
18064         (init_stmt): Add last_block_end_note as root.  Allocate and
18065         initialize digit_strings.
18066         (expand_asm_operands): Use empty_string instead of string
18067         constant.  Use digit_strings instead of string constants.
18068         * profile.c (init_arc_profiler): Allocate string with
18069         ggc_alloc_string instead of xmalloc.
18070         (output_func_start_profiler): Likewise.
18071         * c-typeck.c (digest_init): Check if init is error_mark_node.
18072
18073 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
18074                           Richard Henderson  <rth@cygnus.com>
18075
18076         * ggc-page.c: New file.
18077         * Makefile.in (ggc-page.o): New.
18078
18079 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
18080
18081         * invoke.texi: Document -fdelete-null-pointer-checks
18082         * toplev.c (flag_delete_null_pointer_checks): New.
18083         (f_options): Add entry for -fdelete-null-pointer-checks.
18084         (rest_of_compilation): Conditionalize null pointer check
18085         elimination on flag_delete_null_pointer_checks.
18086         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
18087
18088 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
18089
18090         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
18091         copyright notice and special exception to GPL.
18092
18093 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18094
18095         * abi64.h (mips_function_value): Add prototype arguments.
18096
18097         * mips-protos.h: New file with mips prototypes.
18098
18099         * mips.c: Include "tm_p.h".
18100         (mktemp, lookup_name): Add prototype arguments.
18101         (extern_list, string_constant, mips_fill_delay_slot,
18102         mips_output_external, mips_output_external_libcall,
18103         mips_output_filename, mips_declare_object, function_prologue,
18104         mips_expand_prologue, function_epilogue, mips16_constant,
18105         build_mips16_function_stub, mips_output_conditional_branch):
18106         Constify a char*.
18107         (mips_va_start): Remove unused variable `u'.
18108         (mips_va_arg): Cast value to unsigned when comparing against one.
18109         (trace): Delete.
18110         (save_restore_insns, mips_expand_prologue): Add missing arg in
18111         call to `large_int'.
18112
18113         * mips.h: Move prototypes to mips-protos.h.
18114         (data_section, memory_address_p, rdata_section,
18115         readonly_data_section, simple_epilogue_p, text_section): Delete
18116         prototypes delcared elsewhere.
18117         (mips_epilogue_delay_slots, print_options): Delete unused decls.
18118         (trace): Delete.
18119         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
18120
18121         * mips.md: Delete extra args in call to `mips_move_2words'.
18122
18123         * xm-iris6.h (alloca): Add prototype argument.
18124
18125         * genpeep.c: Include "tm_p.h" in generated output file.
18126
18127 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18128
18129         * basic-block.h (find_edge_index): Change parameters.
18130         * flow.c (verify_edge_list): Pass basic_block parameters to
18131         find_edge_index instead of integers.
18132
18133 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
18134
18135         * combine.c (simplify_comparison): Use an unsigned shift to adjust
18136         the constant.
18137
18138 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
18139
18140         * gcc.1: Fix a formatting error.
18141
18142 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
18143
18144         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
18145         i786, mn10200, mn10300, pdp11, v850.
18146
18147 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
18148
18149         * libgcc2.c (num_digits): Add prototype with
18150         __attribute__((const)).
18151         (__terminate): Add prototype.
18152
18153 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
18154
18155         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
18156
18157         * alpha/alpha.c (print_operand): Fix type of `code'.
18158         (alpha_output_filename): Constify.
18159         * alpha/alpha.h: Move all function declarations ...
18160         * alpha/alpha-protos.h: ... here.  New file.
18161         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
18162         (SECTION_FUNCTION_TEMPLATE): Likewise.
18163
18164 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18165
18166         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
18167         * expr.c (expand_expr): Likewise.
18168         (do_jump): Likewise.
18169         (do_store_flag): Pass ccp_store_flag to can_compare_p.
18170         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
18171         accessor macros.
18172         (enum can_compare_purpose): New.
18173         (can_compare_p): Adjust prototype.
18174         (prepare_cmp_insn, prepare_operand): Declare.
18175         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
18176         * optabs.c (cmp_available_p): Deleted.
18177         (expand_abs): Pass ccp_jump to can_compare_p.
18178         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
18179         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
18180         Call can_compare_p rather than cmp_available_p.
18181         (prepare_operand): No longer static.
18182         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
18183         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
18184         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
18185         sequence to use emit_cmp_and_jump_insns.
18186         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
18187
18188 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
18189
18190         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
18191         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
18192         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
18193         (plus (reg) (const_int 0))
18194         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
18195
18196 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
18197
18198         * rs6000.c (expand_block_move): DImode loads and stores require
18199         word-aligned displacements.  Increment address registers with
18200         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
18201
18202 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
18203
18204         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
18205         is no name for the base type, rather than segfault.  If we are
18206         writing out a complex integer type, use DW_ATE_lo_user.
18207
18208         * expr.c (emit_move_insn_1): If we are copying a complex that fits
18209         in one word or less (complex char, complex short, or on 64 bit
18210         systems complex float) to/from a hard register, copy it through
18211         memory instead of dying in gen_{real,imag}part.  If we have a
18212         short complex type, prevent inlining since it allocates stack
18213         memory.
18214
18215         * tree.c (build_complex_type): If we are writing dwarf2 output,
18216         generate a name for complex integer types.
18217
18218 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18219
18220         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
18221         * flow.c (remove_edge): Remove extra whitespace.
18222         (remove_fake_edges): Fix comment.
18223         (add_noreturn_fake_exit_edges): Use the correct name.
18224
18225 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
18226
18227         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
18228         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
18229         (clean): Depend on INTL_CLEAN.
18230         (maintainer-clean): Adjust.
18231
18232 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18233
18234         * configure.in (AC_PREREQ): Bump to 2.13.
18235         (AC_C_STRINGIZE): Call this instead of using a custom macro.
18236
18237         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
18238
18239         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
18240
18241         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
18242
18243         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
18244         (HAVE_STRINGIZE): Define.
18245
18246 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
18247
18248         * c-parse.in: save and restore warn_pointer_arith on __extension__
18249         along with pedantic.
18250         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
18251         Set the type of extension to itype rather than $<itype>1 kludge.
18252         * extend.texi (Alternate Keywords): Adjust documentation.
18253         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
18254
18255 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
18256
18257         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
18258         most assembler templates.
18259
18260         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
18261         FP loads and stores.
18262         (following_call): Always return zero for the PA8000.
18263         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
18264         FP loads and stores.
18265         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
18266
18267         * pa.h (BRANCH_COST): Define.
18268
18269         * pa.md (return, return_internal): Use bve for PA2.0.
18270
18271         * pa.md (fused multiply): Add variants which reduce height for the
18272         fused multiply, but which still generate 2 insns.
18273         (fnegabs): Similarly.
18274
18275         * pa.md (subsi3): Turn into an expander.  Create two anonymous
18276         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
18277         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
18278
18279         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
18280         for TARGET_PA_20.
18281         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
18282         code generation.
18283         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
18284         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
18285
18286         * regclass.c (init_regs): Add "top_of_stack" as a garbage
18287         collection root.
18288
18289         * flow.c (record_active_eh_regions): Terminate loop after finding
18290         the last insn in the last basic block.
18291
18292 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18293
18294         * config/c4x/c4x.md: Delete parallel instruction peepholes.
18295
18296 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18297
18298         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
18299
18300 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18301
18302         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
18303         splitting to not use output template.
18304
18305 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18306
18307         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
18308         * config/c4x/c4x.c (c4x_va_start): New function.
18309
18310 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
18311
18312         * genrecog.c (not_both_true): Handle correctly cases when called for
18313         tests with different positions in the insn.
18314
18315 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18316
18317         * machmode.h (HOST_PTR_PRINTF): Move from here ...
18318
18319         * system.h (HOST_PTR_PRINTF): ... to here.
18320
18321         * mips-tfile.c: Don't include machmode.h.
18322
18323         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
18324         (mips-tfile.o): Don't depend on machmode.h.
18325
18326 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18327
18328         * haifa-sched.c (sched_analyze): Rename local variable `region' to
18329         avoid conflicts with typedef struct `region' at the top level scope.
18330
18331 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
18332
18333         * basic-block.h (basic_block): Add eh_beg, eh_end.
18334         * flow.c (entry_exit_blocks): Update.
18335         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
18336         Call new functions.
18337         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
18338         lists.c functions to allocate insn lists.
18339         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
18340         edge creation ...
18341         (make_eh_edge): ... here.  New.
18342         (move_stray_eh_region_notes): New.
18343         (record_active_eh_regions): New.
18344         (delete_unreachable_blocks): Split out block merging ...
18345         (try_merge_blocks): ... here.  New.
18346         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
18347         Dump debugging data.
18348         (merge_blocks_move_successor_nojumps): Likewise.
18349         (merge_blocks): Use eh_beg+eh_end to validate block movement.
18350
18351 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
18352
18353         * extend.texi (Bound member functions): Document unbound pmf
18354         conversion.
18355
18356 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18357
18358         * flow.c (split_edge): Handle insertion on a fallthrough edge which
18359         has the EXIT_BLOCK as a dest.
18360
18361 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18362
18363         * flow.c (remove_edge): New function to remove an edge from the
18364         flow graph.
18365         (remove_fake_successors): New function to remove fake successor edges.
18366         (remove_fake_edges): New function to remove all fake edges from the
18367         flow graph.
18368         (add_fake_exit_edges): New function to add fake edges from all blocks
18369         with no successors to the exit block.
18370         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
18371         prototypes for new functions.
18372
18373 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18374
18375         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
18376         Use Pmode to determine whether to output .dword or .word.
18377
18378 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
18379
18380         * tree.c (built_in_filename): New variable.
18381         (BUILT_IN_FILENAME): New macro.
18382         (init_tree_codes): Allocate built_in_filename.
18383         (make_node): Use built_in_filename instead of string constant.
18384
18385 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
18386
18387         * configure.in: Add fr30 target.
18388         * configure: Regenerate.
18389         * config/fr30: New directory.
18390         * config/fr30/crti.asm: New file.
18391         * config/fr30/fr30.c: New file.
18392         * config/fr30/crtn.asm: New file.
18393         * config/fr30/fr30.h: New file.
18394         * config/fr30/fr30.md: New file.
18395         * config/fr30/lib1funcs.asm: New file.
18396         * config/fr30/t-fr30: New file.
18397         * config/fr30/xm-fr30.h: New file.
18398
18399 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
18400
18401         * flow.c (merge_blocks_move_successor_nojumps): Delete the
18402         BARRIER at the end of the successor, not the BARRIER before
18403         the successor.
18404
18405         * pa.c (pa_add_gc_roots): Fix thinko in last change.
18406
18407 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
18408
18409         * stmt.c (any_pending_cleanups): Don't crash when
18410         current_function->stmt is unset.
18411
18412 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18413
18414         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
18415         other initializations that may use it for relative offsets.
18416
18417 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18418
18419         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
18420         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
18421         * config/i386/sol2dbg.h: Removed.
18422         * config/i386/sol2gas.h: New file, to enable gas work-around.
18423         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
18424         Don't use sol2dbg.h.
18425         * configure: Rebuilt.
18426
18427 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
18428
18429         * invoke.texi (-fthis-is-variable): Remove documentation.
18430
18431 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
18432
18433         * basic-block.h (compute_bb_for_insn): Declare.
18434         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
18435         to use; set size of basic_block_for_insn directly.
18436         (find_basic_blocks): Update.
18437
18438 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18439
18440         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
18441
18442 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18443
18444         * crtstuff.c (ON_EXIT): Delete empty macro definition.
18445         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
18446
18447 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
18448
18449         * c-decl.c (c_decode_option): Extend comment.
18450
18451 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
18452
18453         * toplev.c (progname): Make 'const char *'
18454         (flag_print_mem): Move out of main.
18455         (version_flag): Move out of main.
18456         (filename): Move out of main.
18457         (debug_args): Remove g prefix from options.
18458         (documented_lang_options): Remove cpplib specific options.
18459         (display_help): Add g prefix to debug options.
18460         (check_lang_option): Delete this function.
18461         (decode_d_option): New function: Decode -d... option.
18462         (decode_f_option): New function: Decode -f... option.
18463         (decode_W_option): New function: Decode -W... option.
18464         (decode_g_option): New function: Decode -g... option.
18465         (independent_decode_option): New function: Decode a language
18466         independent command line option.
18467         (main): Invoke lang_decode_option and then
18468         independent_decode_option on each command line option in
18469         turn.
18470
18471 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
18472
18473         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
18474          * fold-const.c (fold_range_test): Do not try to fold the range
18475          test if the rhs or lhs has side effects.
18476
18477         * basic-block.h (compute_flow_dominators): Declare.
18478
18479         * gcse.c (alloc_code_hoist_mem): New function.
18480         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
18481         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
18482         (hoist_code, one_code_hoisting_pass): Likewise.
18483         (gcse_main): If optimizing for size, then hoist expressions
18484         computed in multiple dominated basic blocks.
18485
18486         * gcse.c (invalid_nonnull_info): New function.
18487         (delete_null_pointer_checks): Likewise.
18488         * rtl.h (delete_null_pointer_checks): Declare.
18489         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
18490
18491         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
18492         (merge-blocks_move_successor_nojumps): Likewise.
18493         (merge_blocks): Allow merging of some blocks, even if it requires
18494         physical movement of the blocks, but not if it requires new jumps.
18495
18496         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
18497         Callers and prototype changed.
18498         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
18499
18500 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18501
18502         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
18503         -YP when both -p and -pg are present.  From i386/sol2.h.
18504
18505 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18506
18507         * Makefile.in (distclean): Delete tm_p.h.
18508         * configure.in: Create a new file, "tm_p.h", from a list in
18509         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
18510         "i386/i386-protos.h".
18511
18512         * alias.c: Include "tm_p.h".
18513         * c-typeck.c: Likewise.
18514         * calls.c: Likewise.
18515         * cse.c: Likewise.
18516         * emit-rtl.c: Likewise.
18517         * explow.c: Likewise.
18518         * expmed.c: Likewise.
18519         * expr.c: Likewise.
18520         * final.c: Likewise.
18521         * flow.c: Likewise.
18522         * fold-const.c: Likewise.
18523         * function.c: Likewise.
18524         * gcse.c: Likewise.
18525         * global.c: Likewise.
18526         * haifa-sched.c: Likewise.
18527         * integrate.c: Likewise.
18528         * jump.c: Likewise.
18529         * local-alloc.c: Likewise.
18530         * loop.c: Likewise.
18531         * optabs.c: Likewise.
18532         * recog.c: Likewise.
18533         * reg-stack.c: Likewise.
18534         * regclass.c: Likewise.
18535         * regmove.c: Likewise.
18536         * reload.c: Likewise.
18537         * reload1.c: Likewise.
18538         * reorg.c: Likewise.
18539         * resource.c: Likewise.
18540         * stmt.c: Likewise.
18541         * stor-layout.c: Likewise.
18542         * toplev.c: Likewise.
18543         * tree.c: Likewise.
18544         * unroll.c: Likewise.
18545         * genattrtab.c (main): Make generated file include "tm_p.h".
18546         * genemit.c (main): Likewise.
18547         * genoutput.c (main): Likewise.
18548         * genrecog.c (main): Likewise.
18549
18550         * i386.h: Delete all prototypes.
18551         * i386.c: Include "tm_p.h".
18552         (ix86_attr_length_default): Call constant_call_address_operand
18553         with correct number of arguments.
18554         * i386-protos.h: New file.
18555         * i386.md (unnamed patterns): Call constant_call_address_operand
18556         with correct number of arguments.
18557         (exception_receiver): Call load_pic_register with correct number
18558         of arguments.
18559
18560 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
18561
18562         * c-pragma.c (mark_align_stack): Dereference the void* properly.
18563
18564 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
18565
18566         * rtl.h (insns_safe_to_move_p): New function.
18567         * loop.c (find_and_verify_loops): Use it.
18568         * rtlanal.c (insns_safe_to_move_p): Define it.
18569
18570 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
18571
18572         * c-pragma.c: Include ggc.h.
18573         * Makefile.in (c-pragma.o): Update.
18574
18575 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18576
18577         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
18578         (LIB_SPEC): Likewise.
18579         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
18580         Reindent -YP/-p/-pg.
18581         Copied from config/sparc/sol2.h.
18582
18583 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
18584
18585         * c-pragma.c (mark_align_stack): New.
18586         (init_pragma): New.
18587         * c-pragma.h (init_pragma): Declare it.
18588         * c-lex.c (init_parse): Call it.
18589
18590 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18591
18592         * configure.in: Pick up thread library on Solaris/x86 just
18593         like on Solaris/sparc.
18594         * configure: Rebuilt.
18595
18596 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
18597
18598         * rtl.h (global_rtx_index): New enum.
18599         (global_rtl): Change to array of rtx.
18600         (pc_rtx, cc0_rtx): Redefine accordingly.
18601         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
18602         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
18603         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
18604         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
18605         (const_int_rtx): Change to array of rtx.
18606         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
18607         accordingly.
18608         * emit-rtl.c (global_rtl): Change to array of rtx.
18609         (const_int_rtx): Change to aray of rtx.
18610         (gen_rtx_CONST_INT): Redefine accordingly.
18611         (init_emit_once): Allocate and initialize global_rtl.  Likewise
18612         for const_int_rtx.  Add both as GC roots.
18613         * genattrtab.c (global_rtl): Update declaration.
18614
18615 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
18616
18617         * Makefile (USER_H): Add iso646.h back.
18618
18619 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
18620
18621         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
18622         zapping the LOG_LINKS of sched_before_next_call.
18623
18624         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
18625         * pa.c (insn_refs_are_delayed): Renamed from
18626         insn_sets_and_refs_are_delayed.
18627
18628 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
18629
18630         * functiion.h (struct function): Add x_whole_function_mode_p.
18631         (retrofit_block): Declare.
18632         * function.c (retrofit_block): New function.
18633         (identify_blocks): Add assertions.  Allow an incomplete set of
18634         block notes if we're still generating code for the function.
18635         * integrate.c: Include loop.h.
18636         (expand_inline_function): Call find_loop_tree_blocks to map block
18637         notes to blocks when in whole-function mode.  Use retrofit_block
18638         to insert new BLOCKs for the inlined function, rather than
18639         insert_block.
18640         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
18641         * Makefile.in (integrate.o): Depend on loop.h.
18642
18643 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
18644
18645         * tree.h (warn_about_unused_variables): Declare.
18646         * stmt.c (warn_about_unused_variables): New function, split out
18647         from ...
18648         (expand_end_bindings): Here.
18649
18650 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
18651
18652         * stmt.c (preserve_subexpressions_p): Don't crash when
18653         current_function->stmt is unset.
18654
18655 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
18656
18657         * stmt.c (expand_start_bindings): Allow callers to pass a flag
18658         indicating that no NOTE_INSN_BLOCK_BEG note is required.
18659         (expand_start_target_temps): Use it.
18660         * except.c (expand_eh_region_start_for_decl): Likewise.
18661         * expr.c (expand_expr): Likewise.
18662
18663 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18664
18665         * fold-const.c (operand_equal_p): Pay attention to side effects.
18666
18667 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
18668
18669         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
18670         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
18671
18672         * tlink.c (scan_linker_output): Look for keywords before accepting
18673         a mangled name in quotes.
18674
18675 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
18676
18677         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
18678         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
18679
18680 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
18681
18682         * alpha.md: Revert Thu Nov 26 change that came in through the
18683         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
18684         Avoid earlyclobber when possible.
18685
18686 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18687
18688         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
18689
18690         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
18691         Define HAVE_ON_EXIT.
18692
18693 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18694
18695         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
18696         CTYPE_CONV in all ctype macros.
18697
18698         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
18699         from system.h.
18700
18701         * cexp.y (initialize_random_junk): Likewise.
18702
18703         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
18704
18705         * i370.c (handle_pragma): Likewise.
18706
18707         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
18708
18709         * v850.c (override_options): Likewise.
18710
18711         * doprint.c (_doprnt): Likewise.
18712
18713         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
18714         Likewise.
18715
18716         * fixinc/server.c (load_data): Likewise.
18717
18718         * fold-const.c (real_hex_to_f): Likewise.
18719
18720         * genattr.c (write_upcase, gen_attr): Likewise.
18721
18722         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
18723         write_upcase): Likewise.
18724
18725         * genemit.c (print_code): Likewise.
18726
18727         * genopinit.c (gen_insn): Likewise.
18728
18729         * genpeep.c (print_code): Likewise.
18730
18731         * genrecog.c (print_code): Likewise.
18732
18733         * optabs.c (init_libfuncs): Likewise.
18734
18735 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
18736
18737         * haifa-sched.c (sched_analyze): Keep the list of notes organized
18738         in pairs.
18739         (reemit_notes): Likewise.
18740
18741 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
18742
18743         * ggc.h (ggc_root): Move to ggc-common.c.
18744         (roots): Remove.
18745         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
18746         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
18747         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
18748         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
18749         * ggc-common.c (ggc_root): Move from ggc.h.
18750         (roots): Declare, static.
18751         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
18752         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
18753         null or check/set mark bit.
18754         (ggc_mark_roots): New.
18755         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
18756
18757 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
18758
18759         * m32r.c: Include toplev.h.
18760         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
18761         (gen_compare): Rename swap_p to must_swap to match uses.
18762         Add default abort case.
18763         (m32r_output_function_epilogue): Remove unused variables.
18764         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
18765         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
18766         define to empty parameter list.  Update all uses.
18767         (predicate decls): Use enum machine_mode not int.
18768         * m32r.md (movsi): Call abort, not fatal_insn.
18769         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
18770
18771 1999-09-14  Andrew Haley  <aph@cygnus.com>
18772
18773         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
18774         use $0 instead of 0.
18775
18776 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18777
18778         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
18779         computation out of loop over hard regs.
18780
18781 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
18782
18783         * function.c (identify_blocks): Don't shadow a variable in an
18784         outer scope.
18785         * integrate.c (integrate_decl_tree): Don't use pushlevel,
18786         pushdecl, or poplevel to build up the new BLOCK tree.
18787         (expand_inline_function): Likewise.
18788         (integrate_parm_decls): Likewise.
18789
18790 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
18791
18792         * c-typeck.c (qualify_type): Merge qualifiers from both types.
18793
18794 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
18795
18796         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
18797         * invoke.texi: Document this change.
18798
18799 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
18800
18801         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
18802         Free the struct.
18803         (mark_emit_status): Renamed from mark_emit_state.
18804         * except.c (mark_eh_status): Renamed from mark_eh_state.
18805         Check not null before marking.
18806         (free_eh_status): New.
18807         * expr.c (mark_expr_status, free_expr_status): New.
18808         * function.c (free_machine_status): New.
18809         (free_after_parsing): New.
18810         (free_after_compilation): Move bits to free_after_parsing; call
18811         free_eh_status, free_expr_status; zero the marked members of the
18812         function state.
18813         (prepare_function_start): No can_garbage_collect.
18814         Call init_eh_for_function.
18815         (expand_dummy_function_end): Free up current_function state.
18816         (mark_function_status): Renamed from mark_function_state.
18817         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
18818         * function.h (struct function): No can_garbage_collect.
18819         (free_machine_status, free_after_parsing): Declare.
18820         (free_eh_status, free_expr_status): Declare.
18821         * ggc.h (mark_expr_status): Declare.
18822         * stmt.c (free_stmt_status): Free the struct.
18823         (mark_stmt_status): Renamed from mark_stmt_state.
18824         (init_stmt): Don't call init_eh.
18825         (init_stmt_for_function): Don't call init_eh_for_function.
18826         * toplev.c (compile_file): Call init_eh.
18827         (rest_of_compilation): Free basic block info before ggc_collect.
18828         Call free_after_parsing; conditionally call free_after_compilation.
18829         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
18830         Check not null before marking.
18831         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
18832
18833 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
18834
18835         * c-lex.c (yylex): Initialize warn.
18836
18837 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
18838
18839         * pa.c (emit_move_sequence): Properly set the mode of the scratch
18840         register when performing secondary reloads for the SAR register.
18841
18842 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
18843
18844         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
18845         (NOTE_BLOCK): New macro.
18846         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
18847         * function.h (identify_blocks): Change prototype.
18848         * function.c (identify_blocks): Simplify.
18849         (reorder_blocks): Likewise.
18850         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
18851         NOTE_INSN_BLOCK_{BEG,END}.
18852         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
18853         the list of saved notes if the note isn't a
18854         NOTE_INSN_BLOCK_{BEG,END}.
18855         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
18856         NOTE_BLOCK_NUMBER.
18857         (reemit_notes): Adjust recreation of notes to reflect new saved
18858         note structure.
18859         * print-rtl.c (print_rtx): Print the address of the BLOCK when
18860         printing a block note.
18861         * stmt.c (block_vector): Remove.
18862         (find_loop_tree_blocks): Simplify.
18863         (unroll_block_trees): Likewise.
18864         * tree.h (reorder_block): Change prototype.
18865
18866 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
18867
18868         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
18869         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
18870         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
18871         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
18872         (atexit, exit): Simplify.
18873         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
18874         * config/lots: Remove defns of HAVE_ATEXIT.
18875
18876 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
18877
18878         * calls.c (precompute_arguments): Fix typo in comment.
18879         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
18880         TARGET_EXPR.
18881
18882 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
18883
18884         * dsp16xx.c (override_options): Fix typos in GC root registration.
18885
18886 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
18887
18888         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
18889         from config/svr4.h.
18890         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
18891         (FUNCTION_PROFILER): Redefine appropriately for Linux.
18892         (CC1_SPEC): Likewise.
18893
18894 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18895
18896         * genattr.c (main): Add extern prototype.  Call return, not exit.
18897         * genattrtab.c (main): Likewise.
18898         * gencheck.c (main): Likewise.
18899         * gencodes.c (main): Likewise.
18900         * genconfig.c (main): Likewise.
18901         * genemit.c (main): Likewise.
18902         * genextract.c (main): Likewise.
18903         * genflags.c (main): Likewise.
18904         * gengenrtl.c (main): Likewise.
18905         * genopinit.c (main): Likewise.
18906         * genoutput.c (main): Likewise.
18907         * genpeep.c (main): Likewise.
18908         * genrecog.c (main): Likewise.
18909
18910         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
18911         * genattrtab.c (get_insn_name): Likewise.
18912         * gencodes.c (get_insn_name): Likewise.
18913         * genconfig.c (get_insn_name): Likewise.
18914         * genemit.c (get_insn_name): Likewise.
18915         * genextract.c (get_insn_name): Likewise.
18916         * genflags.c (get_insn_name): Likewise.
18917         * genopinit.c (get_insn_name): Likewise.
18918         * genpeep.c (get_insn_name): Likewise.
18919
18920         * gencheck.c (usage): Add static prototype.
18921         * genextract.c (print_path): Constify a char*.
18922         * genopinit.c (optabs): Likewise.
18923         * genoutput.c (operand_data, data, output_predicate_decls,
18924         compare_operands): Likewise.
18925         * genrecog.c (write_tree): Add default case in switch.
18926
18927 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18928
18929         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
18930
18931         * print-rtl.c (get_insn_name): Remove prototype.
18932
18933         * toplev.h (progname): Declare const.
18934
18935         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
18936         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
18937         dump_sched_info, dump_local_alloc, regset_release_memory,
18938         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
18939         error_with_file_and_line, error_with_decl, error_for_asm, error,
18940         fatal, warning_with_file_and_line, warning_with_decl, warning,
18941         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
18942         Remove redundant prototypes.
18943
18944         (notice, check_lang_option, report_file_and_line, vnotice,
18945         mark_file_stack): Add static prototype.
18946         (set_fatal_function): Add prototype.
18947         (vnotice, report_file_and_line, set_fatal_function,
18948         check_lang_option): Constify a char*.
18949         (main): Prototype.  Call return, not exit.
18950
18951 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18952
18953         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
18954
18955         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
18956
18957         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
18958
18959         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
18960
18961 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18962
18963         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
18964         behave as if it's zero in all cases.
18965         (expand_function_start): Adjust call to assign_parms.
18966         * tree.h (assign_parms): Adjust prototype.
18967         * objc/objc-act.c (hack_method_prototype): Adjust call to
18968         assign_parms.
18969
18970 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
18971
18972         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
18973         arg_pointer_rtx fixed if the argument pointer register is
18974         not fixed.
18975         (NONZERO_BASE_PLUS_P): Likewise.
18976
18977 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
18978
18979         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
18980         match_insn2 to match_insn.
18981         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
18982
18983 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
18984
18985         * Makefile.in (USER_H): Remove va-foo.h.
18986
18987         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
18988         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
18989         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
18990         va-spur.h,va-v850.h}: Remove.
18991
18992 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
18993
18994         * sparc/sparc.md (eligible_for_return_delay): New attribute.
18995         (in_return_delay): Use it instead of match_insn.
18996
18997 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18998
18999         * config/alpha/va_list.h (va-alpha.h): Do not include.
19000         (__gnuc_va_list): Typedef as in varargs.h.
19001
19002 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
19003
19004         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
19005         DECL_LIVE_RANGE_RTL.
19006
19007 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
19008
19009         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
19010         not NOTE_BLOCK_NUMBER.
19011         (expand_eh_region_end): Likewise.
19012         (find_exception_handler_labels): Likewise.
19013         (scan_region): Likewise.
19014         (exception_optimize): Likewise.
19015         (update_rethrow_references): Likewise.
19016         (set_insn_eh_region): Likewise.
19017         * final.c (final_scan_insn): Likewise.
19018         * flow.c (make_edges): Likewise.
19019         * integrate.c (expand_inline_function): Likewise.
19020         * print-rtl.c (print_rtx): Likewise.
19021
19022 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
19023
19024         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
19025         terms of builtin functions and types.
19026
19027         * mips.c (mips_build_va_list): New.
19028         (mips_va_start, mips_va_arg): New.
19029         * mips.h (BUILD_VA_LIST_TYPE): New.
19030         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
19031
19032         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
19033         (sh_build_va_list, sh_va_start, sh_va_arg): New.
19034         * sh.h (BUILD_VA_LIST_TYPE): New.
19035         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
19036
19037 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
19038
19039         * recog.h (struct recog_data): Make dup_num, operand_address_p,
19040         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
19041         (struct insn_data): Likewise with n_operands, n_dups,
19042         n_alternatives, output_format.
19043         * regclass.c (scan_one_insn): Cast n_operands to int before
19044         arithmetic inside comparison.
19045
19046 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
19047
19048         * toplev.c (compile_function): Unconditionally emit nop.
19049
19050 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19051
19052         * haifa-sched.c (actual_hazard): Move declaration of variable
19053         `this_cost' into the scope where it is used.
19054
19055 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19056
19057         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
19058         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
19059         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
19060
19061         * genrecog.c (make_insn_sequence): Call memset, not bzero.
19062
19063         * jump.c (find_insert_position): Don't declare or define unless
19064         !HAVE_conditional_arithmetic.
19065         (returnjump_p_1, delete_prior_computation): Add static prototypes.
19066
19067         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
19068
19069         * recog.c (offsettable_address_p): Prototype function pointer.
19070         (preprocess_constraints): Call memset, not bzero.
19071
19072         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
19073         (gcc_obstack_init): Don't declare.
19074         (fix_sizetype): Add static prototype.
19075         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
19076         (tree_cons): Call memset, not bzero.
19077
19078         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
19079         definition in macro ASM_WEAKEN_LABEL.
19080         (mark_const_hash_entry): Add static prototype.
19081
19082 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19083
19084         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
19085
19086         * unroll.c (find_common_reg_term, subtract_reg_term,
19087         loop_find_equiv_value): Add static prototypes.
19088         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
19089         (copy_loop_body): Remove unreachable break statement.
19090
19091         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
19092
19093         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
19094
19095 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19096
19097         Undo some changes from the gcc2 merge:
19098         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
19099         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
19100         pointers.
19101
19102         Undo this change:
19103         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
19104         * emit-rtl.c (gen_lowpart_common): Disable optimization of
19105         initialized float-int union if the value is a NaN.
19106
19107 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19108
19109         * gthr-win32.h: New file.
19110
19111         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
19112         shared as a valid attribute.
19113         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
19114         * extend.texi: Document `shared' variable attribute.
19115
19116 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
19117
19118         * configure.in: Handle --enable-threads on FreeBSD.
19119         * configure: Rebuit.
19120
19121 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
19122
19123         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
19124         thread support.
19125         * configure: Rebuilt.
19126
19127 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
19128                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
19129                           Rosimildo DaSilva <rdasilva@connecttel.com>
19130
19131         * configure.in (m68k-*-rtemscoff*): Added.
19132         * configure.in (mips64orion-*-rtems*): Converted to ELF.
19133         * configure.in (sparc-*-rtemsaout*): Added as alias for old
19134         sparc-rtems configuration.
19135         * configure.in (sparc-*-rtemself*): Added.
19136         * configure.in (sparc-*-rtems*): Now ELF not a.out.
19137         * config/i386/rtems.h: Added comment.
19138         * config/sparc/rtemself.h: New file.
19139
19140         * configure.in (m68k-rtemself): Added.
19141         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
19142         and DWARF_DEBUGGING_INFO.
19143         * config/m68k/crti.s: New file.
19144         * config/m68k/crtn.s: New file.
19145         * config/m68k/t-crtstuff: New file.
19146         * config/m68k/rtemself.h: New file.
19147
19148         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
19149         global ctor/dtor and C++ exception handling.
19150         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
19151         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
19152         ENDFILE_SPEC.
19153         * config/i386/t-rtems-i386: New File.
19154
19155 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
19156
19157         * stmt.c (expand_end_case): Return right away if the case stack is
19158         empty.
19159
19160 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
19161
19162         * Makefile.in (version.c): Remove rule incorrectly brought in from
19163         the gcc2 merge.
19164
19165 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
19166
19167         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
19168         * msdos/top.sed:  Take into account a prepended $(SHELL) to
19169         move-if-change.
19170         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
19171
19172         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
19173
19174 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19175
19176         * regmove.c (fixup_match_1): Don't change an unchanging register.
19177         (stable_but_for_p): Renamed to:
19178         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
19179         Changed all callers.
19180
19181 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
19182
19183         * loop.c (strength_reduce): Don't call reg_used_between_p if the
19184         insn from BL2 is after the insn from BL.
19185
19186 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
19187
19188         * recog.h (INSN_OUTPUT_FORMAT_*): New.
19189         (struct insn_data): Merge `template' and `outfun' into `output'.
19190         Add `output_format'.
19191         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
19192         (struct data): Remove `outfun'; add `output_format'.
19193         (name_for_index): Remove declaration.
19194         (output_insn_data): Handle output formats.
19195         (process_template): Emit the bare array for @.
19196         (gen_expand, gen_split): Set output_format to NONE.
19197         * output.h (get_insn_template): Declare.
19198         * final.c (get_insn_template): New.
19199         (final_scan_insn): Use it.
19200         * toplev.c (compile_file): Likewise.
19201
19202         * c4x/c4x.c (c4x_process_after_reload): Likewise.
19203         * i860/i860.c (output_delayed_branch): Likewise.
19204         (output_delay_insn): Likewise.
19205
19206 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
19207
19208         * rtl.c (obstack_alloc_rtx): Removed.
19209
19210 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
19211
19212         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
19213
19214 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
19215
19216         * i386.c (call_insn_operand): Reject const_int.
19217         (expander_call_insn_operand): Use call_insn_operand.
19218
19219 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19220
19221         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
19222
19223 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
19224
19225         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
19226         Use DImode operation.
19227
19228 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
19229
19230         * gcc.c: Include sys/resource.h.
19231         (report_times): New flag.
19232         (execute):  If report_times is set, calculate and report the
19233         CPU time consumed by each subprocess.
19234
19235         (rus, prus): New globals.
19236         (option_map): Add --time.
19237         (display_help): Document -time.
19238         (process_command): Set report_times if -time is given.
19239         Turn off -pipe if -time is given.
19240
19241         * invoke.texi: Document new option -time.
19242
19243         * configure.in: Check for getrusage.  Check if we have to
19244         prototype getrusage.
19245         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
19246         * configure: Regenerate.
19247         * config.in: Regenerate.
19248
19249 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
19250
19251         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
19252         fields.
19253
19254 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
19255
19256         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
19257         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
19258         (nan): Return _thenan_sf or _thenan_df as appropriate.
19259         (L_thenan_sf): Define _thenan_sf.
19260         (L_thenan_df): Define _thenan_df.
19261
19262         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
19263         (DPBIT_FUNCS): Add _thenan_df.
19264
19265 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
19266
19267         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
19268         TYPE_SIZE_UNIT.
19269
19270 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19271
19272         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
19273
19274         * gcc.h: New file.
19275         (lang_specific_driver): Don't take a function pointer parameter.
19276         All callers changed.
19277
19278         * gcc.c: Include gcc.h.
19279         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
19280         lang_specific_extra_outfiles, fatal): Don't declare.
19281         (multilib_defaults_raw): Constify.
19282         (read_specs): Call memset, rather than bzero.
19283         (main): Call return, not exit.
19284         (lookup_compiler): Call memcpy, not bcopy.
19285         (fatal): Make extern.
19286
19287         * cppspec.c: Include gcc.h.
19288         (lang_specific_driver): Initialize variable `quote'.  Constify a
19289         char*.  All calls to the function pointer parameter now
19290         explicitly call `fatal'.
19291
19292         * gccspec.c (lang_specific_driver): Include gcc.h.
19293
19294 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
19295
19296         * arm.c (note_invalid_constants): Use recog_data.operand_type
19297         for recog_op_type.
19298
19299 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19300
19301         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
19302         Declare.
19303
19304         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
19305         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
19306         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
19307         reload_secondary_in_reload, reload_secondary_out_reload,
19308         reload_secondary_in_icode, reload_secondary_out_icode,
19309         reload_reg_rtx, reload_when_needed): Delete declarations.
19310         (struct reload): New structure.
19311         (rld): Declare new array.
19312         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
19313         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
19314         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
19315         reload_secondary_in_reload, reload_secondary_out_reload,
19316         reload_secondary_in_icode, reload_secondary_out_icode,
19317         reload_reg_rtx, reload_when_needed): Delete definitions.
19318         (rld): New array.
19319         (whole file): Replace uses of the deleted arrays with uses of rld.
19320         * reload1.c (whole file): Replace uses of the deleted arrays with
19321         uses of rld.
19322         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
19323         explicit loops, not with bcopy.
19324
19325 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
19326
19327         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
19328         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
19329         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
19330         insn_name): Delete and consolidate into new structures.
19331         (insn_operand_predicate_fn): New.
19332         (insn_output_fn): New.
19333         (insn_gen_fn): New.
19334         (struct insn_operand_data): New.
19335         (struct insn_data): New.
19336         (insn_data): New.
19337         (OUT_FCN): Update for insn_data change.
19338         * builtins.c (expand_builtin_strlen): Likewise.
19339         (expand_builtin_memcmp): Likewise.
19340         * combine.c (make_extraction, simplify_comparison): Likewise.
19341         * cse.c (canon_reg, cse_insn): Likewise.
19342         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
19343         * expmed.c (store_bit_field, extract_bit_field): Likewise.
19344         (emit_store_flag): Likewise.
19345         * expr.c (convert_move, emit_block_move): Likewise.
19346         (clear_storage, emit_push_insn, expand_increment): Likewise.
19347         (do_store_flag): Likewise.
19348         * expr.h (GEN_FCN): Likewise.
19349         (insn_gen_function): Die.
19350         * final.c (final_scan_insn): Update for insn_data change.
19351         (output_asm_name): Likewise.
19352         * function.c (fixup_var_refs_1): Likewise.
19353         * loop.c (check_dbra_loop): Likewise.
19354         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
19355         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
19356         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
19357         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
19358         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
19359         * regmove.c (gen_add3_insn): Likewise.
19360         * reload.c (push_secondary_reload, combine_reloads): Likewise.
19361         (find_reloads, find_reloads_address_1): Likewise.
19362         (debug_reload_to_stream): Likewise.
19363         * reload1.c (emit_reload_insns, gen_reload): Likewise.
19364         * stmt.c (expand_end_case): Likewise.
19365         * toplev.c (compile_file): Likewise.
19366
19367         * c4x/c4x.c (c4x_process_after_reload): Likewise.
19368         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
19369
19370         * print-rtl.c (insn_name_ptr): Remove declaration.
19371         (get_insn_name): Declare.
19372         (print_rtx): Use it.
19373         * genoutput.c (insn_name_ptr): Remove.
19374         (next_operand_number): New.
19375         (struct operand_data): New.
19376         (null_operand, odata, odata_end): New.
19377         (struct data): Use struct operand_data.
19378         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
19379         (get_insn_name): Renamed from name_for_index.
19380         (output_prologue): Define NO_MD_PROTOTYPES.
19381         (output_predicate_decls): Break out from output_epilogue.
19382         Iterate over the operands list.
19383         (output_operand_data): Break out from output_epilogue.  Emit
19384         just the operands list.
19385         (output_insn_data): Break out from output_epilogue.  Emit just
19386         the insn data.
19387         (output_epilogue): Remove.
19388         (output_get_insn_name): New.
19389         (constraints, op_n_alternatives, predicates, address_p): Die.
19390         (modes, strict_low, seen): Die.
19391         (scan_operands): Take new param `d' instead of writing to
19392         seven global variables.
19393         (compare_operands): New.
19394         (place_operands): New.
19395         (validate_insn_alternatives): Update for struct data change.
19396         (gen_insn): Don't zero or copy 7 global arrays.  Update for
19397         scan_operands; call place_operands.
19398         (gen_peephole, gen_expand, gen_split): Likewise.
19399         (main): Update for new output routines.
19400
19401         * genattr.c (insn_name_ptr): Remove.
19402         (get_insn_name): New function.
19403         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
19404         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
19405         * genrecog.c: Likewise.
19406
19407         * alpha.md (adddi3): Make `pattern' array static.
19408
19409 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19410
19411         * config/c4x/c4x.h (c4x_rpts_cycles_string,
19412         c4x_cpu_version_string): Constify char *.
19413         * config/c4x/c4x.c (c4x_rpts_cycles_string,
19414         c4x_cpu_version_string): Likewise.
19415
19416 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
19417
19418         * tree.c (save_tree_status): Revert 10 Sep change.
19419         (restore_tree_status): Likewise.  Call obstack_free with NULL
19420         before freeing the obstack proper.
19421
19422 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
19423
19424         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
19425
19426         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
19427         surrounding context.
19428
19429 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
19430
19431         * tree.c (type_hash_canon): Put all types in the hash-table, when
19432         GC'ing.
19433
19434 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
19435
19436         * recog.h (struct recog_data, recog_data): New.
19437         (recog_foo variables): Kill.
19438         * recog.c (recog_operand, recog_operand_loc): Kill.
19439         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
19440         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
19441         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
19442         (recog_data): Define.
19443         (extract_insn): Update all recog_foo references to use recog_data.
19444         (preprocess_constraints, constrain_operands): Likewise.
19445         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
19446         * genattrtab.c (main): Likewise.
19447         * genextract.c (main): Likewise.
19448         * genoutput.c: Likewise.
19449         * genrecog.c (write_subroutine, main): Likewise.
19450         * local-alloc.c (block_alloc): Likewise.
19451         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
19452         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
19453         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
19454         * reload.c (find_reloads, find_reloads_toplev): Likewise.
19455         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
19456         (reload_cse_simplify_operands): Likewise.
19457
19458         * arc/arc.c (arc_final_prescan_insn): Likewise.
19459         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
19460         * h8300/h8300.c (notice_update_cc): Likewise.
19461         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
19462         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
19463         * mn10200/mn10200.c (notice_update_cc): Likewise.
19464         * mn10300/mn10300.c (notice_update_cc): Likewise.
19465         * romp/romp.c (update_cc): Likewise.
19466         * sparc/sparc.c (check_pic): Likewise.
19467         * v850/v850.c (notice_update_cc): Likewise.
19468
19469         * genemit.c (main): Don't declare recog_operand.
19470
19471 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
19472
19473         * ggc.h (rtvec_def): Forward declare.
19474         (tree_node): Likewise.
19475         (ggc_root): Define.
19476         (roots): Declare.
19477         (ggc_set_mark_rtx): Add prototype.
19478         (ggc_set_mark_rtvec): Likewise.
19479         (ggc_set_mark_tree): Likewise.
19480         * ggc-simple.c (ggc_root): Don't define.
19481         (roots): Don't declare.
19482         (ggc_mark_rtx): Remove.
19483         (ggc_mark_rtvec): Likewise.
19484         (ggc_mark_tree): Likewise.
19485         (ggc_mark_varray): Likewise.
19486         (ggc_mark_tree_hash_table_entry): Likewise.
19487         (ggc_mark_tree_hash_table): Likewise.
19488         (ggc_set_mart_rtx): New function.
19489         (ggc_set_mark_rtvec): Likewise.
19490         (ggc_set_mark_tree): Likewise.
19491         (ggc_add_root): Remove.
19492         (ggc_add_rtx_root): Likewise.
19493         (ggc_remove_tree_root): Likewise.
19494         (ggc_add_string_root): Likewise.
19495         (ggc_add_tree_varray_root): Likewise.
19496         (ggc_add_tree_hash_table_root): Likewise.
19497         (ggc_del_root): Likewise.
19498         (ggc_mark_rtx_ptr): Likewise.
19499         (ggc_mark_tree_ptr): Likewise.
19500         (ggc_mark_string_ptr): Likewise.
19501         (ggc_mark_tree_varray_ptr): Likewise.
19502         (ggc_mark_tree_hash_table_ptr): Likewise.
19503         * ggc-common.c: New file.
19504         * Makefile.in (OBJS): Add ggc-common.o.
19505         (ggc-common.o): List dependencies.
19506
19507 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
19508
19509         * cppalloc.c (xstrdup): Use memcpy.
19510         * cpperror.c (cpp_print_containing_files): Don't use
19511         cpp_notice.
19512         * cpplib.c (conditional_skip): Set temp->lineno.
19513         (do_endif): Make error message less obscure.
19514         (if_directive_name): New function.
19515         (cpp_get_token [case EOF]): Unwind the if stack and generate
19516         error messages for each unterminated conditional in this file.
19517         (parse_string):  Do not behave differently if -traditional.
19518
19519 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
19520
19521         * builtins.c (expand_builtin_va_arg): Cope with an array-type
19522         va_list decomposing to pointer-type.
19523         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
19524         (rs6000_va_arg): Likewise.
19525
19526 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
19527
19528         * except.c (start_dynamic_handler): Compute size using
19529         STACK_SAVEAREA_MODE.
19530
19531 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19532
19533         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
19534         include directory headers.  Don't define strrchr.  Don't provide
19535         my_* replacement functions.  Prefer PTR over `pointer_type'.
19536         Don't prototype system functions.  Don't redefine getopt.
19537
19538         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
19539         safe_read, safe_write, save_pointers, restore_pointers,
19540         is_id_char, in_system_include_dir, directory_specified_p,
19541         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
19542         find_corresponding_lparen, referenced_file_is_newer,
19543         save_def_or_dec, munge_compile_params, gen_aux_info_file,
19544         process_aux_info_file, identify_lineno, check_source,
19545         seek_to_line, forward_to_next_token_char, output_bytes,
19546         output_string, output_up_to, other_variable_style_function,
19547         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
19548         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
19549         find_static_definition, connect_defs_and_decs, add_local_decl,
19550         add_global_decls, needs_to_be_converted, visit_each_hash_node,
19551         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
19552         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
19553         scan_for_missed_items, edit_file, string_list_cons): Add static
19554         prototypes.
19555         (standard_exec_prefix, target_machine, target_version,
19556         default_syscalls_dir, string_list, string_list_cons, find_file,
19557         do_cleaning): Constify a char*.
19558         (safe_read, safe_write): Use PTR, not a char*.
19559         (is_id_char): Take an int, not a char.
19560         (main): Add prototype.  Call return, not exit.
19561
19562 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
19563
19564         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
19565         when comparing types.
19566
19567 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
19568
19569         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
19570         (strength_reduce): Release the varrays from the no-bivs early exit.
19571
19572         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
19573         the loop over the registers.
19574
19575         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
19576         for a new obstack.
19577         (restore_tree_status): Check that instead when freeing the obstack.
19578
19579 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
19580
19581         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
19582         as pointers.
19583
19584 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19585
19586         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
19587         operand size modifiers.
19588
19589 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19590
19591         * c-common.c (c_common_nodes_and_builtins): Don't build
19592         va_list_type_node.
19593         * c-common.h (enum c_tree_index and related accesor macros): Remove
19594         everything now declared in tree.h.
19595         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
19596         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
19597         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
19598         (error_mark_node, void_type_node, char_type_node, integer_type_node,
19599         unsigned_type_node, ptr_type_node, va_list_type_node,
19600         integer_zero_node, null_pointer_node, integer_one_node): Delete.
19601         (init_decl_processing): Call build_common_tree_nodes and
19602         build_common_tree_nodes_2 instead of building their nodes here.
19603         Don't add roots for these nodes.
19604         * stor-layout.c (size_zero_node, size_one_node): Delete.
19605         (set_sizetype): Make a new node for bitsizetype each time.
19606         * tree.c (global_trees): New variable.
19607         (init_obstacks): Add a gc root for it.
19608         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
19609         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
19610         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
19611         (build_common_tree_nodes): New function.
19612         (fix_sizetype): New function.
19613         (build_common_tree_nodes_2): New function.
19614         * tree.h (enum tree_index): New.
19615         (global_trees): Declare.
19616         Add accessor macros for all nodes now moved to global_trees.
19617         Delete their declarations.
19618
19619 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
19620
19621         * c-decl.c (finish_function): When processing a nested function,
19622         push and pop GC context around rest_of_compilation.
19623
19624 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
19625
19626         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
19627         Default ix86_arch to PROCESSOR_I386.
19628         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
19629         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
19630         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
19631         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
19632         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
19633         (EXTRA_SPECS): Remove deleted specs.
19634
19635 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
19636
19637         * function.c (assign_stack_local_1): Allocate from
19638         function->x_frame_offset, not frame_offset.
19639
19640 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
19641
19642         * ggc.h (lang_cleanup_tree): Remove.
19643         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
19644         * ggc-callbacks.c (lang_cleanup_tree): Remove.
19645
19646         * c-decl.c (finish_struct): Use ggc_alloc to allocate
19647         TYPE_LANG_SPECIFIC when garbage collecting.
19648         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
19649         (lang_cleanup_tree): Remove.
19650
19651 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
19652
19653         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
19654         * crtstuff.c: Not here.
19655         * dwarf2out.c: Or here.
19656         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
19657         info.
19658
19659 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
19660
19661         * function.h (free_after_compilation): Remove decl parameter.
19662         (free_varasm_status0: Likewise.
19663         (free_emit_status): Likewise.
19664         (free_stmt_status): Likewise.
19665         (free_after_compilation): Likewise.
19666         (init_lang_status): New variable.
19667         (free_lang_status): Likewise.
19668         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
19669         * function.c (init_lang_status): New variable.
19670         (free_lang_status): Likewise.
19671         (push_function_context_to): Don't set function::decl here.
19672         (free_after_copmilation): Make decl parameter implicit.  Call
19673         free_lang_status if defined.
19674         (prepare_function_start): Call init_lang_status if defined.
19675         (init_function_start): Set function::decl here.
19676         * profile.c (output_func_start_profiler): Don't call pushdecl
19677         until we've actually started the function.
19678         * stmt.c (free_stmt_status): Make decl parameter implicit.
19679         * toplev.c (rest_of_compilation): Don't pass decl to
19680         free_after_compilation.
19681         * varasm.c (free_varasm_status): Likewise.
19682
19683 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19684
19685         * except.c (call_get_eh_context): Add root when allocating static
19686         tree variable.
19687
19688 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
19689
19690         * arm.c: Include "ggc.h".
19691         (arm_add_gc_roots): New function.
19692         (arm_override_options): Call it.
19693         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
19694
19695         * arm.md (define_asm_attributes): Add a pool_range attribute.
19696
19697 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
19698
19699         * extend.texi (Volatiles): New node.
19700
19701 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
19702
19703         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
19704         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
19705         (struct ggc_any): Replace `mark' with `magic_mark'.
19706         (ggc_alloc_string): Use memcpy, not bcopy.
19707         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
19708         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
19709         (ggc_free_any): New.
19710         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
19711         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
19712         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
19713         Use IS_MARKED. Use ggc_free_any.
19714
19715 1999-09-09  Scott Bambrough <scottb@netwinder.org>
19716
19717         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
19718
19719 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
19720
19721         * toplev.c (main): Always init_ggc.
19722
19723 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
19724
19725         * except.c (find_all_handler_type_matches): Free the list if
19726         we found no matches.
19727
19728         * combine.c (SUBST): Break out to a real function do_SUBST.
19729         (SUBST_INT): Likewise.
19730         * gcse.c (free_pre_mem): Free `temp_bitmap'.
19731         (pre_insert): Free `inserted'.
19732         * loop.c (basic_induction_var): Always set `location'.
19733
19734         * function.c (expand_function_end): Add initial_trampoline as a root.
19735         * rtl.h (init_varasm_once): Declare.
19736         * toplev.c (compile_file): Call it.
19737         * ggc-simple.c (ggc_mark_string_ptr): New.
19738         (ggc_add_string_root): New.
19739         (ggc_collect): Disable collection avoidance temporarily.
19740         * ggc.h (ggc_add_string_root): Declare.
19741         * except.c (create_rethrow_ref): Use ggc_alloc_string.
19742         * optabs.c (init_libfuncs): Likewise.
19743         * varasm.c (named_section): Use ggc_alloc_string.
19744         (make_function_rtl): Likewise.
19745         (make_decl_rtl): Likewise.
19746         (assemble_static_space): Likewise.
19747         (assemble_trampoline_template): Likewise.
19748         (output_constant_def): Likewise.
19749         (force_const_mem): Likewise.
19750         (mark_const_hash_entry): New.
19751         (mark_pool_sym_hash_table): New.
19752         (mark_varasm_state): Use it.
19753         (init_varasm_once): New.
19754
19755         * expr.h (init_one_libfunc): Declare.
19756         * optabs.c (init_one_libfunc): New.
19757         (init_optabs): Use it.
19758         * config/gofast.h: Likewise.
19759         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
19760         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
19761
19762 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
19763
19764         * Makefile.in (cppexp.o): Depend on cpphash.h.
19765         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
19766         Include cpphash.h.
19767         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
19768         * cpplib.c (do_define): Generalise to handle poisoned definitions,
19769         redefining poisoned identifiers, etc.
19770         (do_undef): Don't allow poisoned identifiers to be undefined.
19771         (do_pragma): Add #pragma poison.
19772         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
19773
19774         * cccp.c: Add T_POISON node type.
19775         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
19776         poisoned xxx.
19777         (do_define): Generalise to handle poisoned definitions,
19778         redefining poisoned identifiers, etc.
19779         (do_undef): Don't allow poisoned identifiers to be undefined.
19780         (do_pragma): Add #pragma poison.
19781         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
19782
19783         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
19784         * c-pragma.h: Add ps_poison state.  We now always have generic
19785         pragmas.
19786
19787 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
19788
19789         * ggc.h (ggc_alloc): New function.
19790         (ggc_mark): Likewise.
19791         * ggc-simple.c (ggc_any): New structure.
19792         (ggc_status): Add anys.
19793         (n_anys_collected): New variable.
19794         (ggc_alloc): Define.
19795         (ggc_mark): Likewise.
19796         (ggc_collect): Collect the anys.
19797
19798 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19799
19800         * c-decl.c (mark_binding_level): Make static to match prototype.
19801
19802 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
19803
19804         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
19805
19806 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
19807
19808         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
19809         will use into account.  Expand the max width to 5.
19810         * rtl.c: Likewise.
19811
19812 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
19813
19814         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
19815         for the rtx length.
19816
19817 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
19818
19819         * alpha.md (call value patterns): Remove the result predicates.
19820
19821 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
19822
19823         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
19824         last change.
19825
19826 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19827
19828         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
19829         changed from extern char *, to extern PTR.  Also fix typo in
19830         NEED_DECLARATION_REALLOC test.
19831
19832         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
19833
19834 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19835
19836         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
19837         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
19838         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
19839         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
19840
19841         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
19842
19843         * cccp.c (pcfinclude): Likewise.
19844
19845         * global.c (allocno_compare): Likewise.
19846
19847         * haifa-sched.c (rank_for_schedule): Likewise.
19848
19849         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
19850
19851         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
19852
19853         * stupid.c (stupid_reg_compare): Likewise.
19854
19855         * tree.c (_obstack_allocated_p): Likewise.
19856
19857         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
19858
19859 1999-09-08  Bruce Korb  autogen@linuxbox.com
19860
19861         * Makefile.in: Give the hapless gperf user a hint about
19862         why "gperf -F" fails.
19863
19864 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
19865
19866         * lists.c: Include ggc.h.
19867         (zap_lists): New.
19868         (init_EXPR_INSN_LIST_cache): Install it.
19869
19870         * ggc-simple.c (init_ggc): Absorb the old init.
19871         (ggc_push_context): Use xcalloc.
19872         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
19873         (ggc_collect): Add [rvts] tags to the collection stats.
19874
19875 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
19876
19877         * cccp.c (main): Fix handling of -include and -imacros options.
19878
19879 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
19880
19881         * cpplib.c (cpp_push_buffer): Fix order of arguments.
19882
19883 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
19884
19885         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
19886         genrtl.c.
19887
19888 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
19889
19890         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
19891         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
19892         and SET_DEST. Update comment.
19893
19894 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19895
19896         * config/c4x/c4x.c: Include ggc.h.
19897         (c4x_add_gc_roots): New function.
19898         (c4x_override_options): Call c4x_add_gc_roots.
19899
19900 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
19901
19902         * defaults.h (TARGET_ESC): Move ...
19903         * system.h: ... here, where Linas had it in the first place.  Silly me.
19904
19905 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
19906
19907         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
19908         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
19909         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
19910         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
19911         * defaults.h (TARGET_ESC): Add default.
19912
19913 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
19914
19915         * configure.in: add i370-*-openedition, i370-*-mvs and
19916         i370-*-linux targets
19917
19918 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
19919
19920         * dsp16xxx.c: Include ggc.h
19921         (override_options): Mark GC roots.
19922         * mn10200.c: Include ggc.h.
19923         (asm_file_start): Mark GC roots.
19924         * tahoe.c: Include ggc.h.
19925         (extensible_operand): Mark GC roots.
19926
19927 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
19928
19929         * README: Add section discussing status of ELF ABI.
19930         * i370.c: Fix misc spelling mistakes.
19931         (i370_label_scan): Updated notes, exception handling.
19932         (i370_function_prolog): Simplify ELF stack handling.
19933         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
19934         (STACK_GROWS_DOWNWARD): ELF stack grows down.
19935         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
19936         * i370.md: (movdi): Add notes.
19937         (floatsidf2): Use stack not rtca for scratch float area.
19938         (iorsi3): Correct operand constraints.
19939         * x-oe: Restore TAROUTOPTS which are used by pax.
19940
19941 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
19942
19943         * rs6000.c: Include ggc.h.
19944         (rs6000_add_gc_roots): New function.
19945         (override_options): Call it.
19946
19947 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
19948
19949         * alpha.h (alpha_compare): New.
19950         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
19951         * alpha.c: Likewise for the definitions.
19952         (alpha_emit_conditional_branch): Update for alpha_compare.
19953         (alpha_emit_conditional_move): Likewise.
19954         * alpha.md (cmpdf, cmpdi): Likewise.
19955         (setcc patterns): Likewise.  Zero alpha_compare after use.
19956         (sne): Optimize (x != 0) into (0U < x).
19957
19958 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
19959
19960         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
19961         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
19962         (INIT_EXPANDERS): Remove.
19963         * alpha.c: Include ggc.h.
19964         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
19965         (alpha_init_machine_status, alpha_mark_machine_status): New.
19966         (override_options): Install them.
19967         (struct machine_function): Moved to alpha.h.
19968         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
19969         (alpha_init_expanders): Remove.
19970         (alpha_return_addr): Adjust to use current_function->machine.
19971         (alpha_ra_ever_killed): Likewise.
19972         (alpha_expand_epilogue): Likewise.
19973         * alpha.md (eh_epilogue): Likewise.
19974
19975 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
19976                           Melissa O'Neill  <oneill@cs.sfu.ca>
19977                           Geoffrey Keating  <geoffk@cygnus.com>
19978
19979         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
19980         call-used registers (call-saved registers must still be contiguous
19981         and end with r31, of course).
19982
19983 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
19984
19985         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
19986         (self_promoting_type_p): Delete.
19987         (self_promoting_args_p): Move ...
19988         * c-common.c: ... here.
19989         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
19990         (simple_type_promotes_to): New.
19991         * builtins.c (lang_type_promotes_to): New.
19992         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
19993         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
19994         * c-common.h: ... here.
19995         (self_promoting_args_p, simple_type_promotes_to): Declare.
19996         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
19997         (grokdeclarator): Likewise.
19998         * tree.h (lang_type_promotes_to): Declare.
19999
20000 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
20001
20002         Add some machine-dependent GC roots.
20003         * sparc.c: Include ggc.h.
20004         (sparc_add_gc_roots): New function.
20005         (mark_ultrasparc_pipeline_state): Likewise.
20006         (override_options): Call sparc_add_gc_roots.
20007         * pa.c: Include ggc.h.
20008         (pa_add_gc_roots): New function.
20009         (mark_deferred_plabels): Likewise.
20010         (override_options): Call pa_add_gc_roots.
20011         * mips.c: Include ggc.h.
20012         (mips_add_gc_roots): New function.
20013         (override_options): Use it.
20014
20015 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20016
20017         * cpperror.c (cpp_file_line_for_message): Constify a char*.
20018
20019         * cppexp.c (parse_number, parse_charconst, cpp_lex,
20020         cpp_parse_expr): Add static prototypes.
20021         (parse_charconst): Don't cast away const-ness.
20022         (token): Constify a char*.
20023
20024         * cppfiles.c (file_name_list, include_hash, find_include_file,
20025         finclude, initialize_input_buffer): Constify a char*.
20026         (file_cleanup, find_position): Add static prototypes.
20027
20028         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
20029         collect_expansion): Add static prototypes.
20030         (cpp_install, create_definition, monthnames): Constify a char*.
20031
20032         * cpphash.h (cpp_install): Likewise.
20033
20034         * cppinit.c (known_suffixes, default_include,
20035         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
20036         (base_name, dump_special_to_buffer, initialize_dependency_output):
20037         Add static prototypes.
20038
20039         * cpplib.c (my_strerror): Constify a char*.
20040         (null_underflow, null_cleanup, skip_comment, copy_comment,
20041         copy_rest_of_line, handle_directive, pass_thru_directive,
20042         get_directive_token, read_line_number, cpp_print_file_and_line,
20043         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
20044         v_cpp_warning_with_line, detect_if_not_defined,
20045         consider_directive_while_skipping): Add static prototypes.
20046         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
20047         cpp_pedwarn_with_file_and_line): Constify a char*.
20048
20049         * cpplib.h (cpp_options, include_hash, progname, definition,
20050         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
20051         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
20052         find_include_file, deps_output, include_hash): Constify a char*.
20053
20054         * cppmain.c (progname): Constify.
20055         (main): Add prototype.  Use return, not exit.
20056
20057         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
20058         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
20059         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
20060         check_protection): Add static prototype.
20061         (xfree): Remove.
20062         (progname, recognized_macrom, recognized_extern): Constify a char*.
20063         (main): Add prototype.
20064
20065         * gen-protos.c (progname): Constify a char*.
20066
20067 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
20068
20069         * emit-rtl.c (free_emit_status): Take decl as a parameter.
20070         (init_emit_once): Add more GC roots.
20071         * except.c (mark_func_eh_entry): New function.
20072         (mark_eh_node): Mark false_label and rethrow_label.
20073         (init_eh): Add more GC roots.
20074         * function.c (free_after_compilation): Take decl as a paramter.
20075         Call free_stmt_status.
20076         (mark_function_state): Don't assume x_parm_reg_stack_loc is
20077         non-NULL.
20078         * function.h (free_after_compilation): Change prototype.
20079         (free_varasm_status): Likewise.
20080         (free_emit_status): Likewise.
20081         (free_stmt_status): New function.
20082         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
20083         Remove, replacing with ...
20084         (ggc_status): New structure.
20085         (ggc_chain): New variable.
20086         (init_gcc): Define.
20087         (ggc_push_context): New function.
20088         (ggc_pop_context): Likewise.
20089         (ggc_alloc_rtx): Adjust for use of ggc_chain.
20090         (ggc_alloc_rtvec): Likewise.
20091         (ggc_alloc_tree): Likewise.
20092         (ggc_alloc_string): Likewise.
20093         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
20094         (ggc_mark_tree): Give language-dependent code a chance to mark
20095         `x' nodes.
20096         (ggc_mark_tree_varray): Handle empty arrays.
20097         (ggc_collect): Adjust for use of ggc_chain.  Clear
20098         bytes_alloced_since_last_gc.
20099         * ggc.h (ggc_pop_context): New function.
20100         (ggc_push_context): Likewise.
20101         * print-tree.c (print_node): Don't print obstacks when GC'ing.
20102         * stmt.c (free_stmt_status): New function.
20103         (init_stmt_for_function): Clear last_expr_value.
20104         * toplev.c (rest_of_compilation): Always call free_after_compilation.
20105         Conditionalize call to ggc_collect.
20106         (main): Call init_ggc.
20107         * tree.c (push_obstacks): Do the push, even when GC'ing.
20108         (push_obstacks_nochange): Likewise.
20109         (pop_obstacks): Liekwise.
20110         * varasm.c (free_varasm_status): Take decl as a parameter.
20111
20112 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20113
20114         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
20115         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
20116         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
20117         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
20118
20119 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
20120
20121         * pa/x-pa-mpeix: New file for the MPE port.
20122
20123         * pa/quadlib.asm: New file for long double support.
20124
20125         * configure.in: Add hppa1.0-*-mpeix for MPE port.
20126         * configure: Rebuilt.
20127
20128 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
20129
20130         * final.c (shorten_branches): Fix last change.
20131
20132 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
20133
20134         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
20135
20136 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
20137
20138         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
20139         details.
20140
20141 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20142
20143         * c-aux-info.c (concat): Don't define.
20144
20145         * cccp.c (my_strerror): Likewise.  All callers changed to use
20146         xstrerror instead.
20147         (do_include): Call xstrdup, not xmalloc/strcpy.
20148         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
20149         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
20150
20151         * collect2.c (my_strsignal): Likewise.  All callers changed to use
20152         strsignal instead.
20153         (locatelib): Call xstrdup, not xmalloc/strcpy.
20154
20155         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
20156
20157         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
20158
20159         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
20160
20161         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
20162
20163         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
20164
20165         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
20166
20167         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
20168         malloc/realloc.
20169         (find_all_handler_type_matches): Likewise.  Don't check return
20170         value.
20171         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
20172         xmalloc, not malloc.
20173         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
20174
20175         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
20176         (init_spec): Call xcalloc, not xmalloc/bzero.
20177         (set_spec): Call xstrdup, not save_string.
20178         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
20179         (find_a_file): Call xstrdup, not xmalloc/strcpy.
20180         (process_command): Call xstrdup, not save_string.
20181         (main): Call xcalloc, not xmalloc/bzero.
20182
20183         * gcov.c (xmalloc): Don't define.
20184         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
20185         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
20186         (output_data): Call xcalloc, not xmalloc/bzero.
20187
20188         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
20189
20190         * mips-tdump.c (xmalloc): Don't define.
20191         (print_symbol): Call xmalloc, not malloc.
20192         (read_tfile): Call xcalloc, not calloc.
20193
20194         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
20195         Don't define.  All callers of xfree/my_strsignal changed to use
20196         free/strsignal instead.
20197         (allocate_cluster): Call xcalloc, not calloc.
20198
20199         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
20200         Fix memory leak, free allocated memory.
20201
20202         * prefix.c (translate_name): Call xstrdup, not save_string.
20203         (update_path): Likewise.
20204
20205         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
20206
20207         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
20208         Don't define.  Callers of xfree/savestring2 changed to use
20209         free/concat instead.
20210
20211         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
20212         (init_elim_table): Likewise.
20213
20214         * resource.c (init_resource_info): Likewise.
20215
20216         * stupid.c (stupid_life_analysis): Likewise.
20217
20218         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
20219         (open_dump_file): Call concat, not xmalloc/strcpy/...
20220         (clean_dump_file): Likewise.
20221         (compile_file): Call xstrdup, not xmalloc/strcpy.
20222
20223 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
20224
20225         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
20226         * v850.c (v850_va_arg): New.
20227
20228 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20229
20230         * haifa-sched.c: Tidy comments.
20231
20232 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20233
20234         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
20235         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
20236         $(out_object_file)): Depend on ggc.h.
20237         * c-common.c: Include "ggc.h".
20238         (combine_strings): If doing GC, use ggc_alloc_string.
20239         * c-decl.c: Include "ggc.h".
20240         (ggc_p): Define with value 0.
20241         (mark_binding_level): New function.
20242         (init_decl_processing): Add GC roots.
20243         (mark_c_function_context): New function.
20244         (lang_mark_false_label_stack): New function.
20245         (lang_mark_tree): New function.
20246         (lang_cleanup_tree): New function.
20247         * c-lang.c: Include "ggc.h".
20248         (lang_init): Call c_parse_init.
20249         * c-lex.c: Include "ggc.h".
20250         (check_linenum): If doing GC, don't copy filenames to permanent
20251         obstack.
20252         * c-parse.in: Include "ggc.h".
20253         (c_parse_init): New function.
20254         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
20255         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
20256
20257         * except.c (mark_eh_state): Mark more state.
20258         * function.c (mark_function_state): Likewise.
20259         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
20260         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
20261         * toplev.c (mark_file_stack): New function.
20262         (compile_file): If doing GC, use ggc_alloc_string on input filename.
20263         (main): Add root for input_file_stack.
20264
20265         * i386.c: Include "ggc.h".
20266         (ix86_mark_machine_status): New function.
20267         (override_options): Set mark_machine_status.
20268
20269 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20270
20271         * tree.c (copy_node): Copy node contents also if doing GC.
20272
20273 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
20274
20275         * collect2.c (scan_libraries): Fix double-thinko :-).
20276
20277 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
20278
20279         * collect2.c (scan_libraries): Fix thinko.
20280
20281         * cse.c (delete_trivially_dead_insns): Do not skip the last
20282         insn if it is a real insn.
20283
20284 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
20285
20286         * Makefile.in (ggc-simple.o): Depend on hash.h.
20287         * ggc.h (ggc_add_tree_hash_table_root): Declare.
20288         (ggc_mark_tree_varray): Likewise.
20289         (ggc_mark_tree_hash_table): Likewise.
20290         * ggc-simple.c: Include hash.h.
20291         (ggc_mark_tree_hash_table_ptr): New function.
20292         (ggc_mark_tree_hash_table_entry): Likewise.
20293         (ggc_mark_tree_hash_table): Likewise.
20294         (ggc_add_tree_hash_table_root): Likewise.
20295         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
20296         rtx, when defining fields.
20297
20298 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
20299
20300         * profile.c (output_func_start_profiler): Remove apparently
20301         nonsensical call to start_sequence.
20302
20303 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
20304
20305         * clipper/clipper.c (clipper_va_start): Fix typos.
20306
20307         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
20308         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
20309         (spur_va_arg): New stub.
20310
20311         * configure.in: Comment out pyramid.
20312
20313 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
20314
20315         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
20316         don't conflict with the bits that win32, cygwin, and dgux
20317         defines.
20318
20319 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
20320                           Bernd Schmidt <bernds@cygnus.co.uk>
20321
20322         * integrate.c (function_cannot_inline_p): Do not inline
20323         functions with forced labels.
20324
20325 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
20326                           Bernd Schmidt <bernds@cygnus.co.uk>
20327                           Mark Mitchell  <mark@codesourcery.com>
20328
20329         * Makefile.in (ggc-simple.o): Depend on varray.h.
20330         (rtl.o): Depend on ggc.h.
20331         (genattrtab.o): Depend on ggc.h.
20332         (print-tree.o): Likewise.
20333         (fold-const.o): Likewise.
20334         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
20335         (make_insn_raw): Don't cache insns when GC'ing.
20336         (emit_insn_before): Likewise.
20337         (emit_insn_after): Likewise.
20338         (emit_insn): Likewise.
20339         (start_sequence): Use xmalloc to allocate the sequence_stack.
20340         (end_sequence): Add free to free it.
20341         (gen_sequence): Don't cache insns when GC'ing.
20342         (clear_emit_caches): Don't use sequence_element_free_list.
20343         (init_emit): Use xcalloc, not xmalloc+bzero.
20344         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
20345         * function.c (pop_function_context_from): Use free to free the
20346         fixup_var_refs_queue.
20347         (put_reg_into_stack): Allocate it with xmalloc.
20348         * genattrtab.c: Include ggc.h.
20349         (operate_exp): Don't use obstack_free when GC'ing.
20350         (simplify_cond): Likewise.
20351         (simplify_text_exp): Likewise.
20352         (optimize_attrs): Likewise.
20353         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
20354         GC'ing.
20355         (gencode): Generate a #include for ggc.h.
20356         * ggc-callbacks.c (ggc_p): Define it to zero.
20357         * ggc-none.c (ggc_p): Likewise.
20358         * ggc-simple.c: Include varray.h.
20359         (ggc_mark_tree_varray): New function.
20360         (ggc_add_tree_varray_root): Likewise.
20361         (ggc_mark_tree_varray_ptr): Likewise.
20362         * ggc.h (ggc_p): Declare.
20363         (varray_head_tag): Likewise.
20364         (ggc_add_tree_varray_root): Declare.
20365         * print-tree.c (print_node): Don't check for TREE_PERMANENT
20366         inconsistencies when GC'ing.
20367         * rtl.c: Include ggc.h.
20368         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
20369         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
20370         (rtx_free): Don't call obstack_free when GC'ing.
20371         * toplev.c (rest_of_compilation): Call ggc_collect after every
20372         pass, if GC'ing.
20373         * tree.c (push_obstacks): Do nothing, if GC'ing.
20374         (pop_obstacks_nochange): Likewise.
20375         (pop_obstacks): Likewise.
20376         (make_node): Use ggc_alloc_tree when GC'ing.
20377         (copy_node): Likewise.
20378         (get_identifier): Use ggc_alloc_string when GC'ing.
20379         (build_string): Likewise.
20380         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
20381         (tree_cons): Likewise.
20382         (build1): Likewise.
20383         (type_hash_canon): Don't call obstack_free when GC'ing.
20384
20385 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
20386
20387         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
20388         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
20389
20390 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
20391                           Bernd Schmidt <bernds@cygnus.co.uk>
20392                           Mark Mitchell  <mark@codesourcery.com>
20393
20394         * Makefile.in (stor-layout.o): Depend on ggc.h.
20395         (expr.o): Depend on ggc.h.
20396         (profile.o): Depend on ggc.h.
20397         (stor-layout.o): Depend on ggc.h.
20398         * emit-rtl.c (init_emit_once): Add gc roots.
20399         * expr.c: Include ggc.h.
20400         (emit_block_move): Add gc roots.
20401         (clear_storage): Likewise.
20402         * expr.h (init_stor_layout_once): New function.
20403         * profile.c: Include ggc.h.
20404         (init_arc_profiler): profiler_label is a root.
20405         * scan.c (make_sstring_space): Trust xrealloc to function
20406         correctly with first parameter NULL.
20407         * stor-layout.c: Include ggc.h.
20408         (set_sizetype): Add gc root.
20409         (init_stor_layout_once): New function.
20410         * toplev.c (compile_file): Call it.
20411
20412 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
20413                           Bernd Schmidt <bernds@cygnus.co.uk>
20414                           Mark Mitchell  <mark@codesourcery.com>
20415
20416         * Makefile.in (tree.o): Depend on ggc.h.
20417         (varasm.o): Likewise.
20418         (function.o): Likewise.
20419         (stmt.o): Likewise.
20420         (except.o): Likewise.
20421         (optabs.o): Likewise.
20422         (emit-rtl.o): Likewise.
20423         * emit-rtl.c: Include ggc.h.
20424         (sequence_element_free_list): Remove, and all references.
20425         (mark_sequence): New functions.
20426         (mark_emit_state): New function.
20427         * except.c: Include ggc.h.
20428         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
20429         (mark_tree_label_node): New functions.
20430         (mark_eh_state): New function.
20431         * function.c: Include ggc.h.
20432         (mark_temp_slot, mark_function_chain): New functions.
20433         (mark_function_state): New function.
20434         (init_function_once): New function.
20435         * function.h (init_function_once): New function.
20436         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
20437         * ggc.h (label_node): Declare.
20438         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
20439         (lang_mark_false_label_stack): New function.
20440         (mark_temp_slot): Remove declaration.
20441         (mark_function_chain): Likewise.
20442         (mark_eh_state): Adjust prototype.
20443         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
20444         Likewise.
20445         * optabs.c: Include ggc.h.
20446         (mark_optab): New function.
20447         (init_optabs): Add gc roots.
20448         * stmt.c: Include ggc.h.
20449         (mark_cond_nesting, mark_loop_nesting): New functions.
20450         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
20451         (mark_stmt_state): New function.
20452         * toplev.c (compile_file): Call init_function_once.
20453         * tree.c: Include ggc.h.
20454         (type_hash): Move declaration earlier in file.
20455         (TYPE_HASH_SIZE, type_hash_table): Likewise.
20456         (init_obstacks): Add gc roots.
20457         (mark_type_hash): New function.
20458         * varasm.c: Include ggc.h.
20459         (mark_pool_constant): New function.
20460         (mark_varasm_state): New function.
20461
20462 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20463
20464         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
20465
20466 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
20467
20468         * c-decl.c (struct language_function): Renamed from struct c_function.
20469         Delete elt NEXT.
20470         (c_function_chain): Delete.
20471         (push_c_function_context): New arg F.  Don't warn about nested
20472         functions here.  Fill LANGUAGE elt of F.  Delete code to update
20473         c_function_chain.  Don't call push_function_context.
20474         (pop_c_function_context): New arg F.  Restore from there instead of
20475         from c_function_chain.  Don't call pop_function_context.  Clear out
20476         LANGUAGE field of F when done.
20477         * c-lang.c: Include "function.h"
20478         (lang_init): Initialize save_lang_status and restore_lang_status.
20479         * c-parse.in (nested_function, nested_function_notype): Warn about
20480         nested functions.  Call push_function_context/pop_function_context
20481         instead of the _c_ variants.
20482         * c-tree.h (push_c_function_context, pop_c_function_context): Update
20483         prototype.
20484         * Makefile.in (c-lang.o): Update dependencies.
20485
20486         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
20487         regno_pointer_flag, regno_pointer_align.
20488         (gen_reg_rtx): Use xrealloc to enlarge them.
20489         (free_emit_status): New function.
20490         * function.c (mark_machine_status, mark_lang_status): New variables.
20491         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
20492         in some bits from assign_stack_local.  All callers changed to use new
20493         name.
20494         (assign_stack_local): Just call assign_stack_local_1.
20495         (free_after_compilation): New function.
20496         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
20497         (trampoline_address): Likewise.
20498         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
20499         (prepare_function_start): Explicitly clear some more variables.
20500         * function.h (struct function): New elt can_garbage_collect.
20501         (mark_machine_status, mark_lang_status): Declare variables.
20502         (free_after_compilation, free_emit_status, free_varasm_status,
20503         init_varasm_status): Declare functions.
20504         * toplev.c (rest_of_compilation): Call free_after_compilation when
20505         done with the current function.
20506         * varasm.c (free_varasm_status): New function.
20507
20508 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
20509
20510         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
20511         (EXPAND_BUILTIN_VA_ARG): Define.
20512         * sparc.c (sparc_va_start): New.
20513         (sparc_va_arg): New.
20514
20515 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20516
20517         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
20518
20519 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20520
20521         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
20522
20523 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
20524
20525         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
20526         (OBJS): Add $(GGC).
20527         (ggc-callbacks.o): New target.
20528         * ggc-callbacks.c: New file.
20529
20530 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20531
20532         * expr.h: Collapse individual optab and libfunc vars to arrays.
20533         (optab_index, libfunc_index): New enumerations.
20534         (optab_table, libfunc_table): New arrays.
20535         Add accessor macros for both.
20536
20537         * optabs.c (optab_table, libfunc_table): New.
20538         Delete declarations for individual optab and libfunc vars.
20539
20540 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
20541
20542         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
20543
20544 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
20545
20546         * Makefile.in (GGC, GGC_LIB): New.
20547         (HOST_RTL): Include ggc-none.o.
20548         (ggc-simple.o): New target.
20549         (ggc-none.o): Likewise.
20550         * tree.h (tree_common): Add gc_mark.
20551         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
20552         (struct rtvec_def): Add gc_mark.
20553         * emit-rtl.c (global_rtl): Update static initializers to contain
20554         enough initializers.
20555         * ggc.h, ggc-none.c, ggc-simple.c: New files.
20556         * toplev.c (gc_time): New variable.
20557         (all_time): New variable.
20558         (compile_file): Print gc time.
20559         (print_time): Calculate percentage of the whole.
20560
20561 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20562
20563         Change obstack memory management and varasm constant pool handling so
20564         that nested functions are treated like any other functions.
20565         * function.c (init_machine_status): New variable.
20566         (push_function_context_to): Set contains_functions for the outer
20567         function.  Don't call save_varasm_status.
20568         (pop_function_context_from): Don't call restore_varasm_status.  Don't
20569         set current_function_contains_functions.
20570         (prepare_function_start): Call init_varasm_status rather than
20571         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
20572         is non-null.
20573         * function.h (struct function) Add field varasm.  Delete fields
20574         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
20575         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
20576         (init_machine_status): Declare.
20577         (save_varasm_status, restore_varasm_status): Delete declarations.
20578         (save_tree_status, restore_tree_status): Delete last argument.
20579         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
20580         code.  All callers changed.
20581         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
20582         save_constants_in_decl_trees, restore_constants, save_constants,
20583         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
20584         functions.
20585         (inlining): New variable.
20586         (reg_map, label_map, insn_map, orig_asm_operands_vector,
20587         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
20588         variables.
20589         (save_for_inline_nocopy): Don't save constants.
20590         Don't set inl_emit field in current_function.
20591         (expand_inline_function): Use emit field, not inl_emit, of the inlined
20592         function.  Set new variable inlining before
20593         calling copy_rtx_and_substitute.
20594         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
20595         constant pool references if inlining is nonzero.
20596         Delete ADDRESS and (most of the) CONST cases.
20597         (output_inline_function): Save and restore current_function/
20598         current_function_decl.  Delete restore_constants code.  Don't call
20599         init_const_rtx_hash_table.
20600         * output.h (init_const_rtx_hash_table): Don't declare.
20601         * rtl.h (struct function): Declare.
20602         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
20603         * toplev.c (rest_of_compilation): Don't treat nested functions or
20604         functions containing them specially.  Delete all code to deal with
20605         save_for_inline_copying.
20606         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
20607         inline_obstacks): Delete variables.
20608         (save_tree_status): Lose arg CONTEXT.  All callers changed.
20609         Simply allocate a new function_maybepermanent_obstack for the new
20610         function, delete all the special cases.
20611         Don't save inline_obstacks.
20612         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
20613         Delete special handling for function_maybepermanent_obstack; simply
20614         free it if empty.
20615         Don't restore inline_obstacks.
20616         (permanent_allocation):  Delete code that frees inline_obstacks.
20617         (print_inline_obstack_statistics): Delete function.
20618         (dump_tree_statistics): Don't call it.
20619         * varasm.c (struct varasm_status): New.
20620         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
20621         last_pool, pool_offset, const_double_chain): Delete global
20622         variables, replace with accessor macros.
20623         (immed_double_const): Don't walk const_double_chain outside a
20624         function, but don't treat nested functions specially anymore.
20625         (immed_real_const_1): Likewise.
20626         (clear_const_double_mem): Don't treat nested functions specially.
20627         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
20628         (save_varasm_status, restore_varasm_status): Delete functions.
20629         (init_varasm_status): New function.
20630         (force_const_mem): Don't treat nested functions specially.
20631         (find_pool_constant): Accept new arg F, search for constants in
20632         that function's pool rather than the current one.  All callers
20633         changed.
20634         (get_pool_constant_for_function, get_pool_mode_for_function): New
20635         functions.
20636
20637         * i386.c (init_386_machine_status): New function, mostly from
20638         clear_386_stack_locals.
20639         (struct machine_functions): Rename element names to avoid name
20640         clashes.
20641         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
20642         macros, replacing global variables.
20643         (clear_386_stack_locals, save_386_machine_status,
20644         restore_386_machine_status): Delete functions.
20645         (override_options): Initialize init_machine_status.
20646         * i386.h (INIT_EXPANDERS): Delete macro.
20647         (save_386_machine_status, restore_386_machine_status,
20648         clear_386_stack_locals): Delete declarations.
20649
20650 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20651
20652         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
20653         (doloop_begin):  Simplify pattern and use emit_jump_insn.
20654         (doloop_end): Simplify pattern, switch operand order,
20655         and use emit_jump_insn.
20656
20657 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
20658
20659         * function.h (struct function): Add new element LANGUAGE.
20660         (save_lang_status): Declare new variable.
20661         (restore_lang_status): Likewise.
20662         * function.c (save_lang_status): Define.
20663         (restore_lang_status): Likewise.
20664         (push_function_context_to): Call language-specific save function.
20665         (pop_function_context_from): Call language-specific restore function.
20666
20667 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
20668
20669         * i386.md (movsf_1): Check REG_P before use of REGNO.
20670         (movdf_1): Likewise.
20671         (movxf_1): Likewise.
20672         (extendsfdf2): Likewise.
20673         (extendsfxf2): Likewise.
20674         (extenddfxf2): Likewise.
20675
20676 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20677
20678         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
20679         constants into memory.
20680         (c4x_shiftable_constant): New function.
20681         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
20682         (c4x_shiftable_constant): Declare.
20683         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
20684         ashlqi3_noclobber): Add new patterns and associated splitters.
20685
20686 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
20687
20688         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
20689         * dwarf2out.c (dwarf2out_frame_init): Likewise.
20690         * final.c (shorten_branches): Likewise.
20691         * global.c (global_alloc): Likewise.
20692         * haifa-sched.c (build_control_flow): Likewise.
20693         * stmt.c (check_for_full_enumeration_handling): Likewise.
20694         (estimate_case_costs): Likewise.
20695
20696 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
20697
20698         * rtl.h (RTL_CHECKC2): Fix typo in last change.
20699
20700 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
20701
20702         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
20703         (recompute_reg_usage): Likewise.
20704         * rtlanal.c (find_regno_fusage): Likewise.
20705
20706         * rtl.c (rtl_check_failed_code1): New function.
20707         (rtl_check_failed_code2): New.
20708         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
20709         (RTL_CHECKC1, RTL_CHECKC2): New.
20710         (XC*): New accessor macros.
20711         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
20712         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
20713         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
20714         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
20715         (TRAP_*, RANGE_INFO_*): Likewise.
20716
20717 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20718
20719         * Makefile.in (tlink.o): Don't depend on toplev.h.
20720
20721         * collect2.c (c_file, o_file, export_file, import_file, ldout,
20722         output_file, nm_file_name, ldd_file_name, strip_file_name,
20723         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
20724         add_prefix, prefix_from_env, prefix_from_string, do_wait,
20725         fork_execute, maybe_unlink, add_to_list,
20726         extract_init_priority, write_list, dump_list,
20727         dump_prefix_list, write_list_with_asm, write_c_file,
20728         write_c_file_stat, write_c_file_glob, scan_prog_file,
20729         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
20730         ignore_library, extract_string, notice, dump_file, target_machine,
20731         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
20732         read_file, print_load_command): Constify a char*.
20733         (fdopen, error, fatal, fatal_perror): Don't prototype.
20734         (my_strerror): Remove.  All callers use xstrerror instead.
20735         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
20736         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
20737         to xcalloc/strcpy/strcat/...  to one call to concat.
20738         (main, scan_prog_file, scan_libraries): Use an intermediate
20739         `const char **' to build an argv array.
20740         (mapfile, libselect, libcompare, locatelib): Add prototypes.
20741
20742         * collect2.h (collect_execute, collect_wait, dump_file,
20743         file_exists): Constify a char*.
20744         (ldout, c_file_name, temporary_obstack, permanent_obstack,
20745         temporary_firstobj, vflag, debug): Add extern declarations.
20746         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
20747
20748         * tlink.c: Don't include toplev.h.
20749         (vflag, debug, ldout, c_file_name, temporary_obstack,
20750         permanent_obstack, temporary_firstobj): Don't declare.
20751         (tlink_execute, frob_extension, symbol_hash_lookup,
20752         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
20753         recompile_files, read_repo_files, demangle_new_symbols,
20754         scan_linker_output): Constify a char*.
20755         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
20756         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
20757
20758 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
20759
20760         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
20761         (relative) rather than jsr (absolute) subroutine call insns.
20762         * config/m68k/m68k-coff.h: Ditto.
20763
20764 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
20765
20766         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
20767         now rework these too.
20768         (arm_reorg): If an insn can't reach the end of the current pool,
20769         ensure that we emit that pool before the insn.
20770
20771 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
20772
20773         * tlink.c (scan_linker_output): Skip the initial underscore in
20774         a mangled name if appropriate.
20775
20776 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20777
20778         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
20779         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
20780         error_with_ivar, gen_declarator, create_builtin_decl,
20781         my_build_string, generate_descriptor_table, generate_ivars_list,
20782         generate_dispatch_table, check_protocols, TAG_GETCLASS,
20783         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
20784         dump_base_name, lang_decode_option, build_encode_expr,
20785         start_class, finish_class, encode_pointer, really_start_method,
20786         gen_declaration, dump_interface, handle_class_ref, handle_impent):
20787         Constify.
20788         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
20789         Add static prototypes.
20790         (build_objc_string_decl, build_selector_reference_decl,
20791         encode_bitfield, build_class_reference_decl): Remove unused
20792         parameter, all callers changed.
20793         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
20794         (objc_printable_name): Likewise.  Change second parameter to type int.
20795         (init_objc): Use memcpy, not bcopy, to avoid casts.
20796
20797 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
20798
20799         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
20800         reg notes on a deleted insn.
20801         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
20802
20803 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
20804
20805         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
20806
20807 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20808
20809         * stmt.c (expand_asm_operands): Fix index into inout_mode when
20810         reading it.
20811
20812 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
20813
20814         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
20815         * tm.texi (MD_ASM_CLOBBERS): Document it.
20816
20817 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
20818
20819         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
20820         * except.c (expand_rethrow): Remove unused variable.
20821         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
20822         * flow.c (replace_insns): Likewise.
20823         (create_edge_list, verify_edge_list): Likewise.
20824         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
20825
20826         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
20827         is special code to run.
20828         (main): Don't define operands to emit_operand.
20829         * genrecog.c (main): Don't emit an empty peephole2_insn function.
20830
20831         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
20832
20833         * alpha/alpha.h (normal_memory_operand): Declare.
20834         (reg_no_subreg_operand): Declare.
20835         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
20836
20837 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
20838
20839         * c-parse.in (compstmt_primary_start): New, broken out of first
20840         part of compstmt handling in primary.
20841         (primary): Use it.  Add an error clause.
20842         (compstmt_nostart): Renamed from compstmt; remove all
20843         initial invocations of compstmt_start.
20844         (compstmt): New.
20845
20846 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
20847
20848         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
20849         needed.
20850
20851 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
20852
20853         * combine.c (simplify_shift_const): Remove extra semicolon.
20854         * dwarf2out.c (remove_AT): Likewise.
20855         * expmed.c (expand_mult): Likewise.
20856         * gcov.c (create_program_flow_graph): Likewise.
20857         * reorg.c (mostly_true_jump): Likewise.
20858
20859 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
20860
20861         * fold-const.c (fold_range_test): Do not try to fold the range
20862         test if the rhs or lhs has side effects.
20863
20864         * combine.c (simplify_rtx): Recognize another case of a synthesized
20865         sign extension.
20866
20867         * varasm.c (mark_constant_pool): When marking indirect references,
20868         only look at SYMBOL_REFs.
20869
20870         * except.c (expand_fixup_region_end): Do not peek at
20871         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
20872
20873 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
20874
20875         * flags.h: New variables align_loops, align_loops_log,
20876         align_jumps, align_jumps_log, align_labels, align_labels_log,
20877         align_functions, align_functions_log.
20878         * toplev.c: Define them.
20879         (f_options): Handle -falign-* when they have no argument.
20880         (main): Add logic to set variables for -falign-functions,
20881         -falign-jumps, -falign-labels, -falign-loops.
20882         Make it -fsched-verbose=<n> and -finline-limit=<n>.
20883         (display_help): Change help to match options.
20884         * final.c (LABEL_ALIGN): Default to align_labels_log.
20885         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
20886         (LOOP_ALIGN): Default to align_loops_log.
20887         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
20888         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
20889         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
20890         * varasm.c (assemble_start_function): Handle align_functions.
20891
20892         * config/sparc/sparc.h: Don't declare sparc_align_*.
20893         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
20894         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
20895         sparc.c.
20896         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
20897         it's a promise.
20898         * config/sparc/sparc.c: Delete sparc_align_loops,
20899         sparc_align_jumps, sparc_align_funcs and the corresponding string
20900         variables.
20901         (sparc_override_options): Default align_functions on ultrasparc.
20902         Delete -malign-* handling.
20903
20904         * config/mips/mips.c (override_options):  On 64-bit targets,
20905         try to align code to 64-bit boundaries.
20906         (print_operand): New substitution, %~,
20907         which aligns labels to align_labels_log.
20908         * config/mips/mips.md (div_trap_normal): Use %~.
20909         (div_trap_mips16): Likewise.
20910         (abssi): Likewise.
20911         (absdi2): Likewise.
20912         (ffssi2): Likewise.
20913         (ffsdi2): Likewise.
20914         (ashldi3_internal): Likewise.
20915         (ashrdi3_internal): Likewise.
20916         (lshrdi3_internal): Likewise.
20917         (casesi_internal): Likewise.
20918
20919 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
20920
20921         Merge new ia32 backend from the branch!
20922
20923         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
20924         See ChangeLog.P2 on new_ia32_branch for details.
20925
20926         * rtl.h (stack_regs_mentioned_p): Delete prototype.
20927         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
20928         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
20929         * i386/gas.h (ASM_FILE_START): Define.
20930         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
20931         for name change of ix86_valid_decl_attribute_p.
20932         (i386_pe_valid_type_attribute_p): Similarly.
20933
20934 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
20935
20936         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
20937         to step through CC modes.
20938
20939 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20940
20941         * regmove.c (fixup_match_1): Don't move INSN in front of P if
20942         it would end up in the shadow of a live flags regsiter.
20943
20944 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20945
20946         * reload1.c: Fix many indentation problems.
20947         * reload.c: Likewise.
20948
20949 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
20950
20951         * alias.c (non_local_reference_p): Constify fmt.
20952
20953 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
20954
20955         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
20956
20957 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
20958
20959         * cse.c (delete_trivially_dead_insns): Do not delete stores to
20960         the internal_arg_pointer.
20961
20962 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
20963
20964         Merge peephole2 from new_ia32_branch:
20965         * Makefile.in (STAGESTUFF): Add *.peephole2.
20966         (mostlyclean): Likewise.
20967         (recog.o): Depend on resource.h.
20968
20969         * final.c (peephole): Conditionalize decl on HAVE_peephole.
20970         (final_scan_insn): Likewise for the invocation of peephole.
20971         * genconfig.c (main): Look for peephole and peephole2 patterns.
20972         Emit HAVE_peephole* accordingly.
20973         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
20974         * flags.h (flag_peephole2): Declare.
20975         * toplev.c: New pass peephole2.  New flag -fpeephole2.
20976
20977         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
20978         * gencodes.c (main): Likewise.
20979         * genextract.c (main): Likewise.
20980         * genoutput.c (main): Likewise.
20981         * genemit.c (max_operand_1): Look for the max scratch operand.
20982         (gen_rtx_scratch): New.
20983         (gen_exp): Use it, and pass on new arg subroutine_type.
20984         (gen_expand): Take max scratch into account.
20985         (gen_split): Emit peephole2 functions.
20986         (output_peephole2_scratch): New.
20987         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
20988         * genrecog.c (routine_type): Add PEEPHOLE2.
20989         (IS_SPLIT): New.
20990         (make_insn_sequence): Match outer parallel for peep2.  Discard
20991         top level scratches and dups.
20992         (add_to_sequence): New args insn_type and top.  Update all callers.
20993         Handle toplevel peep2 matching insns.
20994         (write_subroutine): Handle peep2.
20995         (write_tree_1): Likewise.
20996         (write_tree): Likewise.
20997         (main): Likewise.
20998         (change_state): New arg afterward.  Update all callers.
20999         Handle matching separate insns.
21000         * recog.c (recog_next_insn): New.
21001         (peephole2_optimize): New.
21002         * rtl.def (DEFINE_PEEPHOLE2): New.
21003         * resource.c (find_free_register): New argument last_insn.  Use it
21004         to find a register available through the entire span.
21005         * resource.h (find_free_register): Update prototype.
21006
21007 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
21008
21009         * i386.c (output_strlen_unroll): Don't write xops[7]
21010         label if it wasn't set.
21011
21012 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
21013
21014         * cpplib.c (struct directive): Const-ify name pointer and
21015         function pointer prototype.
21016         (validate_else, do_define, do_line, do_include, do_undef,
21017         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
21018         do_elif, do_endif, do_sccs, do_assert, do_unassert,
21019         do_warning): Const-ify second arg.
21020         (directive_table): Mark const.  Reorder entries by frequency
21021         of usage, record statistics.
21022
21023 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
21024
21025         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
21026         bounds- check RTL accesses if --enable-checking.
21027         (RTVEC_ELT): Bounds check if --enable-checking.
21028         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
21029         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
21030         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
21031         GET_NUM_ELEM.
21032         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
21033         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
21034
21035         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
21036         (NOTE_SOURCE_FILE): Use X0STR.
21037         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
21038         MEM_ALIAS_SET): Use X0INT.
21039         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
21040         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
21041         Use X0EXP.
21042         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
21043         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
21044         (rtl_check_failed_bounds, rtl_check_failed_type1,
21045         rtl_check_failed_type2, rtvec_check_failed_bounds): New
21046         functions.
21047         (fancy_abort): Fix comment.
21048
21049         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
21050         (cse_insn): Decrement LABEL_NUSES for jump target before
21051         deleting jump insn.
21052         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
21053         * final.c (alter_subreg): Compute regno before changing x to
21054         REG; set REGNO(x) after changing it.
21055         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
21056         notes containing CONST_INTs.
21057         (delete_eh_regions): Use NOTE_EH_HANDLER.
21058         * function.c (put_reg_into_stack): Make reg a MEM before
21059         initializing it.
21060         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
21061         delete insn.
21062         (gen_mem_addressof): Make reg a MEM before initializing it.
21063         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
21064         X0WINT.
21065         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
21066         deleting an insn, not after.
21067         (block_alloc): Only look at PATTERN(insn) if we have to, and
21068         only if it's format class 'i'.
21069         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
21070         CONST_INT before using its INTVAL.
21071         * print-rtl.c (print_rtx): Use X0STR.
21072         * regmove.c (fixup_match_1): Don't look at PATTERN of
21073         non-class-'i' insn chain elements.
21074         * reload.c (loc_mentioned_in_p): Take address of
21075         in->fld[1].rtx directly.
21076         * reload1.c (reload): Change reg to a MEM before initializing
21077         it.
21078         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
21079         have no names.
21080         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
21081
21082 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
21083
21084         * config/mips/mips.c (machine_dependent_reorg): Force a
21085         barrier to output the local constant pool if a barrier hasn't
21086         been found at a natural point in the instruction stream.
21087
21088 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21089
21090         * c-parse.in (language_string): Constify.
21091
21092         * dwarf2out.c (language_string): Remove declaration.
21093
21094         * dwarfout.c (language_string): Likewise.
21095
21096         * toplev.c (language_string, init_parse, finish_parse): Likewise.
21097
21098         * tree.h (language_string, init_parse, finish_parse): Declare.
21099
21100         * i386/sun386.h (language_string): Remove declaration.
21101
21102         * mips.h (language_string): Likewise.
21103
21104         * nextstep.h (language_string): Likewise.
21105
21106         * nextstep21.h (language_string): Likewise.
21107
21108         * rs6000.c (language_string): Likewise.
21109
21110 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21111
21112         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
21113         (getpwd.o): Remove target.
21114
21115         * getpwd.c: Delete file.  Its in libiberty now.
21116
21117         * dbxout.c (getpwd): Don't prototype.
21118         * dwarf2out.c (getpwd): Likewise
21119         * dwarfout.c (getpwd): Likewise
21120         * final.c (getpwd): Likewise.
21121         * protoize.c (getpwd): Likewise.
21122
21123 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21124
21125         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
21126
21127 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
21128
21129         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
21130         mark_set_resources.
21131
21132 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
21133
21134         * fixinc/Makefile.in (subdir): New.
21135         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
21136         (Makefile): New.
21137
21138 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
21139
21140         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
21141         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
21142         be shared.
21143
21144         * invoke.texi: Fix typo.
21145
21146         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
21147         changed.  Handle autoincrement addressing modes.
21148
21149         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
21150         just like we would the virtual incoming args register when
21151         integrating.
21152
21153 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
21154
21155         * rs6000.h (ASM_FILE_START): Specify complete filename, including
21156         path, in .file directive.
21157
21158 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
21159
21160         * gcc.texi (External Bugs): Remove obsolete note about Perl on
21161         SunOS.
21162
21163 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
21164
21165         * stdbool.h: Make the typedef name _Bool, with bool a #defined
21166         alias.
21167
21168 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21169
21170         * tree.c (tree_code_name): Constify a char*.
21171
21172         * tree.h (tree_code_name, decl_printable_name): Likewise.
21173
21174         * function.h (struct function): Likewise.
21175
21176         * toplev.c (decl_name, decl_printable_name): Likewise.
21177
21178         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
21179
21180         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
21181         (init_objc): Remove function pointer cast.
21182
21183 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
21184
21185         * pa.md (interspace_jump): New pattern.
21186         (builtin_longjmp): New expander.
21187
21188 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
21189
21190         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
21191         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
21192         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
21193
21194 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
21195
21196         * jump.c (delete_prior_computation): Also check calls
21197         to constant functions.  Don't bother checking for a
21198         REG_UNUSED note before adding it.
21199         (delete_computation): Handle multi-word hard registers
21200         when synthesizing missing REG_DEAD notes for a register
21201         which is both set and used by an insn.
21202
21203 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21204
21205         * loop.c (this_loop_info): New variable.
21206         (loop_has_call, loop_has_volatile, loop_has_tablejump,
21207         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
21208         All uses updated.
21209         (prescan_loop, strength_reduce): New argument loop_info.  All callers
21210         updated.
21211         (scan_loop): New variable loop_info, initialise to address of
21212         this_loop_info.
21213         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
21214         Delete variable loop_has_multiple_exit targets and replace with
21215         field in this_loop_info.
21216         (find_and_verify_loops): Rename this_loop to this_loop_num.
21217         (strength_reduce): Delete loop_iteration_info.  Replace variable
21218         loop_info with function argument of same name.
21219         (insert_bct): Rework test for loop being completely unrolled.
21220
21221         * loop.h (struct loop_info): New fields num, loops_enclosed,
21222         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
21223         has_indirect_jump, and cont.  Redefine use of unroll_number.
21224         (loop_unroll_number): Delete.
21225
21226         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
21227         field of loop_info.
21228         (loop_iterations): Delete variable vtop and instead use
21229         loop_info->vtop computed in prescan_loop.
21230
21231 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
21232
21233         * fix-header.c (main): Do not pass a null pointer to strcmp.
21234
21235 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
21236
21237         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
21238         filenames.
21239         * configure: Rebuilt.
21240
21241 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
21242
21243         * jump.c (jump_optimize_1): Do not delete assignments to
21244         internal_arg_pointer.
21245         * cse.c (delete_trivially_dead_insns): Always consider a set of
21246         the internal_arg_pointer live.
21247
21248 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
21249
21250         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
21251         (update_life_info) [REG_WAS_0]: Search the original insns rather
21252         than the new insns for the note.  Fix typos finding note_dest.
21253         If no dest found, discard the note rather than abort.
21254         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
21255         (replace_insns): Remove the old insn list after update_life_info
21256         not before.
21257
21258 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
21259
21260         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
21261         sched_analyze_insn.
21262         (sched_analyze_1): Let add_dependence care for not adding dups.
21263         (sched_analyze_2): Likewise.
21264         (add_branch_dependences): Likewise.
21265
21266 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21267
21268         * i386/winnt.c (export_list): New type.
21269         (exports_head): Rename to
21270         (export_head):  this.
21271         (i386_pe_record_exported_symbol): Add is_data flag.
21272         (i386_pe_asm_file_end): Emit directive for exported variables.
21273         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
21274         prototype.
21275         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
21276         (ASM_DECLARE_OBJECT_NAME): Likewise.
21277         (ASM_DECLARE_FUNCTION_NAME): Likewise.
21278         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
21279
21280 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
21281
21282         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
21283
21284         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
21285         operand.
21286
21287 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
21288
21289         * config/openbsd.h: Define SET_ASM_OP.
21290         * tm.texi: cross-reference SET_ASM_OP in the index.
21291
21292 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
21293
21294         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
21295         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
21296         and class_narrowest_mode at compile time.  Kill init_rtl.
21297         Mark rtx_length, mode_class, mode_size, mode_unit_size,
21298         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
21299         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
21300         EXTRA_CC_NAMES.
21301         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
21302         format.
21303         * rtl.h: Declare rtx_length and rtx_format as const.
21304         * machmode.def: Define CC().  Use CC() to define CCmode.  If
21305         EXTRA_CC_MODES is defined, expand it here.
21306         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
21307         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
21308         const.  Kill all references to EXTRA_CC_MODES.
21309
21310         * toplev.c: Don't prototype or call init_rtl.
21311         * optabs.c: Don't call init_mov_optab.
21312         * genemit.c: Don't generate init_mov_optab.  Don't call
21313         init_rtl.
21314         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
21315         here.
21316         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
21317         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
21318         genrecog.c: Don't call init_rtl.
21319
21320         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
21321         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
21322         definition of EXTRA_CC_MODES.
21323
21324         * md.texi: Kill ref to EXTRA_CC_NAMES.
21325         * tm.texi: Document new way to define EXTRA_CC_MODES.
21326
21327         * genrecog.c: Do not look up the name of a define_split.
21328         (Unrelated bugfix.)
21329
21330 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
21331
21332         * config/v850/v850.md: Fix typo introduced by previous delta.
21333
21334 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21335
21336         * gcc.c (fatal): Make definition static to match prototype.
21337
21338 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21339
21340         * combine.c (get_last_value): Don't look for earlier sets if the last
21341         known set is somewhere in between the insns being combined.
21342
21343 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
21344
21345         * configure.in: Don't use shell ! to negate exit codes
21346         * configure: Regenerate
21347
21348 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
21349
21350         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
21351         the fact that ALIGN is measured in bits, not bytes.
21352
21353 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
21354
21355         * errors.c: New file; defines functions error, warning, and
21356         fatal, variables have_error and progname.
21357         * errors.h: New file; prototypes and decls for stuff in errors.c.
21358
21359         * Makefile: Add rules to build errors.o and
21360         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
21361         genopinit, genrecog, genextract, genpeep, genattr, and
21362         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
21363         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
21364         genpeep.o, genattr.o, and genoutput.o.
21365
21366         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
21367         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
21368         define or prototype fatal.  Set progname at beginning of main.
21369         * genoutput.c:  Likewise, and don't define or prototype error
21370         either.
21371
21372         * c-typeck.c (c_expand_start_case): Return immediately if exp
21373         is an ERROR_MARK.
21374         * fold-const.c (operand_equal_p): Return immediately if arg1
21375         or arg0 are ERROR_MARKs.
21376         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
21377         fields of type ERROR_MARK when calculating if the record can
21378         go in a register.
21379
21380 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
21381         with much help from Jeffrey A Law and Richard Henderson
21382
21383         * i386.md: In the 6 insns which call output_fix_trunc,
21384         earlyclobber operands[0].
21385
21386 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
21387
21388         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
21389         creating new registers.
21390
21391 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
21392
21393         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
21394         i386_reg_alloc_order, i386_regparm_string,
21395         i386_align_loops_string, i386_align_jumps_string,
21396         i386_align_funcs_string, i386_preferred_stack_boundary_string,
21397         and i386_branch_cost_string as type "const char *".
21398         * i386.c: Define all above strings as type "const char *".
21399
21400 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
21401
21402         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
21403         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
21404
21405 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
21406
21407         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
21408         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
21409
21410 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
21411
21412         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
21413         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
21414         (dwarf2out_line, dwarf2out_finish): Likewise.
21415         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
21416
21417 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21418
21419         * tree.c (lang_unsave_expr_now) : Correct return type.
21420         * tree.h (lang_unsave_expr_now) : Same.
21421
21422 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
21423
21424         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
21425         instead of duplicating code.
21426
21427 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21428
21429         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
21430
21431 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
21432
21433         * tree.h: fancy_abort always takes three args.
21434         * resource.c: Move include of system.h before toplev.h.
21435
21436 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
21437
21438         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
21439         as SYMBOL_REFs.
21440
21441 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
21442
21443         * system.h: Don't redefine abort or trim_filename.
21444         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
21445         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
21446         whether or not __FUNCTION__ is available.
21447         * tree.h: Duplicate rtl.h's definition of abort, for files
21448         that don't include rtl.h.  Delete all code to perform type
21449         checking with a compiler other than GCC.
21450         * varray.h: Delete all code to perform type checking with a
21451         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
21452         its arguments exactly once, using a statement expression.
21453         Adjust the VARRAY_<type> accessor macros to match.
21454         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
21455         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
21456         caller's location.  Define fatal_insn and fatal_insn_not_found
21457         as macros that use _fatal_insn and _fatal_insn_not_found.
21458         (fancy_abort, trim_filename): Kill prototypes.
21459
21460         * rtl.c (trim_filename): Move here from toplev.c.
21461         (fancy_abort): New function.
21462         (DIR_SEPARATOR): Provide default definition.
21463         * tree.c (tree_check_failed, tree_class_check_failed): Go
21464         through fancy_abort.
21465         (tree_check, tree_class_check, cst_or_constructor_check,
21466         expr_check): Delete.
21467         * varray.c (varray_check_failed): New function.
21468         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
21469         _fatal_insn and _fatal_insn_not_found.  Go through
21470         fancy_abort.
21471         (trim_filename, fancy_abort): Delete.
21472
21473         * builtins.c (expand_builtin_args_info): Report ICE with abort.
21474         * except.c (start_catch_handler): Report ICE with error/abort
21475         combo.
21476         * final.c (output_operand_lossage): Likewise.
21477         * flow.c (verify_flow_info): Likewise.
21478
21479         * gcc.c: Prototype fatal.
21480         * gengenrtl.c: Undef abort after including rtl.h not system.h.
21481         * genattr.c, genattrtab.c, genemit.c, genextract.c,
21482         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
21483         Don't define fancy_abort.
21484
21485 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
21486
21487         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
21488         canonization.
21489
21490 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
21491
21492         * m88k.h (VERSION_INFO2): Kill.
21493         (VERSION_STRING): Kill.
21494         (TM_RCS_ID): Kill.
21495         (VERSION_INFO1): Tidy.
21496         (TARGET_VERSION): Update.
21497         * m88k/dgux.h (VERSION_INFO2): Kill.
21498         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
21499         * m88k/luna.h (VERSION_INFO1): Tidy.
21500         * m88k/sysv4.h (VERSION_INFO1): Likewise.
21501         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
21502         (output_file_start): Adjust for death of VERSION_STRING.
21503
21504 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
21505
21506         * cpplib.c (detect_if_not_defined): New function.
21507         (do_if): Use it to detect potential once-only headers.
21508
21509 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
21510
21511         * c-common.c (combine_strings): Always set TREE_CONSTANT.
21512
21513 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21514
21515         * combine.c (nonzero_bits) : Allow single-ly set registers to be
21516         anywere in the function only if they are pseudos and set before
21517         being used (not live at the start of the function).
21518         (num_sign_bit_copies) : Same.
21519         (get_last_value_validate) : Same.
21520         (get_last_value) : Same.
21521
21522 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
21523
21524         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
21525         where N and M are constant and N is an integer multiple of M.
21526
21527 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21528
21529         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
21530         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
21531         sbitmap_union_of_preds): Add prototypes.
21532         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
21533         the intersection of successors with the new flow graph structures.
21534         (sbitmap_intersection_of_preds): New function to compute the
21535         intersection of predecessors with the new flow graph structures.
21536         (sbitmap_union_of_succs): New function to compute the union of
21537         successors with the new flow graph structures.
21538         (sbitmap_union_of_preds): New function to compute the union of
21539         predecessors with the new flow graph structures.
21540         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
21541         (expr_reaches_here_p): Use edge and basic_block structures instead
21542         of s_preds and s_succs.
21543         (compute_cprop_avinout): Use new sbitmap routines.
21544         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
21545         of s_preds and s_succs.
21546         * flow.c (compute_flow_dominators): Compute dominators using
21547         edges and basic blocks instead of s_preds and s_succs.
21548
21549 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21550
21551         * lists.c (unused_insn_list, unused_expr_list): New file for
21552         maintaining various types of lists. New statics for maintaining a
21553         cache of available INSN_LIST and EXPR_LIST nodes.
21554         (free_list): Static function for freeing a list of INSN/EXPR nodes.
21555         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
21556         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
21557         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
21558         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
21559         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
21560         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
21561         (free_INSN_LIST_node): Free an individual INSN_LIST node.
21562         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
21563         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
21564         (remove_dependence, free_pending_lists): Use new global routines.
21565         (flush_pending_lists, sched_analyze_insn): Use new global routines.
21566         (sched_analyze, compute_block_backward_dependences): Use new routines.
21567         (sched_analyze_1, sched_analyze_2): Use new routines.
21568         (schedule_insns): Use new global routines.
21569         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
21570         prototypes.
21571         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
21572         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
21573         prototypes.
21574         * toplev.c (rest_of_compilation): Initialize node cache.
21575         * Makefile.in (OBJS): Add lists.o to list of object files.
21576         (lists.o): Add dependancies.
21577
21578 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
21579
21580         * config/v850/v850.md: Fix compile time warning messages.
21581         * config/v850/v850.c: Fix compile time warning messages.
21582         * config/v850/v850.h: Fix compile time warning messages.
21583
21584 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21585
21586         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
21587         Remove unused prototype for `init_lengths'.
21588
21589 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21590
21591         * calls.c (emit_call_1): Mark parameter `stack_size' with
21592         ATTRIBUTE_UNUSED.
21593         (expand_call): Initialize variable `insn'.
21594         (emit_library_call): Likewise for variable `high_to_save'.
21595         (emit_library_call_value): Likewise.
21596         (store_one_arg): Likewise for variables `lower_bound' and
21597         `upper_bound'.
21598
21599         * combine.c (try_combine): Likewise for variables `i2_code_number'
21600         and `other_code_number'.
21601         (find_split_point): Likewise for variables `pos', `unsignedp' and
21602         `inner'.
21603         (simplify_if_then_else): Likewise for variables `op' and `c1'.
21604         (simplify_and_const_int): Remove unused variable `width'.
21605         (merge_outer_ops): Likewise.
21606
21607         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
21608         HOST_WIDE_INT' when comparing against one.
21609         (simplify_relational_operation): Likewise.
21610         (cse_insn): Initialize variables `src_eqv_volatile',
21611         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
21612
21613         * final.c (init_final): Constify parameter `filename'.
21614         (final_start_function): Mark parameter `optimize' with
21615         ATTRIBUTE_UNUSED.
21616         (profile_function): Likewise for parameters `first' and `optimize'.
21617         (output_source_line): Likewise for parameter `file'.
21618
21619         * integrate.c (subst_constants): Cast a value to `size_t' when
21620         comparing against one.
21621         (mark_stores): Initialize variable `mode'.  Cast a value to
21622         `size_t' when comparing against one.
21623
21624         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
21625
21626         * loop.c (move_movables): Initialize variable `first'.
21627         (strength_reduce): Likewise for variable `increment'.
21628         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
21629         value to `size_t' when comparing against one.
21630         (load_mems): Initialize variable `end_label'.
21631
21632         * output.h (init_final): Constify parameter.
21633
21634         * reload.c (decompose): Initialize variable `base'.
21635
21636         * reload1.c (reload): Likewise for variable `is_scalar'.
21637         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
21638         (choose_reload_regs): Initialize variable `mode'.
21639         (emit_reload_insns): Likewise for variable `store_insn'.
21640         (reload_cse_noop_set_p): Mark parameter `insn' with
21641         ATTRIBUTE_UNUSED.
21642         (reload_combine): Initialize variable `set'.
21643
21644         * unroll.c (unroll_loop): Likewise for variable `local_label'.
21645         (copy_loop_body): Cast a value to `size_t' when comparing against
21646         one.
21647
21648         * varasm.c (assemble_variable): Initialize variable `size_tree'.
21649         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
21650         (remove_from_pending_weak_list): Mark parameter `name' with
21651         ATTRIBUTE_UNUSED.
21652
21653 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21654
21655         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
21656         gcse dump file.
21657
21658 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
21659
21660         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
21661         (ASM_DECLARE_FUNCTION_NAME): Define.
21662         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
21663         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
21664         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
21665         not already defined.
21666
21667 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21668
21669         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
21670         of n_popped when call/call_value are not defined.
21671
21672 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
21673
21674         * tm.texi: GNU CC -> GCC conversion.
21675         (CC1_SPEC): Indicate it is used for all language front ends.
21676
21677 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
21678
21679         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
21680         NOTE_INSN_EH_REGION_END correctly.
21681
21682 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
21683                           Jeff Law <law@cygnus.com>
21684
21685         * loop.c (strength_reduce): Automatically unroll loops if the
21686         unrolled loop size is smaller than the rolled loop size.
21687
21688         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
21689         and delete comment that code should be rewritten.
21690
21691 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
21692
21693         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
21694         as reachable.
21695
21696         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
21697
21698 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21699
21700         * fixinc/mkfixinc.sh: Don't fix uwin headers.
21701         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
21702         (LINK_SPEC): Add -u _main when building executables.
21703         (ASM_DECLARE_FUNCTION): Update from Cygwin.
21704         (ASM_FILE_END): Use the default for ix86-pe.
21705         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
21706
21707 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
21708
21709         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
21710         and ASM_CLOSE_PAREN are empty strings.
21711
21712 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
21713                           Geoffrey Keating <geoffk@cygnus.com>
21714
21715         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
21716         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
21717         (unprotoize.o): Ditto.
21718         (test-protoize-simple): Don't define STD_PROTO_DIR.
21719         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
21720         changes to make 'test-protoize-simple' pass.
21721         (STD_PROTO_DIR): Remove define.
21722         (STANDARD_EXEC_PREFIX): Supply default define.
21723         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
21724         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
21725         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
21726         (GET_ENV_PATH_LIST): New macro.
21727         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
21728         (do_processing): Initialize default_syscalls_dir using new
21729         macros.  Use it to initialize syscalls_absolute_filename.
21730
21731 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
21732
21733         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
21734         B into a register before emit_conditional_move.
21735
21736 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
21737
21738         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
21739         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
21740         multiplicand out of (+ (* a b) (* c d)).
21741
21742 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
21743                           Richard Henderson  <rth@cygnus.com>
21744
21745         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
21746         (new_insn_dead_notes): Likewise.
21747         (update_n_sets): Likewise.
21748         (update_flow_info): Move to flow.c, renamed to update_life_info;
21749         extend to handle multiple source insns.
21750         * flow.c: Include resource.h
21751         (unlink_insn_chain): New.
21752         (split_hard_reg_notes): New.
21753         (maybe_add_dead_note): New.
21754         (maybe_add_dead_note_use): New.
21755         (find_insn_with_note): New.
21756         (new_insn_dead_notes): New.
21757         (update_n_sets): New.
21758         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
21759         (maybe_remove_dead_notes): New.
21760         (update_life_info): New.
21761         (prepend_reg_notes): New.
21762         (replace_insns): New.
21763         * output.h (update_life_info): Declare.
21764         * recog.c (split_block_insns): Use update_life_info.
21765         * resource.c (find_free_register): Use reg_alloc_order, don't use
21766         fixed regs, make sure the mode is supported, don't use new regs.
21767         (reg_dead_p): New.
21768         * rtl.h (replace_insns): Declare.
21769
21770 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
21771
21772         * expr.c (expand_expr): Cope with COND_EXPRs with one
21773         non-returning branch.
21774
21775 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
21776
21777         * expr.c (store_expr): Always pass down the target, even when not
21778         doing CSE.
21779
21780 1999-08-24  Nick Clifton  <nickc@cygnus.com>
21781
21782         * configure.in: Define target_cpu_default for v850 targets.
21783         * configure: Regenerate
21784
21785         * config/v850/v850.h (TARGET_CPU_generic): Define.
21786         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
21787         addresses are 4 byte aligned.
21788
21789         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
21790         addresses.
21791
21792 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21793
21794         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
21795         (main): Add prototypes.
21796
21797         * genattrtab.c (substitute_address, write_const_num_delay_slots,
21798         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
21799         (write_attr_get): Emit prototypes along with function definition.
21800         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
21801         (write_complex_function): Emit static prototype along with
21802         function definition.
21803
21804         * genemit.c (gen_split): Emit prototypes along with function
21805         definition.
21806
21807         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
21808         Likewise for predicates and `insn_operand_predicate'.
21809         (process_template): Emit static prototype along with function
21810         definition.
21811
21812         * genrecog.c (make_insn_sequence): Constify a char*.  Add
21813         prototypes for get_split_*().
21814         (write_subroutine): Emit prototypes along with function
21815         definition.
21816
21817 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21818
21819         * gcse.c (find_avail_set): Follow chains of register-register copies.
21820         Use oprs_not_set_p to guarantee that the returned value can be
21821         substituted.
21822         (cprop_insn): Don't verify the return value of find_avail_set with
21823         oprs_not_set_p.
21824
21825         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
21826         (cprop_cc0_jump): New function.
21827         (cprop_insn): Break out new function cprop_jump and use it.
21828         Also use cprop_cc0_jump for machines with CC0.
21829         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
21830
21831         * tree.h (current_function_calls_setjmp,
21832         current_function_calls_longjmp): Delete declarations.
21833         * dsp16xx.c: Include "function.h".
21834         * elxsi.c: Likewise.
21835         * gmicro.c: Likewise.
21836         * h8300.c: Likewise.
21837         * i370.c: Likewise.
21838         * m32r.c: Likewise.
21839         * mn10200.c: Likewise.
21840         * mn10300.c: Likewise.
21841         * ns32k.c: Likewise.
21842         * spur.c: Likewise.
21843         * v850.c: Likewise.
21844
21845         * rtl.h (rtx_equal_function_value_matters): Declare.
21846         * toplev.c (rtx_equal_function_value_matters): Don't declare.
21847         * cse.c: Likewise.
21848         * function.c: Likewise.
21849         * emit-rtl.c: Likewise.
21850
21851 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
21852
21853         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
21854         call.
21855
21856 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
21857
21858         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
21859         exactly.
21860
21861 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
21862
21863         * cpp.texi: Add a node documenting macro varargs (copied
21864         from extend.texi).
21865
21866 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
21867
21868         * cppspec.c: Put a null pointer at the end of the new argv.
21869
21870 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
21871
21872         * configure.in: Remove code to select/de-select the haifa
21873         scheduler.  Every scheduled port gets haifa now.
21874         * configure: Rebuilt.
21875         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
21876         * sched.c Deleted.
21877         * Makefile.in: Corresponding changes.
21878
21879 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21880
21881         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
21882         All callers changed.
21883         (prepare_float_lib_cmp): Likewise.
21884         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
21885         * expr.h (emit_float_lib_cmp): Delete declaration.
21886         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
21887         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
21888         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
21889         specially.
21890         (cmptf): Now conditional on TARGET_HARD_QUAD.
21891
21892 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
21893
21894         * resource.c (mark_target_live_regs): Use
21895         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
21896
21897 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21898
21899         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
21900
21901         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
21902
21903         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
21904
21905 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21906
21907         * rtl.h (rtx_format): Constify a char*.
21908
21909         * rtl.c (rtx_format): Likewise.
21910         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
21911         (init_rtl): Use accessor macro, not `rtx_format'.
21912
21913         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
21914         char*.
21915
21916         * caller-save.c (mark_referenced_regs): Likewise.
21917
21918         * combine.c (subst, make_compound_operation, known_cond,
21919         gen_rtx_combine, update_table_tick, get_last_value_validate,
21920         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
21921
21922         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
21923         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
21924         count_reg_usage): Likewise.
21925
21926         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
21927         Likewise.
21928
21929         * final.c (leaf_renumber_regs_insn): Likewise.
21930
21931         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
21932         dump_edge_info, count_reg_references): Likewise.
21933
21934         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
21935         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
21936         Likewise.
21937
21938         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
21939         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
21940         add_label_notes): Likewise.
21941
21942         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
21943         clear_struct_flag, count_sub_rtxs, count_alternatives,
21944         compares_alternatives_p, contained_in_p, walk_attr_value,
21945         write_expr_attr_cache): Likewise.
21946
21947         * genconfig.c (walk_insn_part): Likewise.
21948
21949         * genemit.c (max_operand_1, gen_exp): Likewise.
21950
21951         * genextract.c (walk_rtx): Likewise.
21952
21953         * genflags.c (num_operands): Likewise.
21954
21955         * genoutput.c (scan_operands): Likewise.
21956
21957         * genpeep.c (match_rtx): Likewise.
21958
21959         * genrecog.c (add_to_sequence): Likewise.
21960
21961         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
21962         Likewise.
21963
21964         * integrate.c (save_constants, copy_for_inline,
21965         copy_rtx_and_substitute, subst_constants, restore_constants):
21966         Likewise.
21967
21968         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
21969         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
21970
21971         * local-alloc.c (contains_replace_regs, memref_referenced_p):
21972         Likewise.
21973
21974         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
21975         add_label_notes, replace_call_address, count_nonfixed_reads,
21976         invariant_p, find_single_use_in_loop, find_mem_givs,
21977         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
21978         Likewise.
21979
21980         * print-rtl.c (reg_names, print_rtx): Likewise.
21981
21982         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
21983
21984         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
21985         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
21986         print_blocks): Likewise.
21987
21988         * regclass.c (fix_register, record_address_regs,
21989         reg_scan_mark_refs): Likewise.
21990
21991         * regmove.c (stable_but_for_p): Likewise.
21992
21993         * reload.c (loc_mentioned_in_p, operands_match_p,
21994         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
21995         copy_replacements, refers_to_regno_for_reload_p,
21996         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
21997         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
21998         Likewise.
21999
22000         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
22001         delete_address_reloads_1, count_occurrences,
22002         reload_cse_mem_conflict_p, reload_combine_note_use,
22003         add_auto_inc_notes): Likewise.
22004
22005         * resource.c (mark_referenced_resources, mark_set_resources):
22006         Likewise.
22007
22008         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
22009         reg_mentioned_p, regs_set_between_p, modified_between_p,
22010         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
22011         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
22012         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
22013         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
22014
22015         * sched.c (sched_analyze_2, attach_deaths): Likewise.
22016
22017         * stupid.c (stupid_mark_refs): Likewise.
22018
22019         * unroll.c (remap_split_bivs): Likewise.
22020
22021         * varasm.c (mark_constants): Likewise.
22022
22023         * a29k/a29k.c (uses_local_reg_p): Likewise.
22024
22025         * alpha/alpha.c (summarize_insn): Likewise.
22026
22027         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
22028         eliminate_lr2ip): Likewise.
22029
22030         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
22031
22032         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
22033         reg_mentioned_in_mem): Likewise.
22034
22035         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
22036         symbolic_reference_mentioned_p): Likewise.
22037
22038         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
22039
22040         * sh/sh.c (regs_used, mark_use): Likewise.
22041
22042         * vax/vax.c (vax_rtx_cost): Likewise.
22043
22044 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22045
22046         * machmode.h (mode_name): Constify a char*.
22047
22048         * rtl.c (mode_name): Likewise.
22049
22050         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
22051
22052         * optabs.c (init_libfuncs): Constify a char*.
22053
22054         * print-tree.c (mode_name): Remove redundant declaration.
22055         (print_node): Use accessor macro, not `mode_name'.
22056
22057         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
22058         not `mode_name'.
22059         (new_spill_reg): Constify a char*.
22060
22061         * tree.c (mode_name): Remove redundant declaration.
22062
22063 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22064
22065         * rtl.c (rtx_name): Constify a char*.
22066
22067         * rtl.h (rtx_name, fix_sched_param): Likewise.
22068
22069         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
22070         (mypr): Use accessor macro, not `rtx_name'.
22071
22072         * genemit.c (print_code): Constify a char*.
22073
22074         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
22075
22076         * genpeep.c (print_code): Constify a char*.
22077
22078         * genrecog.c (print_code): Likewise.
22079
22080         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
22081         end_bb): Add static prototype.
22082         (draw_edge): Constify a char*.
22083         (end_bb): Remove unused parameter.
22084
22085         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
22086         print_block_visualization): Constify a char*.
22087
22088 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
22089
22090         * c-common.c (c_get_alias_set): Update comment.
22091
22092 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
22093
22094         * linux.h (LIB_SPEC): Added.
22095
22096 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22097
22098         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
22099
22100 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
22101
22102         * tree.c (expr_check): Fix typo in last change.
22103
22104 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
22105
22106         * rtl.def (NOTE): Change format to "iuu0n".
22107         (ADDR_DIFF_VEC): Change format to "eEee0".
22108         (ADDRESSOF): Change format to "eit".
22109
22110         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
22111         (RTVEC_ELT): Change to match.
22112         (XVECEXP): Use XVEC and RTVEC_ELT.
22113         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
22114         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
22115         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
22116         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
22117         TRAP_CONDITION, TRAP_CODE): Use XEXP.
22118         (INTVAL): Use XWINT.
22119         (ADDRESSOF_DECL): Use XTREE.
22120         (SET_ADDRESSOF_DECL): Delete.
22121         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
22122         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
22123         ifdefed out since 2.6 at least.
22124         (gen_rtvec_vv): Delete prototype.
22125
22126         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
22127         not rtunion.
22128         (copy_most_rtx): Handle 't' format letter.
22129         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
22130         (gen_rtvec_vv): Delete function.  All callers changed to use
22131         gen_rtvec_v instead.
22132         * print-rtl.c (print_rtx): Move special casing of NOTEs to
22133         the '0' format letter.
22134
22135         * function.c (gen_mem_addressof): Don't use
22136         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
22137         instead.
22138         * integrate.c (copy_rtx_and_substitute): Likewise.
22139         Copy 't' slots with XTREE.
22140         (subst_constants): Treat 't' slots like '[swi]' slots.
22141         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
22142         * jump.c (rtx_equal_for_thread_p): Likewise.
22143         * rtlanal.c (rtx_equal_p): Likewise.
22144         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
22145         only four arguments.
22146         * gengenrtl.c (type_from_format): Provide correct types for
22147         'b' and 't' slots.
22148
22149
22150         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
22151         If a recent gcc is in use (always in stage2 and beyond), use
22152         statement expressions, so we don't make a function call unless
22153         the check fails.  Evaluate arguments exactly once.
22154         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
22155         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
22156         Delete.
22157         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
22158         they evaluate their arguments exactly once, irrespective of
22159         the compiler in use.
22160
22161         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
22162         is used by the currently-enabled check macros.  This is:
22163         (tree_check_failed, tree_class_check_failed): For gcc.
22164         (tree_check, tree_class_check, cst_or_constructor_check,
22165         expr_check): For other compilers.
22166
22167         * gencheck.c: Do not define any *_CHECK1 macros.
22168
22169 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
22170                           Mark Mitchell <mark@codesourcery.com>
22171
22172         * c-common.c (c_get_alias_set): Fix support for poitners and
22173         references.
22174
22175 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
22176
22177         * alias.c: Include tree.h.
22178         (nonlocal_reference_p, mark_constant_function): New functions.
22179         * flow.c (life_analysis): Call mark_constant_function.
22180         * rtl.h (mark_constant_function): Declare it.
22181
22182 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
22183
22184         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
22185         unrecognisable switches.
22186
22187 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22188
22189         * loop.c (recombine_givs): Set ix field after sorting.
22190         (recombine_givs): Remove bogus index / giv lockstep looping.
22191
22192 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22193
22194         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
22195         on CODE.
22196         (emit_store_flag_force): Use do_compare_rtx_and_jump.
22197         (do_cmp_and_jump): Formatting fixes.
22198         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
22199         do_compare_rtx_and_jump instead of compare_from_rtx.
22200         (do_compare_rtx_and_jump): New function; mostly copied from
22201         compare_from_rtx.
22202         (do_jump_for_compare): Delete.
22203         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
22204         MIN_EXPR.
22205         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
22206         of compare/do_jump_for_compare pairs.
22207         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
22208         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
22209         compare_from_rtx/do_jump_for_compare pairs.
22210         (do_jump_by_parts_equality): Likewise.
22211         (do_jump_by_parts_equality_rtx): Likewise.
22212         * expr.h (do_compare_rtx_and_jump): Declare.
22213         * optabs.c (prepare_cmp_insn): New function, contains most of the code
22214         that used to be in emit_cmp_insn.
22215         (cmp_available_p): New function.
22216         (prepare_operand): New function.
22217         (emit_cmp_and_jump_insn_1): New function, contains some code that used
22218         to be in emit_cmp_insn.
22219         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
22220         parameters to be pointers; don't emit final compare but modify some of
22221         the values pointed to by the args so the caller can perform the
22222         correct comparison.
22223         (expand_binop): Call emit_store_flag_force with signed forms of
22224         comparison code.
22225         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
22226         emit_jump_insn pair.
22227         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
22228         emit_cmp_and_jump_insn_1.  Call emit_queue.
22229         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
22230         arg.
22231         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
22232         jump sets cc0 before deleting it.
22233         * integrate.c (expand_inline_function): Likewise.
22234         * unroll.c (unroll_loop): Similar changes in several places.
22235         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
22236         before deleting it.
22237
22238 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22239
22240         * Makefile.in (insn-recog.o): Update dependencies.
22241         * genrecog.c (main): Make generated file include "function.h".
22242
22243 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
22244
22245         * cse.c (cse_insn): Call never_reached_warning when a jump is
22246         changed to be unconditional.
22247         * flags.h: Declare warn_notreached.
22248         * flow.c (delete_block): Call never_reached_warning when
22249         a block is deleted.
22250         * jump.c (delete_barrier_successors): Call never_reached_warning
22251         when we delete everything after a BARRIER.
22252         (never_reached_warning): New function.
22253         * rtl.h: Declare never_reached_warning.
22254         * toplev.c (warn_notreached): New variable.
22255         (lang_independent_options): Set warn_notreached
22256         when -Wunreachable-code.
22257         (compile_file): We need line numbers for -Wunreachable-code.
22258
22259 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
22260
22261         * haifa-sched.c (insn_unit): Fix typo on out of range test.
22262         * sched.c (insn_unit): Likewise.
22263
22264 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
22265
22266         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
22267
22268 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22269
22270         * flow.c (create_edge_list): Use xmalloc, not malloc.
22271
22272 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
22273
22274         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
22275         C-style comments.  Do not lose the character before double slash.
22276
22277 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22278
22279         * basic-block.h (struct edge_list): Stucture to maintain a vector
22280         of edges.
22281         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
22282          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
22283         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
22284         New function prototypes.
22285         * flow.c (create_edge_list): Function to create an edge list.
22286         (free_edge_list): Discards memory used by an edge list.
22287         (print_edge_list): Debug output showing an edge list.
22288         (verify_edge_list): Internal consistency check for an edge list.
22289         (find_edge_index): Function to find an edge index for a pred and succ.
22290
22291 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
22292
22293         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
22294         hashtable.
22295
22296 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
22297
22298         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
22299
22300 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
22301
22302         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
22303
22304 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
22305
22306         * toplev.c (rest_of_compilation): Allow machine dependent
22307         reorganisation pass to place information into the RTL dump
22308         file if it so wishes.
22309
22310 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
22311
22312         * explow.c (hard_function_value): Use VOIDmode instead of
22313         MAX_MACHINE_MODE.
22314         * stmt.c (expand_return): Likewise.
22315         * stor-layout.c (get_best_mode): Likewise.
22316
22317         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
22318         emit call instead of emit_insn call.
22319
22320 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22321
22322         * configure.in: Handle --disable/enable-win32-registry.
22323         * install.texi: Document --disable/enable-win32-registry.
22324         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
22325         (WIN32_REGISTRY_KEY): New macro.
22326         * prefix.c: Use to enable/disable win32-specific code.
22327         (lookup_key): Use versioned key.
22328         * configure: Regenerate.
22329         * config.in: Likewise.
22330
22331 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
22332
22333         * cpplib.c (read_line_number): New fn, split out of...
22334         (do_line): Here.
22335
22336 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
22337
22338         tree.c (lang_unsave_expr_now) : New.
22339         (unsave_expr_now): Call lang_unsave_expr_now.
22340         tree.h (lang_unsave_expr_now) : New.
22341
22342 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
22343
22344         * toplev.c (flag_new_exceptions): On by default.
22345
22346 1999-08-13  Michael Meissner  <meissner@cygnus.com>
22347
22348         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
22349
22350 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
22351
22352         * dwarfout.c (fundamental_type_code): Return FT_boolean for
22353         INTEGER_TYPE with precision==1, it's __java_boolean.
22354
22355 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22356
22357         * global.c (prune_preferences): Move some invariants out of the
22358         inner loop.
22359
22360 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
22361
22362         * configure.in (alpha*-dec-osf*): Add osf5.
22363
22364 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
22365
22366         * configure.in: Rework handling of ARM GNU/Linux slightly.
22367         (arm*-*-linux-gnuoldld): New target.
22368         * configure: Regenerate.
22369         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
22370         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
22371         * config/arm/linux-oldld.h: New file.
22372         * config/arm/linux-elf26.h: Don't include linux-elf.h.
22373         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
22374         Don't define.
22375         * config/arm/linux-elf.h (ASM_SPEC): Define.
22376         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
22377         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
22378         for 26-bit APCS and old linker.
22379         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
22380         `arm_elf'.
22381         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
22382         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
22383         don't define `arm' or `arm_elf'.
22384         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
22385         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
22386
22387 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
22388
22389         * rtl.texi: Fix typo.
22390
22391 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
22392
22393         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
22394
22395 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
22396
22397         * extend.texi (C++ Signatures): Remove node.
22398         * invoke.texi: Remove discussion of -fhandle-signatures,
22399         signature, sigof, __signature__, and __sigof__.
22400
22401 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
22402
22403         * Makefile.in (JAVAGC): Removed.
22404
22405 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22406
22407         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
22408
22409 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
22410
22411         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
22412
22413 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
22414
22415         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
22416         a register that is already known to be a pointer.
22417
22418 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
22419
22420         * fixinc/inclhack.tpl: Only install assert.h conditionally.
22421         * fixinc/inclhack.sh: Regenerated.
22422         * fixinc/fixincl.sh: Regenerated.
22423
22424 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
22425
22426         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
22427         Fix documentation of -ansi flag to describe its C++ behavior.
22428         Remove bogus reference to GCC 2.9.
22429
22430 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
22431
22432         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
22433         note if it is non-NULL.
22434
22435 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22436
22437         * except.h (eh_nesting_info): Add new structure defintion.
22438         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
22439         (reachable_handlers, update_rethrow_references): Add function
22440         prototypes.
22441         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
22442         a rethrow symbol instead of an integer exception region number.
22443         * flow.c (Make_edges): Use new exception nesting routines to determine
22444         which handlers are reachable from a CALL or asynchronous insn.
22445         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
22446         goto receivers.
22447         (delete_eh_regions): Update rethrow labels, and don't delete
22448         regions which are the target of a rethrow.
22449         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
22450         avoid overloading the SYMBOL_REF_USED flag.
22451         (rethrow_symbol_map): Use new rethrow_ref field.
22452         (rethrow_used): Use new rethrow_ref field.
22453         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
22454         of an integer.  Fix formatting.
22455         (output_exception_table_entry): Use new rethrow_ref field.
22456         (can_throw): Check for EH_REGION_NOTE before deciding
22457         whether a CALL can throw or not.
22458         (scan_region): Call rethrow_used() instead of accessing data structure.
22459         (update_rethrow_references): New function to make sure only regions
22460         which are still targets of a rethrow are flagged as such.
22461         (process_nestinfo): New static function to initialize a handler
22462         list for a specific region.
22463         (init_eh_nesting_info): New function to allocate and initialize
22464         the list of all EH handlers reachable from all regions.
22465         (reachable_handlers): New function to retrieve the list of handlers
22466         reachable from a specific region and insn.
22467         (free_eh_nesting_info): New function to dispose of a list of
22468         reachable handlers.
22469
22470 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22471
22472         * flow.c (split_edge): Set JUMP_LABEL field.
22473         (commit_one_edge_insertion): Set head correctly for insert_before.
22474         When inserting insns, update insn block numbers if allocated.
22475
22476 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22477
22478         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
22479         retry_incomplete_types): Add static prototype.
22480         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
22481         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
22482         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
22483         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
22484         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
22485         Constify a char*.
22486
22487         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
22488         dwarf2out_start_source_file, dwarf2out_line): Likewise.
22489
22490 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22491
22492         * output.h (assemble_name): Constify a char*.
22493
22494         * varasm.c (UNIQUE_SECTION, assemble_start_function,
22495         assemble_variable, assemble_name): Likewise.
22496
22497         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
22498
22499         * arm/pe.c (arm_pe_unique_section): Likewise.
22500
22501         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
22502
22503         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
22504
22505         * i386/interix.c (i386_pe_unique_section): Likewise.
22506
22507         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
22508
22509         * i386/winnt.c (i386_pe_unique_section): Likewise.
22510
22511         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
22512
22513         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
22514
22515         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
22516
22517         * pa/pa.c (output_call): Likewise.
22518
22519         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
22520
22521         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
22522
22523         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
22524         Likewise.
22525
22526         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
22527         Likewise.
22528
22529         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
22530
22531         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
22532         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
22533
22534         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
22535
22536 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22537
22538         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
22539
22540 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22541
22542         * tree.h (lang_identify): Constify a char*.
22543         (print_error_function): Add extern prototype.  Constify a char*.
22544
22545         * c-lang.c (lang_identify): Constify a char*.
22546
22547         * objc/objc-act.c (lang_identify): Constify a char*.
22548
22549 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22550
22551         * genpeep.c (main): Make generated file include "function.h".
22552         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
22553
22554 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22555
22556         * Makefile.in: Update dependencies.
22557         * alias.c: Include "function.h"
22558         * c-decl.c: Likewise.
22559         * caller-save.c: Likewise.
22560         * calls.c: Likewise.
22561         * combine.c: Likewise.
22562         * cse.c: Likewise.
22563         * explow.c: Likewise.
22564         * final.c: Likewise.
22565         * global.c: Likewise.
22566         * graph.c: Likewise.
22567         * local-alloc.c: Likewise.
22568         * loop.c: Likewise.
22569         * optabs.c: Likewise.
22570         * profile.c: Likewise.
22571         * recog.c: Likewise.
22572         * regclass.c: Likewise.
22573         * regmove.c: Likewise.
22574         * reload.c: Likewise.
22575         * reorg.c: Likewise.
22576         * resource.c: Likewise.
22577         * sched.c: Likewise.
22578         * stupid.c: Likewise.
22579         * config/1750a/1750a.c: Likewise.
22580         * config/a29k/a29k.c: Likewise.
22581         * config/arc/arc.c: Likewise.
22582         * config/arm/arm.c: Likewise.
22583         * config/arm/thumb.c: Likewise.
22584         * config/c4x/c4x.c: Likewise.
22585         * config/clipper/clipper.c: Likewise.
22586         * config/convex/convex.c: Likewise.
22587         * config/fx80/fx80.c: Likewise.
22588         * config/i860/i860.c: Likewise.
22589         * config/m68k/m68k.c: Likewise.
22590         * config/m88k/m88k.c: Likewise.
22591         * config/mips/mips.c: Likewise.
22592         * config/pdp11/pdp11.c: Likewise.
22593         * config/pyr/pyr.c: Likewise.
22594         * config/romp/romp.c: Likewise.
22595         * config/sh/sh.c: Likewise.
22596         * config/tahoe/tahoe.c: Likewise.
22597         * config/vax/vax.c: Likewise.
22598         * config/we32k/we32k.c: Likewise.
22599         * config/sparc/sparc.c: Include "function.h".
22600         (mem_min_alignment): Test current_function rather than
22601         regno_pointer_align.
22602         * config/pa/pa.c: Likewise.
22603         (compute_frame_size): Delete declaration of
22604         current_function_outgoing_args_size.
22605         * config/arc/arc.h (current_function_varargs): Delete declaration.
22606         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
22607         declaration.
22608         * config/i370/i370.h (current_function_outgoing_args_size): Delete
22609         declaration.
22610         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
22611         current_function_uses_pic_offset_table.
22612         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
22613         of current_function_returns_pointer.
22614         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22615         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22616         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22617         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22618         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22619         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
22620         * config/m88k/m88k.c: Include "function.h"
22621         (call_used_regs, current_function_pretend_args_size,
22622         current_function_outgoing_args_size, frame_pointer_needed): Delete
22623         declarations.
22624         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
22625         declaration.
22626         * config/mips/mips.h (current_function_calls_alloca): Delete
22627         declaration.
22628         * config/mn10200/mn10200.h (current_function_needs_context,
22629         rtx_equal_function_value_matters): Delete declarations.
22630         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
22631         flag_pic): Delete declarations.
22632         * config/pa/pa.h (current_function_pretend_args_size,
22633         current_function_decl): Delete declarations.
22634         * config/pa/som.h (current_function_varargs): Delete declaration.
22635         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
22636         declaration.
22637         * config/pyr/pyr.h (current_function_pretend_args_size,
22638         current_function_args_size, current_function_calls_alloca): Delete
22639         declarations.
22640         * config/sh/sh.h (current_function_varargs): Delete declaration.
22641         * config/sparc/sparc.h (current_function_outgoing_args_size,
22642         current_function_calls_alloca, current_function_decl): Delete
22643         declarations.
22644         * config/spur/spur.h (current_function_pretend_args_size,
22645         current_function_calls_alloca): Delete declarations.
22646         * config/v850/v850.c (current_function_outgoing_args_size): Delete
22647         declaration.
22648         * config/vax/vms.h (current_function_name): Delete declaration.
22649         * gcse.c: Include "function.h".
22650         (current_function_name, current_function_calls_setjmp): Delete
22651         declarations.
22652         * haifa-sched.c: Include "function.h".
22653         (forced_labels): Delete declaration.
22654         * jump.c: Likewise.
22655         * reg-stack.c: Likewise.
22656         * reload1.c: Likewise.
22657         * genemit.c (main): Make generated file include function.h.
22658         * genoutput.c (output_prologue): Likewise.
22659
22660         * builtins.c (saveregs_value, apply_args_value): Delete variables.
22661         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
22662         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
22663         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
22664         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
22665         macros for some of them.
22666         (emit_filename, emit_lineno): Delete declarations.
22667         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
22668         regno_pointer_* variables through current_function.
22669         (gen_inline_header_rtx): Delete function.
22670         (save_emit_status): Delete function.
22671         (set_new_last_label_num): New function.
22672         (clear_emit_caches): New function.
22673         (restore_emit_status): Just clear last_labelnum and call
22674         clear_emit_caches.
22675         (get_last_insn_anywhere): Variable sequence_stack is now accessed
22676         through macro seq_stack.
22677         (add_insn_after): Likewise.
22678         (add_insn_before): Likewise.
22679         (remove_insn): Likewise.
22680         (pop_topmost_sequence): Likewise.
22681         (in_sequence_p): Likewise.
22682         (start_sequence_for_rtl_expr): Likewise.
22683         (start_sequence): Likewise, and likewise for
22684         sequence_rtl_expr/seq_rtl_expr.
22685         (push_topmost_sequence): Likewise.
22686         (end_sequence): Likewise.
22687         (init_virtual_regs): Now takes a "struct emit_status *" argument.
22688         All callers changed.  Store into that pointer instead of globals.
22689         (init_emit): Allocate emit elt of current_function.
22690         Changes for sequence_rtl_expr/sequence_stack renaming.
22691         Call clear_emit_caches instead of doing it in-line.
22692         Access regno_pointer_* variables through current_function.
22693         (init_emit_once) Don't clear sequence_stack.
22694
22695         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
22696         Delete variables.
22697         (arg_pointer_save_area): Delete declaration.
22698         (finish_expr_for_function): Renamed from init_queue; no longer static.
22699         (init_expr): Don't call init_queue.
22700         (save_expr_status, restore_expr_status): Delete functions.
22701         (expand_expr): Changes to reflect new layout of struct function.
22702         Don't access current_function_check_memory_usage when current_function
22703         is 0.
22704         * expr.h (forced_labels, save_expr_regs, saveregs_value,
22705         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
22706         current_function_outgoing_args_size, current_function_arg_offset_rtx,
22707         current_function_uses_const_pool, function_call_count,
22708         current_function_uses_pic_offset_table, nonlocal_labels,
22709         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
22710         current_function_check_memory_usage, nonlocal_goto_handler_slots,
22711         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
22712         declarations.
22713         (finish_expr_for_function): Declare.
22714         * flags.h (current_function_has_nonlocal_label,
22715         current_function_has_nonlocal_goto, current_function_is_thunk,
22716         current_function_has_computed_jump): Delete declarations.
22717         * flow.c (forced_labels): Delete declaration.
22718         * function.c (current_function_pops_args,
22719         current_function_returns_struct, current_function_returns_pcc_struct,
22720         current_function_needs_context, current_function_calls_setjmp,
22721         current_function_calls_longjmp, current_function_has_nonlocal_label,
22722         current_function_has_nonlocal_goto, current_function_is_thunk,
22723         current_function_has_computed_jump, current_function_calls_alloca,
22724         current_function_contains_functions, current_function_returns_pointer,
22725         current_function_epilogue_delay_list, current_function_args_size,
22726         current_function_pretend_args_size, current_function_arg_offset_rtx,
22727         current_function_outgoing_args_size, current_function_varargs,
22728         current_function_stdarg, current_function_args_info, cleanup_label,
22729         current_function_name, current_function_uses_const_pool,
22730         current_function_instrument_entry_exit, current_function_return_rtx,
22731         current_function_uses_pic_offset_table, nonlocal_labels,
22732         current_function_internal_arg_pointer, current_function_cannot_inline,
22733         current_function_check_memory_usage, function_call_count,
22734         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
22735         nonlocal_goto_stack_level, return_label, save_expr_regs,
22736         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
22737         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
22738         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
22739         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
22740         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
22741         Delete variables.
22742         (push_function_context_to): Don't save them.  Don't call
22743         save_storage_status, save_emit_status or save_expr_status.
22744         (pop_function_context_from): Don't restore them.  Don't call
22745         restore_storage_status or restore_expr_status.
22746         (get_func_frame_size): New function.
22747         (get_frame_size): Use it.
22748         (assign_outer_stack_local): Reflect some member name changes in struct
22749         function.
22750         (put_reg_into_stack): Likewise.
22751         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
22752         seq_rtl_expr.
22753         (fixup_var_refs): Likewise.
22754         (fix_lexical_addr): Likewise.
22755         (trampoline_address): Likewise.
22756         (prepare_function_start): Clear field inlinable of current_function.
22757         (init_function_for_compilation): New function.
22758         (expand_dummy_function_end): New function.
22759         (expand_function_end): Call finish_expr_for_function.
22760         * function.h (struct emit_status): New; fields moved here from struct
22761         function and from global variables.  Add accessor macros for some of
22762         the fields.
22763         (struct expr_status): Likewise.
22764         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
22765         (struct function): Add fields expr and emit, inlinable, inl_emit,
22766         original_arg_vector, original_decl_initial, inl_last_parm_insn,
22767         inl_max_label_num.  Add many comments.
22768         Add accessor macros for all elts of struct function that no longer
22769         have a global variable.
22770         (cleanup_label, return_label, frame_offset, tail_recursion_label,
22771         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
22772         stack_slot_list): Delete declarations.
22773         (get_func_frame_size): Declare.
22774         (save_expr_status, restore_expr_status, save_emit_status,
22775         save_storage_status, restore_storage_status): Delete declarations.
22776         (init_virtual_regs): Declare.
22777         * output.h (current_function_pops_args,
22778         current_function_returns_struct, current_function_returns_pcc_struct,
22779         current_function_needs_context, current_function_calls_setjmp,
22780         current_function_calls_longjmp, current_function_calls_alloca,
22781         current_function_has_nonlocal_label, current_function_varargs,
22782         current_function_has_computed_jump, current_function_returns_pointer,
22783         current_function_contains_functions, current_function_args_size,
22784         current_function_pretend_args_size, current_function_stdarg,
22785         current_function_outgoing_args_size, current_function_args_info,
22786         current_function_name, current_function_return_rtx,
22787         current_function_epilogue_delay_list,
22788         current_function_uses_const_pool, current_function_cannot_inline):
22789         Delete declarations.
22790         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
22791         regno_reg_rtx): Delete declaration.
22792         (REGNO_POINTER_FLAG): Delete macro.
22793         * stmt.c (expand_goto): Changes to reflect that some fields in struct
22794         function were renamed.
22795         * stor-layout.c (save_storage_status, restore_storage_status): Delete
22796         functions.
22797         * toplev.c: Include "function.h".
22798         (current_function_decl): Delete declaration.
22799         (compile_file): Call init_dummy_function_start and
22800         expand_dummy_function_end around some initializations that need to
22801         emit rtl.
22802         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
22803         Call init_function_for_compilation.
22804         * unroll.c: Include "function.h"
22805         (unroll_loop): Access regno_pointer_* variables through
22806         current_function.
22807
22808         * tree.h (struct tree_decl): Add elt f to saved_insns member.
22809         (DECL_SAVED_INSNS): use it.
22810         (expand_dummy_function_end): Declare.
22811         (init_function_for_compilation): Declare.
22812         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
22813         that it's no longer an INLINE_HEADER.
22814         (expand_call): Likewise.
22815         * integrate.c (finish_inline): Delete function.
22816         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
22817         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
22818         args.  Don't generate an INLINE_HEADER rtx, just return the arg
22819         vector.  All callers changed.
22820         (save_for_inline_copying):  Create a duplicate struct emit_status to
22821         hold the emit state for compiling the current function.  Use this and
22822         the other new fields in struct function that are for integration
22823         instead of an INLINE_HEADER.
22824         Use memcpy instead of bcopy.
22825         Store the current struct function in DECL_SAVED_INSNS of fndecl.
22826         (save_for_inline_nocopy): Similar changes, except no new emit_status
22827         is needed here.
22828         (expand_inline_function): Get information from function structure,
22829         not from an inline header rtx.
22830         (output_inline_function): Lose code to extract the necessary
22831         information from an inline header; simply put back the function
22832         structure into current_function.  Clear its inlinable elt.
22833         * rtl.def (INLINE_HEADER): Delete.
22834         * rtl.h: Delete all accessors for an INLINE_HEADER.
22835         (gen_inline_header_rtx): Delete declaration.
22836         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
22837         Delete declarations.
22838         (REGNO_POINTER_ALIGN): Delete.
22839         (clear_emit_caches): Declare.
22840         (set_new_last_label_num): Declare.
22841
22842 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
22843
22844         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
22845
22846         * except.c (expand_eh_region_start_for_decl): Always start a new block.
22847         * stmt.c (is_eh_region): Make sure current_function is present, too.
22848
22849 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
22850
22851         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
22852         for 64bit PA targets.
22853
22854         * pa.h (SELECT_SECTION): Define.
22855         * som.h (SELECT_SECTION): Delete.
22856
22857 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22858
22859         * alias.c (init_alias_analysis): Wrap call to
22860         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
22861
22862 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
22863
22864         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
22865         <sys/asm.h> contains an asm comment with an apostrophe
22866         * fixinc/inclhack.sh:  regen
22867         * fixinc/fixincl.x:  regen
22868
22869 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
22870
22871         * function.c (init_function_start): Clear prologue & epilogue.
22872         (prologue_epilogue_contains): New function.
22873         * alias.c (init_alias_analysis): Use it.
22874         * rtl.h (prologue_epilogue_contains): Declare it.
22875
22876 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
22877
22878         * jump.c (onlyjump_p): New function.
22879         * rtl.h: Declare it.
22880         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
22881         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
22882
22883 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
22884
22885         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
22886         to invert loops.  Simplify block scanning.
22887
22888 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
22889
22890         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
22891         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
22892
22893 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
22894
22895         * config/sparc/liteelf.h: New file to support sparclite-elf target
22896         * config/sparc/t-sp86x: New file to support sparc86x targets
22897         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
22898         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
22899         * configure.in: Support above target triplets
22900         * configure: Regenerated
22901
22902 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
22903
22904         * fixinc/server.c (server_setup): Do not prefix function used as
22905         parameter with `&'.
22906
22907 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
22908
22909         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
22910         Remove fp reg alternatives.
22911
22912 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
22913
22914         * Makefiin (TAROUTOPTS): Kill.
22915         (install-headers-tar): Use "xpf" for tar headerfile extraction
22916         * i370/x-oe (TAROUTOPTS): Delete.
22917         * m68k/x-apollo68 (TAROUTOPTS): Delete.
22918         * m68k/x-hp320 (TAROUTOPTS): Delete.
22919         * m68k/x-hp320g (TAROUTOPTS): Delete.
22920         * gcc.texi: Update bug reporting text.
22921
22922 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
22923
22924         * reg-stack.c (change_stack) Fixed problem with negative array index.
22925
22926 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
22927
22928         * extend.texi, install.texi: Fix spelling mistakes.
22929
22930         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
22931         (s-attrtab); No longer try to use pre-made insn-attrtab file.
22932         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
22933         PREMADE_ATTRTAB_MD.
22934         * mips/t-ecoff: Likewise.
22935         * mips/t-elf: Likewise.
22936         * mips/t-mips: Likewise.
22937         * mips/t-osfrose: Likewise.
22938         * mips/t-r3900: Likewise.
22939         * mips/t-svr3: Likewise.
22940         * mips/t-svr4: Likewise.
22941         * mips/t-ultrix: Likewise.
22942
22943         * gcc.texi: Document recommend means to provide software floating
22944         point libraries in libgcc.a
22945
22946 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
22947
22948         * c-lex.c (yylex): We can have a number with no digits.
22949
22950 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
22951
22952         * jump.c (delete_prior_computation): New function, broken
22953         out of delete_computation.  Check for side effects with
22954         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
22955         multi-word hard registers.
22956         (delete_computation): Use it.  Check for side effects with
22957         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
22958         missing REG_DEAD note for a register which is both set and
22959         used by an insn.
22960
22961 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
22962
22963         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
22964         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
22965         (ASM_FILE_START): Import _mcount with the right type.
22966         (ASM_DECLARE_FUNCTION_NAME): Define.
22967         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
22968         * pa.c (output_function_prologue): Always emit the function's label
22969         here.
22970         * pa.h (TEXT_SPACE_P): Define.
22971         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
22972         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
22973         * som.h (TEXT_SPACE_P): Delete.
22974         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
22975         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
22976
22977 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
22978
22979         * expr.c (emit_group_load): Allow src to be a CONCAT.
22980
22981 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22982
22983         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
22984         (___mulsi3): Use '!' comment character.
22985
22986 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22987
22988         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
22989
22990 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
22991
22992         * gcc.c: Update URLs and mail addresses.
22993         * gcc.texi: Likewise.
22994
22995 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
22996
22997         * rs6000.c (current_file_function_operand): Return zero for
22998         weak functions.
22999         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
23000         weak symbols.
23001         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
23002         for weak symbols.
23003
23004 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
23005
23006         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
23007         allocate space in the stack frame for the PIC register.
23008
23009 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
23010
23011         * m68k.md (xordi3, anddi3): These patterns are not available on
23012         the coldfire.
23013
23014 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
23015
23016         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
23017         (PUT_REAL): Likewise.
23018
23019 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23020
23021         * final.c (shorten_branches): Don't add an alignment for loops
23022         that have no label inside.
23023
23024 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23025
23026         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
23027         prototypes in macro HAVE_cmpstrsi.
23028
23029         * cpplib.c (cpp_get_token): Remove unused label `op3'.
23030
23031         * emit-rtl.c (operand_subword): Remove unused variable
23032         `bits_per_word'.
23033
23034         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
23035
23036         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
23037
23038 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
23039
23040         * cpphash.c (macroexpand): Delete leading whitespace when arg
23041         is concatenated before.
23042         (unsafe_chars): Correct test for whether + and - can extend a
23043         token.
23044
23045         * cppinit.c (cpp_start_read): Do dependencies for
23046         -include/-imacros files also.
23047
23048         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
23049         tokenizing non-directive lines.
23050         (cpp_expand_to_buffer): Temporarily disable no-output mode.
23051         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
23052         the input file.
23053
23054 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
23055
23056         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
23057
23058         * c-lex.c: Sync with C++ frontend.
23059         (linemode): New variable.
23060         (parse_float): imag, conversion_errno, and type are output only.
23061         (yylex): Adjust.  Move initial '.' case into main switch.
23062         Use linemode.
23063         (handle_generic_pragma): Just deal with tokens.
23064         (readescape): Use ISXDIGIT and ISGRAPH.
23065         * c-parse.in: Add END_OF_LINE token.
23066
23067         * c-lex.c (lang_init): Generalize.
23068         (nextchar): Remove.  Replace uses with UNGETC.
23069         (skip_white_space): Handle linemode here.  Optimize for cpplib.
23070         (skip_white_space_on_line): Remove.
23071         (extend_token_buffer_to): New fn.
23072         (extend_token_buffer): Use it.
23073         (read_line_number, check_newline): Just deal with tokens.
23074         (token_getch, token_put_back): New fns.
23075         (yylex): Use them.  More cpplib optimizations.  Simplify.
23076
23077 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
23078                           Jason Merrill  <jason@yorick.cygnus.com>
23079
23080         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
23081         (consume_string): Make this smart about USE_CPPLIB.
23082         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
23083         (yylex): Rewrite to be intelligent about USE_CPPLIB.
23084         Also, clean up cases where we redundantly set token_buffer[0].
23085         (read_line_number): New fn.
23086         (ignore_escape_flag): New variable.
23087
23088 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
23089
23090         * a29k/t-a29kbare: Fix some comments.
23091         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
23092         (FPBIT, DPBIT): Define.
23093         * a29k/t-vx29k: Likewise.
23094         * arc/t-arc: Likewise.
23095         * arm/t-arm-elf: Likewise.
23096         * arm/t-bare: Likewise.
23097         * arm/t-pe: Likewise.
23098         * arm/t-pe-thumb: Likewise.
23099         * arm/t-semi: Likewise.
23100         * arm/t-thumb: Likewise.
23101         * arm/t-thumb-elf: Likewise.
23102         * arm/t-thumb-linux: Likewise.
23103         * h8300/t-h8300: Likewise.
23104         * i960/t-i960: Likewise.
23105         * i960/t-vxworks960: Likewise.
23106         * m32r/t-m32r: Likewise.
23107         * mips/t-ecoff: Likewise.
23108         * mips/t-elf: Likewise.
23109         * mips/t-r3900: Likewise.
23110         * pa/t-pro: Likewise.
23111         * rs6000/t-aix43: Likewise.
23112         * rs6000/t-beos: Likewise.
23113         * rs6000/t-newas: Likewise.
23114         * rs6000/t-ppccomm: Likewise.
23115         * rs6000/t-rs6000: Likewise.
23116         * rs6000/t-winnt: Likewise.
23117         * rs6000/t-xnewas: Likewise.
23118         * rs6000/t-xrs6000: Likewise.
23119         * sh/t-sh: Likewise.
23120         * sparc/t-elf: Likewise.
23121         * sparc/t-sparcbare: Likewise.
23122         * sparc/t-sparclite: Likewise.
23123         * sparc/t-splet: Likewise.
23124         * v850/t-v850: Likewise.
23125         * mn10200/t-mn10200: Fix comments.
23126         * mn10300/t-mn10300: Likewise.
23127
23128         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
23129         dummy operand.  Allocate a new pseudo for the dummy operand.
23130         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
23131
23132         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
23133
23134 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
23135
23136         * configure: Rebuilt.
23137         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
23138
23139 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
23140
23141         * recog.c (preproces_constraints): Zero recog_op_alt before
23142         processing the constraints.
23143
23144         * arm.c (typedef minipool_node): Renamed from pool_node.
23145         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
23146         (add_minipool_constant): New function.
23147         (dump_minipool): New function.
23148         (find_barrier): Remove special case for getting the insn size of
23149         an insn that references the constant pool.
23150         (minipool_fixup): New structure.
23151         (push_minipool_barrier): New function.
23152         (push_minipool_fix): New function.
23153         (note_invalid_constants): New function.
23154         (add_pool_constant, dump_table, fixit, broken_move): Delete.
23155         (arm_reorg): Rewrite code to fix up the constant pool into a
23156         series of mini-pools embedded in the insn stream.
23157         (arm_output_epilogue): New function, made mainly from the body
23158         of output_func_epilogue.
23159         (output_func_epilogue): Move insn generation part of epilogue code
23160         to arm_output_epilogue.
23161         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
23162         * arm.md (pool_range): New attribute.
23163         (zero_extendqidi2): Add attribute pool_range.
23164         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
23165         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
23166         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
23167         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
23168         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
23169         (epilogue): New expand.
23170         (epilogue_insn): New insn.  Call arm_output_epilogue.
23171
23172         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
23173         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
23174
23175 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
23176
23177         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
23178
23179 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
23180
23181         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
23182
23183 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
23184
23185         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
23186
23187 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
23188
23189         * global.c: Fix comment.
23190
23191 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
23192
23193         * gcc.c (access_check): New static function.
23194         (find_a_file): Use it when searching a directory list.
23195         * collect2.c (find_a_file): Don't accept directories found when
23196         searching a directory list.
23197
23198 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
23199
23200         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
23201         function parameters with `&'.
23202         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
23203
23204 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
23205
23206         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
23207         or tidy_fallthru_edge if the last insn in the block is not
23208         an unconditional jump or a simple conditional jump.
23209
23210 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23211
23212         * Makefile.in (c-decl.o): Depends on defaults.h.
23213
23214 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
23215
23216         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
23217         PA1.1 and above.
23218         (CLASS_MAX_NREGS): Likewise.
23219
23220 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
23221
23222         * cse.c (cse_insn): Fix dumb thinko in last change.
23223
23224 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23225
23226         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
23227         "const char *".
23228
23229 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
23230
23231         * dwarf2out.c (add_location_or_const_value_attribute): Correct
23232         test for sizes of passed and declared parameter types.
23233
23234 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23235
23236         * fixincludes: Fix the return type of bsearch, char* -> void*.
23237
23238         * fixinc/inclhack.def: Likewise.
23239
23240 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
23241
23242         * invoke.texi (-fdump-translation-unit): New option.
23243
23244 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
23245
23246         * expr.h (PROMOTE_PROTOTYPES): Move ...
23247         * defaults.h: ... to here.
23248         * c-decl.c: Include defaults.h instead of expr.h.
23249         * c-typeck.c: Include defaults.h.
23250
23251 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
23252
23253         * toplev.h (errorcount): Declare.
23254         (warningcount): Likewise.
23255         (sorrycount): Likewise.
23256         * c-lex.c (errorcount): Don't declare.
23257         * dwarf2out.c (errorcount): Don't declare.
23258
23259 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
23260
23261         * config/libgloss.h: Add a note discouraging use with ELF.
23262         * configure.in: Don't use libgloss.h for ELF targets.
23263         Always use_collect2 on a.out targets.
23264
23265 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
23266
23267         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
23268         (force_to_mode, case ASHIFTRT): Add shiftrt label.
23269
23270 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23271
23272         * loop.c (strength_reduce): When doing biv->giv conversion, update
23273         reg note of NEXT->insn.
23274
23275 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23276
23277         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
23278
23279 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23280
23281         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
23282         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
23283         Ensure expr.h is included.
23284         * c-typecheck.c (convert_arguments): Ditto.
23285
23286         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
23287
23288         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
23289         * config/convex/convex.h: Ditto.
23290         * config/dsp16xx/dsp16xx.h: Ditto.
23291         * config/fx80/fx80.h: Ditto.
23292         * config/gmicro/gmicro.h: Ditto.
23293         * config/i370/i370.h: Ditto.
23294         * config/i386/i386.h: Ditto.
23295         * config/m32r/m32r.h: Ditto.
23296         * config/m68k/m68k.h: Ditto.
23297         * config/m88k/m88k.h: Ditto.
23298         * config/mips/mips.h: Ditto.
23299         * config/pa/pa.h: Ditto.
23300         * config/pyr/pyr.h: Ditto.
23301         * config/tahoe/tahoe.h: Ditto.
23302         * config/we32k/we32k.h: Ditto.
23303
23304         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
23305         based on arch size.
23306
23307         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
23308
23309         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
23310         from comment.
23311
23312         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
23313
23314 1999-08-02  Richard Henderson  <rth@cygnus.com>
23315
23316         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
23317         for the register spill block.
23318         (m32r_va_arg): New.
23319         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
23320         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
23321
23322         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
23323         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
23324         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
23325
23326 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23327
23328         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
23329         MAX_WCHAR_TYPE defined in sparc.h.
23330         * config/sparc/linuxaout.h: Likewise.
23331         * config/sparc/linux64.h: Likewise.
23332         Also default to -mvis if CPU is UltraSPARC.
23333
23334 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23335
23336         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
23337         (RTX_OK_FOR_OLO10): Likewise.
23338         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
23339         %lo(), allow it in addresses...
23340         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
23341         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
23342         does not make sense.
23343         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
23344         (sparc_output_scratch_registers): New function.
23345         (output_function_prologue, sparc_flat_output_function_prologue): Use
23346         it.
23347         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
23348         defined.
23349         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
23350         * configure.in: Add check for .register pseudo-op support in as and
23351         check for offsetable %lo().
23352         * acconfig.h: Add templates for the above checks.
23353         * configure: Regenerate.
23354
23355 1999-08-02  Richard Henderson  <rth@cygnus.com>
23356
23357         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
23358         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
23359         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
23360
23361 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23362
23363         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
23364         reg_biv_class.
23365
23366 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23367
23368         * config/float-sparc.h: New file.
23369         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
23370         sparc-*-linux-gnu and sparc64-*-linux*.
23371
23372 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23373
23374         * rs6000.c (rs6000_va_list): Type is an array.
23375         (rs6000_va_start): Don't doubly adjust for varargs.
23376         (rs6000_va_arg): Evaluate long long GPR adjustment.
23377
23378 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
23379
23380         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
23381         -maix64 and -maix32.
23382         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
23383         LINK_SPEC): Change appropriately.
23384         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
23385         (u_short_cint_operand): Likewise.
23386         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
23387         for 64-bit hosts.
23388         * rs6000/t-aix43 (MULTILIB): Change to -m64.
23389
23390         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
23391
23392 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
23393
23394         * rs6000/rs6000.c (num_insns_constant_wide): Correct
23395         for type promotion.
23396         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
23397         (non_add_cint_operand): Likewise.
23398         (logical_operand): Likewise.
23399         (non_logical_cint_operand): Likewise.
23400         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
23401         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
23402         (rs6000_select_rtx_section): Suppress warning.
23403         (small_data_operand): Suppress warning.
23404         (rs6000_got_register): Suppress warning.
23405         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
23406         type, so `J' is generally the wrong constraint for a SImode value;
23407         use `L' instead.
23408         (andsi3_internal2): Likewise.
23409         (andsi3_internal3): Likewise.
23410         (iorsi3_internal1): Likewise.
23411         (xorsi3_internal1): Likewise.
23412         (movsi): Likewise.
23413         (movsf_softfloat): Likewise.
23414         (scc insns): Likewise.
23415         (movsi+2): Preserve sign bits of SImode constant.
23416         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
23417         (movdf+1): Sign-extend properly.
23418         (movdi_32+1): Sign-extend properly.
23419         (scc insns): Sign-extend properly.
23420
23421         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
23422         K, L, and T.
23423
23424 1999-08-02  Richard Henderson  <rth@cygnus.com>
23425
23426         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
23427         -mcpu parsing code.
23428         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
23429         * alpha.md (all fp insns): Likewise.
23430
23431 1999-08-02  Nick Clifton  <nickc@cygnus.com>
23432
23433         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
23434         already defined.
23435
23436 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
23437
23438         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
23439         pic_load_label generator directly.
23440         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
23441         No longer a named pattern.
23442
23443 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
23444
23445         * explow.c (force_reg): Call force_operand if X does not
23446         satisfy general_operand.
23447
23448 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
23449
23450         * fix-header.c (main): When testing for CONTINUED, use string
23451         equality, not pointer equality.
23452
23453 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
23454
23455         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
23456
23457 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
23458
23459         * cse.c (cse_insn): Fix loop which deletes insns after a jump
23460         that has become an unconditional jump.
23461
23462         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
23463         (output_function_epilogue): Similarly.
23464
23465 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23466
23467         * tree.h (init_dummy_function_start): Declare.
23468
23469 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23470
23471         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
23472         last_expr_type, last_expr_value, block_start_count, block_stack,
23473         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
23474         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
23475         dynamically in stmt elt of struct function for each function.
23476         (struct nesting): Rename function_call_count elt to n_function_calls,
23477         target_temp_slot_level to block_target_temp_slot_level.  All users
23478         changed.
23479         (struct stmt_status): New structure definition.
23480         Add many accessor macros for stmt_status elements which previously
23481         were global variables.
23482         (init_stmt_for_function): Allocate stmt elt for current_function.
23483         Reflect that block_start_count was renamed to
23484         current_block_start_count.
23485         (save_stmt_status, restore_stmt_status): Delete functions.
23486         (preserve_subexpressions_p): Don't access loop_stack when outside
23487         a function.
23488         (expand_start_bindings): Reflect that block_start_count was renamed to
23489         current_block_start_count.
23490         (expand_fixup): Likewise.
23491         (expand_decl): Don't access block_stack when outside a function.
23492         (expand_decl_cleanup): Likewise.
23493         (expand_dcc_cleanup): Likewise.
23494         (expand_dhc_cleanup): Likewise.
23495         (expand_anon_union_decl): Likewise.
23496         (set_file_and_line_for_stmt): New function.
23497         (in_control_zone_p): New function.
23498
23499         * function.h (struct function): Add new elt stmt.
23500         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
23501         case_stack, nesting_stack, nesting_depth, block_start_count,
23502         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
23503         emit_lineno, goto_fixup_chain.
23504         (save_eh_status, restore_eh_status, save_stmt_status,
23505         restore_stmt_status): Delete declarations.
23506         * function.c (push_function_context_to): Don't call save_stmt_status.
23507         (pop_function_context_to): Don't call restore_stmt_status.
23508         * tree.h (in_control_zone_p): Declare.
23509         * rtl.h (set_file_and_line_for_stmt): Declare.
23510
23511         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
23512         call set_file_and_line_for_stmt.
23513
23514 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
23515
23516         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
23517         Also update copyright.
23518
23519 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23520
23521         * c-pragma.c: Don't include "except.h".
23522         * emit-rtl.c: Likewise.
23523         * stor-layout.c: Likewise.
23524         * tree.c: Likewise.
23525         * varasm.c: Likewise.
23526
23527         * flow.c: Include "function.h".
23528         * tree.h (init_dummy_function_start): Declare new function.
23529
23530         * except.h (struct eh_status): New structure.
23531         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
23532         been included.
23533         (eh_return_stub_label, ehstack, catchstack, ehqueue,
23534         catch_clauses, false_label_stack, caught_return_label_stack,
23535         protect_list, current_function_ehc): Add accessor macros for the
23536         corresponding fields in current_function->eh; delete declarations
23537         for all items that used to be declared here.
23538         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
23539         catch_clauses, false_label_stack, caught_return_label_stack,
23540         protect_list, current_function_ehc): Delete variables.
23541         (init_eh_for_function): Allocate current_function->eh.
23542         (save_eh_status, restore_eh_status): Delete functions.
23543
23544         * function.h (struct function): Add fields next_global and eh.
23545         Delete all exception handling related fields.
23546         * function.c (current_function): New variable.
23547         (all_functions): New variable.
23548         (push_function_context_to): Don't allocate a struct function,
23549         use current_function instead.  Call init_dummy_function_start when
23550         outside a function.  Clear current_function before returning.
23551         (pop_function_context_from): Restore current_function.
23552         Don't free the restored struct function.
23553         (prepare_function_start): New function.
23554         (init_dummy_function_start): New function.
23555         (init_function_start): Break out some code into prepare_function_start
23556         and call it here.
23557
23558         * stmt.c (save_stmt_status): Don't call save_eh_status.
23559         (restore_stmt_status): Don't call restore_eh_status.
23560
23561         * Makefile.in: Update dependencies.
23562
23563 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
23564
23565         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
23566         of depending on a magic constant value.  Update comments.
23567         (hppa_expand_prologue): Similarly.
23568
23569         * pa.md (reload_indi, reload_outdi): Allow any register for the
23570         original reload register.
23571
23572 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
23573
23574         * cccp.c (print_help): Change marcos to macros.
23575
23576 1999-07-30  Richard Henderson  <rth@cygnus.com>
23577
23578         * c-typeck.c (initializer_constant_valid_p): Move ...
23579         * c-common.c (initializer_constant_valid_p): ... here.  Use
23580         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
23581         of label addresses.
23582         * c-common.h (initializer_constant_valid_p): Declare.
23583         * c-tree.h (initializer_constant_valid_p): Remove.
23584
23585 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
23586
23587         * config/i386/sol2-c1.asm: Align the stack.
23588         * config/i386/sol2-gc1.asm: Likewise.
23589
23590 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
23591
23592         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
23593         -Asparclite for sparc86x.
23594         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
23595         sparc86x.
23596         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
23597
23598 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
23599
23600         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
23601         the user if using the non-default arch size in BI_ARCH configuration.
23602         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
23603
23604         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
23605         Fix patterns so that they actually match.
23606         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
23607         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
23608         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
23609         TARGET_HARD_MUL32.
23610         (mulsidi3): Reflect this in the expand.
23611         (smulsi3_highpart): Only on TARGET_ARCH32.
23612         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
23613         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
23614         (umulsidi3): Reflect this in the expand.
23615         (umulsi3_highpart): Only on TARGET_ARCH32.
23616         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
23617         don't require g0 to be zero.
23618         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
23619         ({,u}divsi3): New expands.
23620         ({,u}divsi3_sp64): New patterns.
23621         (after lshrdi3_v8plus): Four new patterns to help combiner
23622         optimizing nested mixed mode shifts.
23623
23624         * config/sparc/sparc.c (sparc_override_options): Use deprecated
23625         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
23626         speed things up. Don't use them by default on plain v9 in 64bit
23627         mode, according to what SPAMv9 sais.
23628
23629         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
23630         top 32 bits of %[og][0-7] in signal handlers.
23631         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
23632
23633 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
23634
23635         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
23636         (ashlsi3): Corresponding changes.
23637
23638         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
23639
23640 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
23641
23642         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
23643
23644 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23645
23646         * arm.h (Hint): Delete macro.
23647         Substitute HOST_WIDE_INT for Hint in some prototypes.
23648         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
23649
23650 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
23651
23652         * builtins.c (expand_builtin_setjmp): Use force_operand to
23653         make sure that the buffer address is in a suitable form to be
23654         passed to force_reg.
23655
23656 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
23657
23658         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
23659         them here.
23660
23661 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
23662
23663         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
23664         proper mode in the condition string.
23665         (icacheflush, dcacheflush): Remove modes from match_operands.
23666
23667         * pa.c (emit_move_sequence): Always convert scratch_reg to the
23668         proper mode before using it.
23669
23670         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
23671         pair.
23672
23673         * pa.c (store_reg): Do not call add_high_const generator directly.
23674         (load_reg, set_reg_plus_d): Likewise.
23675         * pa.md (add_high_const): No longer a named pattern.
23676
23677         * pa.c (legitimize_address): Consistently use Pmode rather than
23678         SImode.  Do not call gen_pic2_highpart directly anymore.
23679         * pa.md (pic2_highpart): No longer a named pattern.
23680         (pic2_lo_sum): Similarly.  Reformat to make more readable.
23681
23682         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
23683         needed.
23684
23685         * README: Update.
23686
23687 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23688
23689         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
23690
23691 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
23692
23693         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
23694         and tag the spill mems.
23695         (hppa_va_start): New.
23696         (hppa_va_arg): New.
23697         * pa.h (EXPAND_BUILTIN_VA_START): New.
23698         (EXPAND_BUILTIN_VA_ARG): New.
23699
23700 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
23701
23702         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
23703         and tag the spill mems.
23704         (mn10300_va_start): New.
23705         (mn10300_va_arg): New.
23706         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
23707         (EXPAND_BUILTIN_VA_ARG): New.
23708
23709 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
23710
23711         * mn10200.c (mn10200_va_arg): New.
23712         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
23713
23714 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
23715
23716         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
23717         rather than play with TREE_INT_CST_LOW.
23718
23719 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
23720
23721         * config/arm/telf.h: Include dbxelf.h.
23722         (CPP_PREDEFINES): Only define if not already defined.
23723         (ASM_IDENTIFY_GCC): Likewise.
23724         (SUBTARGET_EXTRA_SECTIONS): Likewise.
23725         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
23726         * config/arm/thumb.h (LINK_SPEC): Only define if not already
23727         defined.
23728         (DBX_DEBUGGING_INFO): Don't define.
23729         * config/arm/linux-telf.h: New file.
23730         * config/arm/linux-tgas.h: New file.
23731         * config/arm/t-thumb-linux: New file.
23732         * config/arm/uclinux-elf.h: New file.
23733         * config/arm/uclinux-telf.h: New file.
23734         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
23735         thumb-*-uclinux): New targets.
23736         * configure: Regenerate.
23737
23738 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
23739
23740         * pa.md (post_store, pre_load): New expanders.
23741         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
23742         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
23743         need to directly generate RTL for them.
23744         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
23745         changes.
23746
23747 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
23748
23749         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
23750         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
23751         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
23752         (secndary_reload_class): Make TARGET_ELF conditional compile.
23753         (print_operand_address): Similar.
23754         (output_toc): Print all values as hex.
23755         (get_issue_rate): Rearrange and add RS64A and PPC630.
23756         * rs6000.h (processor_type): Add RS64A and PPC630.
23757         (PROCESSOR_POWERPC64): New.
23758         (PROMOTE_MODE): Use word_mode.
23759         (RTX_COSTS): Add RS64A and PPC630.
23760         * rs6000.md (scheduling information): Add lmul and ldiv
23761         representing 64-bit integer multiply and divide.  Add rs64a and
23762         PPC630 information.
23763         (ashldi3): Add support for "rldic" instruction.
23764         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
23765
23766 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
23767
23768         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
23769         instead of V8 for sparclite86x in cpu_table.
23770
23771 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23772
23773         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
23774         output_file_directive.
23775
23776 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
23777
23778         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
23779         tree for op1, not the rtl.
23780
23781 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
23782
23783         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
23784         to m88k_va_start, leaving only the register spill.
23785         (m88k_build_va_list): New.
23786         (m88k_va_start): New.
23787         (m88k_va_arg): New.
23788         * m88k.h (BUILD_VA_LIST_TYPE): New.
23789         (EXPAND_BUILTIN_VA_START): New.
23790         (EXPAND_BUILTIN_VA_ARG): New.
23791
23792 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
23793
23794         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
23795         Rename from expand_builtin_saveregs.
23796         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
23797
23798 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
23799
23800         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
23801         for the register spill block.
23802         (i960_build_va_list): New.
23803         (i960_va_start): New.
23804         (i960_va_arg): New.
23805         * i960.h (BUILD_VA_LIST_TYPE): New.
23806         (EXPAND_BUILTIN_VA_START): New.
23807         (EXPAND_BUILTIN_VA_ARG): New.
23808         * i960.md (store_multiple): Use change_address on individul mems.
23809
23810 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
23811
23812         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
23813         an ARRAY_TYPE.
23814         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
23815         (expand_builtin_va_end): Evaluate arg for side effects.
23816         * c-common.c (c_common_nodes_and_builtins): Construct a
23817         va_list_arg_type_node to handle array decomposition to pointer.
23818
23819 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
23820
23821         * except.c (st_dynamic_cleanup): Use force_operand on the
23822         buffer's address.
23823
23824 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
23825
23826         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
23827         * c4x.c (c4x_va_arg): New.
23828
23829 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
23830
23831         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
23832         has manual_pop set.
23833
23834 1999-07-26  Nathan Sidwell  <nathan@acm.org>
23835
23836         * eh-common.h (__eh_matcher): Prototype correctly.
23837
23838 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
23839
23840         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
23841         (TARGET_SINGLE_PIC_BASE): Likewise.
23842         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
23843         definitions.
23844         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
23845         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
23846         (TARGET_OPTIONS): Add -mpic-register=N.
23847         (OUTPUT_INT_ADDR_CONST): New macro.
23848         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
23849         LEGITIMATE_PIC_OPERAND_P): Likewise.
23850         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
23851         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
23852         output_addr_const directly.
23853         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
23854         ARM port.
23855         (thumb_pic_register, thumb_pic_register_string): Declare.
23856
23857         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
23858         from arm.c.
23859         (label_mentioned_p): New function: Imported from arm.c.
23860         (legitimize_pic_address): New function: Imported from arm.c.
23861         (is_pic):New function: Imported from arm.c.
23862         (thumb_finalize_pic):New function: Imported from arm.c.
23863         (add_constant): Cope with PIC constants.
23864         (fixit): Cope with PIC constants.
23865         (output_return): Do not treat the PIC register as live if
23866         TARGET_SINGLE_PIC_BASE is true.
23867         (thumb_function_prologue): Do not treat the PIC register as live if
23868         TARGET_SINGLE_PIC_BASE is true.
23869         (thumb_expand_prologue): Do not treat the PIC register as live if
23870         TARGET_SINGLE_PIC_BASE is true.
23871         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
23872         TARGET_SINGLE_PIC_BASE is true.
23873         (thumb_print_operand): Accept '|'.
23874         (thumb_override_options): Process PIC options.
23875
23876         * config/arm/thumb.md (movsi): Support PIC.
23877         (call_insn): Change "i" constraint to "X".
23878         (call_value_insn): Likewise.
23879         (consttable_4, consttable_8, consttable_end): Set and clear
23880         "making_const_table" as appropriate.
23881         (pic_load_addr, pic_add_dot_plus_four): New insns.
23882
23883         * invoke.texi (Thumb Options): Fix spelling.  Document new
23884         options -msingle-pic-base and -mpic-register=.
23885
23886 1999-07-26  Andrew Haley  <aph@cygnus.com>
23887
23888         * config/m32r/initfini.c (__init): Use a full word immediate for
23889         __fini: this allows it to be placed in any memory region.
23890
23891         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
23892         -mmodel=medium.  This is OK for all memory models.
23893
23894 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
23895
23896         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
23897         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
23898
23899 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
23900
23901         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
23902         defined.
23903
23904         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
23905
23906 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
23907
23908         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
23909         (BUILD_VA_LIST_TYPE): New.
23910         (EXPAND_BUILTIN_VA_START): New.
23911         (EXPAND_BUILTIN_VA_ARG): New.
23912         * i860.c (output_delayed_branch): Disable.
23913         (output_delay_insn): Likewise.
23914         (i860_saveregs): New.
23915         (i860_build_va_list): New.
23916         (i860_va_start): New.
23917         (i860_va_arg): New.
23918         * i860.md: Disable all peepholes using output_delayed_branch.
23919         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
23920
23921 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
23922
23923         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
23924         (BUILD_VA_LIST_TYPE): New.
23925         (EXPAND_BUILTIN_VA_START): New.
23926         (EXPAND_BUILTIN_VA_ARG): New.
23927         * clipper.c (clipper_builtin_saveregs): Only dump registers.
23928         Return the address of the save area.
23929         (clipper_build_va_list): New.
23930         (clipper_va_start): New.
23931         (clipper_va_arg): New.
23932
23933 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
23934
23935         * arc.h (EXPAND_BUILTIN_VA_START): New.
23936         (EXPAND_BUILTIN_VA_ARG): New.
23937         * arc.c (arc_setup_incoming_varargs): Set alias set of
23938         varargs save area.
23939         (arc_va_start): New.
23940         (arc_va_arg): New.
23941
23942 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
23943
23944         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
23945         (BUILD_VA_LIST_TYPE): New.
23946         (EXPAND_BUILTIN_VA_START): New.
23947         (EXPAND_BUILTIN_VA_ARG): New.
23948         * alpha.c (alpha_builtin_saveregs): Delete.
23949         (alpha_build_va_list): New.
23950         (alpha_va_start): New.
23951         (alpha_va_arg): New.
23952
23953 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
23954
23955         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
23956         column zero.
23957         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
23958         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
23959
23960         * gcc.texi: More changes related to list conversion.
23961         * invoke.texi: Likewise.
23962
23963 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
23964
23965         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
23966         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
23967         (expand_builtin_next_arg): Accept ARGLIST not EXP.
23968         (stabilize_va_list): New function.
23969         (std_expand_builtin_va_start): New function.
23970         (expand_builtin_va_start): New function.
23971         (get_varargs_alias_set): New function.
23972         (std_expand_builtin_va_arg): New function.
23973         (expand_builtin_va_arg): New function.
23974         (expand_builtin_va_end): New function.
23975         (expand_builtin_va_copy): New function.
23976         (expand_builtin): Call them.
23977         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
23978         __builtin_{varargs_start,stdarg_start,end,copy}.
23979         (build_va_arg): New function.
23980         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
23981         (build_va_arg): Declare.
23982         * c-decl.c (ptr_type_node, va_list_type_node): New.
23983         * c-parse.gperf (__builtin_va_arg): New.
23984         * c-parse.in (VA_ARG): New token.
23985         (unary_expr): Recognize it.
23986         * expr.c (expand_expr): Expand VA_ARG_EXPR.
23987         * expr.h (std_expand_builtin_va_start): Declare.
23988         (std_expand_builtin_va_arg): Declare.
23989         (expand_builtin_va_arg): Declare.
23990         (get_varargs_alias_set): Declare.
23991         * tree.def (VA_ARG_EXPR): New.
23992         * tree.h (BUILT_IN_VARARGS_START): New.
23993         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
23994         (ptr_type_node, va_list_type_node): Declare.
23995         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
23996         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
23997         * m88k.h, m88k.c: Likewise.
23998         * mn10300.h, mn10300.c: Likewise.
23999         * pa.h, pa.c: Likewise.
24000         * rs6000.h, rs6000.c: Likewise.
24001         * sh.h, sh.c: Likewise.
24002         * sparc.h, sparc.c: Likewise.
24003
24004         * emit-rtl.c (operand_subword): Copy alias set.
24005         (change_address): Likewise.
24006
24007 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
24008
24009         * pa.c (compute_frame_size): Scan all the used callee saved registers,
24010         not just the first one.
24011
24012 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
24013
24014         * config/arm/arm.h (TARGET_SWITCHES): Add
24015         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
24016         (TARGET_OPTIONS): Add -mpic-register=.
24017         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
24018         (arm_pic_register_string): Declare.
24019         (NEED_PLT_GOT): Delete, replace with ...
24020         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
24021         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
24022         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
24023         * config/arm/arm.c (arm_override_options): Add new option
24024         -mpic-register=N.
24025         (arm_pic_register_string): New variable.
24026         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
24027         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
24028         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
24029         (output_return_instruction): Likewise.
24030         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
24031         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
24032         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
24033
24034         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
24035         mention of -msched-prolog.  Document new options -msingle-pic-base
24036         and -mpic-register=.
24037
24038 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
24039
24040         * haifa-sched.c (reemit_notes): Tidy.
24041         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
24042         haifa's routine.
24043
24044 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
24045
24046         * explow.c (trunc_int_for_mode): New function.
24047         (plus_constant_wide): Use it.
24048         * combine.c (simplify_and_const_int): Likewise.
24049         (merge_outer_ops): Likewise.
24050         (simplify_shift_const): Likewise.
24051         * cse.c (simplify_unary_operation): Likewise.
24052         (simplify_binary_operation): Likewise.
24053         * emit-rtl.c (operand_subword): Likewise.
24054         * rtl.h: Declare it.
24055
24056 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24057
24058         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
24059         (use NUM_REGS instead of NUM_INTS).
24060
24061 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24062
24063         * builtins.c: New file.
24064         * expr.c (saveregs_value, apply_args_value):  Delete definition,
24065         moved into builtins.c.
24066         (string_constant): No longer static.
24067         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
24068         apply_args_size, apply_result_size, result_vector,
24069         expand_builtin_apply_args, expand_builtin_apply,
24070         expand_builtin_return): Delete functions, moved into builtins.c.
24071         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
24072         * expr.h (saveregs_value, apply_args_value): Declare variables.
24073         (expand_builtin, string_constant): Declare functions.
24074         * Makefile.in: Update to build builtin.o.
24075
24076 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
24077
24078         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
24079         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
24080         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
24081         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
24082         false.
24083         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
24084         Define to zero.
24085
24086 1999-07-21  Michael Meissner  <meissner@cygnus.com>
24087
24088         * print-rtl.c (print_rtx): Print the names of the virtual
24089         registers.
24090
24091 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
24092
24093         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
24094         introduced in previous delta.
24095
24096 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24097
24098         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
24099         to avoid name clash.
24100
24101 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24102
24103         * c-lex.c (yylex) : Correct the test for overflow when lexing
24104         integer literals.
24105
24106 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
24107
24108         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
24109         (adjust_priority): Always call ADJUST_PRIORITY.
24110         (schedule_insn): Only put insns into the ready at cost 0.
24111         (schedule_block): Remove redundant initial sort.  Give clock_var
24112         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
24113         is not 0.
24114         * tm.texi (MD_SCHED_REORDER): Update docs.
24115
24116         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
24117         * sparc.c (ultra_reorder_called_this_block): Delete.
24118         (ultrasparc_sched_init): Don't set it.
24119         (ultrasparc_sched_reorder): Don't check it.
24120
24121 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
24122
24123         * rs6000.h (struct rs6000_args): Add sysv_gregno.
24124         * rs6000.c (init_cumulative_args): Init sysv_gregno.
24125         (function_arg_boundary): Align DFmode.
24126         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
24127         to get fp reg and stack overflow correct.
24128         (function_arg): Likewise.
24129         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
24130         (setup_incoming_varargs): Restructure for ABI_V4; use
24131         function_arg_advance to skip final named argument.
24132         (expand_builtin_saveregs): Properly unskip the last integer arg
24133         when doing varargs.  Adjust overflow location calculation.
24134
24135         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
24136         explicitly unsigned.
24137         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
24138         (__VA_GP_REGSAVE): Similarly.
24139         (__va_longlong_p): Delete.
24140         (__va_arg_type_violation): New declaration.
24141         (va_arg): Restructure.  Flag promotion errors.  Align double.
24142         TFmode passed by reference.
24143
24144         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
24145         in the HOST_BITS_PER_WIDE_INT > 32 case.
24146
24147 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
24148
24149         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
24150
24151 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
24152
24153         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
24154         * toplev.c (documented_lang_options): Add -fpreprocessed.
24155         * cpplib.h (struct cpp_buffer): Add preprocessed.
24156         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
24157         (cpp_start_read): Don't expand macros or emit an initial #line
24158         directive if -fpreprocessed.
24159
24160 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
24161
24162         * cpplib.h (struct cpp_buffer): Added manual_pop for
24163         better C++ tokenization.
24164         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
24165         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
24166         * c-common.c (cpp_token): Make non-static.
24167
24168 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24169
24170         * c-common.h: New file.
24171         * c-common.c (permanent_obstack): Delete unused declaration.
24172         (c_global_trees): New array.
24173         (c_common_nodes_and_builtins): New function; split off common code
24174         from init_decl_processing in both c-decl.c and cp/decl.c.
24175         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
24176         c_global_trees and accessor macros defined in c-common.h.
24177         Include c-common.h.
24178         * c-decl.c: Delete definitions for tree nodes that were replaced by
24179         c_global_trees.
24180         (init_decl_processing): Build void_list_node.
24181         Call c_common_nodes_and_builtins; delete code to generate the common
24182         builtins here.
24183         * objc/objc-act.c (build_module_descriptor): Rename variable
24184         void_list_node to avoid clash with c-common.h.
24185
24186         * Makefile.in: Update dependencies.
24187         * objc/Make-lang.in: Likewise.
24188
24189 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
24190
24191         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
24192         (UNIQUE_SECTION_P): Likewise.
24193         (UNIQUE_SECTION): Likewise.
24194
24195 1999-07-19  Linas Vepstas  <linas@linas.org>
24196
24197         * config/i370/README: New file.
24198         * config/i370/linux.h: New file.
24199         * config/i370/mvs.h: New file.
24200         * config/i370/oe.h: New file.
24201         * config/i370/t-linux: New file.
24202         * config/i370/t-mvs: New file.
24203         * config/i370/t-oe: New file.
24204         * config/i370/x-oe: New file.
24205         * config/i370/xm-linux.h: New file.
24206         * config/i370/xm-mvs.h: New file.
24207         * config/i370/xm-oe.h: New file.
24208
24209         * i370.c (label_node_t): Add first_ref_page, label_addr,
24210         label_first_ref, label_last_ref members.
24211         (mvs_need_base_reload): Renamed from mvs_label_emitted.
24212         (MAX_MVS_LABEL_SIZE): Define.
24213         (MAX_LONG_LABEL_SIZE): Define.
24214         (alias_node_t, alias_anchor, alias_number): New.
24215         (mvs_function_table): Reorder for EBCDIC.
24216         (ascebc, ebcasc): Unconditionally define.
24217         (i370_branch_dest, i370_branch_length): New functions.
24218         (i370_short_branch, i370_label_scan): New functions.
24219         (mvs_get_label): Renamed from mvs_add_label.  Search for
24220         an existing label before creating a new one.
24221         (mvs_add_label): New function.
24222         (mvs_get_label_page): New function.
24223         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
24224         over the entire list.
24225         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
24226         (mvs_check_page) [TARGET_ELF_ABI]: New function.
24227         (mvs_add_alias, mvs_need_alias): New functions.
24228         (mvs_get_alias, mvs_check_alias): New functions.
24229         (handle_pragma): New function.
24230         (mvs_function_check): New function.
24231         (unsigned_jump_follows_p): Search harder.
24232         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
24233         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
24234         * i370.h (TARGET_VERSION): Delete.
24235         (CPP_SPEC, CPP_PREDEFINES): Delete.
24236         (mvs_label_emitted): Delete.
24237         (TARGET_EBCDIC): Delete.
24238         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
24239         (HANDLE_PRAGMA): Define.
24240         (HARD_REGNO_NREGS): Handle complex modes.
24241         (HARD_REGNO_MODE_OK): Likewise.
24242         (CLASS_MAX_NREGS): Likewise.
24243         (RET_REG): Likewise.
24244         (EXTRA_CONSTRAINT): Define.
24245         (RETURN_IN_MEMORY): True for DImode.
24246         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
24247         (FUNCTION_PROFILER): Delete.
24248         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
24249         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
24250         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
24251         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
24252         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
24253         (ASM_FILE_START): Add "RMODE ANY".
24254         (ASM_OUTPUT_EXTERNAL): Check for aliases.
24255         (ASM_GLOBALIZE_LABEL): Likewise.
24256         (ASM_OUTPUT_LABELREF): Likewise.
24257         (ASM_OUTPUT_COMMON): Likewise.
24258         (PRINT_OPERAND): Handle 'K', 'W', default.
24259         (PRINT_OPERAND_ADDRESS): New.
24260         (Lots of defines): Add support for TARGET_ELF_ABI.
24261         * i370.md (attr length): New.  Define for all patterns.
24262         (*): Lots of tweeks to assembly output and constraints.
24263
24264 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
24265
24266         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
24267         Disable patterns performing SImode comparisons with SImode values
24268         if TARGET_POWERPC64 and instruction does not sign-extend or does
24269         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
24270         differ for signed quantities.
24271         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
24272         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
24273         (decrement_and_branch_on_count): Add 64-bit variant.
24274
24275 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24276
24277         * final.c (output_asm_insn): When searching for the matching string
24278         for a given dialect, don't run past the end of the list of
24279         alternatives if there are fewer alternatives in the template than
24280         dialects.
24281
24282 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
24283
24284         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
24285         Removed paragraph about compression of files and size limitation,
24286         duplicated in the FAQ.  Use gcc-patches for posting patches.
24287         * gcc.c (main): Updated URL with bug reporting instructions to
24288         gcc.gnu.org.  Removed e-mail address.
24289         * system.h (abort): Likewise.
24290
24291 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24292
24293         * Makefile.in (stmp-multilib-sub): Make the files extracted
24294         from $(LIBGCC1) writable.
24295
24296 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
24297
24298         * config/arm/aout.h: Reformat for improved readability.
24299
24300         * config/arm/arm.h: Reformat for improved readability.
24301         Replace uses of fprintf with asm_fprintf where appropriate.
24302         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
24303         function declaration assembler actions.
24304         (NUM_INTS): New macro: Convert from bytes to words.
24305         (NUM_REGS): New macro: Compute number of registers required to
24306         hold a quanitity of tyep MODE.
24307         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
24308         types.
24309         (NUM_ARG_REGS): New macro: The number of argument registers
24310         available.
24311         (ARG_REGISTER): New macro: Compute the register number of the Nth
24312         argument register.
24313         (LAST_ARG_REGNUM): New macro: The number of the last argument
24314         register.
24315         (SP_REGNUM): New macro: Register number of the stack pointer.
24316         (FP_REGNUM): New macro: Register number of the frame pointer.
24317         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
24318         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
24319         CUMULATIVE_ARGS so that it counts registers not bytes.
24320
24321         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
24322         TARGET_INTERWORK.
24323         Replace uses of fprintf with asm_fprintf where appropriate.
24324         (output_ascii_pseudo_op): Replace with version from thumb.c
24325
24326         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
24327
24328         * config/arm/elf.h (CPP_PREDEFINES): Replace with
24329         SUBTARGET_CPP_SPEC.
24330         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
24331         (ASM_FILE_START): Emit ASM_APP_OFF.
24332
24333 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
24334
24335         * pa.c (compute_frame_size): Round frame according to
24336         STACK_BOUNDARY rather than a hardwired value.
24337
24338         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
24339
24340         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
24341         of "1".
24342         * configure: Rebuilt.
24343
24344         * configure.in (hppa*-*-linux*): New configuration.
24345         * configure: Rebuilt.
24346         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
24347         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
24348         * pa/pa-linux.h: New file.
24349         * pa/t-linux: New file.
24350         * pa/xm-linux.h: New file.
24351
24352         * pa.c (hppa_legitimize_address): Change references from SImode to
24353         either Pmode or word_mode as appropriate.
24354         (emit_move_sequence, store_reg, load_reg): Likewise.
24355         (set_reg_plus_d, hppa_expand_prologue): Likewise.
24356         (output_mul_insn): Likewise.
24357         * pa.h (PROMOTE_MODE): Likewise.
24358         (INITIALZE_TRAMPOLINE): Likewise.
24359         (Pmode): Define to word_mode.
24360
24361         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
24362         value of 4.  Allocate 8 bytes for each FP register save.
24363         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
24364         value of 4.
24365         (hppa_expand_prologue): Likewise.
24366         * pa.h (PROMOTE_MODE): Likewise.
24367         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
24368         (FUNCTION_ARG_BOUNDARY): Likewise.
24369
24370         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
24371
24372         * pa.c (out_of_line_prologue_epilogue): Delete.
24373         (override_options): Remove -mspace related code.
24374         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
24375         (compute_frame_size): Only allocate space for register that
24376         actually need to be saved.
24377         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
24378         (TARGET_SWITCHES): Remove -mspace, -mno-space
24379         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
24380         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
24381         * pa/ee.asm, pa/ee_fp.asm: Delete.
24382
24383         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
24384
24385         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
24386         directive in column zero.
24387
24388 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
24389
24390         * m68k.c (output_function_prologue): Fix computation of save mask
24391         when generating PIC code.
24392
24393 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
24394
24395         * tree.c (build_type_attribute_variant): Move current_obstack restore
24396         after build_qualified_type call.
24397
24398 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
24399
24400         * configure.in: Use t-iris6, even with GNU LD.
24401         * config/mips/iris6gld.h: Fix typo in linker spec.
24402         * config/mips/t-iris6gld: Remove.
24403
24404 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
24405
24406         * rs6000.md (insv, extzv): Remove SImode dependence in named
24407         patterns.  Explicitly generate DImode RTL if PowerPC64 and
24408         operand is DImode.
24409         (insvdi): Reverse start and size in instruction template.
24410
24411 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
24412
24413         * invoke.texi: Typo fixes.
24414
24415 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
24416
24417         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
24418         handle at this time instead of silently generating incorrect code.
24419         (gen_imagpart): Likewise.
24420
24421         * reload.c (find_reloads): Emit a USE for a pseudo register without
24422         a hard register if we could not create an optional reload for the
24423         pseudo.
24424
24425 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24426
24427         * c-typeck.c (output_init_element, process_init_element):
24428         When advancing constructor_unfilled_fields for a RECORD_TYPE,
24429         check for nameless bit fields.
24430
24431 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
24432
24433         * regclass.c (scan_one_insn): Notice subregs that change the
24434         size of their operand.
24435         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
24436
24437 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
24438
24439         * configure.in (alpha*-*-*): Include alpha/t-ieee.
24440         * configure: Rebuilt.
24441         * alpha/t-ieee: New file.
24442
24443 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
24444
24445         * rs6000.c (find_addr_reg): Do not select r0 as an address
24446         register.
24447
24448 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
24449
24450         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
24451
24452 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
24453
24454         * rs6000.md (movsf): Do not force easy FP constants into memory.
24455
24456         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
24457         immed_double_const to ensure they are properly truncated then
24458         sign extended.
24459
24460 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
24461
24462         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
24463         always unless NO_DEBUG is used.  Compile this code
24464         unconditionally.
24465         (replace_symbols_in_block): Compile it unconditionally.
24466
24467 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
24468
24469         * configure.in (i?86-*-elf*): New target.
24470         * configure: Rebuilt.
24471         * i386/i386elf.h, i386/t-i386elf: New files.
24472
24473 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
24474
24475         * toplev.c (main): Don't complain about saying -gdwarf.
24476         (rest_of_compilation): Remove redundant code.
24477
24478 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
24479
24480         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
24481
24482 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
24483
24484         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
24485         "Li960R:", to avoid name clash.
24486
24487 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24488
24489         * loop.c (check_dbra_loop): When reversing a loop, delete all
24490         REG_EQUAL notes referencing the reversed biv except those which are
24491         for a giv based on it.
24492
24493 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
24494
24495         * version.c: Drop "gcc-" prefix from version #.
24496
24497 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
24498
24499         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
24500         the label if we're being verbose.
24501
24502 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
24503
24504         * m68k.c (output_function_prologue): Add pic register to mask
24505         if live and flag_pic.
24506         (output_function_epilogue): Likewise.
24507
24508 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
24509
24510         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
24511         directives in column zero.
24512
24513         * pa/elf.h (ASM_FILE_START): Define.
24514         * pa/som.h (ASM_FILE_START): Include .level directives.
24515         * pa/hpux10.h (ASM_FILE_START): Delete.
24516         * pa/hpux11.h (ASM_FILE_START): Delete.
24517
24518         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
24519
24520 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24521
24522         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
24523         when reload_out equals reload_in.
24524
24525 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
24526
24527         * invoke.texi (Spec Files): New node: Describe the contents of
24528         spec files.
24529
24530 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
24531
24532         * invoke.texi (DEC Alpha Options): Put @end table at
24533         beginning of line, to avoid confusing texi2html.
24534
24535 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
24536
24537         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
24538         introduced in previous delta.
24539
24540 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24541
24542         * reload1.c (gen_reload): When synthesizing a 3 operand add
24543         sequence, improve test for when to reload OP1 into the reload
24544         register instead of OP0.
24545
24546 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
24547
24548         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
24549
24550 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
24551
24552         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
24553         string literal.
24554
24555 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
24556
24557         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
24558         (va_dcl): Use __builtin_va_alist_t.
24559
24560 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
24561
24562         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
24563         on the permanent_obstack.
24564         * dwarfout.c (output_type): Likewise.
24565
24566 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24567
24568         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
24569         Merged from c-typeck.c and cp/typeck.c.
24570         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
24571         Merged into c-common.
24572
24573 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
24574
24575         * c-lex.c (errorcount): Declare it.
24576         (finish_parse): Update errorcount when using CPPLIB.
24577
24578 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
24579
24580         * fixinc/inclhack.def(end_else_label): Double the backslash so
24581         sed gets a chance to see it.
24582         * fixinc/inclhack.sh: regen
24583         * fixinc/fixincl.x: regen
24584
24585 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
24586
24587         Add framework to support armv5 architecture when it becomes
24588         available:
24589
24590         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
24591         (arm_arch5): New variable.
24592         (all_architectures): Add armv5 line.
24593         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
24594         -march=armv5 is specified on the command line.
24595         (arm_arch5): Export this variable.
24596         * invoke.texi: Document new string accepted by -march= switch for
24597         ARM ports.
24598
24599         * config/arm/arm.h: Replace use of constant 12 as a register
24600         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
24601         * config/arm/arm.c: Replace use of constant 12 as a register
24602         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
24603
24604         * config/arm/elf.h: Tidy up.
24605         * config/arm/coff.h: Tidy up.
24606
24607 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
24608
24609         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
24610         * gcc/config/mips/t-iris6gld: New file.
24611         * gcc/config/mips/iris6gld.h: Likewise.
24612
24613 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24614
24615         * c-decl.c (widest_integer_literal_type_node,
24616         widest_unsigned_literal_type) : New.
24617         (init_decl_processing): Handle/use the two new types.
24618         * c-common.c (type_for_size,type_for_mode) : Same.
24619         * c-lex.c (yylex) : Same.
24620         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
24621         Same.
24622         * c-tree.h (widest_integer_literal_type_node,
24623         widest_unsigned_literal_type) : New.
24624
24625 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
24626
24627         * dwarfout.c (field_byte_offset): Correctly compute the object's
24628         byte offset for the first bit of a field which crosses an alignment
24629         boundary on a !BYTES_BIG_ENDIAN target.
24630
24631 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
24632
24633         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
24634         ntohs.
24635
24636 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
24637                           Jeff Law <law@cygnus.com>
24638
24639         * ginclude/varargs.h (va_dcl): Use word_mode for type of
24640         __builtin_va_list.
24641
24642         * except.c: Include intl.h.
24643         (expand_eh_return): Set current_function_cannot_inline.
24644         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
24645         * function.h (struct function): Add eh_return_stub_label.
24646         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
24647         * Makefile.in (except.o): Depend on intl.h.
24648
24649 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
24650
24651         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
24652         same as offsettable in cases 1 and 2.
24653
24654 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
24655
24656         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
24657         (extlh, extwh): Likewise.
24658
24659 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24660
24661         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
24662
24663 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
24664
24665         * configure.in: Add arm-pe and thumb-pe targets.
24666         * configure: Regenerate.
24667
24668         * thumb.c (arm_naked_function_p): New function: Determines if
24669         a function is naked (has no gcc generated prologue/epilogue).
24670         (is_called_in_ARM_mode): Return true if the func has the
24671         interfacearm attribute.
24672         (output_return): Do not generate a return for naked functions.
24673         (thumb_function_prologue): Do not generate a prologue for
24674         naked functions.
24675         (thumb_expand_prologue): Do not generate a prologue for naked
24676         functions.
24677         (thumb_expand_epilogue): Do not generate an epilogue for naked
24678         functions.
24679         (arm_valid_machine_decl_attribute): New function, copied from
24680         arm.c:  Permit naked and interfacearm attributes.
24681
24682         * config/arm/pe.c: New file: Support code for arm-pe target.
24683         * config/arm/pe.h: New file: Header file for arm-pe target.
24684         * config/arm/tpe.h: New file: Header file for thumb-pe target.
24685         * config/arm/t-thumb-pe: New file: Makefile fragment for
24686         thumb-pe target.
24687
24688 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
24689
24690         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
24691         -fPIC or -fpic is specified.
24692
24693 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
24694
24695         * expr.c (emit_block_move): Use copy_to_mode_reg for
24696         !TARGET_MEM_FUNCTIONS case too.
24697
24698         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
24699         appropriate.
24700         * configure: Rebuilt.
24701         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
24702         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
24703         definitions made redundant by dbxelf.h inclusion.  Delete
24704         lots of definitions related to assembly output that are
24705         specific to the SOM object format.
24706         * pa.c (output_function_prologue): Do not emit the function's
24707         name for OBJ_ELF.
24708         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
24709         * pa-pro.h: Deleted.
24710         * som.h: New file with SOM specific definitions.
24711         * elf.h: New file with ELF specific definitions.
24712
24713         * elfos.h (const_section): Output a tab before assembler directives.
24714         (ctors_section, dtors_section): Likewise.
24715         (ASM_OUTPUT_SECTION_NAME): Likewise.
24716
24717         * pa/pa1.h: Delete unused file.
24718
24719 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
24720
24721         * configure.in (hppa*-hp-hpux11*): New configuration.
24722         * configure: Rebuilt.
24723         * pa/pa-hpux11.h: New file.
24724         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
24725         command line.
24726
24727         * mips.md (leasi, leadi): New patterns.
24728
24729         * expr.c (emit_block_move): Properly handle case where one of the
24730         block move arguments has a queued increment or decrement.
24731         (clear_storage): Similarly.  Fix formatting goof.
24732
24733 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
24734
24735         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
24736         semicolon from the BSD VA_LIST replacement expression.
24737
24738         * fixinc/inclhack.sh: regen
24739         * fixinc/fixincl.x: regen
24740
24741         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
24742         now use the fixincl program.
24743
24744 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
24745
24746         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
24747         case.  Also make the PIC register call_used.
24748
24749         * m68k.h (FINALIZE_PIC): Delete.
24750         * m68k.c (finalize_pic): Delete.
24751
24752 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
24753
24754         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
24755         to memory.
24756
24757 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
24758
24759         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
24760
24761 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
24762
24763         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
24764
24765 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
24766
24767         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
24768
24769 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
24770
24771         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
24772
24773 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
24774
24775         * rs6000.c (output_toc): Always use hex values for floating-point
24776         constants.  Store single-precision values in upper-half of TOC
24777         entry in 64-bit mode.
24778         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
24779         to final constraints.
24780         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
24781         (fctiwz): Improve accuracy of RTL for pattern.
24782
24783 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24784
24785         * expr.c (expand_expr): Allow RTL_EXPR's through the
24786         MAX_INTEGER_COMPUTATION_MODE checks.
24787
24788 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
24789
24790         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
24791         such that MASK_SUPPORT_ARCH is not negative.
24792
24793 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
24794
24795         * loop.c (verify_dominator): Properly handle ADDR_VEC and
24796         ADDR_DIFF_VEC insns that appear inside loops.
24797
24798 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
24799                           Jeff Law <law@cygnus.com>
24800
24801         * rs6000.md (movdf_hardfloat32): Revert previous patch.
24802         Handle LO_SUM the same as offsettable in cases 1 and 2.
24803         * rs6000.c (find_addr_reg): Revert previous patch.
24804
24805 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
24806
24807         * system.h (strstr): New external function declaration.
24808         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
24809         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
24810         * config.in, configure: Rebuilt.
24811
24812 1999-06-24  Tom Tromey  <tromey@cygnus.com>
24813
24814         * gcc.c (main): Read user-specified specs files after computing
24815         additional startfile_prefixes.
24816
24817 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
24818
24819         Revert these two patches:
24820
24821         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24822         * loop.c (strength_reduce): When doing biv->giv conversion, update
24823         reg note of NEXT->insn.
24824
24825         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24826         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
24827         reg_biv_class.
24828         (recombine_givs): Set ix field after sorting.
24829
24830 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24831
24832         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
24833         for the parts of an UNSPEC / UNSPEC_VOLATILE.
24834
24835 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
24836
24837         *fixinc/inclhack.def:  Add fix development commentary
24838         (read_ret_type): reactivate and add selection clause
24839         (zzz_*): tweak output file name to match what is used in hackshell.tpl
24840         *fixinc/{fixincl.x|inclhack.sh}: regen
24841
24842 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
24843
24844         * expr.c (expand_expr): STRIP_NOPS before checking against
24845         MAX_INTEGER_COMPUTATION_MODE
24846         (check_max_integer_computation_mode): Likewise.
24847
24848 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
24849
24850         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
24851
24852 1999-06-22  Jim Wilson  <wilson@cygnus.com>
24853
24854         * expr.c (store_expr): When target is a promoted subreg, return a
24855         promoted subreg as a result.
24856
24857 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
24858
24859         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
24860         coding standards.
24861         (dwarf2out_define): Mark unused parameters appropriately.
24862         (gen_unspecified_parameters_die): Ditto.
24863         (gen_subprogram_die): Fix signed/unsigned warnings.
24864         (gen_variable_die): Ditto.
24865
24866 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
24867
24868         * fixinc/inclhack.def(end_else_label): combined else_label
24869         and endif_label and fixed the sed expression.
24870         *fixinc/{fixincl.x|inclhack.sh}: regen
24871
24872 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
24873
24874         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
24875         'x' when handling non-offsettable addresses
24876
24877 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
24878
24879         * final.c (shorten_branches): Don't try to split an insn that has
24880         been deleted.
24881
24882 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
24883
24884         * config/mips/mips.c (symbolic_expression_p): New function.
24885         (mips_select_rtx_section): Put symbolic expressions in the
24886         data section, not the read-only data section.
24887
24888 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
24889
24890         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
24891
24892 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
24893
24894         * collect2.c (main): Log frame table count.
24895         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
24896         (scan_prog_file) [COFF]: Handle frame tables.
24897
24898         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
24899         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
24900         * alpha/elf.h: Undef them again.
24901         * alpha/vms.h: Remove their definitions.
24902
24903 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24904
24905         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
24906         remove the clobber of r0 and change the REG_UNUSED note to
24907         REG_INC.
24908
24909 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
24910
24911         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
24912         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
24913         fits in HOST_WIDE_INT and one uses union to access a long constant
24914         as double.
24915
24916 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
24917
24918         * sparc.c (sparc_override_options): Don't allow profiling for
24919         code models other than medlow.
24920         (sparc_function_profiler): New function from old FUNCTION_PROFILER
24921         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
24922         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
24923         (sparc_block_profiler): Likewise.
24924         (sparc_function_block_profiler_exit): Likewise.
24925         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
24926         (FUNCTION_BLOCK_PROFILER): Likewise.
24927         (BLOCK_PROFILER): Likewise.
24928         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
24929         (MCOUNT_FUNCTION): New.
24930         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
24931         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
24932         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
24933         (MCOUNT_FUNCTION): New.
24934         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
24935         (BLOCK_PROFILER): Delete.
24936         (MCOUNT_FUNCTION): New.
24937
24938 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
24939
24940         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
24941
24942 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
24943
24944         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24945         Add the macros.
24946
24947         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24948         Ditto.
24949
24950         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24951         Ditto.
24952
24953         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24954         Ditto.
24955
24956 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
24957
24958         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
24959         types.
24960
24961 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
24962
24963         * i386/djgpp.h (LIB_SPEC): New.
24964         (STARTFILE_SPEC): New.
24965
24966         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
24967
24968 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
24969
24970         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
24971         compiler flags.
24972
24973         * system.h (WSTOPSIG): New macro.
24974
24975 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24976
24977         * c-pragma.c (push_alignment): Don't ignore alignments greater than
24978         4 bytes.
24979         (insert_pack_attributes): Take into account member natural
24980         alignment.
24981
24982         * i386/winnt.c (exports_head): New static variable.
24983         (i386_pe_record_exported_symbol): New function.
24984         (i386_pe_asm_file_end): Use.
24985         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
24986         symbols to be emitted at end of assembly.
24987         (ASM_DECLARE_OBJECT_NAME): Likewise.
24988         (ASM_DECLARE_FUNCTION_NAME): Likewise.
24989
24990         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
24991         -iwithprefix.
24992
24993 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
24994
24995         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
24996         in last change.
24997
24998 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
24999
25000         * haifa-sched.c (sched_analyze_1): Use free_list instead of
25001         zapping reg_last_uses directly.
25002         (sched_analyze_2, sched_analyze_insn): Likewise.
25003         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
25004
25005 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
25006
25007         * rs6000.md (movdf_hardfloat32): Use worst case insn length
25008         attributes for cases 1 and 2.
25009
25010 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
25011
25012         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
25013         instead of set.
25014
25015 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
25016
25017         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
25018
25019 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
25020
25021         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
25022         PIC_OFFSET_TABLE_REGNUM for general alloaction.
25023         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
25024         must be stacked if it is used for PIC accesses.
25025         * arm.c (use_return_insn): Handle PIC register specially.
25026         (output_return_instruction): Likewise.
25027         (output_func_{prologue,epilogue}): Likewise.
25028         (output_expand_prologue): Likewise.
25029
25030         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
25031         (*strsi_predec): Renamed from *strqi_predec.
25032         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
25033         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
25034
25035         * arm.c (arm_override_options): Remove warning about PIC code
25036         not being supported.
25037
25038 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
25039
25040         * rs6000.c (find_addr_reg): New function.
25041         * rs6000.h (find_addr_reg): Declare.
25042         (offsettable_addr_operand): Delete.
25043         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
25044         from and stores to GPRs.
25045
25046 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
25047
25048         * alpha.c (alpha_expand_block_move): Use get_insns rather than
25049         gen_sequence as argument to emit_no_conflict_block.
25050
25051 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25052
25053         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
25054         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
25055         *fixinc/fixincl.x: regen
25056         *fixinc/inclhack.sh: regen
25057
25058 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
25059
25060         * added support for -mpcrel (PC relative addressing for m68k)
25061         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
25062         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
25063         * m68k.c (print_operand_address): Handle 32-bit PIC case.
25064         (comments for general_src_operand): Add some explanation
25065         about EXTRA_CONSTRAINTS.
25066         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
25067         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
25068         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
25069         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
25070         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
25071         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
25072         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
25073         if not already set.
25074         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
25075         * m68k.h (TARGET_PCREL): New target flag.
25076         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
25077         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
25078         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
25079         contains a SYMBOL_REF.  Relax this constraint during reload, since
25080         we want to use the predicates, not reload's built-in concept of a
25081         valid memory address, to control what insns need reloading.
25082         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
25083         operands (essentially 'g', 'm', and 's' under normal circumstances).
25084         * m68k.c (print_operand): Cause printing of pc-relative addresses
25085         to include pc register.
25086         (print_operand_address): Ditto.
25087         (general_src_operand): Accept operands that are not only
25088         general_operands, but are also valid when used as a pc-relative
25089         source.
25090         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
25091         (memory_src_operand): Similar, for memory_operands.
25092         (pcrel_address): New predicate to accept the special case of a
25093         pc-relative address.
25094         * m68k.md (many patterns): Rewrite common SImode, HImode, and
25095         QImode insns to accept *_src_operand instead of *_operand where
25096         pc-relative operands can fit.  For example, a pc-relative operand
25097         can be used as a memory source operand for addsi3, but not as a
25098         memory destination.
25099         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
25100
25101 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
25102
25103         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
25104         .thumb_set pseudo op to mark aliases of thumb functions.
25105
25106 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
25107
25108         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
25109         preference to ASM_OUTPUT_DEF, if it is defined.
25110
25111         * tm.texi: Document new, optional target macro
25112         ASM_OUTPUT_DEF_FROM_DECLS.
25113
25114 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25115
25116         * fixincludes: ISCNTL patch
25117         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
25118         (dgux_int_varargs): new for DG/UX
25119         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
25120
25121 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
25122
25123         * invoke.texi (ia32 options): Fix typo.
25124
25125 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25126
25127         * loop.c (strength_reduce): When doing biv->giv conversion, update
25128         reg note of NEXT->insn.
25129
25130 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
25131
25132         * loop.c (move_movables): Note issues with replacing REGs with
25133         SUBREGs.
25134         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
25135
25136 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
25137
25138         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
25139
25140         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
25141         the reference to `mcount' was not correct for the ELF on FreeBSD.
25142
25143 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25144
25145         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
25146         reg_biv_class.
25147
25148         (recombine_givs): Set ix field after sorting.
25149
25150 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
25151
25152         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
25153         to safe to extract a subword out of a REG.
25154
25155 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25156
25157         * sh.md (mulsi3): Don't add a no-op move at the end.
25158
25159 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25160
25161         * cse.c (cse_insn): Don't put hard register source into tables for
25162         the last insn of a libcall.
25163
25164 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25165
25166         * loop.c (strength_reduce): Insert sets of derived givs at every
25167         biv increment, even if it's the only one.
25168
25169 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
25170
25171         * dwarfout.c (add_incomplete_type): New fn.
25172         (output_type): Call it.
25173         (retry_incomplete_types): New fn.
25174         (dwarfout_finish): Call it.
25175
25176         From Eric Raskin <ehr@listworks.com>:
25177         (output_type): Output types for bases.
25178
25179 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
25180
25181         * mips.c (mips_output_conditional_branch): Add `break'
25182         between `default' label and `close braces'.
25183
25184 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
25185
25186         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
25187         specifications and make it realistic.
25188         (LIB_SPEC): Likewise.
25189
25190 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
25191
25192         * config/mips/mips.c (mips_secondary_reload_class): Check for
25193         (PLUS (SP) (REG)) and return appropriate register class.
25194         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
25195         Handle (PLUS (SP) (REG)).
25196         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
25197         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
25198         of emit_insn for tablejump.
25199
25200 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
25201
25202         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
25203         asm_fprintf format string by itself.
25204         (output_function_profiler): Likewise.
25205
25206 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
25207
25208         * combine.c (simplify_logical, case AND): Only call
25209         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
25210         or the constant is positive.
25211
25212 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
25213
25214         * configure.in: Fix typo in rs6000-ibm-aix4 case.
25215         * configure: Regenerate.
25216
25217 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
25218
25219         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
25220         require a sub-version #.
25221         * configure: Rebuilt.
25222
25223 1999-06-14  Robert Lipe  (robertlipe@usa.net)
25224
25225         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
25226
25227 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
25228
25229         * c-typeck.c (process_init_element): Detect excess elements in
25230         char array initializer.
25231
25232 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
25233
25234         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
25235
25236 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
25237
25238         * invoke.texi (Option Summary): Add -fpermissive flag.
25239
25240 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
25241
25242         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
25243         that require PIC code sequences.
25244
25245 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
25246
25247         * configure.in: Add new target: thumb-elf.
25248         * configure: Regenerate.
25249         * config/arm/t-thumb-elf: New file: Makefile fragment for
25250         thumb-elf build.
25251         * config/arm/telf.h: New file: Header file for thumb-elf
25252         build.
25253
25254 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
25255
25256         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
25257         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
25258         initializers is some circumstances.
25259
25260         * fixinc/inclhack.def (endif_label): Add additional selector for
25261         more bogus stuff after #endif statements.
25262         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
25263
25264 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25265
25266         * i386/cygwin.h (SET_ASM_OP): Define.
25267
25268 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25269
25270         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
25271
25272 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25273
25274         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
25275         latter.
25276
25277         * sh.md (ic_invalidate_line_i): Remove second alternative.
25278
25279 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25280
25281         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
25282         test for the presence of valid prototypes.  Delete bypass expr.
25283         (ioctl_fix_ctrl): Correct the selection expression.
25284         (no_double_slash): Correct quoting rules
25285         *fixinc/fixincl.x: regen
25286         *fixinc/inclhack.sh: regen
25287
25288 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
25289
25290         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
25291
25292 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25293
25294         * rs6000.md (movsi_got_internal_mem): Delete.
25295         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
25296         (GOT_TOC_REGNUM): Delete.
25297         (PIC_OFFSET_TABLE_REGNUM): Define.
25298         (FINALIZE_PIC): Disable.
25299         * rs6000.c (rs6000_got_register): New code for fixed pic register.
25300         (rs6000_replace_regno): Delete.
25301         (rs6000_finalize_pic): Likewise.
25302         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
25303
25304 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25305
25306         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
25307         is a note; use <= for the compare; advance P while it is
25308         a NOTE.
25309
25310 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
25311
25312         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
25313         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
25314
25315         * varasm.c (remove_from_pending_weak_list): Verify t->name
25316         is non-NULL before passing it to strcmp.
25317
25318 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25319
25320         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
25321         the typed arguments are not part of a comment
25322         (ioctl_fix_ctrl): Added a purpose comment
25323         *fixinc/fixincl.x: regenerate
25324         *fixinc/inclhack.sh: regenerate
25325
25326 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
25327
25328         * invoke.texi: Add C4x invocation docs.
25329
25330 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
25331
25332         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
25333         Define new macros.
25334         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
25335         TARGET_EXPOSE_LDP.
25336         (c4x_legitimize_reload_address): New function.
25337         * config/c4x/c4x.md: Update docs.
25338
25339 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
25340
25341         * fixincludes: Avoid removing '.'.
25342         * fixinc/fixinc.svr4: Likewise.
25343         * fixinc/fixinc.winnt: Likewise.
25344         * fixinc/inclhack.tpl: Likewise.
25345         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
25346
25347 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25348
25349         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
25350         pattern.
25351         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
25352
25353 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25354
25355         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
25356         correctly.
25357
25358 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
25359
25360         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
25361         * configure: Regenerate.
25362
25363 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
25364
25365         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
25366         values.
25367
25368 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
25369
25370         * fixinc/inclhack.def (avoid_bool): Also catch
25371         "typedef [unsigned] int bool".
25372         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
25373
25374         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
25375         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
25376         * configure: Rebuilt.
25377
25378 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
25379
25380         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
25381         such that we can override its definitions if necessary.
25382         (CPP_SPEC): New define.  Support processor specific predefines via
25383         %(cpp_cpu).
25384         (CC1_SPEC): New define.  Support processor specific compiler
25385         options via %(cc1_cpu).
25386         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
25387         -static.
25388
25389 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25390
25391         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
25392         between sed's -e flag, and the open-quote following it.
25393         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
25394
25395 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
25396                           Jeffrey A Law  (law@cygnus.com)
25397
25398         * varasm.c (assemble_start_function): Remove the function
25399         from the pending weak decls list when we define a function.
25400         (assemble_variable): Similarly for variables.
25401         (weak_finish): Ignore items on the list with a NULL name.
25402         (remove_from_ending_weak_list); New function to "remove" an item
25403         from the pending weak declarations list.
25404
25405 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
25406
25407         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
25408
25409 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
25410
25411         * c-lex.c (GETC): Redefine to call getch.
25412         (UNGETC): Redefine to call put_back.
25413         (putback_buffer): New structure type.
25414         (putback): New static structure.
25415         (getch): New function.
25416         (put_back): New function.
25417         (yylex): Replace unused bytes from bad multibyte character.
25418
25419 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
25420
25421         * cpplib.c (do_define): Cast `alloca' return value.
25422         (do_include, do_undef, do_pragma): Likewise.
25423         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
25424         values.
25425         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
25426         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
25427
25428 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
25429
25430         * sparc.md (abstf2): This should be an expand.
25431         (split after abstf2_notv9): Fix mode.
25432         (abstf2_hq_v9): New pattern.
25433         (abstf2_v9): Only use when no hard quad.
25434         (absdf2_v9): Fix if target is not the same as source.
25435         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
25436         Add correct output constraints.
25437
25438 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
25439
25440         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
25441         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
25442
25443 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
25444
25445         * mips.h (mips_output_conditional_branch): New function.
25446         (mips_adjust_insn_length): Likewise.
25447         (ASSEMBLER_SCRATCH_REGNUM): New macro.
25448         (ADJUST_INSN_LENGTH): Likewise.
25449         * mips.c (print_operand): Add `F' and `W' for floating-point
25450         comparison opcodes.
25451         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
25452         are now in bytes.
25453         (mips_adjust_insn_length): New function.
25454         (mips_output_conditional_branch): New function.
25455         * mips.md (length): Adjust attribute definition to handle
25456         conditional branches.  Change lengths to bytes, rather than
25457         instructions throughout.  Remove length attribute from
25458         instructions whose length is four bytes, and rely on the default
25459         instead.
25460         (dslot): Fix typo in comment.
25461         Reword conditional branch patterns to use
25462         mips_output_conditional_branch.
25463
25464 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
25465
25466         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
25467         (LIB_SPEC): Likewise.
25468         Link with -lprof1_r for -g/-pg.
25469
25470 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
25471
25472         * loop.c (check_dbra_loop): Fix change of Jan 19.
25473
25474 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
25475
25476         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
25477         (STARTFILE_SPEC):  Define, override the svr4.h version.
25478         (ENDFILE_SPEC):  Likewise.
25479
25480 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
25481
25482         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
25483         * fixinc/fixincl.x: Regenerated.
25484         * fixinc/inclhack.sh: Regenerated.
25485
25486 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25487
25488         * sh.c (barrier_align): Don't return early for normal branch/barrier
25489         when optimizing for SH2.
25490
25491 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
25492
25493         * i386/udk.h (LINK_SPEC): Correct linker search path for
25494         system libraries.
25495
25496 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25497
25498         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
25499         (braf_label_ref_operand): Delete.
25500         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
25501         * sh.md (casesi_jump_2): Operand1 is now the inside of a
25502         label_ref, and has no predicate.
25503         The patten has a predicate to guard against invalid substitutions.
25504         (dummy_jump): Delete.
25505         (casesi): Update use of casesi_jump_2.
25506
25507 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25508
25509         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
25510         *fixinc/fixincl.x: regenerate
25511         *fixinc/inclhack.sh: regenerate
25512
25513 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
25514
25515         * dwarf2out.c (add_incomplete_type): New fn.
25516         (gen_struct_or_union_type_die): Call it.
25517         (retry_incomplete_types): New fn.
25518         (dwarf2out_finish): Call it.
25519
25520 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
25521
25522         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
25523         current block starts with a CODE_LABEL and ends with a CALL and
25524         we can not find all the argument setup instructions for the CALL.
25525
25526 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
25527
25528         Revert this change:
25529         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
25530         something is a candidate for optimize_bit_field_compare.
25531
25532 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25533
25534         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
25535
25536 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
25537
25538         * alpha.c (override_options): Thinko in last patch.
25539
25540         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
25541         (LIB_SPEC): Recognize -pthread.
25542
25543 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
25544
25545         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
25546         definition in config/arm/coff.h
25547         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
25548
25549 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
25550
25551         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
25552         fixes that need "file=xxx\n" prepended before invocation
25553         (start_fixer - new): starting the fixer process is complex enough
25554         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
25555         (process): uses the new routine; omit usage of putenv()
25556         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
25557         * fixinc/fixincl.x: regenerate
25558
25559 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
25560
25561         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
25562         and version #s (1.1 -> 2.96) as needed.
25563         * README.g77: Kill way out of date file in the toplevel directory.
25564
25565 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
25566
25567         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
25568         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
25569         * configure: Rebuilt.
25570         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
25571         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
25572         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
25573         (SWITCH_TAKES_ARG): Likewise.
25574         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
25575         * config/t-freebsd: Moved from config/i386/ so it can used for all
25576         FreeBSD targets.
25577
25578 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
25579
25580         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
25581
25582 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
25583
25584         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
25585         * configure: Rebuilt.
25586
25587 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
25588
25589         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
25590         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
25591         * rs6000/rs6000.c (rs6000_file_start): Use putc.
25592         (rs6000_output_load_toc_table): Same.
25593         (output_prolog, output_mi_thunk): Same.
25594         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
25595         (ASM_GLOBALIZE_LABEL): Use putc.
25596
25597 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
25598
25599         * alpha.md (reload_*_help): New patterns and splitters.
25600         (reload_*): Use them.
25601         (mov[qh]i): Likewise.
25602
25603 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
25604
25605         * cccp.c (handle_directive): Handle backslash-newlines in quoted
25606         strings correctly.
25607
25608 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
25609
25610         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
25611
25612 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
25613
25614         * flow.c (mark_regs_live_at_end, insn_dead_p,
25615         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
25616         and HARD_FRAME_POINTER_REGNUM special treatment if reload
25617         hasn't run or the frame pointer is needed.
25618         * haifa-sched.c (attach_deaths): Likewise.
25619         * sched.c (attach_deaths): Likewise.
25620
25621 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
25622
25623         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
25624         calculate_can_reach_end returns nonzero.
25625
25626         * configure.in (native gas tests): Search for an assembler in the
25627         same manner that the installed compiler will.
25628         * configure: Rebuilt.
25629         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
25630
25631         * alias.c (find_base_term): Improve handling of addresses
25632         constructed from binary operations.
25633
25634 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
25635
25636         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
25637
25638 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
25639
25640         * function.h (cleanup_label, frame_offset): Declare.
25641         (tail_recursion_label, tail_recursion_reentry): Likewise.
25642         (arg_pointer_save_area, rtl_expr_chain): Likewise.
25643         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
25644         (tail_recursion_label, tail_recursion_reentry): Likewise.
25645         (arg_pointer_save_area, rtl_expr_chain): Likewise.
25646
25647 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
25648
25649         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
25650         defined.
25651         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
25652         (MAX_OFILE_ALIGNMENT): Define.
25653
25654 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
25655
25656         * fixincl.c: Replace local include scheme with #includes of
25657         gansidecl.h and system.h.
25658         * procopen.c:  Likewise.
25659         * server.c:  Likewise.
25660
25661 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
25662
25663         * i386/t-dgux (EXTRA_PARTS): Add crti.o
25664         (crti.o): Add build rule and dependencies.
25665         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
25666
25667 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25668
25669         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
25670         (LIB_LINUX_SPEC): Likewise.
25671         (LIB_LINUX_SPEC): Add support for -pthread
25672         (CPP_OS_LINUX_SPEC): Likewise.
25673         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
25674         specified.
25675
25676 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
25677
25678         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
25679         conditional move.
25680         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
25681         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
25682         for IEEE math and CC_FCOMI.
25683         (put_jump_code): No IEEE if CC_FCOMI is set.
25684
25685 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
25686
25687         * fold-const.c (fold_truthop): Make the field reference unsigned
25688         when converting a single bit compare.
25689
25690 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25691
25692         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
25693
25694 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
25695
25696         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
25697         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
25698         version did.
25699
25700         * reload.c (push_reload): Do not call remove_address_replacements
25701         when presented with identical optional reloads.
25702
25703 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
25704
25705         * alpha.h (MASK_FIX, TARGET_FIX): New.
25706         (MASK_*): Reorganize constants.
25707         (CPP_AM_FIX_SPEC): New.
25708         (TARGET_SWITCHES): Add FIX.
25709         (EXTRA_SPECS): Likewise.
25710         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
25711         (SECONDARY_MEMORY_NEEDED): Likewise.
25712         (REGISTER_MOVE_COST): Likewise.
25713         * alpha.c (override_options): Add FIX support.  Always use
25714         ALPHA_TP_PROG for ev6.
25715         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
25716         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
25717         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
25718
25719 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
25720
25721         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
25722         something is a candidate for optimize_bit_field_compare.
25723
25724 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
25725
25726         * gcc.texi (Passes): Document branch-shortening.
25727         * invoke.texi (Debugging Options): Document the fact that `-dp'
25728         outputs length information for instructions.
25729
25730 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
25731
25732         * flow.c: Revert previous delta.
25733
25734 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
25735
25736         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
25737         FRAME_POINTER_REGNUM.
25738         (mark_set_1): Ditto.
25739         (mark_used_regs): Ditto.
25740
25741 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
25742
25743         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
25744         (GOT_PCREL): New macro.  Define to 1 if not already defined.
25745         * arm/elf.h (GOT_PCREL): Define to 0.
25746         * arm.c (arm_finalize_pic): Take into account the setting of
25747         GOT_PCREL.
25748
25749 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
25750
25751         * output.h (STRIP_NAME_ENCODING): Provide default definition.
25752         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
25753
25754         * flow.c (mark_set_1): Do not record BLKmode stores as dead
25755         store elimination candidates.
25756
25757 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
25758
25759         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
25760         TARGET_GAS.
25761
25762 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
25763
25764         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
25765         Add use of x-aix41-gld.
25766
25767 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
25768
25769         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
25770         (ASM_OUTPUT_DESTRUCTOR): Define.
25771
25772 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
25773
25774         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
25775         last CODE_LABEL in a loop if we have previously passed a jump
25776         to the top of the loop.
25777
25778 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
25779
25780         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
25781         applying Philip's patch.
25782
25783 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
25784
25785         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
25786         are not VAR_DECLs.
25787
25788 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
25789
25790         * loop.c (strength_reduce): Grow reg_single_usage as needed.
25791
25792 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
25793
25794         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
25795         Also remove a useless comment.
25796
25797 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
25798
25799         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
25800
25801 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
25802
25803         * collect2.c (main): Only generate import or export file and add
25804         to link arguments if non-empty.  Use xmalloc not alloca.
25805         (write_{export,import}_file): Delete.
25806         (write_aix_file): New function.
25807         (locatelib): Use xmalloc not malloc.
25808         (GCC_OK_SYMBOL): Do not check type if aix64.
25809
25810 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
25811
25812         Based on patch by Scott Bambrough and Pat Beirne:
25813         * config/arm/arm.c (making_const_table): New variable.
25814         * config/arm/arm.h (making_const_table): Declare.
25815         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
25816         appropriate.
25817         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
25818         Keep track of when we are building the constant table.
25819
25820 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
25821
25822         * config/arm/arm.c (arm_override_options): Fix erroneous warning
25823         message.
25824
25825 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
25826
25827         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
25828         defined.
25829
25830 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
25831
25832         * tm.texi (FUNCTION_ARG): Correct description of a stack element
25833         in a PARALLEL.
25834
25835 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
25836
25837         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
25838
25839 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25840
25841         * rs6000.c (output_mi_thunk): Enable full support again.
25842
25843 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25844
25845         * sh.h (BRANCH_COST): Define.
25846
25847 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
25848
25849         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
25850
25851 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
25852
25853         * function.c (assign_stack_local): Align stack slot propertly.
25854         (assign_outer_stack_local): Likewise.
25855
25856 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
25857
25858         * expr.h (lang_expand_constant): Declare.
25859         * toplev.c (lang_expand_constant): Define it.
25860         * varasm.c (output_constant): Use it.
25861
25862 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25863
25864         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
25865         Change function definitions to K&R style.
25866
25867 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25868
25869         * fixinc/fixincl.c: We must not ignore SIGCLD now.
25870
25871 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
25872
25873         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
25874         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
25875         (several places): omit static initialization
25876         (process): use single fd, since only the read fd is used
25877         * fixinc/gnu-regex.c: define 'const' away, if not supported
25878         * fixinc/procopen.c(several places): omit static initialization
25879         * fixinc/server.c: define 'volitile' away, if not supported
25880
25881 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
25882
25883         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
25884         asm_fprintf and %L to generate the label name.
25885         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
25886         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
25887
25888 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
25889
25890         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
25891         insn for a conditional jump can not be found.
25892
25893 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
25894
25895         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
25896         on variables in specific sections other than .sbss and .sdata.
25897
25898 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
25899
25900         * stmt.c (expand_return): Call start_cleanup_deferral and
25901         end_cleanup_deferral around conditional code.
25902
25903 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25904
25905         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
25906         filename lists.  Utilizes new "krstr" AutoGen function.
25907         * fixinc/fixincl.x: Rebuilt.
25908
25909 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
25910
25911         * i386.c (output_float_compare): Avoid GNU-C extensions.
25912
25913 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
25914
25915         * version.c: Bump to distinguish mainline tree from the
25916         gcc-2.95 branch.
25917
25918 See ChangeLog.1 for earlier changes.
25919
25920