OSDN Git Service

* builtins.c (expand_builtin_memcmp): Do expansion even with
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2
3         * builtins.c (expand_builtin_memcmp): Do expansion even with
4         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
5
6         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
7         stack is propertly aligned; add sanity checking for aligned
8         stack pointer.
9         (expand_library_call_value_1): Add sanity checking for aligned
10         stack pointer.
11
12 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
13  
14         * calls.c (emit_library_call_value_1): Change 3rd arg to
15         locate_and_pad_parm to disregard the setting of partial.
16
17 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18
19         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
20
21         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
22         CALL_INSN from the normal case.
23
24 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
25
26         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
27         New global variables.
28         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
29         adjustment.
30         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
31         Declare,
32         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
33          TARGET_ADD_ESP_8): New macros.
34         * i386.md: Add peep2s to convert esp adjustments to push and pop
35         instructions.
36         (pushsi_prologue, popsi_epilogue): New patterns.
37
38 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
39
40         * real.c (toe64): Remove stale #endif from the last change.
41
42 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
43
44         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
45         * real.c (toe64): Revert previous change.
46
47 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
48
49         * objc/objc-act.c: Include ggc.h.
50         (objc_tree_index, objc_global_trees): Convert most of the
51         static tree variables into a static array with previous names
52         as defines.
53         (objc_ellipsis_node): New variable.
54         (lang_init): Call objc_act_parse_init and c_parse_init.
55         Create objc_ellipsis_node.
56         (build_selector_translation_table): Use objc_ellipsis_node instead
57         of (tree)1.
58         (hack_method_prototype): Likewise.
59         (get_arg_type_list): Likewise.
60         (start_method_def): Likewise.
61         (continue_method_def): Likewise.
62         (gen_method_decl): Likewise.
63         (ggc_mark_imp_list): New function.
64         (ggc_mark_hash_table): New function.
65         (objc_act_parse_init): New function.
66         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
67         * c-parse.in (c_parse_init): For objc add roots of objc specific
68         local tree variables.
69         * objc/objc-parse.y: Rebuilt.
70         * objc/objc-parse.c: Rebuilt.
71         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
72
73 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
74
75         * cse.c (delete_trivially_dead_insns): Also delete insns
76         that copy a register to itself where the destination is
77         a strict_low_part.
78
79 2000-04-11  Richard Henderson  <rth@cygnus.com>
80
81         * flow.c (struct propagate_block_info): Add new_dead, new_live.
82         (propagate_block): Initialize them.  Use them in parallel instead
83         of one tmp variable, ie revert much of the 0408 and 0407 functional
84         changes, but keep the structural changes.
85         (mark_set_regs): Take new_dead from propagate_block_info instead.
86         (mark_set_1, mark_set_reg): Likewise.
87         (mark_used_regs): Likewise with new_live.
88         (mark_used_reg): Likewise.  Revert 0408 change.
89
90 2000-04-11  Nick Clifton  <nickc@cygnus.com>
91
92         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
93         restriction.
94         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
95
96 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
97
98         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
99         const section to output a CONSTRUCTOR based on the same conditions
100         used for VAR_DECLs.
101
102 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
103
104         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
105         * pa/pa-protos.h (output_call): Add additional argument indicating
106         if the call is a sibling/tail call.
107         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
108         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
109         (function_arg, function_arg_partial_nregs): Likewise
110         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
111         (emit_move_sequence): Zero extend certain constants as needed
112         for TARGET_64BIT.
113         (compute_zdepdi_operands, output_64bit_and): New functions.
114         (output_64bit_ior, function_arg): Likewise.
115         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
116         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
117         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
118         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
119         (output_bvb): Likewise.
120         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
121         (output_call): New argument 'sibcall'.  Generate sibcall sequences
122         as needed.
123         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
124         (ouput_arg_descriptor): Do not emit argument descriptors for
125         TARGET_64BIT.
126         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
127         defined.
128         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
129         (FUNCTION_OK_FOR_SIBALL): Define.
130         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
131         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
132         (CPP_SPEC): Use new spec infrastructure.
133         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
134         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
135         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
136         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
137         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
138         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
139         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
140         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
141         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
142         (FUNCTION_ARG); Call out to C code.
143         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
144         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
145         (MIN_UNITS_PER_WORD): Likewise.
146         * pa/pa.md (cmpdi): New expander.
147         (scc patterns, movstrsi): Not available for TARGET_64BIT.
148         (64bit conditional arithmetic): New patterns.
149         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
150         (movsicc): Not available if modes on all the operands to not match.     
151         (movdicc): New expander and associated patterns.
152         (64bit branches): New patterns.
153         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
154         (pre_ldd, post_std): New patterns.
155         (64bit addil, load low part): New patterns.
156         (special movsf constant): Not available for TARGET_64BIT.
157         (movsf, movdf expanders): Force constants into memory.
158         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
159         (64bit movdf/movdi patterns): New patterns.
160         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
161         for TARGET_64BIT.
162         (extendqidi2, extendhidi2, extendsidi2): Similarly.
163         (adddi3 expander): Allow "arith_operand" for second input.
164         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
165         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
166         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
167         (muldi3): New expander for TARGET_64BIT.
168         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
169         for TARGET_64BIT.
170         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
171         patterns for TARGET_64BIT.
172         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
173         patterns for TARGET_64BIT.
174         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
175         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
176         (sibcall_epilogue): New expander.
177         (casesi): Tweak for TARGET_64BIT.
178         (call expanders): Set & use the outgoing argument pointer.  Use the
179         64bit call patterns as needed. Add additional arg to output_call.
180         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
181         (sibcall, sibcall_internal_symref): New expanders.
182         (sibcall_value, sibcall_value_internal_symref
183         (interspace_jump): Turn into an expander + matching patterns.
184         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
185         * pa/pa64-regs.h: Eliminate trigraph sequences.
186         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
187
188 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
189
190         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
191         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
192         cpp_token with cpp_ttype everywhere.
193         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
194         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
195         CPP_BUF_COL.  Line and column numbers are unsigned int, not
196         long.
197         * cpplex.c (cpp_buf_line_and_col): Delete.
198         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
199         'long lineno' to 'unsigned int lineno'.
200         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
201
202 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
203
204         * extend.texi: ISO C99 is not a draft anymore.
205         * invoke.texi: ISO C++ is not a draft anymore.
206         * cpp.texi: __cplusplus is required by the ISO standard.
207
208         * extend.texi (-fthis-is-variable): Undocument.
209         * flags.h (warn_template_debugging): Remove declaration.
210         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
211         -Wenum-clash, -Wtemplate-debugging): Undocument.
212
213 2000-04-10  Nick Clifton  <nickc@cygnus.com>
214
215         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
216         integer.
217         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
218         integer.
219         (ARM_SIGN_EXTEND): Use HOST_UINT.
220         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
221         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
222         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
223         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
224
225         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
226         (arm_gen_constant): Use HOST_UINT.
227         (arm_canonicalize_constant): Use HOST_UINT.
228         (arm_reload_in_hi): Use HOST_UINT.
229         (arm_reload_out_hi): Use HOST_UINT.
230         (output_multi_immediate): Use HOST_UINT.
231         (int_log2): Use HOST_UINT.
232         (arm_poke_function_name): Use HOST_UINT.
233         (arm_output_epilogue): Use arm_volatile_func().
234         (output_thumb_prologue): Use arm_strip_name_encoding().
235         
236 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
237
238         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
239         of sequence point problems.
240
241 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
242
243         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
244         Recomment.
245         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
246
247 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
248
249         * sbitmap.h: Whitespace changes and use upper-case macro args.
250         (struct simple_bitmap_def): All sizes now unsigned.
251         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
252         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
253         (sbitmap_vector_alloc): Parms and local vars now unsigned.
254         (sbitmap_zero): Cast bzero arg to PTR.
255         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
256         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
257         loop to make structure clearer.
258         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
259         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
260         (sbitmap_a_and_b_or_c): Likewise.
261         (sbitmap_intersection_of_succs): Minor cleanups.
262         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
263         (sbitmap_union_of_preds): Likewise.
264         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
265         (debug_sbitmap): New function.
266         
267         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
268         * c-typeck.c (convert_for_assignment): Likewise.
269
270         * expmed.c (init_expmed): Don't free objects we make.
271         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
272
273         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
274         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
275
276         * gcse.c (expr_hash_table_size): Now unsigned.
277         (compute_ae_gen): Local variable `i' now unsigned.
278         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
279         (compute_transout, hoist_code): Likewise.
280         (compute_local_properties): Likewise, also hash_table_size.
281         (alloc_expr_hash_table): N_INSNS now unsigned.
282         (delete_null_pointer_checks): Mark arg F as unused.
283
284         * regrename.c: Minor cleanups, including chang some variables
285         to unsigned int.
286
287 2000-04-10  Neil Booth  <NeilB@earthling.net>
288
289         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
290         than GETC ().
291         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
292
293 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
294
295         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
296         __classof__, and __headof__ from the list of gnu keywords.
297         (-ansi): Remove -foperator-names from list of implied options. 
298         Do not call it ANSI C++.
299         (-foperator-names): Document as -fno-operator-names.
300
301 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
302
303         * cpphash.c (timestamp): Delete.
304         (del_HASHNODE): If type is T_MCONST, free value.cpval.
305         (special_symbol): Remove unnecessary braces.  Remove
306         T_VERSION.  Treat T_STDC like T_CONST unless
307         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
308         when one is encountered, then convert them into T_MCONST
309         nodes.
310         * cppinit.c (builtin_array): version_string is T_MCONST.
311         __STDC__ has a "1" in its cpval.  Don't have a terminator
312         entry.  Clean up which entries are dumped.
313         (initialize_builtins): Only __STDC__ gets the special
314         -traditional treatment.  Count the length of builtin_array.
315         Render version_string here.
316         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
317         * cpplib.h (struct cpp_reader): Remove timebuf. 
318
319 2000-04-09  Richard Henderson  <rth@cygnus.com>
320
321         * genrecog.c (pred): Update comparison_operator for the unordered
322         operators.
323
324         * config/i386/i386.c (no_comparison_operator): Disallow unordered
325         operators.
326         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
327         (uno_comparison_operator): New.
328         (put_condition_code): Handle UNORDERED/ORDERED.
329         (unsigned_comparison): Likewise.
330         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
331         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
332         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
333         update all callers.  Handle all 8 unordered operators.
334         (ix86_expand_setcc): Lose the unordered argument, update all callers.
335         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
336         * config/i386/i386.h (PREDICATE_CODES): Update.
337         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
338         (ix86_expand_branch, ix86_expand_setcc): Update.
339         * config/i386/i386.md (sunordered, sordered): New.
340         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
341         (bunordered, bordered): New.
342         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
343         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
344         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
345
346 2000-04-09  Philip Blundell  <philb@gnu.org>
347
348         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
349         
350 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
351
352         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
353         fix_truncxfhi2): New patterns.
354         * i386.c (output_fix_trunc): Handle converting to HImode.
355
356 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
357
358         * ssa.c (convert_to_ssa): Eliminate dead code when calling
359         life_analysis.  
360         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
361         (for_each_successor_phi): Change parameter to basic_block.
362         (coalesce_regs_in_successor_phi_nodes): Likewise.
363         (coalesce_regs_in_copies): Likewise.
364         (compute_coalesced_reg_partition): Use basic_block instead of index.
365         * rtl.h (convert_to_ssa): Delete.
366         (convert_from_ssa): Likewise.
367         (successor_phi_fn): Likewise.
368         (for_each_successor_phi): Likewise.
369         (in_ssa_form): Likewise.
370         * basic-block.h (convert_to_ssa): Moved from rtl.h.
371         (convert_from_ssa): Likewise.
372         (successor_phi_fn): Likewise.
373         (in_ssa_form): Likewise.
374         (for_each_successor_phi): Likewise.  Change parameter to basic_block. 
375         * flow.c (calculate_global_regs_live): Pass a basic_block to
376         for_each_successor_phi.
377
378 2000-04-08  Richard Henderson  <rth@cygnus.com>
379
380         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
381         was modified in the current insn.
382
383 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
384
385         * arm/thumb.md: Delete.
386         * arm/thumb-protos.h: Delete.
387
388 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
389
390         Merge changes from merged-arm-thumb-backend-branch onto trunk.
391
392         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
393
394         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
395         into branch.
396
397         * arm.md (nop): Use the standard RTL expression.  Don't code as a
398         define_expand.
399         (*arm_nop, *thumb_nop): Delete.
400
401         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
402         constants.  Use casts instead.
403         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
404         output_multi_immediate, arm_poke_function_name): Likewise.
405         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
406         MASK_RETURN_ADDDR): Likewise.
407
408         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
409
410         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325 
411         into branch.
412         
413         * arm.md (eh_epilogue): New function.
414         * arm.h (struct machine_function): Move to here ...
415         * arm.c: ... from here.
416         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
417         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
418         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
419
420         2000-03-30  Nick Clifton  <nickc@cygnus.com>
421
422         * config/arm/semi.h (ASM_SPEC): Restore definition.
423         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
424
425         * config/arm/elf.h (ASM_SPEC): Restore definition.
426         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
427
428         * config/arm/arm.h (ASM_SPEC): Remove definition.
429         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
430
431         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
432
433         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
434
435         2000-03-24  Nick Clifton  <nickc@cygnus.com>
436
437         Various formating tidyups, elimination of compile time
438         warnings and synchronisation with internal sources:
439         
440         * config/arm/arm-protos.h (assemble_align): Add prototype.
441         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
442         (gen_comapre_reg): Rename to arm_gen_compare_reg.
443         (arm_return_addr_rtx): Rename to arm_return_addr.
444
445         * config/arm/arm.c: Include except.h.
446         Define shorter typenames for strict minipool_node and struct
447         minipool_fix.
448         (arm_return_in_memory): For WinCE return all structures <= 32 bits
449         in memory.
450         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
451         (gen_comapre_reg): Rename to arm_gen_compare_reg.
452
453         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
454         already defined.
455         (ASM_SPEC): Define if not already defined.
456         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
457
458         * config/arm/arm.md: Rename references to gen_rotated_half_load to
459         arm_gen_rotated_half_load, and references to gen_comapre_reg to
460         arm_gen_compare_reg.
461         (indirect_jump):  Only accept register operands.
462         (load_indirect_jump): Keep this pattern since combine can generate
463         it.
464
465         * config/arm/coff.h: Include aout.h.
466         (MULTILIB_DEFAULTS): Only define if not already defined.
467
468         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
469         into arm.h (so that COFF ports can support thumb based aliases).
470         (ASM_SPEC): Move definition into arm.h
471         
472         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
473         redundant apcs spec.
474         (ASM_SPEC): Move definition to arm.h
475
476         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
477
478         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
479         for entries in the .bss section
480
481         2000-03-23  Nick Clifton  <nickc@cygnus.com>
482
483         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
484         to thumb_far_jump_used_p.
485
486         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
487         single integer parameter.
488
489         * config/arm/arm.c (struct machine_function): Add two new
490         fields, 'far_jump_used' and 'arg_pointer_live'.
491         (thumb_far_jump_used_p): Once the decision has been made that
492         far jumps might be used, always return true.
493         If being called from the initial elimination offset macro then
494         do not bother to perform the test if the arg pointer is not
495         being used.
496         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
497         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
498
499         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
500
501         * arm.c (output_return_instruction): Handle more cases where we can
502         return from a function with an ldr instruction.
503         (arm_output_epilogue): Likewise.
504
505         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
506         if we need to push a large stack frame and there are no callee-saved
507         registers.
508
509         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
510         in ARM code if the frame pointer has been eliminated.
511
512         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
513         unspec_volatile arguments to avoid duplicates.
514         (consttable_1, consttable_2): Fixes for big-endian mode.
515
516         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
517         as appropriate.
518
519         Re-write constant pool code.
520         * arm.c (minipool_node, minipool_fix): New types.
521         (minifix): Delete type.
522         (arm_add_minipool_constant): Delete.
523         (arm_compute_minipool_offsets, arm_find_barrier, 
524         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
525         (get_jump_table_size): Now returns HOST_WIDE_INT.
526         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
527         functions.
528         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
529         (assign_minipool_offsets, arm_print_value): Likewise.
530         (dump_minipool): Rewrite.
531         (arm_barrier_cost): New function.
532         (create_fix_barrier): New function.
533         (push_minipool_barrier): New function.
534         (push_minipool_fix): Record additional information about the fixup 
535         required.
536         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
537         check the mode of what needs fixing.
538         (arm_reorg): Rewrite.
539
540         2000-03-08  Nick Clifton  <nickc@cygnus.com>
541
542         * config/arm/arm.md (indirect_jump): Force constant addresses into
543         a register. 
544
545         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
546
547         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
548
549         2000-02-24  Nick Clifton  <nickc@cygnus.com>
550
551         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
552         adjust is word aligned.
553         (thumb_expand_epilogue): Make sure that stack adjust is word
554         aligned.
555
556         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
557         
558         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
559
560         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
561         pointer relative addresses.
562
563         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
564
565         * arm.c (find_barrier): Find the last barrier within the allowed 
566         range.
567
568         2000-02-09  Nick Clifton  <nickc@cygnus.com>
569
570         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
571
572         2000-02-09  Nick Clifton  <nickc@cygnus.com>
573
574         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
575         ARM_FUNCTION_PROFILER. 
576
577         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
578         ARM_FUNCTION_PROFILER. 
579
580         * config/arm/linux-oldld.h: Imported from mainline sources.
581
582         2000-02-07  Nick Clifton  <nickc@cygnus.com>
583
584         * config/arm/lib1funcs.asm: Merge in thumb functions from
585         lib1thumb.asm.
586         
587         * config/arm/lib1thumb.asm: Delete.
588
589         2000-02-04  Nick Clifton  <nickc@cygnus.com>
590
591         * config/arm/arm.c: Sychronised with current Red hat local
592         sources. 
593         * config/arm/arm.h: Ditto.
594         * config/arm/arm-protos.h: Ditto.
595
596         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
597
598         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
599
600         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
601         byte stores.
602
603         2000-02-02  Nick Clifton  <nickc@cygnus.com>
604
605         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
606
607         * config/arm/arm.md (epilogue): Fix rtl checking abort because
608         (return) was emited using an emit_insn() call. 
609         
610         2000-01-31  Nick Clifton  <nickc@cygnus.com>
611
612         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
613         thumb stack frame.
614         (thumb_exit): Move frame pointer back into hard frame pointer
615         register if backtracing is being used.
616
617         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
618
619         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113 
620         into branch.
621
622         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
623
624         * config/arm/arm.md (neg_pool_offset): Provide default for new
625         attribute.
626         (arm_movsi_insn): Add neg_pool_offset attribute.
627         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
628         rtx for the insn that starts the scan and an unsigned long for its
629         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
630         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
631         instructions in *PINSERTED.
632         (struct minipool_fixup): Add MIN_ADDRESS elt.
633         (sort_fixups): Compute it.
634         (arm_reorg): Changes to support inserting pools before the insn to be
635         fixed up.
636
637         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
638
639         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
640         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
641         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
642
643         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
644
645         * config/arm/semi.h (TARGET_VERSION): Do not define if already
646         defined.
647         (TARGET_DEFAULT): Do not define if already defined.
648
649         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
650
651         * config/arm/arm.md (anddi3): Allow disjoint source operands.
652         (iordi3): Allow disjoint source operands.
653         (xordi3): Allow disjoint source operands.
654         (negdi2): Permit construction for ARM and Thumb.
655         (arm_negdi2): Renamed version of old negdi2 pattern.
656         (thumb_negdi2): New pattern: Only permit non-overlapping
657         source and destination.
658
659         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
660
661         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
662         scratch low register so that it will not be deleted.
663
664         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
665
666         * config/arm/pe.h (ARM_PE): Define.
667         
668         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
669         interfacearm attribute if this is a PE toolchain.
670         (output_return_instruction): Do not emit anything if the function
671         has the naked attribute set.
672         (is_called_in_ARM_mode): If the function has the interfacearm
673         attribute then return true.
674         (thumb_expand_prologue): Do not generate a prologue for naked
675         functions.
676         (thumb_expand_epilogue): Do not generate an epilogie for a naked
677         function.
678         (output_thumb_prologue): Do not bother if the function is naked.
679         Strip PE encoding from function name before emitting.
680
681         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
682
683         * arm.md (pic_load_addr): Fix constraints.
684
685         * arm.md (casesi_insn): Fix mis-applied patch.
686
687         * arm.md ("core" function unit): Add rules for single- and
688         multi-cycle insns.
689         (All TARGET_THUMB patterns): Add "type" attribute information
690         where needed.
691         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
692         the following insn is a CALL.
693
694         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
695         pointer.
696         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the 
697         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
698         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
699         
700         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
701
702         * config/arm/linux-gas.h: oops - this file was missed out when the
703         branch was created...
704
705         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
706
707         * thumb.c: Deleted.  Move contents to ...
708         * arm.c: ... here.
709         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
710         rule for thumb.o
711         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
712         * configure: Regen.
713
714         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
715         declare a prototype for asm_output_align();
716
717         * arm.c (thumb_condition_code): Delete.
718         (arm_print_operand): Always use arm_condition_code array.
719
720         * arm.c (thumb_return_addr_rtx): Delete.
721         (arm_save_machine_status, arm_restore_machine_status): Delete.
722         (arm_init_machine_status, arm_mark_machine_status): New functions.
723         (arm_init_expanders): Update accordingly.
724         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
725         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
726         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
727         
728         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
729
730         * configure.in : Fix arm-*-aout target to use new t-arm-aout
731         script. 
732         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
733         targets.
734
735         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
736
737         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
738         stack backtrace structure.
739
740         * config/arm/arm-protos.h: Add prototypes for functions defined in
741         arm/pe.h.
742         
743         * config/arm/arm.c (arm_override_options): Fix selection of 
744         attributes of default processor.
745         
746         * config/arm/coff.h: Delete needless #include.
747         
748         * config/arm/pe.c: Delete unused code.
749         
750         * config/arm/pe.h (CPP_DEFINES): Delete
751         (SUBTARGET_CPP_SPEC): Define.
752         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
753         
754         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
755
756         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
757
758         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
759         updated.
760         (CAN_DEBUG_WITHOUT_FP): Define.
761         (FIXED_REGISTERS): Make r11 call-saved.
762         (CALL_USED_REGISTERS): Likewise.
763         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
764         (FRAME_POINTER_REQUIRED): Correct logic for determining when a 
765         frame-pointer is required.
766         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
767         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
768         if the target normally needs a stack frame in non-leaf functions.
769         (use_return_insn): Correct logic for determining when a return
770         instruction can be used.
771         (output_return_instruction): Handle the frame-pointer register as
772         a normal register when not TARGET_APCS_FRAME.
773         (arm_output_prologue): Likewise.
774         (arm_output_epilogue): Likewise.
775         (output_func_epilogue): Likewise.
776         (arm_expand_prologue): Likewise.
777         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
778
779         * arm.c (use_return_insn): No need to check floating point regs if
780         TARGET_SOFT_FLOAT.
781         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
782         the code of value stored in the minipool array.
783         (arm_add_minipool_constant): Likewise.
784
785 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
786
787         * basic-block.h (conflict_graph_enum_fn): K&R fix.
788
789 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
790
791         * tree.c (tree_expr_nonnegative_p): New function.
792
793         * tree.h (tree_expr_nonnegative_p): Declare.
794
795         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
796         elide some sign_compare warnings.
797         (build_conditional_expr): Likewise.
798
799 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
800
801         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
802
803         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
804         * i386.c (print_operand): Use the proper suffix for a 387 HImode
805         operand.  Abort if a 387 operand has an unsupported size.
806
807 2000-04-08  Neil Booth  <NeilB@earthling.net>
808
809         * cppexp.c (parse_charconst): Null does not end character
810         constants.
811         * cppinit.c (ISTABLE): Null character handled as whitespace.
812         * cpplex.c (null_warning):  new function.
813         (skip_string): Emit warning if nulls encountered.
814         (_cpp_skip_hspace): Emit warning if nulls encountered.
815         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
816         them.
817         * cpp.texi: Update.
818
819 2000-04-07  Richard Henderson  <rth@cygnus.com>
820
821         * flow.c (loop_depth): Remove.
822         (reg_next_use, cc0_live, mem_set_list): Replace with ...
823         (struct propagate_block_info): New.
824         (life_analysis): Don't allocate reg_next_use.
825         (propagate_block_delete_insn): Break out of propagate_block.
826         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
827         (propagate_block_delete_libcall): Likewise.
828         (propagate_block): Create a propagate_block_info struct to pass
829         to subroutines.  Allocate one not two temporary regsets.  Don't
830         clobber memory for const calls.  Look for clobbers in
831         CALL_INSN_FUNCTION_USAGE.
832         (mark_set_regs): Recognize COND_EXEC.
833         (mark_set_reg): Break out of mark_set_1.
834         (mark_used_reg): Break out of mark_used_regs.
835         (mark_used_regs): Recognize COND_EXEC.
836         (insn_dead_p): Use propagate_block_info struct.
837         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
838         (find_auto_inc, try_pre_increment_1): Likewise.
839         (print_rtl_with_bb): Dump regs live at end too.
840         (count_reg_sets_1): Pass in loop_depth.
841         (count_reg_sets, count_reg_references): Likewise.
842         (recompute_reg_usage): Provide it.
843
844 2000-04-07  Richard Henderson  <rth@cygnus.com>
845
846         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
847         not the raw files.
848
849 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
850
851         * cpplib.c (do_elif): Skip the rest of the line if we're
852         not going to bother evaluating it.
853         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
854         to avoid pointless calls to the lexer.
855
856 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
857
858         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
859
860 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
861
862         * calls.c (expand_call): emit_queue if we're trying a sibcall.
863
864 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
865
866         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
867
868 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
869
870         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
871         crtend so they can be multilibbed.
872         (STAGESTUFF): Remove s-crt and s-crtS.
873
874 2000-04-07  Richard Henderson  <rth@cygnus.com>
875
876         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
877         if we discover we need a pseudo and no_new_pseudos is true.
878         * config/alpha/alpha.md (ne:DI insn): New.
879         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
880
881 2000-04-07  Richard Henderson  <rth@cygnus.com>
882
883         * rtl.def (COND_EXEC): New.
884         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
885         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
886
887         * genconfig.c (have_cond_arith_flag): Remove.
888         (have_cond_exec_flag): New.
889         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
890         (main): Print HAVE_conditional_execution.
891
892         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
893         (sched_analyze_insn, print_pattern): Likewise.
894         * reload.c (find_equiv_reg): Likewise.
895         * rtlanal.c (reg_referenced_p): Likewise.
896         (note_stores, dead_or_set_regno_p): Likewise.
897         (reg_overlap_mentioned_p): Rewrite to use a switch.
898
899         * ggc.h (struct rtx_def): Forward declare.
900
901         * print-rtl.c (debug_rtx_range): New.
902         * rtl.h (debug_rtx_range): Declare.
903
904         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
905
906         * gcse.c (gcse_main): Don't rebuild the CFG here.
907         (delete_null_pointer_checks): Likewise.
908         * ssa.c (convert_to_ssa): Likewise.
909         * toplev.c (rest_of_compilation): Do it here instead.  Combine
910         sequential calls to TIMEVAR.  Consistently use `insns' instead of
911         `get_insns()'.  Always split insns after reload when optimizing.
912
913         * basic-block.h (merge_blocks_nomove): Declare.
914         (tidy_fallthru_edge): Declare.
915         * flow.c (merge_blocks_nomove): Document as merging into previous
916         blocks.  Remove cruft from between blocks; remove all edges out of A.
917         (tidy_fallthru_edge): Export.
918
919 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
920
921         * ssa.c (compute_conservative_reg_partition): Declare with
922         void arguments.
923         * toplev.c (clean_dump_file): Remove previously-deleted function
924         inadvertantly merged back in.
925         * conflict.c (conflict_graph_add): Use a single call to
926         htab_find_slot to look up and insert.
927
928 2000-04-06  Richard Henderson  <rth@cygnus.com>
929
930         * genrecog.c (*): Rename _last_insn to last_insn.
931         (make_insn_sequence): Set the position of the peephole2 C test
932         to be at the last insn.
933
934 2000-04-06  Richard Henderson  <rth@cygnus.com>
935
936         * flow.c (compute_flow_dominators): Free worklist.
937
938 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
939
940         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
941
942 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
943
944         * rtl.h (INSN_P): New macro.
945         (successor_phi_fn): New typedef.
946         (for_each_successor_phi): New prototype.
947         (in_ssa_form): New variable.
948         (PHI_NODE_P): Likewise.
949         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
950         phi nodes in successors.
951         (mark_used_regs): Add PHI case.
952         (set_phi_alternative_reg): New function.
953         (life_analysis): Assert that dead code elimination is not selected
954         when in SSA form.
955         * toplev.c (to_ssa_time): New variable.
956         (from_ssa_time): Likewise.
957         (compile_file): Zero to_ssa_time and from_ssa_time.
958         Print time to convert to and from SSA.
959         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
960         (print_time): Compute percent fraction as integer.
961         * ssa.c (PHI_NODE_P): Moved to rtl.h.
962         (convert_to_ssa): Check if we're already in SSA.  
963         Don't eliminate dead code in life_analysis.
964         Rerun flow and life analysis at bottom.
965         (eliminate_phi): Use canonical regnos when adding nodes.
966         (mark_reg_in_phi): New function.
967         (mark_phi_and_copy_regs): Likewise.
968         (convert_from_ssa): Rerun life analysis at top.  
969         Use coalesced partition.
970         Check for removing a phi node at the end of the block.
971         (compute_coalesced_reg_partition): New function.
972         (coalesce_regs_in_copies): Likewise.
973         (coalesce_reg_in_phi): Likewise.
974         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
975         (for_each_successor_phi): Likewise.
976         (rename_context): New struct.
977         (rename_block): Use a rename_context with rename_insn_1.  When
978         renaming sets of a subreg, emit a copy of the entire reg first.
979         (rename_insn_1): Treat data as a rename_context *.  Save current
980         insn in set_data.
981         (rename_set_data): Add field set_insn.
982         * Makefile.in (HASHTAB_H): Move up in file.
983         (OBSTACK_H): New macro.
984         (collect2.o): Use OBSTACK_H in dependencies.
985         (sdbout.o): Likewise.
986         (emit-rtl.o): Likewise.
987         (simplify-rtx.o): Likewise.
988         (fix-header.o): Likewise.
989         (OBJS): Add conflict.o.
990         (conflict.o): New rule.
991         * basic-block.h: Include partition.h.
992         (conflict_graph): New typedef.
993         (conflict_graph_enum_fn): Likewise.
994         (conflict_graph_new): New prototype.
995         (conflict_graph_delete): Likewise.
996         (conflict_graph_add): Likewise.
997         (conflict_graph_conflict_p): Likewise.
998         (conflict_graph_enum): Likewise.
999         (conflict_graph_merge_regs): Likewise.
1000         (conflict_graph_print): Likewise.
1001         (conflict_graph_compute): Likewise.
1002         * conflict.c: New file.
1003
1004 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
1005
1006         * tlink.c (read_repo_files): Don't look for .rpo info for
1007         linker flags.
1008
1009 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1010
1011         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
1012
1013 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1014
1015         * config/sh/lib1funcs.asm (___udivsi3_i4):
1016         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
1017         only depends on FMOVD_WORKS.
1018
1019 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1020
1021         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
1022         make double constant 8-byte aligned.
1023
1024 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
1025
1026         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
1027         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
1028         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
1029         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
1030         Accept storing GENERAL_REGS into offsetable memory.
1031         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
1032         building a TFmode constant other than 0.0L into GENERAL_REGS.
1033
1034 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
1035
1036         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
1037         
1038 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
1039
1040         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
1041         (macro_cleanup): No need to cast pbuf->macro.
1042         (collect_expansion): Use _cpp_get_define_token.  Goto done if
1043         it returns VSPACE.  Remove check for trailing space after
1044         CPP_COMMENT.
1045         (_cpp_create_definition): Don't diddle flags here.  Return
1046         directly on error.
1047         (unsafe_chars): Handle c1 being EOF.
1048         (push_macro_expansion): Use unsafe_chars for both accidental-paste
1049         checks.  Don't push the buffer till after we're done with
1050         them.
1051         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
1052         (PEEKN, FORWARD, GETC, PEEKC): Use them.
1053         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
1054         appropriately.
1055         (_cpp_parse_assertion): Don't NUL terminate.
1056         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
1057         hspace before calling _cpp_parse_assertion.  Remove all sets
1058         of only_seen_white. Treat '\f' as hspace.  Don't do anything
1059         special with '\n' here.
1060         (maybe_macroexpand): Handle T_EMPTY hash entries without
1061         pushing a buffer at all.
1062         (cpp_get_token): Handle clearing only_seen_white here.  Handle
1063         incrementing the line number here.  Clear
1064         potential_control_macro as well as only_seen_white, if
1065         appropriate.
1066         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
1067         (_cpp_get_define_token): New function, basically like
1068         _cpp_get_directive_token was but doesn't eat horizontal space.
1069         Don't do anything with only_seen_white here.
1070         (_cpp_get_directive_token): Just call _cpp_get_define_token
1071         repeatedly till it returns non-hspace.
1072
1073         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
1074         (conditional_skip, skip_if_group): Return int.
1075         (DIRECTIVE_TABLE): Change origin of all conditional directives
1076         to "COND".
1077         (TRAD_DIRECT_P): New macro.
1078         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
1079         an error for a bogus directive, unless -lang-asm.  Use
1080         TRAD_DIRECT_P. Loop calling handler functions till one returns
1081         zero.
1082         (get_macro_name): Don't diddle flags here.
1083         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
1084         Create T_EMPTY nodes for #define macro /* nothing */.
1085         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
1086         Use hp->name when calling pass_thru_directive.
1087         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
1088         Return the result of conditional_skip and/or skip_if_group.
1089         Don't call _cpp_output_line_command.
1090         (consider_directive_while_skipping): Use _cpp_get_directive_token.
1091         Issue -Wtraditional warnings as appropriate.  Don't complain
1092         about unrecognized directives.  If we are to stop skipping,
1093         return the number of the directive that ended the skip.
1094         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
1095         expansion and line commands while skipping.  Return the result
1096         of consider_directive_while_skipping, if nonzero.
1097         (do_endif): Just set potential_control_macro here.
1098         (validate_else): Use _cpp_get_directive_token.
1099         (do_assert, do_unassert): Don't save pointers into the
1100         token_buffer across calls to the lexer.  Use
1101         _cpp_get_directive_token.  
1102
1103         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a 
1104         pointer, not an offset.  Replace 'data', which was a generic
1105         pointer, with 'macro', which points to a struct hashnode.
1106         (cpp_reader): Add 'potential_control_macro' pointer.
1107         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
1108         (CPP_BUF_GET, CPP_FORWARD): Delete.
1109         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
1110         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
1111         ACTIVE_MARK_P): Update.
1112         (_cpp_get_define_token): New internal function.
1113         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
1114
1115 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
1116
1117         * configure.in: And here.
1118         * configure: Regenerate.
1119         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
1120         --enable-libstdcxx-v3 is passed at configure time.
1121         * config.h.in: Regenerate.
1122
1123 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
1124
1125         * final.c (final): Use xcalloc to allocate line_note_exists.
1126         * function.c (free_after_compilation): Free the temp_slots.
1127         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
1128         (combine_temp_slot): Free temp_slots when they get combined.
1129         (purge_addressof): Fix typo in comment.
1130         * stmt.c (mark_goto_fixup): Mark the fixup itself.
1131         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
1132
1133         * ggc.h: Include varray.h.
1134         (ggc_pending_trees): Declare.
1135         (ggc_mark_tree_children): Remove declaration.
1136         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
1137         * ggc-common.c (ggc_pending_trees): New variable.
1138         (ggc_mark_roots): Call ggc_mark_trees.
1139         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
1140         the ggc_pending_trees.
1141         * Makefile.in (GGC_H): New variable.  Use it throughout in place
1142         of ggc.h.
1143         
1144 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1145
1146         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
1147         GET_MODE_SIZE.
1148
1149 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1150
1151         * sh.c (sh_insn_length_adjustment): New function.
1152         * sh-protos.h (sh_insn_length_adjustment): Declare.
1153         * sh.h (ADJUST_INSN_LENGTH): Use it.
1154
1155 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
1156
1157         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
1158         from the insn where REG_RETVAL is added.
1159         (emit_no_conflict_block): Ditto.
1160
1161         * md.texi (Standard Names): Clarify when movX is needed.
1162
1163         * combine.c (simplify_comparison) [MINUS]: Do not replace
1164         all (op (minus A B) 0) with (op A B).
1165
1166 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
1167                           J"orn Rennecke <amylaar@cygnus.co.uk>
1168
1169         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
1170         (block_lump_real): Likewise.
1171
1172 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
1173
1174         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
1175         remaining non-zero debugging masks.
1176
1177 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
1178
1179         * basic-block.h (verify_flow_info): Declare.
1180         (flow_loop_outside_edge_p): Declare.
1181         * flow.c (verify_flow_info): Remove declaration.
1182         (clear_log_links, flow_loop_outside_edge_p): Likewise.
1183
1184 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
1185
1186         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
1187         not C++ comments.
1188
1189 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
1190
1191         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
1192         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
1193         seqdi_zero_trunc+1): Allow splits only if registers are
1194         different.
1195
1196 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
1197
1198         * acconfig.h: Add HAVE_GAS_HIDDEN.
1199         * config.in: Regenerated.
1200         * configure.in: Add test for .hidden pseudo-op in gas.
1201         * configure: Regenerated.
1202         * crtstuff.c: Include auto-host.h.
1203         Emit additional .hidden pseudo-op for __dso_handle if the
1204         assembler knows about it.
1205
1206 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
1207
1208         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
1209         before freeing argnames.
1210         * cpplib.c (do_ifndef): Cast return value of xstrdup.
1211
1212 2000-04-05  Michael Meissner  <meissner@redhat.com>
1213
1214         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
1215         Walton <jonboy@gordian.com> to make memory references with update
1216         work wtih -mregnames.
1217
1218 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1219
1220         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
1221         (regrename_optimize): Rename variables `def_uses' and
1222         `ext_basic_blocks' to avoid conflicts with similarly named
1223         typedefs in traditional C.
1224
1225         * calls.c (initialize_argument_information): Fix typo in previous
1226         change.
1227
1228 2000-04-04  Richard Henderson  <rth@cygnus.com>
1229
1230         * regrename.c (consider_available): Test fixed_regs not
1231         PIC_OFFSET_TABLE_REGNUM.
1232
1233 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
1234
1235         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
1236         crtend.
1237         (CRTSTUFF_T_CFLAGS_S): Delete definition.
1238         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
1239         (ENDFILE_LINUX_SPEC): Always use crtend.
1240         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
1241         (powerpc-*-linux-gnu): Likewise.
1242         * configure: Regenerate.
1243
1244         * config/rs6000/eabi.h: Don't include sysv4.h.
1245         (MULTILIB_DEFAULTS): Don't define.
1246         * config/rs6000/eabiaix.h: Don't include eabi.h.
1247         * config/rs6000/eabile.h: Delete.
1248         * config/rs6000/eabilesim.h: Delete.
1249         * config/rs6000/eabisim.h: Don't include eabi.h.
1250         * config/rs6000/linux.h: Don't include sysv4.h.
1251         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
1252         (MULTILIB_DEFAULTS): Don't redefine.
1253         * config/rs6000/rtems.h: Don't include eabi.h.
1254         * config/rs6000/sol2.h: Don't include sysv4le.h.
1255         * config/rs6000/sysv4le.h: Don't include sysv4.h.
1256         * config/rs6000/t-ppc: Delete.
1257         * config/rs6000/t-ppcgas: Correct comment.
1258         * config/rs6000/t-ppcos: Correct comment.  Don't build 
1259         multilibs for -fPIC, rather use -fPIC -mstrict-align 
1260         as default.
1261         * config/rs6000/t-ppc: Delete.
1262         * config/rs6000/vxppc.h: Don't include sysv4.h.
1263         * config/rs6000/vxppcle.h: Delete.
1264         * configure.in: Use multiple header files for p2pc ELF targets
1265         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
1266         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
1267         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
1268         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
1269         always available for these platforms.
1270
1271 2000-04-04  Richard Henderson  <rth@cygnus.com>
1272
1273         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
1274
1275 2000-04-04  Stan Cox  <scox@cygnus.com> 
1276
1277         * Makefile.in: Add rules for regrename.o
1278         * regrename.c: New file.
1279         * rtl.h (regrename_optimize): Add prototype.
1280         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
1281         (compile_file, decode_d_option): Add support for -frename-registers.
1282         (rest_of_compilation): Call regrename_optimize.
1283         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
1284         New macros.     
1285         
1286 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1287
1288         * Makefile (gccbug): New target.
1289         (doc): Depend on it.
1290         * gcc.texi (Bugs): Link subnodes.
1291         (gccbug): New node.
1292         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
1293         Document severities, priorities, and classes in bug form.
1294
1295 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
1296
1297         * cpplex.c (trigraph_map, speccase): Combine into single
1298         table, chartab.
1299         (NORMAL, NONTRI): New macros.
1300         (_cpp_read_and_prescan): Change to use unified table.  Use
1301         is_hspace to test for whitespace.
1302
1303         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
1304         definition that doesn't provoke the "empty body in an
1305         if-statement" warning.
1306
1307 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
1308
1309         * builtins.c (expand_builtin_strlen): Force the source to
1310         be a memory address.
1311
1312 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1313
1314         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
1315
1316 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1317
1318         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
1319          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
1320         (ECF_IS_CONST): Rename to ECF_CONST.
1321         (special_function_p): Make static, change interface.
1322         (flags_from_decl_or_type, try_to_integrate): Break out from ...
1323         (expand_call) ... here; convert number of variables to flags.
1324         (emit_library_call_vlue_1): Likewise.
1325         (setjmp_call_p): New function.
1326         (initialize_argument_information): Accepts flags as argument;
1327         return flags.
1328         (precompute_arguments): Likewise.
1329         * tree.h (special_function_p): Remove.
1330         (setjmp_call_p): Add prototype.
1331
1332 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
1333
1334         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
1335         so that addresses are offsetable by up to 16 bytes.
1336         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
1337         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
1338         offsetable.
1339
1340         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
1341         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
1342         (movsf): Don't force any constant to memory if target is integer
1343         hard register.
1344         Move fp_zero_operand check below the const0_rtx check.
1345         (movtf): Likewise. Also allow fp_zero_operand for stores into
1346         memory.
1347         (movdf): Likewise. Also allow fp_zero_operand for stores into
1348         memory and into integer hard registers.
1349         (clear_df, clear_dfp, movdf_const_intreg_sp32,
1350         movdf_const_intreg_sp64): Remove.
1351         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
1352         conditions.
1353         (movdf_no_e_insn_v9_sp32): New pattern.
1354         (movdf_insn_v9only): Remove.
1355         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
1356         (movdf_insn_sp64): Remove.
1357         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
1358         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
1359         (following splits): Rewrite conditions. Add two new splits
1360         for storing 0.0 into memory and registers.
1361         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
1362         (movtf_insn_sp32): Redo constraints and conditions.
1363         (movtf_insn_vis_sp32): New pattern.
1364         (movtf_no_e_insn_sp32): Redo constraints and conditions.
1365         (movtf_insn_hq_sp64): Likewise.
1366         (movtf_insn_hq_vis_sp64): New pattern.
1367         (movtf_insn_sp64): Redo constraints and conditions.
1368         (movtf_insn_vis_sp64): New pattern.
1369         (movtf_no_e_insn_sp64): Redo constraints and conditions.
1370         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
1371         or memory.
1372         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
1373         -mvis or -m64 to take down the number of various reload patterns.
1374
1375 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
1376
1377         * pa/pa-64.h: New file.
1378         * pa/pa64-regs.h: New file.
1379         * pa/pa64-start.h: New file.
1380         * pa/t-pa64: New file.
1381         * pa/xm-pa64hpux.h: New file.
1382
1383 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1384
1385         * sparc.c (output_restore_regs): Prototype.
1386         (sparc_emit_float_lib_cmp): Constification.
1387
1388         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
1389
1390         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
1391         Prototype.
1392
1393         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
1394         (get_value_hash, hash_rtx): Likewise.
1395
1396         * ssa.c (compute_conservative_reg_partition): Prototype.
1397
1398         * tree.c (mark_hash_entry): Prototype.
1399
1400 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
1401
1402         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
1403         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
1404         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
1405
1406         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
1407         * objc/lang-specs.h: Likewise.
1408
1409 2000-04-03  Neil Booth  <NeilB@earthling.net>
1410
1411         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
1412         and SYNTAX_ERROR2. Replace `' in messages with ''.
1413         (op_to_str): Make re-entrant.
1414         (_cpp_parse_expr): Implement new error macros. Use | rather
1415         than || to logically or 2 boolean integers.  Simply expression
1416         checking we have a left operand iff needed.
1417
1418 2000-04-03  Nick Clifton  <nickc@cygnus.com>
1419
1420         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
1421
1422 2000-04-03  Philip Blundell  <philb@gnu.org>
1423
1424         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
1425
1426 2000-04-03  Felix Lee  <flee@cygnus.com>
1427
1428         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
1429         (run_shell): Use it. 
1430
1431 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
1432
1433         * Makefile.in (stmp-int-hdrs): Make include subdir here...
1434         (stmp-fixproto): ...rather than here.
1435
1436 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
1437
1438         * pa.c (print_operand): Compute 'base' only inside the code paths
1439         that use it.
1440
1441 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
1442
1443         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
1444         CEIL_DIV_EXPR.
1445
1446 2000-04-03  Philipp Thomas  <pthomas@suse.de>
1447
1448         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
1449
1450 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
1451
1452         * Makefile.in (alias.o): Depend on $(TREE_H).
1453
1454 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
1455
1456         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
1457         processing C++.
1458         * cpplib.c (_cpp_handle_directive): Improve warnings for
1459         traditional C and indented directives.
1460
1461         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
1462         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
1463         fixinc/inclhack.def: Indent the # of #include_next one space.
1464         * cp/rtti.c: Un-indent #if and #endif.
1465
1466         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
1467         syntax error, but an error has already been printed.
1468         * cpplex.c (_cpp_parse_assertion): Give a more specific error
1469         message when called with nothing remaining on the line.
1470         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
1471         OTHER token, not an ASSERTION.
1472         * cpplib.c (do_assert): When we create a 'base' node, clear
1473         its aschain pointer.
1474
1475 2000-04-02  Neil Booth <NeilB@earthling.net>
1476
1477         * cppexp.c:  New typedef op_t.  struct operation and struct 
1478         token updated to use it.
1479         (op_to_str): New function.
1480         (_cpp_parse_expr): Error messages modified to use op_to_str.
1481
1482 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1483
1484         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
1485         before checking MUST_PASS_IN_STACK.
1486
1487 2000-04-02  Neil Booth <NeilB@earthling.net>
1488
1489         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
1490         flags and initial priority into a single constant.  New
1491         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
1492         (_parse_cpp_expr): Implement new constants.  Take left operand
1493         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
1494         parse indicated by reducing FINISHED token.  Remove new lines
1495         from cpp_error messages.
1496
1497 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
1498
1499         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
1500         permanent obstack.
1501
1502 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
1503
1504         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
1505         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
1506         the strings and function names on the fly.  Take the #sccs
1507         entry out of the table if SCCS_DIRECTIVE is not defined.
1508         (_cpp_handle_directive): Decide if the # was at the beginning
1509         of the line here.  Issue -pedantic warnings for extended
1510         directives here.  Warn about K+R directives with the #
1511         indented, and C89/extended directives with the # not indented,
1512         here.
1513         (do_import, do_include_next, do_warning, do_ident, do_sccs,
1514         do_assert, do_unassert): Don't issue pedantic warning here.
1515
1516         * cpphash.h: Add CPP_WTRADITIONAL macro.
1517         * cpplib.h (struct cpp_options): Rename warn_stringify to
1518         warn_traditional; update comments.
1519         * cppinit.c (handle_option): Set warn_traditional not
1520         warn_stringify.
1521         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
1522         CPP_WTRADITIONAL (pfile).
1523         * cpplex.c (_cpp_lex_token): Don't decide if directives should
1524         be ignored in -traditional mode here.
1525
1526         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
1527         to initialize speccase[] and trigraph_map[].  Delete all
1528         references to pfile->input_speccase.  Always treat '?' as a
1529         special character.  Remove table-initialization code from
1530         _cpp_init_input_buffer.
1531
1532         * cpplib.h (struct cpp_reader): Remove input_speccase field.
1533         * cppinit.c (cpp_cleanup): Don't free input_speccase.
1534
1535 2000-04-01  Richard Henderson  <rth@cygnus.com>
1536
1537         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
1538         (mostlyclean): Likewise.
1539
1540         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
1541         (struct dump_file_info, enum dump_file_index, dump_file): New.
1542         (open_dump_file): Take a dump_file_index not a suffix, and a decl
1543         not a string.  Clean out file if we havn't yet done so.  Do nothing
1544         if the dump isn't enabled.
1545         (close_dump_file): Do nothing if the dump isn't open.  Dump 
1546         graph data if requested.
1547         (dump_rtl, clean_dump_file): Remove.
1548         (compile_file): Don't clean the dump files.  Only finalize .bp dump
1549         if flag_test_coverage or flag_branch_probabilities.  Only finalize
1550         .combine dump if optimizing.  Iterate over dump_file to finalize the
1551         graph dumps.
1552         (rest_of_compilation): Update for open_dump_file/close_dump_file.
1553         Convert all uses of dump_rtl.
1554         (decode_d_option): Iterate over dump_file to implement 'a' and to
1555         locate pass-specific dumps.
1556
1557 2000-04-01  Neil Booth <NeilB@earthling.net>
1558
1559         * cppexp.c: Redefine priority constants.
1560         (_cpp_parse_expr): Replace left and right priority scheme with
1561         single priority logic.  Move LOGICAL to same place as COMPARE.
1562         Remove bogus check for multiple unary +/- operators.
1563
1564 2000-04-01  Neil Booth <NeilB@earthling.net>
1565
1566         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
1567         within the switch statement.  Binary operations break out of
1568         the switch naturally.  '(' tokens handled by forcing
1569         immediate shift.  ')' handled by forcing immediate reduce to
1570         the previous '('.  New error messages.
1571         
1572 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
1573
1574         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
1575         part', it's already in use.  Use %K instead.  Add a return at the
1576         end of what is now %K.
1577         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. 
1578
1579 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1580
1581         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
1582         allocate_dynamic_stack_space.
1583         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
1584         update stack_pointer_delta; do not update arg_size_so_far.
1585         (compute_argument_block_size): Use stack_delta instead of
1586         stack_pointer_pending and arg_size_so_far.
1587         (expand_call): Add sanity checking for stack_pointer_delta;
1588         save and restore stack_pointer_delta for SIB, use
1589         stack_pointer_delta for alignment; do not update arg_space_so_far.
1590         (emit_library_call_value): Use stack_pointer_delta for alignment.
1591         (store_one_arg): Do not update arg_space_so_far.
1592         * explow.c (adjust_stack, anti_adjust_stack): Update
1593         stack_pointer_delta.
1594         (allocate_dynamic_stack_space): Add sanity checking for
1595         stack_pointer_delta.
1596         * expr.c (init_expr, clear_pending_stack_adjust): Clear
1597         stack_pointer_delta.
1598         (emit_push_insn): Update stack_pointer_delta.
1599         * function.h (struct expr_status): Add x_stack_pointer_delta;
1600         remove x_arg_space_so_far.
1601         (arg_space_so_far): Remove.
1602         (stack_pointer_delta): New macro.
1603
1604 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
1605
1606         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
1607         Reorder struct cpp_options and struct cpp_reader for better 
1608         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
1609         takes two args.  Change all 'char' flags to 'unsigned char'.
1610         Move show_column flag into struct cpp_options.  Don't
1611         prototype cpp_options_init.
1612         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
1613         cppinit.c, cpplex.c, cpplib.c:
1614         Replace CPP_OPTIONS (pfile)->whatever with
1615         CPP_OPTION (pfile, whatever), and likewise for
1616         opts = CPP_OPTIONS (pfile); ... opts->whatever;
1617
1618         * cppinit.c (merge_include_chains): Take a cpp_reader *.
1619         Extract CPP_OPTION (pfile, pending) and work with that
1620         directly.
1621         (cpp_options_init): Delete.
1622         (cpp_reader_init): Turn on on-by-default options here.
1623         Allocate the pending structure here.              
1624         (cl_options, enum opt_code): Define these from the same table,
1625         kept in a large macro.  Add -fshow-column and -fno-show-column
1626         options.
1627
1628         * cpperror.c (v_message): If show_column is off, don't print
1629         the column number.
1630
1631         * cppmain.c: Update for new interface.
1632         * fix-header.c: Likewise.
1633
1634 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
1635
1636         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
1637         definition.
1638         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
1639         are passed to any invocation of AR_FOR_TARGET.
1640         (AR_CREATE_FOR_TARGET): New macro.
1641         (AR_EXTRACT_FOR_TARGET): New macro.
1642         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
1643         AR_EXTRACT_FOR_TARGET.
1644         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
1645         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
1646         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
1647         AR_EXTRACT_FOR_TARGET to sub-makes.
1648
1649 2000-03-31  Neil Booth <NeilB@earthling.net>
1650
1651         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
1652         PAREN_INNER_PRIO.
1653         (_cpp_parse_expr): Check for multiple unary +/- operators.
1654         Correct priorities of ':' and '?'.  Treat ')' as having a
1655         value.  Ensure conditional expression is not void.
1656         
1657 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
1658
1659         * alias.c (canon_rtx): Make it global.
1660         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
1661         equality.
1662         * cse.c (struct table_elt): Add canon_exp.
1663         (insert): Clear it.
1664         (invalidate): Canonicalize expressions only once.
1665         * rtl.h (canon_rtx): Declare.
1666
1667 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
1668
1669         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
1670         * alias.c (reg_known_value): Add comments.
1671         (init_alias_analysis): Likewise.
1672         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
1673         address.
1674         (cse_basic_block): Fix typo in comment.
1675         * emit-rtl.c: Include hashtab.h.
1676         (const_int_htab): New variable.
1677         (const_int_htab_hash): New function.
1678         (const_int_htab_eq): Likewise.
1679         (rtx_htab_mark_1): Likewise.
1680         (rtx_htab_mark): Likewise.
1681         (gen_rtx_CONST_INT): Cache all CONST_INTs.
1682         (unshare_all_rtx): Fix formatting.
1683         (init_emit_once): Initialize const_int_htab.
1684         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
1685         address.
1686         * rtl.texi: Document the fact that all CONST_INTs with the same
1687         value are shared.
1688
1689 2000-03-30  Richard Henderson  <rth@cygnus.com>
1690
1691         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
1692
1693 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
1694
1695         * configure.in: Comment out --enable-c-cpplib stanza.
1696         * configure: Regenerate.
1697
1698 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1699
1700         * expr.c (store_constructor): Properly compute displacement and
1701         alignment when offset is variable.
1702
1703         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
1704         cases of alignment in bytes.
1705
1706 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
1707
1708         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
1709         since it is used to generate c-parse.y.
1710         * objc-parse.c, objc-parse.y: Regenerated.
1711
1712         * function.c (expand_function_end): Pass alignment argument to
1713         emit_block_move in bits, not bytes.
1714
1715 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1716
1717         * expr.c (move_by_pieces_ninsns): Fix one more missing align
1718         correction.
1719
1720         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
1721
1722         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
1723         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
1724         * function.c (assign_parms): Likewise.
1725         * integrate.c (expand_inline_function): Likewise.
1726         * stmt.c (expand_decl): Likewise.
1727         (copy_rtx_and_substitute): Likewise.
1728         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
1729         (clear_by_pieces): Fix error in last change.
1730         * emit-rtl.c (init_emit): Set known registers alignment in bits.
1731         * function.h (regno_pointer_align): Now unsigned.
1732         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
1733         is in bits.
1734         * config/i386/i386.c (aligned_operand): Likewise.
1735         * config/sparc/sparc.c (mem_min_alignment): Likewise.
1736         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
1737         (unaligned_memory_operand): Likewise.
1738         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
1739         Also make alignments and sizes unsigned and some whitespace cleanup.
1740         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
1741
1742         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
1743         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
1744         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
1745         (expand_builtin_memset): Likewise, but to clear_storage.
1746         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
1747         (restore_fixed_argument_area): Likewise.
1748         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
1749         (load_register_parameters): Likewise, to emit_group_load.
1750         (expand_call): Likewise, to emit_group_store and emit_block_move.
1751         (emit_library_call_value_1): Likewise, to emit_block_move.
1752         (store_one_arg): Likewise, and to emit_push_insn.
1753         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
1754         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
1755         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
1756         (emit_block_move, emit_group_load, emit_group_store): Likewise.
1757         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
1758         (expand_assigment, store_expr, store_constructor_field): Likewise.
1759         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
1760         (store_constructor, store_field, get_inner_reference): Likewise.
1761         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
1762         (expand_expr, case COMPONENT_REF): Likewise.
1763         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
1764         and positions; reindent code.
1765         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
1766         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
1767         (assign_parms): Likewise to emit_group_store.
1768         * optabs.c (prepare_cmp_insn): Alignment is in bits.
1769         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
1770         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
1771         (expand_return): Likewise to {extract,store}_bit_field.
1772         * stor-layout.c (get_mode_alignment): Minor cleanup.
1773         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
1774         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
1775         
1776 2000-03-29  Nick Clifton  <nickc@cygnus.com>
1777
1778         * config/arm/arm.h: Undo effects of previous delta:
1779         (ASM_SPEC): Do not define.
1780         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
1781
1782         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
1783         typo. 
1784
1785 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
1786
1787         * cppinit.c (cpp_start_read): Call initialize_dependency_output
1788         only after reading in the primary source file.
1789
1790 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
1791
1792         * c-common.c (c_common_nodes_and_builtins): The first parameter to
1793         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
1794         or a reference to a va_list.
1795         * builtins.c (stabilize_va_list): Simplify now we don't have to
1796         work around C array address decay.
1797         * c-typeck.c (convert_for_assignment): Handle assignment to
1798         a reference parameter by taking the address of the RHS.
1799         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
1800         (va_copy): Likewise.
1801         (__va_copy): Likewise.
1802         * ginclude/varargs.h (va_start): Likewise.
1803         (__va_copy): Likewise.
1804
1805 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
1806
1807         * i386/djgpp.h: Remove extraneous "+".
1808
1809         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
1810
1811         * calls.c (expand_call): Fix typo in last change.
1812
1813 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
1814
1815         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
1816         been expanded.
1817
1818 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1819
1820         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
1821         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
1822         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
1823         * tree.c (bit_position, byte_position): Likewise.
1824         * tree.h: Declare new functions.
1825
1826 2000-03-29  Nick Clifton  <nickc@cygnus.com>
1827
1828         * config/arm/arm.c: Minor formatting changes/
1829         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
1830         already defined.
1831         (ASM_SPEC): Define if not already defined.
1832
1833 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
1834
1835         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
1836         _cpp_calc_hash.
1837
1838 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
1839
1840         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
1841         value, don't output it as unsigned.
1842
1843 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
1844
1845         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
1846
1847 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1848
1849         * c-common.c (c_common_nodes_and_builtins): Don't special case
1850         cplus_mode when declaring builtin bzero/bcmp, always avoid
1851         prototype arguments.
1852
1853 2000-03-29  Bruce Korb  <bkorb@gnu.org>
1854
1855         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
1856         to a non-file
1857
1858 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1859
1860         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
1861         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
1862         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
1863         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
1864         (save_fixed_argument_area, restore_fixed_argument_area):
1865         conditionize by #ifdef REG_PARM_STACK_SPACE only.
1866         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
1867         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
1868         (precompute_register_parameters): Avoid #ifdefs on
1869         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
1870         (stire_one_args): Likewise.
1871         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
1872         (emit_library_call_value_1): Likewise.
1873         (compute_argument_block_size): Align to STACK_BOUNDARY only for
1874         ACCUMULATE_OUTGOING_ARGS.
1875         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
1876         value.
1877         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
1878         (use_crosses_set_p): Likewise.
1879         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
1880         #define ACCUMULATE_OUTGOING_ARGS 1.
1881         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
1882         frames.
1883         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
1884         constants.
1885         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
1886         (TARGET_SWITCHES): Add push-args, no-push-args,
1887         accumulate-outgoing-args and no-accumulate-outgoing-args.
1888         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
1889         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
1890         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
1891         and PUSH_ROUNDING.
1892         (emit_push_insn): Likewise.
1893         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
1894         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
1895         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
1896         (STACK_DYNAMIC_OFFSET): Define correctly for both
1897         ACCUMULATE_OUTGOING_ARGS and normal mode.
1898         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
1899         * tm.texi (PUSH_ARGS): Document.
1900         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
1901
1902 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1903
1904         * flags.h (flag_optimize_sibling_calls): Declare.
1905         * calls.c (expand_call): Fail sibcall when
1906         !flag_optimize_sibling_calls
1907         * invoke.texi (flag_optimize_sibling_calls): Document.
1908         * toplev.c (flag_optimize_sibling_calls): New global variable.
1909         (f_options): Add flag_optimize_sibling_calls.
1910         (rest_of_compilation): Conditionize
1911         optimize_sibling_and_tail_recursive_calls by
1912         flag_optimize_sibling_calls.
1913         (main): Set flag_optimize_sibling_calls for -O2.
1914         * stmt.c (expand_return): Conditionize tail recursion by
1915         flag_optimize_sibling_calls.
1916
1917 2000-03-29  Richard Henderson  <rth@cygnus.com>
1918
1919         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
1920         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
1921
1922 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
1923
1924         * except.c (add_eh_table_entry): Mark type_info's as referenced.        
1925
1926 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1927
1928         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
1929         is given.
1930         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
1931         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
1932         * config/rs6000/aix.h: then modified likewise.
1933
1934 2000-03-28  Richard Henderson  <rth@cygnus.com>
1935
1936         * rtl.h: Redistribute enum reg_note documentation. 
1937         Kill trailing whitespace.
1938         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
1939         Kill trailing whitespace.
1940
1941 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
1942
1943         * cppfiles.c (hash_IHASH): Just return i->hash.
1944         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
1945         htab_find_with_hash.
1946         (cpp_read_file): Likewise.
1947         (find_include_file): Likewise.  Properly initialize
1948         ih->nshort.  Share ih->name and ih->nshort if possible.
1949         * cpphash.c (_cpp_calc_hash): New function.
1950         (hash_HASHNODE): Just return h->hash.
1951         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
1952         htab_find_with_hash.
1953         * cpphash.h: Prototype _cpp_calc_hash.
1954         * cppinit.c (initialize_builtins): Provide a valid hash
1955         to _cpp_make_hashnode, using _cpp_calc_hash.
1956
1957         * cpphash.c (collect_expansion): # is not a special character
1958         in object-like macros.  In -traditional mode, /**/ is not
1959         token paste at the beginning or end of the line.
1960         * cpplib.c (do_include, do_import, do_include_next): If
1961         parse_include fails, return immediately.
1962
1963 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
1964
1965         * config/arm/arm.md (return peepholes): Update to reflect the new
1966         call insn patterns.
1967         * config/arm/arm.c (arm_volatile_func): Also check
1968         current_function_nothrow.
1969         (output_return_instruction, output_func_prologue): Use it.
1970         (arm_output_epilogue, arm_expand_prologue): Likewise.
1971
1972 2000-03-27  Tom Tromey  <tromey@cygnus.com>
1973
1974         * gcc.c (handle_braces): In {x*...} case, break out of loop if
1975         switch is found.
1976
1977 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1978
1979         * expr.c (store_constructor): SIZE now signed.
1980         For EXPR_SIZE, don't evaluate size; just needed if constant.
1981         * fold-const.c (fold): Fix a number of cases when folded tree is
1982         wrong type.
1983         * function.c (flush_addressof): Reenable.
1984         * tree.h (flush_addressof): Likewise.
1985         * toplev.c (independent_decode_option): Look at strings_processed.
1986         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
1987
1988 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
1989
1990         * sibcall.c (indentify_call_return_value): Find last call in the chain;
1991         Allow stack adjustment after function call.
1992
1993         * regmove.c (struct csa_memlist): Make mem field rtx *.
1994         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
1995         (try_apply_stack_adjustment): Replace whole MEM rtx.
1996         (combine_stack_adjustments_for_block): Update calls
1997         to record_one_stack_ref.
1998
1999 2000-03-28  Neil Booth  <NeilB@earthling.net>
2000
2001         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
2002         '\\' rather than a null character, so nulls are not special.  Fix
2003         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
2004         speed trigraph conversion.
2005         (_cpp_init_input_buffer): Initialize trigraph map.
2006
2007 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
2008
2009         * config/i386/i386.c (output_387_binary_op): Correct intel
2010         mode assembly output, and add spaces after commas in AT&T
2011         output.  Correct Unixware assembler comment.  Document input
2012         constraints.  Comment fp operations.  Reduce profligate buffer
2013         size.  Remove extraneous abort.  Localize temp var.
2014         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
2015         (output_fix_trunc): Add spaces after commas in assembly output.
2016
2017 2000-03-27  Richard Henderson  <rth@cygnus.com>
2018
2019         * i386-protos.h (ix86_match_ccmode): Declare.
2020         * i386.c (ix86_match_ccmode): New.
2021         (ix86_expand_fp_compare): Update for pattern renames.
2022         (ix86_expand_strlensi_unroll_1): Likewise.
2023         * i386.h (EXTRA_CC_MODES): Add CCZ.
2024         (SELECT_CC_MODE): Use it for EQ/NE zero.
2025         * i386.md (cmpsi_ccz_1): New.
2026         (cmpqi_ccz_1): New.
2027         (*testsi_ccz_1): New.
2028         (testqi_ccz_1): New.
2029         (cmpsi_ccno_1): Rename from cmpsi_0.
2030         (testsi_ccno_1): Rename from testsi_1.
2031         (testqi_ccno_1): Rename from testqi_1.
2032         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
2033         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
2034         (*cmphi_0): Use ix86_match_ccmode.
2035         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
2036         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
2037         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
2038         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
2039         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
2040         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
2041         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
2042         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
2043         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
2044         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
2045         (appropriate peepholes): Likewise.
2046         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
2047         (*subsi_3, *subhi_3, *subqi_3): Remove.
2048         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
2049         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
2050         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
2051         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
2052         (x86_shift_adj_1): Use CCZ.
2053         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
2054
2055 2000-03-27  Stan Cox  <scox@cygnus.com> 
2056
2057         * resource.h (mark_resource_type): New.
2058         * resource.c (find_dead_or_set_registers, mark_target_live_regs, 
2059         find_free_register): Use mark_resource_type.
2060         (mark_set_resources): Change include_delayed_effects
2061         to mark_resource_type.
2062         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, 
2063         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): 
2064         Use mark_resource_type.
2065         
2066 2000-03-27  Richard Henderson  <rth@cygnus.com>
2067
2068         * i386.md (call_pop_0, call_value_pop_0): New.
2069         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
2070         (call_value_pop_1): Likewise.
2071         (call_0, call_value_0): New.
2072         (call_1, call_value_1): Remove constraint from unused arg.
2073
2074 2000-03-27  Nick Clifton  <nickc@cygnus.com>
2075
2076         * invoke.texi (Spec Files): Document new spec % command created by
2077         Tom Tromey's recent patch.
2078
2079 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
2080
2081         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
2082         if not defined.
2083
2084 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2085
2086         * expr.c (expand_assignment): Fix typo in last change.
2087
2088         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
2089
2090 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2091
2092         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
2093         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
2094         and DECL_INLINE if FUNCTION_DECL.
2095         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
2096         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
2097         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
2098         (combine_parm_decls): Likewise.
2099         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
2100         * print-tree.c (print_node): Likewise.
2101         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
2102         DECL_TRANSPARENT_UNION on proper decl types.
2103         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
2104         * stor-layout.c (layout_decl): Only check DECL_PACKED and
2105         DECL_BIT_FIELD of FIELD_DECL.
2106         * tree.h (DECL_RESULT_FLD): New macro.
2107         
2108         * expr.c (expand_assignment): Add code to handle variable-sized
2109         BLKmode case.
2110
2111 2000-03-26  Richard Henderson  <rth@cygnus.com>
2112
2113         * calls.c (expand_call): Pass parms not original exp to
2114         optimize_tail_recursion.  Mind return value instead of looking
2115         for a barrier.
2116         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
2117         call_expr.  Move checks for call_expr and current_function_decl ...
2118         (expand_return): ... here.
2119
2120 2000-03-26  Tom Tromey  <tromey@cygnus.com>
2121
2122         * gcc.c (handle_braces): Recognize `%{<S}' construct.
2123         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
2124         defines.
2125         (process_command): Use them.
2126         (check_live_switch): Likewise.
2127         (give_switch): Skip ignored switches.
2128
2129 2000-03-26  Jan Hubicka  <jh@suse.cz>
2130
2131         * jump.c (jump_optimize_1): Fix typo in elide optimizations
2132         for minimal jump pass test.
2133
2134 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
2135
2136         * integrate.c (function_cannot_inline_p): Do inline functions that
2137         return `void'.
2138
2139 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2140
2141         * stor-layout.c (layout_type, set_sizetype): early_type_list is
2142         now a list of TREE_LIST entries, not types.
2143         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
2144
2145         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
2146         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
2147         int_bit_position.
2148         * config/mips/mips.c (function_arg): Likewise; also remove cast
2149         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
2150         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
2151         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
2152         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
2153         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
2154         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
2155         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
2156         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
2157         num_adjusts now unsigned.
2158         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
2159         * config/sparc/sparc.c (struct function_arg_record_value_parms):
2160         NREGS now unsigned.
2161         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
2162         as is BITPOS variable; use host_integerp and int_bit_position.
2163         (function_arg_record_value_2): Likewise.
2164         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
2165         Variable REGNO now unsigned.
2166         (function_arg_record_value): NREGS now unsigned.
2167
2168 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
2169
2170         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
2171
2172 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2173
2174         * Rework fields used to describe positions of bitfields and
2175         modify sizes to be unsigned and use HOST_WIDE_INT.
2176         * alias.c (reg_known_value_size): Now unsigned.
2177         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
2178         (really_start_incremental_init): Use bitsize_zero_node.
2179         (push_init_level, pop_init_level, output_init_element): Likewise.
2180         Use bitsize_unit_node and bitsize_one_node.
2181         (output_pending_init_elements, process_init_element): Likewise.
2182         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
2183         (make_extraction): Position and length HOST_WIDE_INT and unsigned
2184         HOST_WIDE_INT, respectively.
2185         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
2186         (num_sign_bit_copies): Returns unsigned.
2187         BITWIDTH now unsigned; rework arithmetic.
2188         Remove recursive call from arg to MAX.
2189         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
2190         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
2191         REGNO now unsigned.
2192         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
2193         (find_split_point, expand_compound_operation, make_extraction): LEN
2194         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
2195         (make_field_assignment): Likewise.
2196         (combine_simplify_rtx): Add cast.
2197         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
2198         (force_to_mode): WIDTH now unsigned; add cast.
2199         (if_then_else_cond): SIZE now unsigned.
2200         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
2201         (extended_count): Now returns unsigned.
2202         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
2203         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
2204         (simplify_comparison): MODE_WIDTH now unsigned.
2205         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
2206         (mark_used_regs_combine): Likewise; rework arithmetic.
2207         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
2208         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
2209         (record_promoted_value): REGNO now unsigned.
2210         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
2211         (get_last_value): REGNO now unsigned.
2212         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
2213         (reg_dead_regno, reg_dead_endregno): Now unsigned.
2214         (remove_death): Arg REGNO now unsigned.
2215         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
2216         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
2217         now unsigned.
2218         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
2219         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
2220         (struct cse_reg_info): REGNO now unsigned.
2221         (cached_regno): Now unsigned.
2222         (REGNO_QTY_VALID_P): Add cast.
2223         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
2224         (remove_invalid_regs): Likewise.
2225         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
2226         as are variables END and I.
2227         (get_cse_reg_info, insert): Likewise.
2228         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
2229         (canon_hash): Likewise.
2230         (insert_regs, lookup_for_remove): REGNO now unsigned.
2231         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
2232         New variable RN.
2233         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
2234         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
2235         * emit-rtl.c (subreg_realpart_p): Add cast.
2236         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
2237         (operand_subword_force): Arg I is now unsigned.
2238         * except.c (eh_regs): Variable I is now unsigned.
2239         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
2240         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
2241         length is unsigned HOST_WIDE_INT; likewise for internal variables.
2242         (store_split_bit_field, extract_fixed_bit_field): Likewise.
2243         (extract_split_bit_field, store_bit_field, extract_bit_field):
2244         Likewise.
2245         * expr.c (store_constructor_fields, store_constructor, store_field):
2246         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
2247         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
2248         (do_jump): Likewise.
2249         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
2250         MAX_SIZE is now unsigned.
2251         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
2252         (emit_group_store): Likewise.
2253         (emit_move_insn): I now unsigned.
2254         (store_constructor): Use host_integerp, tree_low_cst, and
2255         bitsize_unit_node.
2256         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
2257         Rework all calculations to use trees and new fields.
2258         * expr.h (promoted_input_arg): Regno now unsigned.
2259         (store_bit_field, extract_bit_field): Adjust types of pos and size.
2260         (mark_seen_cases): Arg is HOST_WIDE_INT.
2261         * flow.c (verify_wide_reg_1): REGNO now unsigned.
2262         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
2263         precisions and alignments are unsigned.
2264         (optimize_bit_field_compare, fold_truthop): Likewise.
2265         (int_const_binop): Adjust threshold for size_int_type_wide call.
2266         (fold_convert): Likewise.
2267         (size_int_type_wide): Make table larger and fix thinko that only
2268         had half of table used.
2269         (all_ones_mask_p, fold): Precisions are unsigned.
2270         * function.c (put_reg_info_stack): REGNO is unsigned.
2271         (instantiate_decl): Size is HOST_WIDE_INT.
2272         (instantiate_virtual_regs): I is unsigned.
2273         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
2274         (promoted_input_arg): REGNO is unsigned.
2275         * function.h (struct function): x_max_parm_reg is now unsigned.
2276         * gcse.c (max_gcse_regno): Now unsigned.
2277         (struct null_pointer_info): min_reg and max_reg now unsigned.
2278         (lookup_set, next_set): REGNO arg now unsigned.
2279         (compute_hash_table): REGNO and I now unsigned.
2280         (handle_avail_expr): regnum_for_replacing now unsigned.
2281         (cprop_insn): REGNO now unsigned.
2282         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
2283         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
2284         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
2285         * hard-reg-set.h (reg_class_size): Now unsigned.
2286         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
2287         * jump.c (mark_modified_reg): I now unsigned; add cast.
2288         (rtx_equal_for_thread_p): Add cast.
2289         * loop.c (max_reg_before_loop): Now unsigned.
2290         (struct_movable): REGNO now unsigned.
2291         (try_copy_prop): REGNO arg unsigned.
2292         (regs_match_p): XN and YN now unsigned.
2293         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
2294         (strength_reduce): Likewise; NREGS also unsigned.
2295         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
2296         * loop.h (struct iv_class): REGNO now unsigned.
2297         (max_reg_before_loop, first_increment_giv, last_increment_giv):
2298         Now unsigned.
2299         * machmode.h (mode_size, mode_unit_size): Now unsigned.
2300         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
2301         * optabs.c (expand_binop): I and NWORDS now unsigned.
2302         (expand_unop): I now unsigned.
2303         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
2304         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
2305         * real.c (significand_size): Now returns unsigned.
2306         * real.h (significand_size): Likewise.
2307         * regclass.c (reg_class_size): Now unsigned.
2308         (choose_hard_reg_mode): Both operands now unsigned.
2309         (record_reg_classes): REGNO and NR now unsigned.
2310         (reg_scan): NREGS now unsigned.
2311         (reg_scan_update): old_max_regno now unsigned.
2312         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
2313         * reload.c (find_valid_class): BEST_SIZE now unsigned.
2314         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
2315         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
2316         Likewise for variable R.
2317         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
2318         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
2319         (find_equiv_reg): Add casts.
2320         (regno_clobbered_p): Arg REGNO now unsigned.
2321         * reload.h (struct reload): NREGS now unsigned.
2322         (refers_to_regno_for_reload_p): Regno args are unsigned.
2323         (regno_clobbered_p): Likewise.
2324         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
2325         (compute_use_by_pseudos): REGNO now unsigned.
2326         (find_reg): I and J now unsigned, new variable K, and change loop
2327         variables accordingly; THIS_NREGS now unsigned.
2328         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
2329         (spill_hard_reg): REGNO arg now unsigned; add casts.
2330         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
2331         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
2332         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
2333         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
2334         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
2335         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
2336         (emit_reload_insns): REGNO now unsigned.
2337         (reload_cse_move2add): Add cast.
2338         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
2339         and rework loop.
2340         * resource.c (mark_referenced_resources, mark_set_resources): New
2341         variable R; REGNO and LAST_REGNO now unsigned.
2342         (mark_target_live_regs): J and REGNO now unsigned.
2343         * rtl.c (mode_size, mode_unit_size): Now unsigned.
2344         * rtl.h (union rtunion_def): New field rtuint.
2345         (XCUINT): New macro.
2346         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
2347         (operand_subword, operand_subword_force): Word number is unsigned.
2348         (choose_hard_reg_mode): Operands are unsigned.
2349         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
2350         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
2351         (regno_use_in, combine_instructions, remove_death): Likewise.
2352         (reg_scan, reg_scan_update): Likewise.
2353         (extended_count): Return is unsigned.
2354         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
2355         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
2356         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
2357         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
2358         (reg_reg_last_1): FIRS and LAST now unsigned.
2359         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
2360         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
2361         now unsigned.
2362         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
2363         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
2364         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
2365         (replace_regs): Arg NREGS now unsigned.
2366         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
2367         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
2368         (simplify_binary_operation): Likewise.
2369         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
2370         THIS_LAST now unsigned.
2371         (cselib_record_set): Add cast.
2372         * ssa.c (ssa_max_reg_num): Now unsigned.
2373         (rename_block): REGNO now unsigned.
2374         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
2375         sizes now unsigned.
2376         (all_cases_count): Just return -1 not -2.
2377         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
2378         Rework tests to use trees whenever possible.
2379         Use host_integerp and tree_low_cst.
2380         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
2381         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
2382         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
2383         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
2384         (smallest_mode_for_size): Likewise.
2385         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
2386         KNOWN_ALIGN is now an alignment, so simplify code.
2387         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
2388         (start_record_layout): Renamed from new_record_layout_info.
2389         Update to new fields.
2390         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
2391         New functions.
2392         (place_union_field): Renamed from layout_union_field.
2393         Update to use new fields in rli.
2394         (place_field): Renamed from layout_field.
2395         Major rewrite to use new fields in rli; pass alignment to layout_decl.
2396         (finalize_record_size): Rework to use new fields in rli and handle
2397         union.
2398         (compute_record_mode): Rework to simplify and to use new DECL fields.
2399         (finalize_type_size): Make rounding more consistent.
2400         (finish_union_layout): Deleted.
2401         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
2402         (layout_type, case RECORD_TYPE): Call new function names.
2403         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
2404         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
2405         (get_best_mode): UNIT is now unsigned; remove casts.
2406         * tree.c (bit_position): Compute from new fields.
2407         (byte_position, int_byte_position): New functions.
2408         (print_type_hash_statistics): Cast to remove warning.
2409         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
2410         (build_index_type): Likewise; make subtype of sizetype.
2411         (build_index_2_type): Pass sizetype to build_range_type.
2412         (build_common_tree_nodes): Use size_int and bitsize_int to
2413         initialize nodes; add bitsize_{zero,one,unit}_node.
2414         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
2415         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
2416         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
2417         (DECL_FIELD_BITPOS): Deleted.
2418         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
2419         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
2420         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
2421         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
2422         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
2423         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
2424         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
2425         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
2426         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
2427         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
2428         (DECL_ALIGN): Adjust to new field in union.
2429         (DECL_OFFSET_ALIGN): New field.
2430         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
2431         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
2432         (union tree_decl): Add struct for both aligns.
2433         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
2434         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
2435         (struct record_layout_info): Rework fields to have offset
2436         alignment and byte and bit position.
2437         (start_record_layout, place_field): Renamed from old names.
2438         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
2439         (byte_position, int_byte_position): Likewise.
2440         (get_inner_reference): Change types of position and length.
2441         * unroll.c (unroll_loop): New variable R; use for some loops.
2442         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
2443         (calculate_giv_inc): Arg REGNO now unsigned.
2444         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
2445         * varasm.c (assemble_variable): Clean up handling of size using
2446         host_integerp and tree_low_cst.
2447         (decode_addr_const): Use byte, not bit, position.
2448         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
2449         use tree_low_cst and int_bit_position.
2450         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
2451         
2452 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
2453
2454         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
2455         (reorder_block_def): New members eff_head and eff_end.
2456         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
2457         (verify_insn_chain): New function.
2458         (skip_insns_between_block): Add code to skip deleted insns.
2459         Check for note before using.
2460         (chain_reorder_blocks): Replace calls to skip_insns_between_block
2461         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
2462         Check for note before using.
2463         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
2464         (fixup_reorder_chain): Restructure, clean up, defect removal.
2465         (reorder_basic_blocks): Remove last_insn and references to it.
2466         Moved insn chain verification code into a new function (see above).
2467         Delete defective code that sets last insn.
2468         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
2469         all blocks.
2470
2471 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2472
2473         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
2474
2475 2000-03-24  Richard Henderson  <rth@cygnus.com>
2476
2477         * tree.c (lang_safe_for_unsave): Remove.
2478         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
2479         allowing for two levels of unsafeness.  Remove lang hook.
2480         * tree.h: Update declarations.
2481         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
2482         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
2483         Always fail sibcalls when there are pending cleanups.
2484
2485 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
2486
2487         * flow.c (propagate_block): When we delete an ADDR_VEC,
2488         also delete the BARRIER following it if there is one.
2489
2490 2000-03-24  Richard Henderson  <rth@cygnus.com>
2491
2492         * builtins.c (expand_builtin_bzero): Convert `length' argument
2493         to sizetype.
2494
2495 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
2496
2497         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
2498         comparison if regno's are equal.
2499         * calls.c (initialize_argument_informat): Add ecf_flags argument.
2500         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
2501         (expand_call): Update caller.
2502         Avoid making a sibling call if argument size of the callee is larger
2503         than argument size of the caller.
2504         Call hard_function_value with outgoing set if in sibcall pass.
2505         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
2506
2507         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
2508         Change LEAF_REGISTERS from an array initializer to actual array
2509         identifier. Move static global variable into the function.
2510         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
2511         sequences for leaf functions.
2512         * global.c (global_alloc): Likewise.
2513         * tm.texi (LEAF_REGISTERS): Update documentation.
2514
2515         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
2516         TARGET_FLAT leaf disabling hack.
2517         (LEAF_REGISTERS): Changed from an array initializer to actual array
2518         identifier to avoid duplication and remove the above hack.
2519         (FUNCTION_OK_FOR_SIBCALL): Define.
2520         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
2521         always like call attribute.
2522         (eligible_for_sibcall_delay): New attribute.
2523         (sibcall): New delay type.
2524         (sibcall, sibcall_value, sibcall_epilogue): New expands.
2525         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
2526         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
2527         * config/sparc/sparc.c (sparc_leaf_regs): New array.
2528         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
2529         New functions.
2530         (output_function_epilogue): Move part of the code into
2531         output_restore_regs.
2532         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
2533         TYPE_SIBCALL.
2534         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
2535         prototypes.
2536
2537         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
2538         until infrastructure is finished.
2539
2540 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
2541
2542         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
2543         (save_parm_insns): Not here.
2544
2545 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2546
2547         * builtins.c (expand_builtin_bzero): New function.
2548         (expand_builtin): Handle bzero.
2549
2550         * builtins.def: Add BUILT_IN_BZERO.
2551
2552         * c-common.c (c_common_nodes_and_builtins): Provide builtin
2553         prototype & function for bzero.
2554
2555 2000-03-23  Michael Meissner  <meissner@redhat.com>
2556
2557         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
2558         change adding TARGET_FP to the TF floating point insns, except for
2559         trunctfsf2, which generates direct calls to truncdfsf2.
2560
2561 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
2562
2563         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
2564         try to protect against middle-end changes that break binary
2565         compatibility.
2566         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
2567
2568 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2569
2570         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
2571
2572 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2573
2574         * calls.c (expand_call): If TARGET is passed by reference and
2575         is readonly, write a CLOBBER.
2576
2577 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2578
2579         * builtins.c (expand_builtin): Handle bcmp.
2580
2581         * builtins.def: Add BUILT_IN_BCMP.
2582
2583         * c-common.c (c_common_nodes_and_builtins): Provide builtin
2584         prototype & function for bcmp.
2585
2586 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
2587
2588         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
2589         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
2590         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
2591
2592 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
2593
2594         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
2595         alternative when using -fp64 -gp32.
2596
2597 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
2598
2599         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
2600         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
2601         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
2602
2603         * frame.h (frame_state): Revert last change.
2604         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
2605         * libgcc2.c (throw_helper): Revert last change.
2606         
2607 2000-03-22  Richard Henderson  <rth@cygnus.com>
2608
2609         * stmt.c (expand_asm_operands): Don't promote the temporary.
2610
2611 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2612
2613         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
2614         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
2615           c_get_alias_set): Likewise.
2616         * c-decl.c (duplicate_decls): Likewise.
2617         * c-typeck.c (default_conversion,build_unary_op): Likewise.
2618         * calls.c (initialize_argument_information): Likewise.
2619         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
2620         Likewise.
2621         * dwarfout.c (decl_class_context,output_type): Likewise.
2622         * expr.c (get_inner_reference): Likewise.
2623         * fold-const.c (simple_operand_p,fold): Likewise.
2624         * function.c (aggregate_value_p): Likewise.
2625         * stmt.c (expand_asm_operands): Likewise.
2626         * varasm.c (named_section): Likewise.
2627
2628 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
2629
2630         Implement dwarf2 exception handling for the ARM.
2631         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
2632         (DWARF_FRAME_RETURN_COLUMN): Define.
2633         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
2634         REG_FRAME_RELATED_EXPR note.
2635         (emit_sfm): Likewise.
2636         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
2637         * dwarf2out.c (reg_save): Handle saving a register to itself.
2638         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
2639         * except.c (eh_regs): Don't use the static chain reg if it's
2640         callee-saved.
2641         * frame.h (frame_state): Add cfa_saved field.
2642         * frame.c (execute_cfa_insn): Set it.
2643         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in 
2644         the epilogue.
2645         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
2646         Now takes a parm.
2647         (instantiate_virtual_regs): Adjust.
2648         * tm.texi: Adjust.
2649         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
2650         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
2651         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
2652
2653         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
2654         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
2655
2656 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2657
2658         * builtins.def: New file.
2659
2660         * Makefile.in (TREE_H): Depend on builtins.def.
2661
2662         * builtins.c (built_in_names): Use builtins.def.
2663
2664         * tree.h (built_in_function): Likewise.
2665
2666 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
2667
2668         * tree.c (size_in_bytes): Return size_zero_node, not
2669         integer_zero_node.
2670
2671 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
2672
2673         * config/fp-bit.c (pack_d): Correct the case when a denormal
2674         is rounded up and stops being denormal.
2675
2676 2000-03-21  Richard Henderson  <rth@cygnus.com>
2677
2678         * config/alpha/alpha.c (function_arg): Check for void_type_node
2679         before using MUST_PASS_IN_STACK.
2680
2681 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
2682
2683         * regmove.c (combine_stack_adjustments_for_block): Check that
2684         the stack pointer is a valid memory address.
2685
2686 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
2687
2688         * calls.c: re-install Mar 16 emit_library_call merge.
2689
2690 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
2691
2692         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
2693         we cannot be sure that if reload_completed base register will
2694         be properly aligned.
2695
2696 2000-03-21  Richard Henderson  <rth@cygnus.com>
2697
2698         * flow.c (delete_block): Fix typo last change.
2699
2700 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
2701
2702         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
2703         not COMPLETE_TYPE_P, to check the type of the expression.
2704
2705 2000-03-21  Michael Meissner  <meissner@redhat.com>
2706
2707         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
2708         all floating point insns that just tested the macro
2709         TARGET_HAS_XFLOATING_LIBS.
2710         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
2711         used to only use the gprs.
2712
2713 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
2714
2715         * tree.h (COMPLETE_TYPE_P): New macro.
2716         (COMPLETE_OR_VOID_TYPE_P): New macro.
2717         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
2718         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
2719         * c-aux-info.c (gen_type): Use them.
2720         * c-common.c (c_expand_expr_stmt): Likewise.
2721         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
2722         grokdeclarator, grokparms, finish_struct, start_function,
2723         store_parm_decls, combine_parm_decls): Likewise.
2724         * c-parse.y (cast_expr): Likewise.
2725         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
2726         c_size_in_bytes, c_alignof, build_component_ref,
2727         build_indirect_ref, build_array_ref, convert_arguments,
2728         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
2729         * calls.c (initialize_argument_information): Likewise.
2730         * convert.c (convert_to_integer): Likewise.
2731         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
2732         * dwarfout.c (location_or_const_value_attribute,
2733         output_enumeration_type_die, output_structure_type_die,
2734         output_union_type_die, output_type): Likewise.
2735         * expr.c (safe_from_p, expand_expr): Likewise.
2736         * function.c (assign_parms): Likewise.
2737         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
2738         * tree.c (build_array_type, build_function_type,
2739         build_method_type, build_offset_type, build_complex_type): Likewise.
2740         * c-parse.c, c-parse.h: Regenerated.
2741
2742 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2743
2744         * config/c4x/rtems.h: Include config/rtems.h.
2745
2746 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
2747
2748         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
2749         decl is a FUNCTION_DECL
2750
2751 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
2752
2753         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
2754         function uses output registers.  Don't save RP for leaf functions.
2755         Do save RP even if no epilogue.
2756         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
2757         (CALL_USED_REGISTERS): Unmark in registers.
2758         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
2759         to near the middle.
2760
2761 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
2762
2763         * config/rs6000/rs6000.md (bunordered): New expander.
2764         (bordered): New expander.
2765         (buneq): New expander.
2766         (bunge): New expander.
2767         (bungt): New expander.
2768         (bunle): New expander.
2769         (bunlt): New expander.
2770         (bltgt): New expander.
2771  
2772         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
2773         (ccr_bit_negated_p): New function.
2774         (print_operand): For %C, generate appropriate cror for UNEQ,
2775         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
2776
2777 2000-03-20  Andreas Jaeger  <aj@suse.de>
2778
2779         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
2780         warning.
2781
2782         * tree.h (safe_for_unsave): Prototype.
2783
2784 2000-03-20  Richard Henderson  <rth@cygnus.com>
2785
2786         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
2787         (combine_stack_adjustments_for_block): Don't allow sp references
2788         in the side of a set we're not fixing up.
2789         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
2790         after life_analysis.
2791
2792 2000-03-20  Richard Henderson  <rth@cygnus.com>
2793
2794         * calls.c (expand_call): Don't bother generating tail call
2795         sequences if there are pending cleanups.  Use
2796         expand_start_target_temps/expand_end_target_temps to elide
2797         cleanups created during sibcall expansion.
2798
2799 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
2800
2801         * configure.in: Set $IFS to a value if it doesn't already have one
2802         in the --enable-checking handling.
2803         * configure: Regenerate.
2804
2805 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2806
2807         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
2808         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
2809         Regenerated.
2810
2811 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
2812
2813         * jump.c (delete_noop_moves): Remove code attempting to
2814         combine stack adjustments.
2815
2816 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2817
2818         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
2819         * except.c (emit_cleanup_handler): Use them.
2820         (expand_end_all_catch): Likewise.
2821         * function.c (fixup_var_refs): Likewise.
2822         (expand_function_end): Clear catch_clauses_last.
2823         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
2824         * except.h (struct eh_status): New field x_catch_clauses_last.
2825         (catch_clauses_last): New define.
2826
2827         * Makefile.in (tree.o): Depend on HASHTAB_H.
2828         * tree.c: Include hashtab.h.
2829         (struct type_hash): Remove next field.
2830         (TYPE_HASH_SIZE): Remove.
2831         (TYPE_HASH_INITIAL_SIZE): New define.
2832         (type_hash_table): Change type to htab_t.
2833         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
2834         mark_hash_entry): New functions.
2835         (init_obstacks): Allocate type hash.
2836         (type_hash_lookup): Use htab functions.
2837         (type_hash_add, mark_type_hash): Likewise.
2838         (dump_tree_statistics): Call print_type_hash_statistics.
2839
2840 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2841
2842         * rs6000/t-aix41: New file.
2843
2844         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
2845
2846 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
2847
2848         * tm.texi (Driver): Fix typos and tweak entry for
2849         INCLUDE_DEFAULTS.
2850         Move misplaced STRUCT_FORCE_BLK entry ...
2851         (Storage Layout): ... to here.
2852         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
2853
2854 2000-03-19  Richard Henderson  <rth@cygnus.com>
2855
2856         * flow.c (delete_block): Delete the addr_vec along with the block.
2857         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
2858         reference labels.
2859
2860         * fold-const.c (extract_muldiv): Apply type check for defined
2861         overflow to multiply as well as divide.
2862
2863         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
2864
2865 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
2866
2867         * emit-rtl.c (remove_unncessary_notes): Check that all
2868         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
2869         associated NOTE_BLOCK.
2870         * function.h (identify_blocks): Update comments.
2871         (reorder_blocks): Declare.
2872         * function.c (identify_blocks): Don't take paramters.
2873         (reorder_blocks): Don't take parameters.
2874         * loop.h (find_loop_tree_blocks): Remove.
2875         (unroll_block_trees): Likewise.
2876         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
2877         reorder_blocks instead of unroll_block_trees.h
2878         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
2879         * stmt.c (find_loop_tree_blocks): Remove.
2880         (unroll_block_trees): Likewise.
2881         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
2882         in whole-function mode.
2883         * tree.h (reorder_blocks): Remove declaration.
2884
2885         * expr.c: Include intl.h.
2886         * Makefile.in (expr.o): Depend on intl.h.
2887         
2888 2000-03-18  Richard Henderson  <rth@cygnus.com>
2889
2890         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
2891
2892 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
2893
2894         * tree.h (tree_index): Remove enumerals for integer types.
2895         (integer_type_kind): New type.
2896         (integer_types): New variable.
2897         (char_type_node): Adjust.
2898         (signed_char_type_node): Likewise.
2899         (unsigned_char_type_node): Likewise.
2900         (short_integer_type_node): Likewise.
2901         (short_unsigned_type_node): Likewise.
2902         (integer_type_node): Likewise.
2903         (unsigned_type_node): Likewise.
2904         (long_integer_type_node): Likewise.
2905         (long_unsigned_type_node): Likewise.
2906         (long_long_integer_type_node): Likewise.
2907         (long_long_unsigned_type_node): Likewise.
2908         * tree.c (integer_types): New variable.
2909         (init_obstacks): Register it as a root.
2910
2911 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
2912
2913         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
2914         NEXT_INSN. Update last insn in chain.
2915
2916 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
2917
2918         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
2919         with TYPE_DECL_SUPPRESS_DEBUG set.
2920
2921 2000-03-18  Richard Henderson  <rth@cygnus.com>
2922
2923         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
2924
2925 2000-03-18  Richard Henderson  <rth@cygnus.com>
2926
2927         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
2928         care for HALF_PIC_P.
2929         (expander_call_insn_operand): Remove.
2930         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
2931         * i386.h (PREDICATE_CODES): Update.
2932         * i386.md (all call expanders): Remove predicates, remove special
2933         handling for half-pic.
2934         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
2935         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
2936         (sibcall_epilogue): New.
2937
2938 2000-03-17  Richard Henderson  <rth@cygnus.com>
2939
2940         * rtlanal.c (single_set): Reject if the parallel has anything
2941         except SET or USE or CLOBBER.
2942
2943 2000-03-17  Jeff Law  <law@cygnus.com>
2944             Richard Henderson  <rth@cygnus.com>
2945
2946         * Makefile.in (OBJS): Add sibcall.o.
2947         (sibcall.o): New.
2948         * sibcall.c: New file.
2949         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
2950         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
2951         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
2952         Emit sibcall patterns when requested.  Update all callers.
2953         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
2954         elimination seems feasable.
2955         * final.c (leaf_function_p): Sibling calls don't discount being
2956         a leaf function.
2957         * flow.c (HAVE_sibcall_epilogue): Provide default.
2958         (find_basic_blocks_1): Sibling calls don't throw.
2959         (make_edges): Make edge from sibling call to EXIT.
2960         (propagate_block): Don't remove sibcall_epilogue insns.
2961         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
2962         (sibcall_epilogue): New.
2963         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
2964         (identify_blocks_1): Likewise.  Break out from ...
2965         (identify_blocks): ... here.
2966         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
2967         (reorder_blocks): ... here.
2968         (init_function_for_compilation): Zap prologue/epilogue as varrays.
2969         (record_insns): Extend a varray instead of mallocing new memory.
2970         (contains): Read a varray not array of ints.
2971         (sibcall_epilogue_contains): New.
2972         (thread_prologue_and_epilogue_insns): Emit and record
2973         sibcall_epilogue patterns.
2974         (init_function_once): Allocate prologue/epilogue varrays.
2975         * genflags.c (gen_insn): Treat sibcall patterns as calls.
2976         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
2977         Broken out from ...
2978         (save_for_inline_nocopy): ... here.
2979         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. 
2980         Broken out from ...
2981         (expand_inline_function): ... here.
2982         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
2983         (subst_constants): Handle 'n' formats.
2984         * jump.c (jump_optimize_minimal): New.
2985         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
2986         optimizations if it's set.
2987         * rtl.c (copy_rtx): Do copy jump & call for insns.
2988         * rtl.h (struct rtx_def): Document use of jump and call for insns.
2989         (SIBLING_CALL_P): New.
2990         (sibcall_use_t): New.
2991         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
2992         Invoke optimize_sibling_and_tail_recursive_calls.
2993         * tree.c (lang_safe_for_unsave): New.
2994         (safe_for_unsave): New.
2995         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
2996
2997         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
2998         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
2999         (*sibcall_osf_1, *sibcall_value_osf_1): New.
3000
3001 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
3002
3003         * objc/objc-act.c (encode_method_prototype): Pass types, not
3004         PARM_DECLs, to int_size_in_bytes.
3005
3006 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
3007
3008         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
3009
3010         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
3011         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
3012
3013 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3014
3015         * Clean up usages of TREE_INT_CST_LOW.
3016         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
3017         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
3018         Regenerated.
3019         * c-tree.h (min_precision): Move declaration to here.
3020         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
3021         (build_unary_op, add_pending_init): Use bit_position.
3022         (pending_init_member, process_init_element): Likewise.
3023         (really_start_incremental_init, push_init_level, pop_init_level):
3024         Don't make copies of nodes or modify them in place, use consistent
3025         types when tracking positions, and use tree routines computations.
3026         (set_init_index, output_init_element): Likewise.
3027         (output_pending_init_elements, process_init_element): Likewise.
3028         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
3029         tree_low_cst and int_bit_position; also minor cleanup.
3030         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
3031         (print_cst_octal): Precision is unsigned.
3032         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
3033         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
3034         (simple_type_align_in_bits): Result is unsigned int.
3035         Use tree_int_low_cst and host_integerp.
3036         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
3037         (field_byte_offset): Result is HOST_WIDE_INT.
3038         Change types of internal variables so alignments are unsigned int,
3039         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
3040         Use host_integerp, tree_low_cst, and int_bit_position.
3041         (add_bit_offset_attribute): Likewise.
3042         (add_data_member_location_attribute): Use tree_cst_low.
3043         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
3044         (add_bit_size_attribute): Use tree_low_cst.
3045         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
3046         * dwarfout.c: Similar changes to dwarf2out.c.
3047         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
3048         * genoutput.c (n_occurences): Return -1 for null string.
3049         (strip_whitespace): Accept null string and make into function.
3050         (scan_operands): Reflect above changes.
3051         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
3052         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
3053         * ssa.c (rename_registers): Add missing cast of arg to bzero.
3054         * tree.c (int_size_in_bytes): Check for too big to represent.
3055         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
3056         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
3057         New declarations.
3058         (min_precision): Delete from here.
3059         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
3060         and int_bit_position.
3061         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
3062         (encode_method_def): Likewise.
3063         (build_ivar_list_initializer): Use int_bit_position.
3064         (generate_shared_structures): Convert size.
3065         (encode_type, encode_complete_bitfield): Use integer_zerop.
3066         (encode_bitfield): Use tree_low_cst and int_bit_position.
3067         
3068 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3069
3070         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
3071
3072 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3073
3074         * call.c (special_function_p): It is only malloc if it returns
3075         Pmode.
3076
3077 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3078
3079         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
3080         (C33_FLAG, TARGET_C3X): Add macros.
3081         (TARGET_SWITCHES): Add -m33 option.
3082         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
3083         
3084 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3085         
3086         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
3087         (PARALLEL_PACK_FLAG): Delete.
3088         (TARGET_SWITCHES): Update.
3089         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
3090
3091 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3092
3093         * fold-const.c (fold): Fix a few cases when the returned result
3094         is not of the same type as the input.
3095
3096 2000-03-16  Nick Clifton  <nickc@cygnus.com>
3097
3098         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
3099         warning.
3100
3101 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3102
3103         * libgcc2.h: Move prototypes above macros with the same name.
3104         Wrap some function prototypes in the conditional which indicates
3105         whether they are supported, i.e. "BITS_PER_UNIT == 8".
3106
3107 2000-03-16  Richard Henderson  <rth@cygnus.com>
3108
3109         * calls.c: Revert last two changes.
3110
3111 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
3112
3113         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
3114         has exponent 0 is a zero.
3115
3116         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
3117         HASH may already be nonzero.  Add code/mode into hash value
3118         immediately after repeat label.
3119         (cselib_lookup): Don't leave the hash table in an inconsistent
3120         state before a hash lookup operation.
3121
3122 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
3123
3124         * i386.md (all HI and QI mode non-move patterns):  Conditionize
3125         by TARGET_[HQ]IMODE_MATH.
3126         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
3127         x86_promote_qi_regs): Declare.
3128         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
3129         TARGET_PROMOTE_QI_REGS): New macros.
3130         (PROMOTE_MODE): New macro.
3131         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
3132         x86_promote_qi_regs): New global variables.
3133
3134 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
3135
3136         * calls.c (emit_library_call_value_1): Break out from ...; handle
3137         VOIDmode function calls too.
3138         (emit_library_call_value): ... here.
3139         (emit_library_call): Implement by calling emit_library_call_value_1.
3140
3141 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
3142
3143         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
3144         Update arg_space_so_far on stack adjustments.
3145         (emit_library_call, emit_library_call_value): Likewise; take into
3146         account arg_space_so_far and pending_stack_adjust when calculcating
3147         the boundary.
3148
3149 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
3150
3151         * flow.c: Move all basic block reordering code into its own file.
3152         (create_basic_block): Externalize.
3153         * bb-reorder.c: New file. Copy all basic block reordering code from
3154         flow.c to this file.
3155         (reorder_basic_blocks): Fix fencepost error in for-loop.
3156         (reorder_basic_blocks): Remove braces from single statement for-loops.
3157         * basic-block.h: Add declaration for create_basic_block.
3158         * Makefile.in: Add rules for bb-reorder.o.
3159
3160 2000-03-16  Neil Booth  <NeilB@earthling.net>
3161
3162         * cppinit.c (handle_option):  Implement #unassert directive
3163         as -A- command line option.
3164         (print_help):  Update.
3165         * cpptexi.c:  Update.
3166
3167 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
3168
3169         * md.texi (Standard Names): Document `jump'.
3170
3171 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
3172
3173         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
3174         gotos.
3175
3176 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
3177
3178         Merge changes from newppc-branch onto trunk.
3179
3180         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
3181
3182         * rs6000.c (toc_hash_table): Update for new hash table functions.
3183         (toc_hash_function): Likewise.
3184         (toc_hash_eq): Likewise.
3185         (toc_hash_mark_entry): Likewise.
3186         (toc_hash_mark_table): Likewise.
3187         (output_toc): Likewise.
3188         (rs6000_add_gc_roots): Likewise.
3189
3190         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3191
3192         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
3193         (AR_FLAGS_FOR_TARGET): here.  New macro.
3194
3195         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
3196
3197         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
3198         fpmem_operand) Delete.
3199         (xer_operand) New.
3200         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
3201         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
3202         (rs6000_save_machine_status, rs6000_restore_machine_status, 
3203         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove 
3204         references to above variables.
3205         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
3206         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
3207         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
3208         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
3209         (XER_REGNO_P, XER_REGNO): New.
3210         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
3211         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
3212         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to 
3213         XER_REGNO_P.
3214         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
3215         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
3216         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
3217         
3218         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3219
3220         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
3221         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
3222         * rs6000.h: from here.
3223
3224         * rs6000-protos.h (rs6000_select_section): Provide prototype.
3225         (rs6000_select_rtx_section): Likewise.
3226         (rs6000_encode_section_info): Likewise.
3227         (sdata_section): Likewise.
3228         (sdata2_section): Likewise.
3229         (sbss_section): Likewise.
3230         * sysv4.h (rs6000_select_section): Delete prototype.
3231         (rs6000_select_rtx_section): Likewise.
3232         (rs6000_encode_section_info): Likewise.
3233         (sdata_section): Likewise.
3234         (sdata2_section): Likewise.
3235         (sbss_section): Likewise.
3236         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
3237
3238         * sysv4.h: Delete various unnecessary #undef's and put a comment
3239         on the remaining ones.
3240         Change various comments according to coding standard.
3241
3242         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
3243
3244         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO, 
3245         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
3246         (CR0_REGNO_P) Remove.
3247         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand, 
3248         setup_incoming_varargs, mtcrf_operation, print_operand, 
3249         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): 
3250         Use the above macros.
3251
3252         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
3253
3254         * config/rs6000/rs6000.md: Added a new alternative for each
3255         pattern that had a 'x' alternative but no 'y' alternative.
3256         Added a new split for each of the above patterns.
3257
3258         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
3259
3260         * aix41.h (ASM_CPU_SPEC): Delete.
3261         (CPP_CPU_SPEC): Delete.
3262
3263         * aix.h (RS6000_OUTPUT_BASENAME): Define.
3264         (ASM_OUTPUT_LABEL): Define.
3265         (ASM_GLOBALIZE_LABEL): Define.
3266         (STRIP_NAME_ENCODING): Define.
3267         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
3268         (STRIP_NAME_ENCODING): Don't define.
3269         (ASM_OUTPUT_LABEL): Don't define.
3270         (ASM_GLOBALIZE_LABEL): Don't define.
3271         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
3272         names, and ASM_OUTPUT_LABEL to output labels, rather than
3273         asm_fprintf.
3274         (ASM_OUTPUT_LABEL): Define.
3275         (ASM_OUTPUT_INT): Use assemble_name.
3276         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
3277         (STRIP_NAME_ENCODING): Don't undefine first.
3278         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
3279         ELF.
3280         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
3281         specified with 'asm' even with -fleading-underscore.
3282         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
3283         (output_epilog): Likewise.
3284         (output_toc): Likewise. 
3285         * tramp.asm: Handle -fleading-underscore correctly.
3286
3287         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
3288         -mminimal-toc.
3289         (nonlocal_goto_receiver): Delete.
3290         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
3291
3292         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
3293         (SET_ASM_OP): Define.
3294         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
3295
3296         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
3297         (ASM_LONG): Define.
3298
3299         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
3300         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
3301
3302         * rs6000.h: Add 'u' to more constants.
3303
3304         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
3305
3306         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
3307
3308         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
3309
3310         * rs6000.c (reg_or_u_cint_operand): New function.
3311         (logical_operand): Handle 64-bit hosts.
3312         (logical_u_operand): New function.
3313         (non_logical_cint_operand): Handle 64-bit hosts.
3314         (non_logical_u_cint_operand): New function.
3315         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
3316         (PREDICATE_CODES): Define new functions.
3317         * rs6000-protos.h: Declare new functions.
3318         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
3319         (movdi_64): Bracket code intended for 64-bit hosts.  Create
3320         CONST_DOUBLE for 32-bit values.
3321         (scc insns): Generate DImode compares.
3322         (mfcr insns): Create DImode versions.
3323         (sge matchers): New patterns.
3324         
3325         2000-02-15  Gabriel Paubert  <paubert@iram.es>
3326
3327         * rs6000.md: Correct instructions length attributes and
3328         constraints on unsigned compare instructions.
3329         (*ne0): Disable for PowerPC64.
3330
3331         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
3332
3333         * rs6000.c (output_function_profiler): Use .long for a 32-bit
3334         quantity, fix profile1.C test failure under -fPIC.
3335
3336         * rs6000.c: Add 'u' to many constants to suppress warnings.
3337         (constant_pool_expr_1): Make static.
3338         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
3339         * rs6000.h: Add 'u' to many constants to suppress warnings.
3340
3341         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
3342         for the start of the TOC, instead of LCTOC..0.
3343         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
3344         of the TOC.
3345         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
3346         (load_toc_aix_di): Use LCTOC..1.
3347
3348         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
3349         * rs6000.c (rs6000_legitimize_address): New function from
3350         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
3351         symbols in the constant pool that really are TOC references.
3352         (print_operand_address): For ELF, write TOC offsets under
3353         -fPIC as subtractions in the insn.
3354         (output_toc): For ELF, define symbols in TOC as normal labels,
3355         to match RTL.
3356         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
3357         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
3358         (create_TOC_reference): Prototype only when RTX_CODE is defined.
3359         * rs6000.md (movsi): Only use create_TOC_reference on
3360         symbols in the constant pool that really are TOC references.
3361
3362         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
3363         * rs6000.c (rs6000_reorg): Delete.
3364         * rs6000-protos.h (rs6000_reorg): Delete.
3365
3366         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
3367
3368         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
3369
3370         * aix.h (SETUP_FRAME_ADDRESSES): Define.
3371         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
3372         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
3373         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
3374         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
3375         rs6000_aix_emit_builtin_unwind_init.
3376         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call 
3377         rs6000_emit_eh_toc_restore on AIX.
3378         (return_eh_si): Use r2.
3379         (return_eh_di): Use r2.
3380
3381         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
3382         since we're breaking binary compatibility anyway.
3383
3384         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
3385
3386         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
3387         constant_pool_expr_p): Declare them.
3388         (constant_pool_expr_p): Declare it.
3389         * config/rs6000/rs6000.c (toc_label_name): Define.
3390         (rs6000_override_options): Set toc_label_name.
3391         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
3392         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
3393         uses_TOC): New functions.
3394         (print_operand): Delete old '*' case.
3395         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
3396         and strip off rtl for TOC before calling output_addr_const.
3397         (rs6000_emit_load_toc_table): Use toc_label_name.
3398         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
3399         the default.
3400         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
3401         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
3402         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
3403         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
3404         into explicit TOC_REGISTER offsets.
3405         (TOC_REGISTER): New macro.
3406         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under 
3407         TARGET_TOC to reference TOC_REGISTER.
3408         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
3409         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call  
3410         uses_TOC before emitting label references.
3411
3412         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
3413
3414         * rs6000.md (stack_tie): Fix warning.
3415
3416         * eabi-ctors.c: Use 'asm' names for the start/end variables,
3417         to handle -fleading-underscore.
3418         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
3419         (USER_LABEL_PREFIX): New macro.
3420         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
3421         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
3422         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
3423         call-linux can use the same multilibs.
3424         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
3425         and call-linux multilibs.  Do multilib with -fleading-underscore.
3426         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
3427         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
3428         to call-aix.
3429
3430         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
3431         have MASK_SOFT_FLOAT set.
3432         (CPP_FLOAT_DEFAULT_SPEC): New macro.
3433         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
3434         CPP_FLOAT_DEFAULT_SPEC.
3435
3436         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
3437         * rs6000.md: Whitespace change.
3438         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
3439         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
3440
3441         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
3442
3443         * rs6000.md (eh_epilogue): New expander.
3444         (eh_reg_restore): New expand/split/insn combination.
3445         (return_eh_si): New insn.
3446         (return_eh_di): New insn.
3447
3448         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
3449         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
3450         * eabi-ctors.c (__do_global_ctors): Register this object's
3451         frame.  Clean up.  Call atexit() after the constructors.
3452         (__do_global_dtors): Deregister this object's frame.  Clean up.
3453         Allow for recursive calls to exit().
3454         * rs6000.c (fixuplabelno): New variable.
3455         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
3456         TARGET_RELOCATABLE, it slows down exec() under linux.
3457         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
3458
3459         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
3460         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
3461         (ASM_OUTPUT_DWARF_DELTA2): New macro.
3462         (ASM_OUTPUT_DWARF_DELTA4): New macro.
3463         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
3464         (ASM_OUTPUT_DWARF_ADDR): New macro.
3465         (ASM_OUTPUT_DWARF_DATA4): New macro.
3466         (ASM_OUTPUT_DWARF_DATA2): New macro.
3467         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
3468         (ASM_OUTPUT_DWARF_OFFSET): New macro.
3469         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
3470
3471         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
3472
3473         * rs6000.c (rs6000_sr_alias_set): New variable.
3474         (rs6000_override_options): Initialise rs6000_sr_alias_set.
3475         (rs6000_emit_stack_tie): New function.
3476         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
3477         in a way that dwarf2out can understand.
3478         (rs6000_frame_related): New function.
3479         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
3480         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
3481         Use rs6000_emit_stack_tie when needed.
3482         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
3483         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
3484         * rs6000.md (stack_tie): New insn.
3485         (return_internal_si): Allow return value to be in the count
3486         register.
3487         (return_internal_di): Likewise.
3488
3489         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
3490
3491         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
3492
3493         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
3494
3495         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
3496
3497         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
3498
3499         * rs6000.md (stmw): Use the right POWER opcode.
3500         (lmw): Likewise.
3501
3502         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3503
3504         * rs6000-protos.h: New file.
3505
3506         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
3507         
3508         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
3509         warnings.
3510         
3511         * sysv4.h: Likewise.
3512
3513         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
3514
3515         * ../../configure.in: Delete powerpcle-*-winnt*
3516         and powerpcle-*-pe|powerpcle-*-cygwin*.
3517         * ../../configure: Regenerated.
3518         * cygwin.h: Delete.
3519         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
3520         (TARGET_WINDOWS_NT): Delete.
3521         (ABI_NT): Delete.
3522         (CALL_NT_DLLIMPORT): Delete.
3523         Delete NT-specific code.
3524         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
3525         * win-nt.h: Delete.
3526         * t-winnt: Delete.
3527         * nt-ci.asm: Delete.
3528         * nt-cn.asm: Delete.
3529         * ntstack.asm: Delete.
3530
3531         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3532
3533         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
3534         (ASM_FILE_START): Likewise.
3535         (ASM_DECLARE_FUNCTION_NAME): Likewise.
3536         (ASM_OUTPUT_LABELREF): Likewise.
3537         (ASM_OUTPUT_SKIP): Likewise.
3538         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
3539         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
3540         (ASM_OUTPUT_CASE_LABEL): Likewise.
3541         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
3542         (ASM_OUTPUT_ASCII): Likewise.
3543
3544         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
3545
3546         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
3547         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
3548         increment rs6000_pic_labelno here.
3549         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
3550         and increment rs6000_pic_labelno here.
3551
3552         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
3553
3554         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
3555         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
3556         allocation knows (reg) is dead before the insn.
3557
3558         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
3559
3560         * rs6000.md (movsi_to_cr): Correct typo in output template.
3561
3562         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
3563
3564         * rs6000.c (rs6000_pic_labelno): Always define.
3565         (rs6000_pic_func_labelno): Delete.
3566         (lmw_operation): Check for a zero base register,
3567         which doesn't mean what we want.
3568         (stmw_operation): New function.
3569         (print_operand): Define new 'l' modifier.
3570         (rs6000_stack_info): We must save all 64 bits of the registers
3571         if TARGET_POWERPC64.
3572         (rs6000_output_load_toc_table): Delete.
3573         (rs6000_emit_load_toc_table): New function.
3574         (rs6000_allocate_stack_space): Delete.
3575         (rs6000_emit_allocate_stack): New function.
3576         (rs6000_emit_prologue): New function.
3577         (output_prolog): Use rs6000_emit_prologue.
3578         (rs6000_emit_epilogue): Change a few variable names to be
3579         more accurate.  Restore all 64 bits of the registers if
3580         TARGET_POWERPC64.  Only restore the FP registers which were used
3581         if they are being saved/restored one-at-a-time.
3582         (output_mi_thunk): Delete inefficient code generation.
3583         (output_function_profiler): Don't use rs6000_output_load_toc_table.
3584         * rs6000.h: Declare rs6000_emit_load_toc_table,
3585         rs6000_allocate_stack_space, stmw_operation.  Don't declare
3586         rs6000_output_load_toc_table.
3587         * rs6000.md (elf_high): Allow register 0, but discourage it
3588         heavily.
3589         (elf_low): Support loading into register 0.
3590         (load_toc_aix_si): New pattern.
3591         (load_toc_aix_di): New pattern.
3592         (load_toc_v4_pic_si): New pattern.
3593         (load_toc_v4_pic_di): New pattern.
3594         (load_toc_v4_PIC_1): New pattern.
3595         (load_toc_v4_PIC_1b): New pattern.
3596         (load_toc_v4_PIC_2): New pattern.
3597         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
3598         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
3599         (prologue): New expander.
3600         (movesi_from_cr): New pattern.
3601         (stmw): New pattern.
3602         (save_fpregs_si): New pattern.
3603         (save_fpregs_di): New pattern.
3604
3605         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
3606
3607         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
3608         (movdi): Likewise.
3609         (movhi): Likewise.
3610         (movqi): Likewise.
3611
3612         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
3613
3614         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
3615         at present.
3616         (movsi_got_internal): Likewise.
3617         (movsi_got_internal+1): Likewise.
3618         (set_sp): 'unspec 7' does a SImode clobber.
3619
3620         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
3621
3622         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
3623         allocate a stack temporary.
3624         (floatsidf2_internal): Likewise.
3625         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
3626         with unspec.
3627         (floatunssidf2): Don't use the fpmem "register", just
3628         allocate a stack temporary.
3629         (floatunssidf2_internal): Likewise.
3630         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
3631         with unspec.
3632         (floatsidf2_loadaddr): Delete.
3633         (floatsidf2_store1): Delete.
3634         (floatsidf2_store2): Delete.
3635         (floatsidf2_load): Delete.
3636         (fix_truncdfsi2): Don't use the fpmem "register", just
3637         allocate a stack temporary.
3638         (fix_truncdfsi2_internal_si): Delete.
3639         (fix_truncdfsi2_internal_di): Delete.
3640         (fix_truncdfsi2_internal): New insn.
3641         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
3642         (fix_truncdfsi2_store): Delete.
3643         (fix_truncdfsi2_load): Delete.
3644         (fctiwz): Produce gen_fctiwz.
3645
3646         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
3647
3648         * eabi.h (INVOKE__main): Define.
3649         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
3650         specially.
3651         (rs6000_emit_prologue): Likewise.
3652         * rs6000.h (struct rs6000_stack): Don't keep track of whether
3653         this is the main program.
3654
3655         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
3656
3657         * rs6000.c (rs6000_va_arg): Delete some unused variables.
3658
3659         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
3660
3661         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
3662         goes after the argument.
3663
3664         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
3665
3666         * rs6000.md: Document 'unspec' values used.
3667         (epilogue): New expander.
3668         (movesi_to_cr_one): New expander.
3669         (movesi_to_cr and following): New pattern.
3670         (lmw): New pattern.
3671         (return_internal_si): New pattern.
3672         (return_internal_di): New pattern.
3673         (return_and_restore_fpregs_si): New pattern.
3674         (return_and_restore_fpregs_di): New pattern.
3675         * rs6000.h: Declare new functions.
3676         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
3677         rather than rs6000_calls_p.
3678         (rs6000_makes_calls): Delete.
3679         (lmw_operation): New function.
3680         (mtcrf_operation): New function.
3681         (rs6000_emit_epilogue): New function.
3682         (output_epilog): Call rs6000_emit_epilogue and final if
3683         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
3684
3685         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
3686
3687         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
3688         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
3689         * aix.h (SUBTARGET_SWITCHES): Document switches.
3690         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
3691         sched-prolog and sched-epilog the same.  Document all the
3692         switches.
3693         (TARGET_OPTIONS): No longer allow -mdebug-.
3694
3695         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
3696
3697         * rs6000.h (ASM_FILE_END): Move to aix.h.
3698         (EXTRA_SECTIONS): Move to aix.h.
3699         (READONLY_DATA_SECTION): Move to aix.h.
3700         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
3701         (SELECT_SECTION): Move to aix.h.
3702         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
3703         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
3704         (LINK_REGISTER_REGNUM): New definition.
3705         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
3706         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
3707         AIX and SVR4.
3708         * sysv4.h: Delete the code between the inclusion of rs6000.h
3709         and svr4.h.
3710         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
3711         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
3712         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
3713         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
3714         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
3715         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
3716         (fix_truncdfsi2_internal_di): New pattern.
3717         (fix_truncdfsi2_store): The second arg here is Pmode too.
3718         (fix_truncdfsi2_load): The second arg here is Pmode too.
3719         (tablejumpdi): Now that switch tables hold only SImode values,
3720         gcc needs to know how to add them to the pc which is DImode.
3721         * rs6000.c (rs6000_stack_info): Use symbolic name for 
3722         LINK_REGISTER_REGNUM.
3723         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
3724         (output_toc): Delete unused variables s1 and s2.
3725         (output_ascii): Use fputs not fprintf on a variable string.
3726
3727         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
3728
3729         * rs6000.c (processor_target_table): Add power3 as alias for 630.
3730         * aix43.h: Revert Aug 2 change.
3731         (HAS_INIT_SECTION): Define, not visible yet.
3732         (LD_INIT_SWITCH): Define, not visible yet.
3733         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
3734
3735         2000-01-04  Joel Sherrill (joel@OARcorp.com>
3736
3737         * config/rs6000/rtems.h: Include config/rtems.h.
3738
3739         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
3740
3741         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
3742         (SLOW_UNALIGNED_ACCESS): Define.
3743         (CASE_VECTOR_MODE): Always use 32-bit offsets.
3744         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
3745         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
3746         (toc_section): Likewise and .toc pseudo-op.
3747         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
3748         64-bit mode.
3749         (TEXT_SECTION_ASM_OP): Likewise.
3750         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
3751         32-bit offsets.
3752
3753         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
3754
3755         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
3756         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
3757         compiling libgcc2.
3758         
3759         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3760
3761         * rs6000.h: Move more stuff from here...
3762         * aix.h: to here.
3763         * sysv4.h: Cleanup accordingly.
3764         * netware.h: Likewise
3765
3766         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3767
3768         * rs6000.h: Continue cleanup.
3769         * aix.h: Likewise.
3770         * lynx.h: Likewise.
3771         * netware.h: Likewise.
3772         * sol2.h: Likewise.
3773         * sysv4.h: Likewise.
3774         * win-nt.h: Likewise.
3775
3776         * rs6000.h (TARGET_SWITCHES): Add descriptions.
3777         (TARGET_OPTIONS): Likewise.
3778
3779         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
3780         (SUBTARGET_OPTIONS): Likewise.
3781
3782         * rs6000.md: Fix compile time warnings.
3783
3784         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
3785
3786         vxworks patches from the Cygnus tree originally by
3787         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
3788         <vmakarov@cygnus.com>.
3789         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
3790         (ENDFILE_SPEC): Likewise.
3791         (LIB_VXWORKS_SPEC): New macro.
3792         (STARTFILE_VXWORKS_SPEC): New macro.
3793         (ENDFILE_VXWORKS_SPEC): New macro.
3794         (LINK_START_VXWORKS_SPEC): New macro.
3795         (LINK_OS_VXWORKS_SPEC): New macro.
3796         (CPP_OS_VXWORKS_SPEC): New macro.
3797         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
3798         * vxppc.h: Rewrite to use proper configuration method.
3799         * vxppcle.h: New file.
3800         * ../../configure.in: Add powerpcle-wrs-vxworks*.
3801         * ../../configure: Rebuilt.
3802
3803         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
3804
3805         Lots of changes to rs6000.h, sysv4.h, aix.h,
3806         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
3807         with the aim that rs6000.h is the first header
3808         included and the others override it.
3809         * aix.h: New file.
3810
3811         * x-aix41-gld: Remove.  
3812         * x-aix43: Remove.
3813         * x-aix41: Remove target-specific switches, and don't specify
3814         -Wl,-bbigtoc as we don't need it any more.
3815         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
3816         Use t-aix43 for AIX 4.3 and above.
3817         * ../../configure: Regenerated.
3818
3819         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
3820         options, that don't do anything yet.
3821         (MASK_SCHED_PROLOG): New macro.
3822         (MASK_SCHED_EPILOG): New macro.
3823         (TARGET_SCHED_PROLOG): New macro.
3824         (TARGET_SCHED_EPILOG): New macro.
3825
3826         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
3827
3828         * rs6000.c: Correct comment, the `minimal' TOCs are actually
3829         one per translation unit, not one per function.
3830         (output_toc): Also do duplicate constant elimination
3831         for per-translation-unit TOCs.
3832
3833         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
3834         a comment explaining _exactly_ when this pattern gets used.
3835         (builtin_setjmp_receiver): New pattern for better clarity.
3836         (init_v4_pic): Move it into a section dealing with TOC registers.
3837
3838         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
3839
3840         * rs6000.c (toc_hash_table): New variable.
3841         (rs6000_hash_constant): New function.
3842         (toc_hash_function): New function.
3843         (toc_hash_eq): New function.
3844         (toc_hash_mark_entry): New function.
3845         (toc_hash_mark_table): New function.
3846         (output_toc): Don't output duplicate TOC entries in
3847         a single file.
3848         (rs6000_add_gc_roots): Add the hash table as a GC root.
3849         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
3850         where they clearly shouldn't be.  This may need to be fixed
3851         later when there is a GNU ar for AIX.
3852         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
3853         Don't define BOOT_LDFLAGS as it is now not necessary.
3854
3855         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
3856
3857         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
3858         for va_list on AIX.  Use unsigned_char_type_node rather than
3859         constructing our own version on svr4.
3860
3861         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
3862
3863         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
3864         since patently it's not.
3865
3866         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
3867
3868         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
3869         define_expand/define_insn pair, and handle restore of the
3870         SVR4 -fpic register.
3871
3872 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
3873
3874         * acconfig.h (HAVE_GAS_WEAK): New define.
3875         * configure.in (assembler weak support): Check for .weak support.
3876         * config.in, configure: Rebuilt.
3877         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
3878         HAVE_GAS_WEAK is defined.
3879
3880 2000-03-15  Nick Clifton  <nickc@cygnus.com>
3881
3882         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
3883         asm_fprintf().
3884
3885 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
3886
3887         * cppfiles.c (open_include_file): New function.
3888         (find_include_file, cpp_read_file): Use it.
3889
3890 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
3891
3892         * cpphash.c (dump_hash_helper): Take the slot, not the element.
3893
3894 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
3895
3896         * flow.c (verify_flow_info): Check for unconditional return.
3897
3898 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
3899
3900         * config/ia64/ia64.md (restore_stack_nonlocal): New.
3901         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
3902         (__ia64_restore_stack_nonlocal): New.
3903         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
3904
3905 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3906
3907         * cpphash.c (collect_formal_parameters): Do not complain about
3908         parameter names that just start with `__VA_ARGS__'.
3909
3910 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
3911
3912         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
3913         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
3914         * i386.c (pentiumpro_cost): Set mul cost to 4.
3915         (x86_use_movx): Set for PPro.
3916
3917 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
3918
3919         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
3920         STACK_BOUNDARY for empty frames now.
3921
3922 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
3923
3924         * stor-layout.c (layout_union): Remove.
3925         (layout_union_field): New function, split out from layout_union.
3926         (finish_union_layout): Likewise.
3927         (layout_field): Handle unions by calling layout_union_field.
3928         (finish_record_layout): Handle unions.
3929         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
3930         QUAL_UNION_TYPE handling.
3931
3932 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
3933
3934         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
3935         end of basic block is jump_insn, not barrier; use create_basic_block
3936         instead of creating basic block by hand.
3937
3938 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
3939
3940         * flow.c (reorder_basic_blocks): Account for barriers when writing
3941         over NEXT_INSN (last_bb->end).
3942         (verify_flow_info): Add check for missing barriers.
3943
3944 2000-03-14  Greg McGary  <gkm@gnu.org>
3945
3946         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
3947         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
3948         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
3949         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
3950         __unbounded, __unbounded__): New keywords.
3951         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
3952         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
3953         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
3954
3955 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
3956
3957         * cselib.h: New file.
3958         * alias.c: Include "cselib.h".
3959         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
3960         MEMs as two new arguments.
3961         (get_addr): New static function.
3962         (find_base_term): Handle VALUEs.
3963         (memrefs_conflict_p): Likewise.
3964         (true_dependence): Call get_addr on the addresses.
3965         Call fixed_scalar_and_varying_struct_p with addresses that have been
3966         passed through get_addr and canon_rtx.
3967         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
3968         with true_dependence.
3969         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
3970         * loop.c: Include "cselib.h".
3971         (load_mems): Process extended basic block that enters the loop with
3972         cselib.  Use that information to change initialization of the shadow
3973         register so that a constant equivalence is seen by later passes.
3974         * reload1.c: Include "cselib.h".
3975         (reload_cse_invalidate_regno): Delete function.
3976         (reload_cse_mem_conflict_p): Likewise.
3977         (reload_cse_invalidate_mem): Likewise.
3978         (reload_cse_invalidate_rtx): Likewise.
3979         (reload_cse_regno_equal_p): Likewise.
3980         (reload_cse_check_clobber): Likewise.
3981         (reload_cse_record_set): Likewise.
3982         (reg_values): Delete static variable.
3983         (invalidate_regno_rtx): Likewise.
3984         (reload_cse_delete_noop_set): New static function.
3985         (reload_cse_simplify): New static function, broken out of
3986         reload_cse_regs_1.
3987         (reload_cse_noop_set_p): Delete unused argument INSN.
3988         Just call rtx_equal_for_cselib_p on set source and destination.
3989         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
3990         reload_cse_delete_noop_set.  Delete code to keep track of values; use
3991         cselib functions instead.  Delete code to push/pop obstacks.
3992         (reload_cse_simplify_set): Use cselib to find equivalent values.
3993         Delete code to push/pop obstacks.
3994         (reload_cse_simplify_operands): Likewise.
3995         * rtl.def (VALUE): New rtx code.
3996         * rtl.h (union rtunion_def): New elt rt_cselib.
3997         (X0CSELIB, CSELIB_VAL_PTR): New macros.
3998         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
3999         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
4000         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
4001         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
4002         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
4003         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
4004         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
4005         cselib_record_set, cselib_record_sets): New static functions.
4006         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
4007         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
4008         references_value_p): New functions.
4009         (MAX_USELESS_VALUES, REG_VALUES): New macros.
4010         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
4011         n_useless_values, reg_values, callmem, cselib_obstack,
4012         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
4013         New static variables.
4014         * varray.h (union varray_data_tag): New elt te.
4015         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
4016         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
4017         dependencies.
4018
4019 2000-03-14  Nick Clifton  <nickc@cygnus.com>
4020
4021         * gcc.c (do_spec_1): Catch the case where %* is used in a
4022         substitution pattern, but it has not been initialised.
4023         Issue a meaningful error message if an unrecognised operator
4024         is encountered in a spec string.
4025
4026 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
4027
4028         * function.c (prepare_function_start): Correctly initialize
4029         cfun->stack_alignment_needed.
4030
4031 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
4032
4033         * cppfiles.c (find_include_file): Don't assume nshort is a
4034         substring of name.
4035
4036 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
4037
4038         * configure.in (hppa configurations): Add pa32-regs.h to the
4039         list of tm files as appropriate.
4040         * configure: Rebuilt.
4041         * pa.c (compute_frame_size): Remove explicit knowledge about FP
4042         register numbering.
4043         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
4044         (fmpyaddoperands, fmpysuboperands): Likewise.
4045         * pa.h: Remove various definitions which depend on knowing
4046         how registers are numbered.
4047         * pa32-regs.h: New file with PA32 register numbering specific
4048         definitions.
4049
4050 2000-03-14  Richard Henderson  <rth@cygnus.com>
4051
4052         * regmove.c (combine_stack_adjustments): New.
4053         (stack_memref_p, single_set_for_csa): New.
4054         (free_csa_memlist, record_one_stack_memref): New.
4055         (try_apply_stack_adjustment): New.
4056         (combine_stack_adjustments_for_block): New.
4057         * rtl.h (combine_stack_adjustments): Declare.
4058         * toplev.c (rest_of_compilation): Call it.
4059
4060         * i386.md: Revert 2000-01-16 change.
4061
4062 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4063
4064         * gccbug.in: Add web category, gcc specific classes.
4065
4066 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
4067
4068         * stor-layout.c (finalize_record_size): Fix typo.
4069
4070 2000-03-14  Stan Shebs  <shebs@apple.com>
4071
4072         * c-typeck.c (c_alignof): Error on incomplete types.
4073         * extend.texi (Alignment): Document this.
4074
4075 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
4076
4077         * cppfiles.c: Include mkdeps.h.
4078         (find_include_file, read_include_file): Remove _cpp_ prefix
4079         from name, make static.
4080         (_cpp_execute_include): New function, broken out of
4081         do_include.
4082
4083         * cpplib.c: Don't include mkdeps.h.
4084         (struct directive): Remove type field. Reorder entries.  The
4085         function takes only one argument.
4086         (struct if_stack): Make type field an int.
4087         (directive_table): Rename to dtable.  Generate it, the
4088         prototypes of the directive handlers, and the enum for the
4089         directive numbers, from a template macro.
4090         (do_ifndef, do_include_next, do_import): New functions.
4091         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
4092         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
4093         do_ident, do_assert, do_unassert, do_sccs): Take only one
4094         argument.
4095         (do_sccs): Define always, but alter behavior based on
4096         SCCS_DIRECTIVE.
4097         (_cpp_handle_directive, consider_directive_while_skipping):
4098         Restructure for new directive table layout.
4099
4100         (pass_thru_directive): Take a directive number, not a pointer
4101         to a struct directive.
4102         (parse_include): New function, broken out of do_include.
4103         (do_include, do_import, do_include_next): Use parse_include
4104         and _cpp_execute_include.
4105         (do_elif, do_else): Test for T_ELSE specifically when checking
4106         for #elif/#else after #else.
4107         (parse_ifdef): New function, broken out of do_ifdef.
4108         (validate_else): Expect a name arg without a leading #.
4109         (if_directive_name): Delete.
4110         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
4111         directive handlers with only one argument.
4112
4113         * cpphash.h: Update prototypes.
4114         (enum node_type): Remove entries for directives.
4115         * Makefile.in: Update dependencies.
4116
4117         * cpphash.c (dump_hash_helper): Only dump nodes of type
4118         T_MACRO.  Emit a newline after each definition.
4119
4120 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4121
4122         * gccbug.in: New file.
4123         * configure.in (all_outputs): Add gccbug.
4124         * Makefile.in (install-common): Install gccbug.
4125         (GCCBUG_INSTALL_NAME): New variable.
4126         * configure: Rebuilt.
4127         
4128 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
4129
4130         * function.c (put_var_into_stack): Use type_for_mode to calculate
4131         part_type.  Use MEM_SET_IN_STRUCT_P.
4132         * expr.c (store_field): Handle CONCAT.
4133         (store_constructor): Use fields_length.
4134         * tree.c (fields_length): New fn.
4135         * tree.h: Declare it.
4136
4137 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
4138
4139         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
4140         (cpplex.o): New target.
4141         * po/POTFILES.in: Add cpplex.c.
4142
4143         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
4144         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
4145         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
4146         skip_block_comment, skip_line_comment, skip_comment,
4147         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
4148         _cpp_parse_name, skip_string, parse_string,
4149         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
4150         _cpp_get_directive_token, find_position,
4151         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
4152         (maybe_macroexpand, _cpp_lex_token): New functions.
4153
4154         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
4155         parse_goto_mark): Delete.
4156         (_cpp_handle_eof): New function.
4157         (_cpp_handle_directive): Rename from handle_directive.
4158         (_cpp_output_line_command): Rename from output_line_command.
4159         (do_if, do_elif): Call _cpp_parse_expr directly.
4160         * cppfiles.c (_cpp_read_include_file): Don't call
4161         init_input_buffer here.
4162         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
4163         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
4164         here; pop the token_buffer and skip the rest of the line here.
4165         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
4166         here.
4167
4168         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
4169         Define here.
4170         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
4171         CPP_GOTO_MARK): New macros.
4172         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
4173         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
4174         _cpp_read_and_prescan, _cpp_init_input_buffer,
4175         _cpp_grow_token_buffer, _cpp_get_directive_token,
4176         _cpp_handle_directive, _cpp_handle_eof,
4177         _cpp_output_line_command): Prototype them here.
4178         * cpplib.h (enum cpp_token): Add CPP_MACRO.
4179         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
4180         quote_string, output_line_command): Remove.
4181
4182 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
4183
4184         * stmt.c (expand_end_case): RANGE may be signed, and when checking
4185         whether it is too large we must also verify that it isn't negative.
4186
4187 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
4188
4189         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
4190         (movsi_zero_liveg0): Remove.
4191         (movsf_insn_novis_liveg0): Remove.
4192         (negsi2): Remove.
4193         (negsi2_not_liveg0): Rename to negsi2.
4194         (one_cmplsi2): Remove.
4195         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
4196         (one_cmplsi2_liveg0): Remove.
4197         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
4198         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
4199         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
4200         (PREDICATE_CODES): Remove zero_operand.
4201         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
4202         TARGET_BROKEN_SAVERESTORE.
4203         (zero_operand): Remove.
4204         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
4205         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
4206         options.
4207         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
4208         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
4209         TARGET_BROKEN_SAVERESTORE): Remove.
4210         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
4211         Remove.
4212         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
4213         Remove.
4214         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
4215         Remove.
4216
4217         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
4218
4219 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
4220
4221         * cpplib.c (do_pragma_implementation): Fix off-by-one error
4222         truncating a string.  Don't assume tokens are nul terminated.
4223         Problem noted by Andreas Jaeger <aj@suse.de>
4224
4225 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
4226
4227         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
4228         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
4229         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
4230
4231 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
4232
4233         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
4234         STRUCTURE_SIZE_BOUNDARY.
4235
4236 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
4237
4238         * tree.h (record_layout_info_s): New structure.
4239         (record_layout_info): New type.
4240         (new_record_layout_info): New function.
4241         (layout_field): Likewise.
4242         (finish_record_layout): Likewise.
4243         * stor-layout.c (layout_record): Remove.
4244         (new_record_layout_info): New function.
4245         (layout_field): New function, broken out from layout_record.
4246         (finalize_record_size): Likewise.
4247         (compute_record_mode): Likewise.
4248         (finalize_type_size): New function, broken out from layout_type.
4249         (finish_record_layout): Likewise.
4250         (layout_type): Use them.
4251         
4252 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
4253
4254         * cpphash.c: Don't include version.h.
4255         (special_symbol) [case T_VERSION]: Look for the string in
4256         hp->value.cpval; don't use version_string.
4257         * cppinit.c (initialize_builtins): Set hp->value.cpval for
4258         __VERSION__ to version_string.
4259         * Makefile.in (cpphash.o): Update deps.
4260
4261 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
4262
4263         Convert cpplib to use libiberty/hashtab.c.
4264
4265         * cpplib.h (struct cpp_reader): Make hashtab and
4266         all_include_files of type 'struct htab *'.  Delete HASHSIZE
4267         and ALL_INCLUDE_HASHSIZE macros.
4268
4269         * cpphash.h: Update prototypes.
4270         (struct hashnode): Remove next, prev, and bucket_hdr members.
4271         Make length a size_t.  Add hash member.
4272         (struct ihash): Remove next member.  Add hash member.  Make
4273         name a flexible array member.
4274
4275         * cppfiles.c: Include hashtab.h.
4276         (include_hash): Delete.
4277         (IHASHSIZE): New macro.
4278         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
4279         (cpp_included): Do the hash lookup here.
4280         (_cpp_find_include_file): Rewrite.
4281         (cpp_read_file): Put the "fake" hash entry into the hash
4282         table.  Honor the control_macro, if it turns out we've seen
4283         the file before.  Don't push the buffer here.
4284         (_cpp_read_include_file): Push the buffer here.
4285         (OMODES): New macro.  Use it whenever we call open(2).
4286
4287         * cpphash.c: Include hashtab.h.
4288         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
4289         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
4290         _cpp_lookup_slot): New functions.
4291         (HASHSIZE): new macro.
4292         (hashf, _cpp_install, _cpp_delete_macro): Delete.
4293         (_cpp_lookup): Use hashtab.h routines.
4294
4295         * cppinit.c: Include hashtab.h.
4296         (cpp_reader_init): Call _cpp_init_macro_hash and
4297         _cpp_init_include_hash.  Don't allocate hashtab directly.
4298         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
4299         pfile->all_include_files.
4300         (initialize_builtins): Use _cpp_make_hashnode and
4301         htab_find_slot to add hash entries.
4302         (cpp_finish): Just call _cpp_dump_macro_hash.
4303         * cpplib.c: Include hashtab.h.
4304         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
4305         create hash entries.
4306         (do_pragma_poison, do_assert): Likewise.
4307         (do_include): Don't push the buffer here.  Don't increment
4308         system_include_depth unless _cpp_read_include_file succeeds.
4309         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
4310         or htab_remove_elt.
4311         (do_pragma_implementation): Use alloca to create copy.
4312
4313         * Makefile.in: Update dependencies.
4314
4315 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4316
4317         * cppinit.c (cl_directive_handler): More K&R fixing.
4318
4319 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
4320
4321         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
4322         STACK_BOUNDARY.
4323         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
4324
4325 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4326
4327         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
4328         Change from char[] to macros.
4329
4330 2000-03-12  Neil Booth  <NeilB@earthling.net>
4331
4332         * cppinit.c (cpp_start_read): Update indirect function
4333         call to K&R C.
4334
4335 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
4336
4337         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
4338         entry.
4339
4340         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
4341         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
4342
4343 2000-03-11  Neil Booth  <NeilB@earthling.net>
4344
4345         * cppinit.c (struct pending option): Replace undef with a 
4346         pointer to a directive handling routine.
4347         (struct cpp_pending): Replace separate assert_ and define_ 
4348         lists with one directive_ list.
4349         (new_pending_define): Rename new_pending_directive. Extra
4350         argument is the directive's handling routine.
4351         (handle_option): Update to use new_pending_directive.
4352
4353 2000-03-11  Neil Booth  <NeilB@earthling.net>
4354
4355         * cppfiles.c (file_cleanup, _cpp_find_include_file,
4356         remap_filename, _cpp_read_include_file, actual_directory,
4357         hack_vms_include_specification): Replace bcopy(), index() etc
4358         calls.  Add casts to some allocations.  Make some variables
4359         pointers to const [unsigned] char.
4360         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
4361         collect_formal_parameters): Similarly.
4362         * cppinit.c (struct pending_option, append_include_chain,
4363         cpp_options_init, cpp_reader_init, initialize_standard_includes,
4364         cpp_start_read, new_pending_define, handle_option): Similarly.
4365         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
4366         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
4367         do_pragma_implementation, detect_if_not_defined,
4368         do_ifdef, skip_if_group, cpp_get_token, parse_string,
4369         do_assert, do_unassert): Similarly.
4370         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
4371         function prototypes.
4372         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.   
4373
4374 2000-03-10  Richard Henderson  <rth@cygnus.com>
4375
4376         * builtins.c (expand_builtin_strlen): Revert last change.
4377         Use emit_insn_before if we're at the beginning of a sequence.
4378
4379 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
4380
4381         * builtins.c (expand_builtin_strlen): Make sure that we have something
4382         at the beginning of the sequence.
4383
4384         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
4385         deferred inlines.
4386
4387         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
4388
4389 2000-03-10  Richard Henderson  <rth@cygnus.com>
4390
4391         * except.c (can_throw): Use INTVAL on a CONST_INT.
4392         (reachable_handlers): Likewise.
4393         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
4394
4395 2000-03-10  Andreas Jaeger  <aj@suse.de>
4396
4397         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
4398         MD_STARTFILE_PREFIX since those are not needed on linux.
4399         (ASM_FILE_START): New, from mips/gnu.h.
4400
4401 2000-03-09  Richard Henderson  <rth@cygnus.com>
4402             Alex Samuel  <samuel@codesourcery.com> and others
4403         
4404         * Makefile.in (ssa.o): New rule.
4405         (OBJS): Add ssa.o.
4406         (STAGESTUFF): Add *.ssa and *.ussa.
4407         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
4408         * rtl.def (PHI): New RTL expression.
4409         * rtl.h (clear_log_links): New declaration.
4410         (convert_to_ssa): Likewise.
4411         (convert_from_ssa): Likewise.
4412         * flow.c (split_edge): If the entry node falls through to the
4413         split edge's source block, split the entry edge.
4414         (clear_log_links): New function.
4415         * toplev.c (ssa_dump): New variable.
4416         (flag_ssa): Likewise.
4417         (f_options): Add "ssa".
4418         (compile_file): Create SSA dump files.
4419         (rest_of_compilation): Go to and from SSA if enabled.
4420         (decide_d_option): Handle -de for SSA dump files.
4421         * ssa.c: New file.
4422         
4423 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
4424
4425         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
4426         same as VAR_DECL.
4427
4428 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
4429
4430         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
4431
4432 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
4433
4434         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
4435         (MD_STARTFILE_PREFIX_1): New macro.
4436
4437 2000-03-09  Robert Lipe  <robertl@sco.com>
4438
4439         * config/ia64/ia64.c: Include system.h.
4440
4441 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
4442
4443         * except.c (nothrow_function_p): If -fno-exceptions, just return.
4444         (init_eh_nesting_info): Likewise.
4445
4446         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
4447         (TREE_NOTHROW): Rename from TREE_RAISES.
4448         * toplev.c (rest_of_compilation): Set it.
4449         * print-tree.c (print_node): Adjust.
4450         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
4451         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
4452         * calls.c (emit_call_1): Add 'nothrow' parm.  Add 
4453         REG_EH_REGION note as appropriate.
4454         (libfunc_nothrow): New fn.
4455         (emit_library_call, emit_library_call_value): Use it.
4456         (expand_call): Check TREE_NOTHROW.
4457
4458         * varasm.c (make_decl_rtl): Skip initial '*' when setting
4459         DECL_ASSEMBLER_NAME.
4460
4461 2000-03-09  Andreas Jaeger  <aj@suse.de>
4462
4463         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
4464         (TARGET_MEM_FUNCTIONS): Define.
4465
4466 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
4467
4468         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
4469
4470         * except.c (can_throw): See through a SEQUENCE.
4471         (nothrow_function_p): New fn.
4472         * except.h: Declare it.
4473         * function.c (current_function_nothrow): New var.
4474         (prepare_function_start): Initialize it.
4475         * output.h: Declare it.
4476         * toplev.c (rest_of_compilation): Set it.
4477         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
4478
4479 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
4480
4481         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
4482         match.  (cpp_compare_defs): Count the nul separator when
4483         advancing over argument names.
4484
4485 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
4486
4487         * recog.c (preprocess_constraints): Matching constraints affect
4488         same alternative/different operand, not same operand/different
4489         alternative.
4490         
4491         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
4492         register and a constant specially.
4493
4494 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4495
4496         * libgcc2.h: New file.
4497         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
4498
4499 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
4500
4501         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
4502         * configure: Regenerate.
4503         * config/ia64: New.
4504
4505 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
4506
4507         * Makefile.in (LIBCPP_DEPS): New macro.
4508         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
4509         it to declare deps.
4510         * cpperror.c: Include cpphash.h.
4511         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
4512         dingleberry.
4513         (lex): Don't use CPP_WARN_UNDEF.
4514         (_cpp_parse_expr): Return an int, the truth value.
4515         * cppfiles.c: Include cpphash.h.
4516         (_cpp_merge_include_chains): Move to cppinit.c and make static.
4517         * cppinit.c (include_defaults_array): Disentangle.
4518         (cpp_cleanup): Don't free the if stack here.
4519         (cpp_finish): Pop off all buffers, not just one.
4520         * cpplib.c (eval_if_expr): Return int.
4521         (do_xifdef): Rename do_ifdef.
4522         (handle_directive): Don't use CPP_PREPROCESSED. 
4523         (cpp_get_token): Don't use CPP_C89.
4524         * fix-header.c: Don't use CPP_OPTIONS.
4525
4526         * cpplib.h: Move U_CHAR, enum node_type, struct
4527         file_name_list, struct ihash, is_idchar, is_idstart,
4528         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
4529         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
4530         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
4531         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
4532         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
4533         of _cpp_simplify_pathname, _cpp_find_include_file,
4534         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
4535         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
4536         cppinit.c.
4537         Change all uses of U_CHAR to be unsigned char instead.
4538         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
4539
4540 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
4541
4542         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
4543         (dwarf2out_begin_prologue): Set it.
4544         (output_call_frame_info): Don't emit EH unwind info for leaves.
4545
4546         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
4547         can occur outside of an EH region.
4548         * except.c: Correct comments about rethrow behavior.
4549         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
4550
4551 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
4552
4553         * flow.c (make_edges): Always call make_eh_edge for calls.
4554
4555 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
4556
4557         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
4558         (struct cpp_buffer): Remove fname and underflow fields.
4559         (struct cpp_reader): Remove get_token field.
4560         (struct include_hash): Rename to struct ihash.  Add typedef to
4561         IHASH.
4562         (struct if_stack): Remove fname field.
4563         (IF_STACK_FRAME): Rename to IF_STACK.
4564
4565         * cpperror.c (print_containing_files): Trust that there are no
4566         macro buffers below the top file buffer.
4567         * cppfiles.c: Replace all references to 'struct include_hash'
4568         with 'IHASH'.  Rename initialize_input_buffer to
4569         init_input_buffer.  Don't set or reference cpp_buffer->fname,
4570         use buffer->ihash->name instead.
4571         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
4572         not CPP_NULL_BUFFER.
4573         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
4574         IF_STACK_FRAME, IHASH not struct include_hash.
4575         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
4576         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
4577         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
4578         references to cpp_buffer->fname (delete entirely, or use
4579         ->ihash->name instead) and IF_STACK->fname.
4580         (cpp_push_buffer): Don't set new->underflow.
4581         (do_include): Use cpp_file_buffer.
4582
4583         * cpphash.c (collect_formal_parameters): Remove duplicate
4584         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
4585         used as a macro argument name.  Don't append "..." to namebuf
4586         for varargs macros.  After we're done scanning, go through
4587         namebuf and make it NUL separated, not comma separated.
4588         (_cpp_compare_defs): Remove register tag from variables.
4589         Expect defn->argnames to be NUL separated.
4590         (_cpp_dump_definition): Expect defn->argnames to be NUL
4591         separated and in forward order.
4592         * cpphash.h: Update documentation of argnames field.
4593
4594 2000-03-08  Richard Henderson  <rth@cygnus.com>
4595
4596         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
4597         to fail.  Don't pre-expand the source operand.
4598
4599         * i386.md (strlensi): Initialize eoschar and align before use.
4600
4601 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
4602
4603         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
4604         CONSTRUCTOR element.
4605
4606 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
4607
4608         * mips.c (mips_expand_prologue): If the last 
4609         named argument is the vararg marker "va_list", treat it as
4610         an unnamed argument.
4611
4612 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
4613
4614         * dbxout.c (dbxout_parms): When correcting for promoted 
4615         big-endian parameters, use the mode of the DECL_RTL rather 
4616         than UNITS_PER_WORD.
4617
4618 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
4619
4620         * c-common.h (make_fname_decl): Declare.
4621         * c-common.c (make_fname_decl): Define.
4622         (declare_hidden_char_array): Remove.
4623         (declare_function_name): Use make_fname_decl.
4624         * c-decl.c (c_make_fname_decl): New function.
4625         (init_decl_processing): Set make_fname_decl.
4626
4627 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
4628
4629         * cccp.c (handle_directive): Initialize backslash_newlines_p.
4630
4631 2000-03-07  Philipp Thomas  <pthomas@suse.de>
4632
4633         * po/POTFILES.in: Remove cppalloc.c from file list.
4634
4635 2000-03-07  Steve Chamberlain  <sac@pobox.com>
4636
4637         * pj.c (pj_expand_prologue): current_function->args_info is
4638         now current_function_args_info.  
4639
4640         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
4641         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
4642         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
4643
4644 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4645
4646         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
4647         output as hexadecimal rather than the default octal.
4648
4649 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
4650
4651         * cpphash.c (special_symbol): Fix thinko in previous commit.
4652
4653 2000-03-07  Neil Booth  <NeilB@earthling.net>
4654
4655         * cppexp.c (struct operation, left_shift, right_shift,
4656         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
4657         "int"s to "unsigned int"s.
4658         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
4659         Similarly.
4660         * cpplib.h: Update for above.
4661         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
4662         returned from allocations.
4663
4664         * cppinit.c (opt_comp, parse_options): New functions.
4665         (handle_option): Use parse_option to parse a single command
4666         line option, that possibly takes an argument.
4667         (cpp_handle_options): Sort the array of command line options on
4668         first invocation (non-ASCII hosts only).
4669         (print_help): Update.
4670
4671 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
4672
4673         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
4674         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
4675         
4676         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
4677         initialized.
4678         * cppinit.c (cpp_cleanup): Free imp->nshort also.
4679
4680         * cpperror.c (cpp_print_containing_files,
4681         cpp_print_file_and_line, v_cpp_message): Rename to
4682         print_containing_files, print_file_and_line, and v_message.
4683         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
4684         to _cpp_parse_expr, parse_escape, and lex.
4685         (parse_charconst): Remove broken multibyte support.
4686         * cppfiles.c (include_hash): Make static.
4687         (cpp_included): New function.
4688         (merge_include_chains, find_include_file, finclude,
4689         simplify_pathname): Rename to _cpp_merge_include_chains,
4690         _cpp_find_include_file, _cpp_read_include_file, and
4691         _cpp_simplify_pathname.
4692         * cpphash.c (cpp_lookup, free_definition, delete_macro,
4693         cpp_install, create_definition, macroexpand, compare_defs,
4694         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
4695         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
4696         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
4697         * cppinit.c (cpp_handle_option): Rename to handle_option, make
4698         static.
4699         * cpplib.c: Remove extern prototype of cpp_parse_expr.
4700
4701         * cpphash.h: Update prototypes.
4702         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
4703
4704 2000-03-07  Andrew Haley  <aph@cygnus.com>
4705
4706         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
4707         PTRDIFF_TYPE should be based solely on Pmode.
4708         (SIZE_TYPE): ditto.
4709
4710 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4711
4712         * rtl.h (rtunion_def): Constify member `rtstr'.
4713         (emit_line_note_after, emit_line_note, emit_line_note_force,
4714         emit_note, decode_asm_operands): Constify.
4715         
4716         * cse.c (canon_hash): Likewise.
4717
4718         * dbxout.c (dbxout_block): Likewise.
4719
4720         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
4721         v_warning_for_asm): Likewise.
4722
4723         * dwarfout.c (function_start_label): Likewise.
4724
4725         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
4726         emit_line_note_force): Likewise.
4727
4728         * final.c (last_filename, asm_insn_count, final_scan_insn,
4729         output_source_line): Likewise.
4730
4731         * function.h (struct emit_status): Likewise.
4732
4733         * gcse.c (hash_expr_1): Likewise.
4734
4735         * genattr.c (gen_attr, main): Likewise.
4736
4737         * genattrtab.c (struct function_unit, current_alternative_string,
4738         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
4739         attr_numeral, check_attr_test, check_attr_value,
4740         convert_set_attr_alternative, convert_set_attr,
4741         compute_alternative_mask, simplify_by_exploding, gen_attr,
4742         gen_unit): Likewise.
4743
4744         * genflags.c (gen_insn): Likewise.
4745
4746         * gengenrtl.c (type_from_format): Likewise.
4747
4748         * genopinit.c (gen_insn): Likewise.
4749
4750         * genoutput.c (n_occurrences, process_template, process_template):
4751         Likewise.
4752
4753         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
4754         Likewise.
4755
4756         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
4757         Likewise.
4758
4759         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
4760         ggc_set_mark, ggc_get_size): Likewise.
4761
4762         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
4763
4764         * optabs.c (init_one_libfunc): Likewise.
4765
4766         * output.h (assemble_start_function): Likewise.
4767
4768         * recog.c (decode_asm_operands): Likewise.
4769
4770         * toplev.c (rest_of_compilation): Likewise.
4771
4772         * tree.h (emit_line_note_after, emit_line_note,
4773         emit_line_note_force): Likewise.
4774
4775         * varasm.c (asm_output_bss, asm_output_aligned_bss,
4776         asm_emit_uninitialised, assemble_start_function,
4777         assemble_variable, const_hash, compare_constant_1,
4778         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
4779
4780         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
4781
4782         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
4783
4784         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
4785
4786         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
4787
4788         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
4789         arm_dllimport_name_p): Likewise.
4790
4791         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
4792         Likewise.
4793
4794         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
4795
4796         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4797
4798         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
4799         arm_mark_dllexport, arm_mark_dllimport,
4800         arm_pe_encode_section_info): Likewise.
4801
4802         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
4803         ASM_FINISH_DECLARE_OBJECT): Likewise.
4804
4805         * arm/thumb.c (thumb_function_prologue): Likewise.
4806
4807         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
4808
4809         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4810
4811         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
4812
4813         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
4814
4815         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
4816
4817         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4818
4819         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
4820         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
4821
4822         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
4823
4824         * i386/i386.c (asm_output_function_prefix): Likewise.
4825
4826         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
4827
4828         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4829
4830         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
4831
4832         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
4833         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
4834         ASM_OUTPUT_SECTION_NAME): Likewise.
4835
4836         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
4837
4838         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
4839
4840         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
4841
4842         * m32r/m32r.c (m32r_encode_section_info): Likewise.
4843
4844         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4845
4846         * mcore/mcore.c (mcore_encode_section_info): Likewise.
4847
4848         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4849
4850         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4851
4852         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4853
4854         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
4855
4856         * mips/mips.md (movdi, movsi): Likewise.
4857
4858         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4859
4860         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4861
4862         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4863
4864         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
4865         ASM_OUTPUT_ASCII): Likewise.
4866
4867         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
4868         output_mi_thunk, output_toc): Likewise.
4869
4870         * rs6000/rs6000.md (movsi): Likewise.
4871
4872         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
4873
4874         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
4875
4876         * v850/v850.c (print_operand, print_operand_address,
4877         v850_encode_data_area): Likewise.
4878
4879 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
4880         
4881         * config/mips/mips.md (zero_extendsidi2): Always force operand
4882         one to memory for mips16.
4883
4884 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4885
4886         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
4887         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
4888         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
4889         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
4890         (min_precision): Result is unsigned.
4891         (add_double, neg_double, mul_double): Low word is unsigned.
4892         (lshift_double, rshift_double, lrotate_double): Likewise.
4893         (rrotate_double, div_and_round_double): Likewise.
4894         (tree_floor_log2, compare_tree_int): New functions.
4895         (preserve_rtl_expr_temps): New declaration.
4896         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
4897         (decl_attributes): Use tree_log2 to find alignment.
4898         Check for TREE_INT_CST_HIGH for format args.
4899         (min_precision): Now unsigned.
4900         Use tree_floor_log2.
4901         (truthvalue_conversion): Delete long-disabled code.
4902         * c-decl.c (finish_struct): Clean up tests on field width.
4903         (finish_function): Use compare_tree_int.
4904         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
4905         * c-typeck.c (comptypes): Use tree_int_cst_equal.
4906         (default_conversion, digest_init): Use compare_tree_int.
4907         (build_binary_op): Use integer_all_onesp and compare_tree_int.
4908         Fix type errors in forming masks.
4909         * calls.c (initialize_argument_information): Use compare_tree_int.
4910         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
4911         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
4912         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
4913         (store_field): Use compare_tree_int.
4914         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
4915         (expand_expr, case ARRAY_REF): Use compare_tree_int.
4916         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
4917         (do_store_flag): Use compare_tree_int.
4918         * fold-const.c (encode, decode): Low part is always unsigned.
4919         (force_fit_type, add_double, neg_double, mul_double): Likewise.
4920         (lshift_double, rshift_double, lrotate_double): Likewise.
4921         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
4922         (fold_convert): Use compare_tree_int.
4923         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
4924         (invert_truthvalue, case INTEGER_CST): Likewise.
4925         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
4926         * mkdeps.c (deps_dummy_targets): Make I unsigned.
4927         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
4928         (lshift_double, rshift_double, lrotate_double, rrotate_double):
4929         Likewise.
4930         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
4931         (expand_end_case): Use compare_tree_int.
4932         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
4933         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
4934         (layout_decl): Likewise.
4935         (layout_record, layout_union): Make sizes unsigned.
4936         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
4937         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
4938         * tree.c (struct type_hash): hashcode is unsigned.
4939         (build_type_attribute_variant, type_hash_list): Likewise.
4940         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
4941         (attribute_hash_list, build_array_type, build_method_type): Likewise.
4942         (build_complex_type): Likewise.
4943         (real_value_from_int_cst): Remove unneeded casts.
4944         (integer_all_onesp): Add casts.
4945         (tree_floor_log2, compare_tree_int): New functions.
4946         (build_index_type): Use tree_int_cst_sgn.
4947         * varasm.c (assemble_variable): Use compare_tree_int.
4948
4949 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
4950
4951         * cpphash.c (collect_expansion): Also catch ## at start of macro.
4952
4953         * varasm.c (make_decl_rtl): Don't add a number to members of
4954         local classes.
4955         (make_function_rtl): Likewise.
4956
4957 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4958
4959         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
4960         patch from 2000-01-28.
4961
4962 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
4963
4964         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
4965         filled with an insn from the jump target.
4966
4967 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4968
4969         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
4970         (c4x_external_ref): Likewise.
4971         * config/c4x/c4x.c (struct name_list): Likewise.
4972
4973 1999-12-16  Ben Collins  <bcollins@debian.org>
4974
4975         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
4976         argument to genmultilib.
4977         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
4978         the contents into the multilib.h header.
4979         * gcc.c: Declare multilib_exclusions for the specs file.
4980         (set_multilib_dir): Use it.
4981         (print_multilib_info): Likewise.
4982         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
4983         to pass to genmultilib.
4984
4985 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4986
4987         * builtins.c (built_in_class_names, built_in_names): Constify a
4988         char*.
4989
4990         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
4991         int.
4992         (_mcleanup): Ensure value matches format specifier in sprintf.
4993
4994         * cpphash.c (special_symbol): Don't needlessly cast away
4995         const-ness.
4996
4997         * cppinit.c (base_name): Delete unused prototype.
4998
4999         * mkdeps.c (deps_init): Make definition K&R safe.
5000
5001         * tree.h (built_in_class_names, built_in_names): Constify a
5002         char*.
5003
5004 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
5005
5006         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
5007         floating point instructions for epilogue delay.
5008
5009         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
5010         to gas if it supports .register pseudo.
5011
5012         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
5013         LONG_DOUBLE_TYPE_SIZE if not defined.
5014         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
5015         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
5016         * real.c: Likewise.
5017         * gengenrtl.c: Likewise.
5018         * print-rtl.c: Likewise.
5019         * rtl.c: Likewise.
5020         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
5021         MASK_LONG_DOUBLE_128.
5022         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
5023         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
5024         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
5025         (SUBTARGET_SWITCHES): Define.
5026         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
5027         with -mlong-double-128.
5028         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
5029         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
5030         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
5031         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
5032         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
5033         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
5034         with -mlong-double-128.
5035         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
5036         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
5037         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
5038         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
5039         TARGET_LONG_DOUBLE_128): Define.
5040         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
5041         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
5042         long double on TARGET_ARCH64.
5043
5044 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
5045
5046         * function.c (free_temps_for_rtl_expr): Don't free slots
5047         that have been pushed into a higher level.
5048         
5049         Revert this patch:
5050         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
5051
5052 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
5053
5054         * basic-block.h (ALLOCA_REG_SET): Remove.
5055         (INITIALIZE_REG_SET): New macro.
5056         * flow.c (update_life_info): Use it.
5057         (calculate_global_regs_live): Likewise.
5058         (propagate_block): Likewise.
5059         * global.c (build_insn_chain): Likewise.
5060         * haifa-sched.c (schedule_region): Likewise.
5061
5062 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
5063
5064         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
5065         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
5066         (DWARF_ARANGES_PAD_SIZE): New define.
5067         (output_aranges): Use it to pad the address range header.
5068         (DWARF_ROUND): Fix for non power of 2 rounding.
5069
5070 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
5071
5072         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
5073
5074 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
5075
5076         * tree.def (RTL_EXPR): Update documentation.
5077         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
5078         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
5079         * function.c (preserve_rtl_expr_temp): New function.
5080         (preserve_rtl_expr_temps): Likewise.
5081         (preserve_rtl_expr_result): Use it.
5082
5083         Revert this patch:
5084         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
5085
5086 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
5087
5088         * regmove.c (copy_src_to_dest)  Do not create src->dest move
5089         for unchanging destination.
5090
5091 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
5092
5093         * function.h (struct sequence_stack): Remove rtl_expr.
5094         (struct emit_staus): Likewise.
5095         (seq_rtl_expr): Remove.
5096         * tree.h (free_temps_for_rtl_expr): Don't declare.
5097         (start_sequence_for_rtl_expr): Likewise.
5098         * rtl.h (preserve_rtl_expr_result): Likewise.
5099         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
5100         (start_sequence_for_rtl_expr): Remove.
5101         (push_topmost_sequence): Don't save sequence_rtl_expr.
5102         (pop_topmost_sequence): Remove comment about not restoring it.
5103         (end_sequence): Don't set seq_rtl_expr.
5104         (init_emit): Don't initialize it.
5105         (mark_sequence_stack): Don't mark it.
5106         (mark_emit_status): Likewise.
5107         * except.c (protect_with_terminate): Use
5108         start_sequence_for_rtl_expr, not start_sequence.
5109         * expr.c (expand_expr, case RTL_EXPR): Don't call
5110         preserve_rtl_expr_result or free_temps_for_rtl_expr.
5111         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
5112         (preserve_rtl_expr_result): Remove.
5113         (free_temps_for_rtl_expr): Likewise.
5114         (pop_temp_slots): Likewise.
5115         (mark_temp_slot): Don't mark the rtl_expr.
5116         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
5117         start_sequence_for_rtl_expr.
5118         
5119 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
5120
5121         * mkdeps.c, mkdeps.h: New files.
5122         * po/POTFILES.in: Add them.
5123         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
5124         (cpplib.o, cppinit.o): Depend on mkdeps.h.
5125         (mkdeps.o): New target.
5126
5127         * cppfiles.c: Delete deps_output.
5128         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
5129         OBJECT_SUFFIX, and base_name.
5130         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
5131         the include hash.
5132         (initialize_dependency_output): Use deps_init,
5133         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
5134         all the unnecessary string bashing.
5135         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
5136         level.
5137         * cpplib.c (do_include): Use deps_add_dep.
5138         * cpplib.h (struct cpp_reader): Replace deps_buffer,
5139         deps_allocated_size, deps_size, deps_column members with
5140         single pointer to a struct deps.  Delete prototype of
5141         deps_output.
5142
5143         * cppinit.c: Fix thinko in previous patch.
5144
5145 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5146
5147         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
5148         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
5149         (mode_for_size_tree): New function.
5150         (layout_decl, layout_type): Call it and clean up BLKmode checks.
5151         * tree.h (mode_for_size_tree): New declaration.
5152         
5153         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
5154
5155 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
5156
5157         * stmt.c (is_body_block): Move...
5158         * dwarfout.c, dwarf2out.c: ...from here.
5159         * tree.h: Declare it.
5160         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
5161         * final.c (final_start_function): Do call remove_unnecessary_notes
5162         when scheduling.
5163
5164 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
5165
5166         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
5167         
5168         * cpplib.h (_dollar_ok): New macro.
5169         (is_idchar, is_idstart): Use it.
5170         (IStable): Rename to _cpp_IStable.  Declare it const if
5171         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
5172         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
5173         is_space): Update for renamed IStable.
5174
5175         * cppinit.c: Delete all references to FAKE_CONST and CAT
5176         macros. Define init_IStable as empty macro if gcc >=2.7 or
5177         C99. Change TABLE() to ISTABLE and hardcode name of table.
5178         (cpp_start_read): Don't change the IStable based on
5179         dollars_in_ident.
5180
5181         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
5182         changed.  Handle '$' for char1 correctly.
5183         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
5184
5185         * cppexp.c (tokentab2): Make const.
5186         (cpp_lex): Make toktab const.
5187         * cppinit.c (include_defaults_array): Make const.
5188         (initialize_standard_includes): Make default_include const.
5189
5190 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
5191
5192         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
5193         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
5194         (gen_decl_die): Likewise.
5195         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
5196         (output_decl): Likewise.
5197
5198         * varasm.c (make_function_rtl): If we change the name used in the
5199         rtl, update DECL_ASSEMBLER_NAME accordingly.
5200         (make_decl_rtl): Likewise.
5201
5202         * toplev.c (rest_of_compilation): Tweak formatting.
5203
5204         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
5205         remove_unnecessary_notes.
5206         (debug_ignore_block): New fn.
5207         * toplev.h: Declare it.
5208         * emit-rtl.c (remove_unncessary_notes): Call it.
5209         * dwarf2out.c (dwarf2out_ignore_block): New fn.
5210         * dwarf2out.h: Declare it.
5211         * final.c (final_start_function): Don't call remove_unnecessary_notes
5212         if we did insn scheduling.
5213
5214 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
5215
5216         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
5217         * cpplib.h: Delete SET_CPP_PEDANTIC.
5218
5219 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5220
5221         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
5222         result is a RECORD_TYPE.
5223
5224 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
5225
5226         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
5227
5228 2000-03-03  Richard Henderson  <rth@cygnus.com>
5229
5230         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
5231         addition over compliments over shifts.
5232
5233 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5234
5235         * reload1.c (reload_combine_note_use): Handle return register USEs.
5236         REG case: Handle multi-hard-register hard regs.
5237
5238 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5239
5240         * md.texi: Document use of '*' in insn pattern name.
5241
5242 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
5243
5244         * calls.c (special_function_p): operator new may not be malloc-like.
5245
5246         * gcse.c (dump_hash_table): Really fix error in last change.
5247
5248 2000-03-02  Denis Chertykov  <denisc@overta.ru>
5249
5250         * avr.c (print_operand): Use print_operand_address instead of
5251         output_addr_const.
5252         * avr/libgcc.S: Cleanup code.
5253
5254 2000-03-02  Richard Henderson  <rth@cygnus.com>
5255
5256         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
5257
5258 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
5259
5260         * tree.h (TYPE_ALIGN_UNIT): New macro.
5261
5262 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
5263
5264         * i386.c: (constant_call_address_operand): Reject CONST_INT.
5265
5266 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
5267
5268         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
5269         for the buffer.
5270         (SET_CPP_PEDANTIC): New macro.
5271         * cpplib.c (do_include): Don't bother checking system_header_p.
5272         (do_warning, do_ident, do_assert, do_unassert): Likewise.
5273         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
5274
5275         * function.h (struct expr_status): Add x_arg_space_so_far.
5276         (arg_space_so_far): New macro.
5277         * expr.c (init_expr): Initialize it.
5278         * calls.c (emit_call_1): Reset it.
5279         (compute_argument_block_size, expand_call): Use it.
5280         (expand_call, store_one_arg): Increment it.
5281
5282 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5283
5284         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
5285         a UNION_TYPE.
5286
5287 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
5288
5289         * cppfiles.c (cpp_read_file): New function.
5290
5291         * cpphash.c (collect_expansion): Make sure to reset last_token
5292         to NORM when we hit a string.  Handle trailing whitespace
5293         properly when the expansion is empty.
5294         (create_definition): Disable line commands while parsing the
5295         directive line.
5296         (dump_definition): If pfile->lineno == 0, output a line
5297         command ahead of the dump, and add a trailing newline.
5298
5299         * cppinit.c (append_include_chain): Add fifth argument, which
5300         indicates whether or not system headers are C++ aware.
5301         (initialize_standard_includes): New function,
5302         broken out of read_and_prescan.  Pass 'cxx_aware' value from
5303         the include_defaults_array on to append_include_chain.
5304         (dump_special_to_buffer): Const-ify char array.
5305         (builtin_array): Don't dump __BASE_FILE__.
5306         (cpp_start_read): Use cpp_read_file.  Reorder code for
5307         clarity.  Don't output line commands here for -D/-A/-U
5308         switches.  Don't call deps_output for files included with
5309         -include or -imacros.
5310
5311         * cpplib.c (do_define): Don't pay any attention to the second
5312         argument.
5313         (cpp_expand_to_buffer): Disable line commands while scanning.
5314         (output_line_command): Work in the file buffer.
5315         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
5316         Fix formatting of comments.  Prototype cpp_read_file.
5317
5318 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5319
5320         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
5321         reference the language-equivalent of sizetype.
5322         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
5323         * fold-const.c (size_binop, size_diffop): Put back checks.
5324         * gcse.c (dump_hash_table): Fix minor error in last change.
5325         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
5326         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
5327         all sizetypes.
5328
5329 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
5330
5331         * calls.c (expand_call)  Do not attempt to combine stack adjustments
5332         with inhibit_defer_pop set.
5333
5334 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
5335
5336         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
5337         the DECL_SIZE for a FIELD_DECL.
5338
5339 2000-03-01  Bruce Korb  <bkorb@gnu.org>
5340
5341         * fixinc/inclhack.tpl: remove unused symlinks
5342         * fixinc/README: GCC Maintainer info
5343         * fixinc/inclhack.sh: regen
5344         * fixinc/fixincl.sh: regen
5345
5346 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
5347
5348         * cpphash.c (collect_expansion): Trim trailing white space
5349         from macro definitions, but don't go past the last insertion
5350         point.
5351
5352 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
5353
5354         * i386.md (mulqi3): New pattern.
5355
5356 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
5357
5358         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
5359         token types.
5360         (struct cpp_reader): Add parsing_if_directive and
5361         parsing_define_directive flags.               
5362         (struct cpp_options): Remove output_conditionals flag.
5363         (check_macro_name): Delete prototype.
5364
5365         * cpphash.h (struct macrodef): Delete.
5366         (struct reflist): Separate from struct definition.
5367         (struct definition): Remove unused fields.  Add column number.
5368         (create_definition): Returns a DEFINITION *.  Takes a
5369         cpp_reader * and an int.
5370
5371         * cpphash.c (SKIP_WHITE_SPACE): Delete.
5372         (PEEKC): Copy defn from cpplib.c.
5373         (rest_extension, REST_EXTENSION_LENGTH): Delete.
5374         (struct arg): New.
5375         (struct arglist): Simplify.
5376         (collect_expansion): Rewrite.  Get tokens by calling
5377         cpp_get_token.  Add more error checking.
5378         (collect_formal_parameters): New function, broken out of
5379         create_definition and reworked to use get_directive_token.
5380         (create_definition): All real work is now in collect_expansion
5381         and collect_formal_parameters.  do_define handles finding the
5382         macro name.  Return a DEFINITION, not a MACRODEF.
5383         (macroexpand): Replace bcopy with memcpy throughout.  Replace
5384         character-at-a-time copy loop with memcpy and pointer increments.
5385         (compare-defs): d1->argnames / d2->argnames might be null.
5386
5387         * cpplib.c (copy_rest_of_line): Delete function.
5388         (skip_rest_of_line): Do all the work ourselves.
5389         (skip_string): New function.
5390         (parse_string): Use skip_string.
5391         (get_macro_name): New function.
5392         (check_macro_name): Delete.
5393         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
5394         (cpp_skip_hspace): Use CPP_BUMP_LINE.
5395         (handle_directive): ICE if we're called on a macro buffer.
5396         (do_define): Determine macro name and type (funlike/objlike)
5397         here.  Expunge all uses of MACRODEF.
5398         (cpp_push_buffer): Set line_base to NULL.
5399         (do_undef, read_line_number): Don't worry about getting a POP token.
5400         (eval_if_expression): Set/reset parsing_if_directive around
5401         cpp_parse_expr. Don't clear only_seen_white.
5402         (skip_if_group): Remove output_conditionals logic.  Use
5403         skip_rest_of_line.
5404         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
5405         tokens under appropriate conditions.
5406         (cpp_unassert): Call do_unassert not do_assert.  Oops.
5407
5408         * cppexp.c (parse_defined): New function, break out of
5409         cpp_lex.
5410         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
5411         ourselves, with cpp_defined.
5412         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
5413
5414         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
5415         * gcc.dg/strpaste-2.c: New.
5416
5417 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
5418
5419         * fold-const.c (size_binop): Don't asert inputs are the same and
5420         have TYPE_IS_SIZETYPE set.
5421         (size_diffop): Likewise.
5422
5423 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
5424
5425         * dwarfout.c (output_block): Output abstract blocks even if they
5426         don't have TREE_ASM_WRITTEN set.
5427
5428         * calls.c (emit_library_call): Check for null REG.
5429
5430 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
5431
5432         * c-decl.c (current_function_decl): Move to toplev.c.
5433         (init_decl_processing): Don't add current_function_decl as a ggc
5434         root here.
5435         * dbxout.c (dbxout_symbol): Change return type to int.
5436         (dbxout_symbol_location, dbxout_syms): Likewise.
5437         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
5438         any locals. Use current_function_func_begin_label if set.
5439         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
5440         * dwarf2out.c (dwarf2out_begin_prologue): Set
5441         current_function_func_begin_label.
5442         * final.c (final_start_function): Reset it.
5443         * toplev.c (current_function_decl): Define it here.
5444         (current_function_func_begin_label): New variable.
5445         (main): Add both as ggc roots.
5446         * tree.h (current_function_func_begin_label): Declare.
5447
5448 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5449
5450         * gcse.c: Cleanups throughout: mostly white-space, but also
5451         some minor rearrangement of code.
5452
5453 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
5454
5455         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
5456         returns a PARALLEL.  Use emit_group_load and use_group_regs
5457         as needed.  
5458         (emit_library_call_value): Similarly.
5459
5460         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
5461         * pa/quadlib.asm: Remove.
5462         * pa/quadlib.c: New file.
5463
5464         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
5465         * configure: Rebuilt.
5466
5467 2000-02-29  Philip Blundell  <pb@futuretv.com>
5468
5469         * config/arm/conix-elf.h: New file.
5470         * configure.in (arm*-*-conix*): New configuration.
5471         * configure: Regenerate.
5472
5473 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
5474
5475         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
5476         don't have TREE_ASM_WRITTEN set.
5477
5478 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5479
5480         * Eliminate DECL_FIELD_SIZE.
5481         * builtins.c (built_in_class_names, built_in_names): New variables.
5482         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
5483         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
5484         DECL_SIZE, not DECL_FIELD_SIZE.
5485         * print-tree.c (print_node): Remove code that prints extra blank
5486         lines in some cases.
5487         Properly handle inline and builtin function cases.
5488         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
5489         * tree.h (built_in_class_named, built_in_names): New declarations.
5490         (union tree_decl): Rename internal unions to u1 and u2 and change
5491         some of their components.
5492         Add new field built_in_class.
5493         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
5494         Reflect above changes.
5495         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
5496         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
5497         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
5498         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
5499
5500 2000-02-28  Dmitri Makarov  <dim@windriver.com>
5501
5502         * extend.texi: Document ARM's support for long/short calls.
5503
5504         * invoke.texi: Document ARM's -mlong-calls command line switch.
5505         
5506         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
5507         (arm_encode_call_attribute): Add prototype.
5508         (arm_set_default_type_attribute): Add prototype.
5509         (arm_strip_name_encoding): Add prototype.
5510
5511         * config/arm/arm.c (arm_init_cumulative_args): replace
5512         initialisation og 'long_calls' field with initialisation of
5513         'call_cookie' field.
5514         (enum arm_pragma_enum): New enum.
5515         (arm_pragma_long_calls): New static variable.
5516         (arm_process_pragma): Also process "#pragma long_calls_off".
5517         (arm_valid_type_attribute_p): Accept short_call attribute.
5518         (arm_comp_type_attributes): Check long/short call attributes.
5519         (arm_encode_call_attribute):  New function:  Encode long_call
5520         or short_call attribute in function name.
5521         (arm_set_default_type_attributes): New function: Assign
5522         default attributes to newly defined type.
5523         (current_file_function_operand): New function: Return true if
5524         the symbol is a function which has already been compiled.
5525         (arm_is_longcall_p): New function: Return true if the
5526         indicated function should be called via a long call.
5527         (arm_get_strip_length): New function.  Returns number of
5528         prefix characters to be stripped from a function's name.
5529         (arm_strip_name_encoding): New function.  Strip prefix characters
5530         from a function's name.
5531
5532         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
5533         with 'call_cookie'.
5534         (SHORT_CALL_FAG_CHAR): Define.
5535         (LONG_CALL_FAG_CHAR): Define.
5536         (ENCODED_SHORT_CALL_ATTR_P): Define.
5537         (ENCODED_LONG_CALL_ATTR_P): Define.
5538         (ARM_NAME_ENCODING_LENGTHS): Define.
5539         (STRIP_NAME_ENCODING): Define.
5540         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
5541         (ARM_ENCODE_CALL_TYPE): Define.
5542         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
5543         (ARM_DECLARE_FUNCTION_SIZE): Define.
5544         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
5545
5546         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
5547         if a long call is needed.
5548         (call_value): Ditto.
5549         (call_symbol): Ditto.
5550
5551         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
5552         ARM_DECLARE_FUNCTION_SIZE.
5553
5554         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
5555         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
5556         (ARM_STRIP_NAME_ENCODING): Undefine.
5557         (STRIP_NAME_ENCODING): Undefine.
5558         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
5559         (ASM_DECLARE_FUNCTION_NAME): Ditto.
5560         (ASM_OUTPUT_COMMON): Ditto.
5561         (ASM_DECLARE_OBJECT_NAME): Ditto.
5562
5563         * config/arm/pe.c (arm_dllexport_name_p): Check for
5564         ARM_PE_FLAG_CHAR.
5565         (arm_dllimport_name_p): Ditto.
5566         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
5567         (arm_mark_dllimport): Ditto.
5568         
5569 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5570
5571         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
5572
5573 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
5574
5575         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
5576
5577 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
5578
5579         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
5580         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
5581         NO_BUILTIN_WCHAR_TYPE is not defined.
5582         (CPP_WCHAR_TYPE): Delete.
5583         * cccp.c (main): Don't change wchar_type if cplusplus.
5584         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
5585
5586 2000-02-28  Nick Clifton  <nickc@cygnus.com>
5587
5588         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
5589
5590 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
5591
5592         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
5593         (ASM_WEAKEN_LABEL): Define.
5594  
5595 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
5596
5597         * expr.c (store_constructor): Do not emit USE.
5598         * rtl.h (stupid_life_analysis): Remove.
5599
5600 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5601
5602         * function.c (number_blocks): Reset next_block_index based on
5603         what debugging format is used, not what is defined.
5604         
5605         * lcm.c: Minor reformatting throughout.
5606         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
5607         
5608         * toplev.c (rest_of_compilation): Account for time in
5609         optimize_mode_switching.
5610
5611         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
5612         if only marking labels.
5613
5614 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
5615
5616         * calls.c (expand_call): Attempt to combine stack adjustments with
5617         pending stack adjustments.
5618
5619 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5620
5621         * loop.c (reg_in_basic_block_p): Don't abort when falling through
5622         to the end of the function.
5623
5624 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
5625
5626         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
5627         blocks.
5628         * final.c (next_block_index): Remove.
5629         (max_block_depth): Likewise.
5630         (pending_blocks): Likewise.
5631         (init_final): Don't initialize them.
5632         (final_start_function): Don't set next_block_index.  Set up
5633         BLOCK_NUMBER.
5634         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
5635         * function.h (number_blocks): New function.
5636         * function.c (get_block_vector): New function.
5637         (identify_blocks): Use it.
5638         (reorder_blocks): Set NOTE_BLOCK.
5639         (number_blocks): New function.
5640         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
5641         * tree.h (BLOCK_NUMBER): New macro.
5642         (tree_block): Add block_num field.
5643         * dbxout.c (next_block_number): Remove.
5644         (dbxout_init): Don't set it.
5645         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
5646         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
5647         block numbers.
5648         * toplev.c (rest_of_compilation): Always call
5649         find_loop_tree_blocks.  Fix indentation.
5650         * dwarf2out.c (next_block_number): Remove.
5651         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
5652         to determine block numbers.
5653         (gen_inlined_subroutine_die): Likewise.
5654         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
5655         (decls_for_scope): Don't increment next_block_number.
5656         * dwarfout.c (next_block_number): Remove.
5657         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
5658         to determine block numbers. 
5659         (output_inlined_subroutine_die): Likewise.
5660         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
5661         (output_decls_for_scope): Don't increment next_block_number.
5662         * sdbout.c (next_block_number): Remove.
5663         (sdbout_block): Use BLOCK_NUMBER.
5664         (sdbout_begin_block): Simplify.
5665         * xcoffout.c (next_block_number): Remove.
5666         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
5667         (xcoffout_begin_block): Don't set next_block_number.
5668         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
5669         next_block_number.
5670         
5671 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5672
5673         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
5674         (expand_builtin_strcpy): Pass correct type to size_binop.
5675         (expand_builtin_strcmp): Likewise.
5676         Clean up conditional structure.
5677         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
5678         (complete_array_type): Don't use size_binop for MAXINDEX.
5679         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
5680         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
5681         (c_alignof): Use size_one_node.
5682         (build_unary_op): Pass arg of proper type to size_binop.
5683         (really_start_incremental_init, push_init_level): Use sizetype for
5684         constructor{,_bit,_unfilled}_index.
5685         (pop_init_label, output_init_element): Likewise.
5686         (output_pending_init_elements, process_init_element): Likewise.
5687         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
5688         * expr.c (store_expr): Use size_int.
5689         (store_constructor): Use proper types for size_binop args.
5690         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
5691         (expand_expr_unaligned): Likewise.
5692         (string_contant): Return object of sizetype.
5693         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
5694         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
5695         (ARGS_SIZE_TREE): Pass proper types to size_binop.
5696         * fold-const.c (int_const_binop): Refine when size_int is called.
5697         (fold_convert): Likewise.
5698         (size_int_wide): Rework to take KIND as arg, only take low order
5699         bits, handle new sizetype_tab datatype, and chain entries in
5700         size_table.
5701         (size_int_type_wide): New function.
5702         (size_binop): Validate types of arguments.
5703         (ssize_binop): Deleted.
5704         (size_diffop): New function.
5705         (extract_muldiv): Only fold division into multiplication for sizetypes.
5706         * function.c (assign_parms): Use size_diffop and make sure
5707         VAR field is of ssizetype; also pass proper type to size_binop.
5708         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
5709         (round_down): Deleted from here.
5710         * store-layout.c (sizetype_tab): Now an array.
5711         (sizetype_set, early_root_list): New variables.
5712         (variable_size): Use size_one_node.
5713         (round_up): Pass proper type to size_binop.
5714         (round_down): Moved to here and corrected as above.
5715         (layout_record): Pass proper arg types to size_binop.
5716         (layout_type): Likewise.
5717         If sizetype_set is zero, record the type just laid out.
5718         (make_unsigned_type): Don't call set_sizetype;
5719         (make_signed_type): Likewise; also, call fixup_signed_type.
5720         (initialize_sizetypes): New function.
5721         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
5722         set name of bitsizetype to "bit_size_type".
5723         Fix up type of sizes of all types made before call.
5724         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
5725         * tree.c (fix_sizetype): Deleted.
5726         (build_common_tree_nodes): Call initialize_sizetypes.
5727         (build_common_tree_nodes_2): Don't call fix_sizetype.
5728         * tree.h (TYPE_IS_SIZETYPE): New macro.
5729         (initialize_sizetype): New declaration.
5730         (enum size_type_kind): New type.
5731         (struct sizetype_tab): Deleted.
5732         (sizetype_tab): Now array; adjust sizetype macros.
5733         (size_diffop, size_int_type_wide): New functions.
5734         (size_int_wide): Change number of args and type; access macros changed.
5735         (ssize_int, sbitsize_int): New macros.
5736         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
5737         (ROUND_TYPE_SIZE_UNIT): New macro.
5738
5739 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
5740
5741         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
5742
5743 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5744
5745         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
5746         Mark as possibly unused.
5747
5748         * cse.c (cse_insn): Delete dead code involving tablejump.
5749         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
5750
5751         * Makefile.in (libcpp.a): Start by deleting it.
5752
5753 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5754
5755         * cpplib.h (enum file_change_code): Added rename_file.
5756         * cpplib.c (do_line): If a filename is given, set file_change to
5757         rename_file.
5758         (output_line_command): If file_change is rename_file, always
5759         output a # directive with the file name.
5760
5761         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
5762
5763 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
5764
5765         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
5766         when copying a PARM_DECL or RESULT_DECL.
5767
5768 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5769
5770         * fix-header.c (recognized_function): Also fix prototypes for
5771         functions taking "void".
5772
5773 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
5774
5775         * reload1.c (do_output_reload): Check reg_reloaded_valid before
5776         looking at reg_reloaded_contents.
5777
5778 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
5779
5780         * Makefile.in (STMP_FIXINC): New toggle.
5781         (LIBGCC2_DEPS): Delete all references.
5782         (stmp-headers): Delete target.  All references either deleted
5783         or changed to stmp-int-headers.
5784         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
5785         (LIBCPP_OBJS): Take out cppalloc.o.
5786         (cppalloc.o): Delete target.
5787         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
5788         (gen-protos, fix-header): Link with libiberty.a.
5789         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
5790         to empty.
5791
5792         * configure.in: Remove refs to strerror.
5793         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
5794         * system.h: Take out strerror stanza.
5795
5796         * cpperror.c (my_strerror): Delete function.
5797         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
5798         * cppmain.c (main): Call xmalloc_set_program_name first thing.
5799         * cppalloc.c: Delete file.
5800         * gen-protos.c: Don't provide xrealloc.
5801
5802         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
5803         xstrerror throughout.
5804
5805 2000-02-26  Bruce Korb  <bkorb@gnu.org>
5806
5807         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
5808         match for DOS headers, too.
5809         * fixinc/inclhack.sh,fixincl.x: Regenerate.
5810
5811 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
5812
5813         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
5814         is right for most ELF targets.
5815         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
5816         Let the default file use %U properly.
5817         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
5818         default.
5819
5820         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
5821         numbers.
5822
5823 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5824
5825         * toplev.c (documented_lang_options): Correct spelling error.
5826         (decode_d_option, decode_f_option, main): Likewise.
5827
5828         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
5829
5830         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
5831         to tell assembler it is permitted to expand large constants.
5832
5833 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
5834
5835         * protoize.c: (AUX_INFO_SUFFIX): New macro.
5836         (aux_info_suffix): Use.
5837         (SAVE_SUFFIX): New macro.
5838         (save_suffix): Use.
5839         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
5840         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
5841         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
5842
5843         * invoke.texi (Running Protoize): Update documentation.
5844
5845 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
5846
5847         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
5848
5849 2000-02-25  John Wehle  (john@feith.com)
5850
5851         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
5852
5853 2000-02-25  Anthony Green  <green@cygnus.com>
5854
5855         * toplev.c (rest_of_compilation): Rebuild jump labels if
5856         combine_instructions has created a new direct jump.
5857         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
5858         when appropriate.
5859         (combine_instructions): Call try_combine with new argument.
5860         Return non-null value when new direct jump instruction is created.
5861         * rtl.h: combine_instructions returns an int.
5862
5863 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
5864
5865         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
5866         jump when changing a computed jump into a jump to a known
5867         target.
5868
5869 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
5870
5871         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
5872         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
5873
5874         * i386.md (define_expand "clrstrsi"): Fix typo.
5875
5876 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
5877
5878         * rtl.texi: Fix typo.
5879
5880 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5881
5882         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
5883         UNITS_PER_WORD.  Change caller initial_elimination_offset.
5884         (rounded_frame_size): Take into account that argument pushed has
5885         changed.  Fix TARGET_ALIGN_DOUBLE problem.
5886
5887 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
5888
5889         * haifa-sched.c (schedule_block): Explain the real reason
5890         we delete REG_SAVE_NOTEs on the first insn of a block.
5891         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
5892
5893 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
5894
5895         * input.h (push_srcloc): New function.
5896         (pop_srcloc): Likewise.
5897         * toplev.c (push_srcloc): Define it.
5898         (pop_srcloc): Likewise.
5899
5900 2000-02-24  Richard Henderson  <rth@cygnus.com>
5901
5902         * flow.c (life_analysis): When collecting reg info, clear
5903         regs_ever_live.
5904
5905 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5906
5907         Fix bug exposed by reload.c no longer rounding the frame
5908         size to BIGGEST_ALIGNMENT:
5909         * sh.c (rounded_frame_size): New function.
5910         (sh_expand_prologue, sh_expand_epilogue): Use it.
5911         (initial_elimination_offset): Likewise.
5912
5913 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5914
5915         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
5916         * sh-protos.h (sh_need_epilogue): Declare.
5917         * sh.c (sh_need_epilogue_known): New static variable.
5918         (sh_need_epilogue): New function.
5919         (function_epilogue): Clear need_epilogue_known.
5920         * sh.md (return): Split into expander / insn pattern.
5921         Make the expander conditional on ! sh_need_epilogue ().
5922
5923 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
5924
5925         * machmode.h (get_mode_alignment): Declare.
5926         (GET_MODE_ALIGNMENT): Call it.
5927         * stor-layout.c (get_mode_alignment): New function. Make
5928         sure alignment is always power of 2.
5929
5930 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
5931
5932         * i386.h: Remove useless definition of "I386" and misleading
5933         comment above it.
5934
5935 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
5936
5937         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
5938         under which TREE_PERMANENT will be set.
5939         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
5940         build1): Use TREE_SET_PERMANENT.
5941         * print-tree.c (print_node): Don't report value of
5942         TREE_PERMANENT if ggc_p is true.
5943
5944         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
5945         decide whether to give a type a new alias set.
5946         * objc/objc-act.c (build_objc_string_object): Never copy the string.
5947         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
5948         of value of 'obstack'.
5949
5950
5951 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5952
5953         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
5954
5955 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5956
5957         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
5958         * cpplib.c (cpp_get_token): Produce them.
5959         * cppexp.c (cpp_lex): Handle them.
5960
5961 2000-02-23  Nick Clifton  <nickc@cygnus.com>
5962
5963         * config/arm/arm.c (arm_comp_type_attributes): Simply and
5964         comment tests on type attributes.
5965
5966 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5967
5968         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
5969         conform to documentation.
5970         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
5971         to check for special cases.
5972         * sh-protos.h (sh_loop_align): Declare.
5973         * sh.c (sh_loop_align): Define.
5974
5975 2000-02-22  Andrew Haley  <aph@cygnus.com>
5976
5977         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
5978         (SIZE_TYPE): Is 32 bits when using -mgp32.
5979         (PTRDIFF_TYPE): Ditto.
5980
5981 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5982
5983         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
5984
5985 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
5986
5987         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
5988         BIGGEST_FIELD_ALIGNMENT a constant.
5989
5990 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
5991
5992         * dwarf2out.c (output_line_info): Put the marker for the end of
5993         the line number info at the actual end.
5994         (gen_struct_or_union_type_die): Use decl_function_context 
5995         to check for local classes.
5996         * dwarfout.c (output_type): Likewise.
5997
5998 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
5999
6000         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
6001         for arguments with a mode, but no type.
6002         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
6003         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
6004         * pa/long_double.h: New file.
6005         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
6006         both have 128bit wide long doubles.
6007         * configure: Rebuilt.
6008
6009 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6010
6011         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
6012
6013         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
6014         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
6015         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
6016
6017         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
6018
6019         * integrate.c (compare_blocks, find_block): Likewise.
6020
6021         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
6022
6023         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
6024
6025         * stmt.c (stmt_status, set_file_and_line_for_stmt,
6026         expand_asm_operands): Likewise.
6027
6028 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
6029
6030         * predict.c (estimate_probability): Added the pointer heuristic to
6031         the collection of static branch predictors.
6032
6033 2000-02-21  Catherine Moore  <clm@cygnus.com>
6034
6035         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
6036         * invoke.texi (-mfix7000): Document.
6037
6038 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
6039
6040         * diagnostic.c (init_output_buffer): Make it possible to output at
6041         least 32 characters if we're given a too long prefix.
6042
6043 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
6044
6045         * varasm.c (initializer_constant_valid_p): Call
6046         lang_expand_constant to simplify the constant.
6047
6048 2000-02-20  Bruce Korb  <bkorb@gnu.org>
6049
6050         * fixinc/inclhack.def(stdio_va_list):
6051         typedef needs to be disabled.
6052         * fixinc/inclhack.sh: regen
6053         * fixinc/fixincl.x: regen
6054
6055 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
6056
6057         * print-rtl.c (print_rtx): Don't print addresses when
6058         flag_dump_unnumbered.
6059
6060 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6061
6062         * sparc.c (sparc_output_scratch_registers): Mark parameter with
6063         ATTRIBUTE_UNUSED.
6064         (sparc_va_arg, sparc_flat_output_function_prologue,
6065         sparc_flat_output_function_epilogue): Cast value to unsigned in
6066         comparison.
6067         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
6068         
6069         * sparc.md: Add default case in switch.
6070
6071 2000-02-19  Richard Henderson  <rth@cygnus.com>
6072
6073         * c-typeck.c (add_pending_init): Don't abort for multiple
6074         fields at the same offset.
6075         (pending_init_member): Test the correct member.
6076
6077 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6078
6079         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
6080         instead of SImode.
6081         (start_catch_handler) : Same.
6082
6083 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
6084
6085         * Makefile.in: Have flow.o depend on $(EXPR_H)
6086
6087 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6088
6089         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
6090         * c-decl.c (duplicate_decls, finish_enum): Likewise.
6091         (finish_decl): Remove -Wlarger-than code from here.
6092         * flags.h (id_clash_len): Now int.
6093         (larger_than_size): Now HOST_WIDE_INT.
6094         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
6095         Clean up checking to see if in table.
6096         (make_bit_field_ref): Remove extra parm to bitsize_int.
6097         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
6098         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
6099         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
6100         and for computing size of decl.
6101         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
6102         Move -Wlarger-than code to here.
6103         (layout_record): Remove extra arg to bitsize_int.
6104         Set TYPE_BINFO_SIZE_UNIT.
6105         (layout_union): Remove extra arg to bitsize_int.
6106         Use proper type for size of QUAL_UNION.
6107         (layout_type): Remove extra arg to bitsize_int.
6108         * toplev.c (id_clash_len): Now int.
6109         (larger_than_size): Now HOST_WIDE_INT.
6110         (decode_W_option): Clean up id-clash and larger-than- cases.
6111         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
6112         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
6113         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
6114         (struct tree_decl): New field size_unit.
6115         (size_int_wide): No HIGH operand; NUMBER is now signed.
6116         (size_int_2): Deleted.
6117         (size_int, bitsize_int): Don't use it and rework args.
6118         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
6119
6120 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
6121
6122         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
6123
6124 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
6125
6126         * invoke.texi (Warning Options): Add an explanation of why
6127         you might want the -Wfloat-equal flag.
6128
6129 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6130
6131         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
6132         * cppinit.c (new_pending_define): Add cast to avoid warning.
6133         * expmed.c (extract_bit_field): Likewise.
6134         * flow.c (enum reorder_skip_type): New type.
6135         (skip_insns_between_blcok): New it.
6136         Rework to avoid warning about possibly undefined variable.
6137         * function.c (assign_parms): Make thisparm_boundary unsigned.
6138         * genrecog.c (write_switch): Cast XWINT result to int.
6139         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
6140         * mips-tfile.c (init_file): Make two versions of FDR intializer:
6141         one for MIPS and one for Alpha.
6142         (get_tag, copy_object): Add casts to avoid warnings.
6143         * optabs.c (init_one_libfunc): Cast NAME to (char *).
6144         * reload.c (find_reloads): Make TYPE enum reload_type.
6145         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
6146         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
6147         * varasm.c (compare_constant_1): Add cast to avoid warning.
6148         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
6149         to (char *).
6150         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
6151         Cast switch operand of size to int.
6152         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
6153         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
6154         in unhandled case.
6155
6156 2000-02-18  Nick Clifton  <nickc@cygnus.com>
6157
6158         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
6159         anything for an alignment of zero.
6160
6161         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
6162         anything for an alignment of zero.
6163
6164 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
6165
6166         * gcc.texi (Bug Reporting): Refer to bugs.html.
6167         (Bug Lists): Likewise.
6168         * system.h (GCCBUGURL): New preprocessor define.
6169         * rtl.c (fancy_abort): Use it.
6170         * gcc.c (main): Likewise.
6171
6172 2000-02-18  Richard Henderson  <rth@cygnus.com>
6173
6174         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
6175         (life_analysis_1): Subsume into ...
6176         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
6177         Use update_life_info for the relaxation.
6178         (update_life_info): Update REG_BASIC_BLOCK for registers live on
6179         entry and regs_live_at_setjmp.
6180         (set_noop_p): Simplify.
6181         (notice_stack_pointer_modification_1): Renamed from s/_1//.
6182         (record_volatile_insns): Split into ...
6183         (delete_noop_moves): ... here,
6184         (notice_stack_pointer_modification): ... here,
6185         (insn_dead_p): ... and here.
6186         (propagate_block): Don't query INSN_VOLATILE.
6187         (mark_used_regs): Mind !PROP_REG_INFO.
6188         * toplev.c (rest_of_compilation): Call mark_constant_function here,
6189         not in life_analysis.
6190
6191 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
6192
6193         * loop.c (canonicalize_condition): New function,
6194         broken out of get_condition.
6195         (get_condition): Use it.
6196         * expr.h (canonicalize_condition): Prototype it.
6197
6198         * tree.h (tree_int_cst_msb): Declare.
6199         * tree.c (tree_int_cst_msb): New function.
6200
6201 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
6202
6203         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
6204         isn't set.
6205
6206         * invoke.texi (-fmessage-length=n): Document.
6207
6208 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
6209
6210         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
6211
6212 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
6213
6214         * function.c (thread_prologue_and_epilogue_insns): Put a line note
6215         after the prologue.
6216
6217 2000-02-17  Nick Clifton  <nickc@cygnus.com>
6218
6219         * config/arm/thumb.c: Replace includes of system headers with
6220         #include "system.h".
6221
6222 2000-02-16  Richard Henderson  <rth@cygnus.com>
6223
6224         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
6225         Add crtbeginS.o and crtendS.o.
6226         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
6227         (ENDFILE_SPEC): Use crtendS.o.
6228         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
6229
6230         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
6231         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
6232         shared and present.
6233         (__dso_handle): New variable.
6234         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
6235         bias to __CTOR_END__.
6236         
6237 2000-02-16  Richard Henderson  <rth@cygnus.com>
6238
6239         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
6240
6241 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6242
6243         * longlong.h (__clz_tab): Declare as static to match definition.
6244
6245 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
6246         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
6247         (XREF_FILE_NAME): Define.
6248
6249         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
6250         (EH_FRAME_SECTION_ASM_OP): Define.
6251         (IDENT_ASM_OP): Define.
6252         (TEXT_SECTION_ASM_OP): Define.
6253         (CPP_SPEC): Define.
6254         (CTORS_SECTION_ASM_OP): Define.
6255         (CTOR_SECTION_FUNCTION): Use it.
6256         (DTORS_SECTION_ASM_OP): Define.
6257         (DTOR_SECTION_FUNCTION): Use it.
6258
6259 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
6260
6261         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
6262         NOTE_BASIC_BLOCK.
6263
6264         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
6265         debug_bb_n): New functions.
6266         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
6267         * basic-block.h: Prototype new functions.
6268
6269 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
6270
6271         * configure.in: Add support for avr target.
6272         * configure: Rebuilt.
6273
6274         * invoke.texi: Add AVR invocation docs.
6275         * install.texi: Add information about AVR.
6276         * md.texi: Add AVR constraint letters description.
6277         * extend.texi: Add description for AVR specific attributes.
6278
6279 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
6280
6281         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
6282
6283 2000-02-16  Nick Clifton  <nickc@cygnus.com>
6284
6285         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
6286         (make_insn_raw): Move RTL check here.
6287
6288 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6289
6290         * version.c: Include gansidecl.h and version.h.
6291
6292         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
6293         
6294         * configure.in (gcc_version): When setting, narrow search to
6295         lines containing `version_string'.
6296
6297         * Makefile.in (mainversion): Likewise. 
6298         (GCC_H): New variable.
6299         (gcc.h): Delete target.
6300         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
6301         (version.o): Depend on version.h.
6302         (dbxout.o): Don't depend on gcc.h.
6303
6304 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6305                           Michael Meissner  <meissner@cygnus.com>
6306
6307         * md.texi (Simple Constraints): Add item about whitespace.
6308         * genoutput.c (strip_whitespace): New.
6309         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
6310         strip_whitespace for constraints.
6311         Test pointer using NULL, not 0.
6312
6313 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6314
6315         * cpplib.c (do_line): Pedwarn for #line > 32767.
6316
6317         * c-lex.c (readescape): Warn about '\x', but do not reject it.
6318
6319 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
6320
6321         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
6322         to default cpp spec.
6323         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
6324         * cpp.texi: Document __GNUC_PATCHLEVEL__.
6325         * cpp.1: Likewise.
6326
6327         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
6328         default spec.
6329
6330 2000-02-15  Denis Chertykov  <denisc@overta.ru>
6331
6332         * configure.in: Add support for avr target.
6333
6334 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6335
6336         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
6337         (sh_addr_diff_vec_mode): Don't declare.
6338         * sh.c (sh_addr_diff_vec_mode): Delete.
6339
6340 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6341
6342         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
6343
6344 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6345
6346         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
6347         (smulsi3_highpart_i): Name.
6348         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
6349         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
6350         (smulsi3_highpart, umulsi3_highpart): Likewise.
6351
6352         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
6353         correctly independent of endianness.
6354         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
6355         confuse the optimizers.
6356         (mulsidi3+1, umulsidi3+1): New define_split.
6357
6358 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
6359
6360         * config/sh/sh.md: Guard insn splits against illegal registers.
6361         * config/sh/sh.h: Correct comment about macros.
6362
6363 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6364                           Andrew MacLeod  <amacleod@cygnus.com>
6365
6366         * Makefile.in (lcm.o): Depend on insn-attr.h.
6367         * basic-block.h (optimize_mode_switching): Declare.
6368         * lcm.c (tm_p.h, insn-attr.h): #include.
6369         (seginfo, bb_info): New structs.
6370         (antic, transp, comp, delete, insert) : New file-scope static variables.
6371         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
6372         (reg_becomes_live, optimize_mode_switching): Likewise.
6373         * tm.texi: Add description of mode switching macros.
6374         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
6375
6376         * sh-protos.h (remove_dead_before_cse): Remove prototype.
6377         (fldi_ok, fpscr_set_from_mem): New prototypes.
6378         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
6379         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
6380         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
6381         (sh_flag_remove_dead_before_cse): Remove declaration.
6382         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
6383         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
6384         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
6385         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
6386         (barrier_align): Allow for JUMP_INSNS containing a parallel.
6387         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
6388         (fldi_ok): New function.
6389         (get_fpscr_rtx): Add fpscr_rtx as GC root.
6390         (emit_sf_insn): Only generate fpu switches when optimize < 1.
6391         (emit_df_insn): Likewise.
6392         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
6393         (sh_flag_remove_dead_before_cse): Delete.
6394         (get_free_reg, fpscr_set_from_mem): New functions.
6395         * sh.md (movdf, movsf): Remove no_new_pseudos code.
6396         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
6397
6398 2000-02-15  Loren Rittle  <ljrittle@acm.org>
6399
6400         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
6401
6402 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6403
6404         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
6405         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
6406
6407         * cccp.c: Include version.h and/or don't declare `version_string'.
6408         * collect2.c: Likewise.
6409         * alpha.c: Likewise.
6410         * arm/aof.h: Likewise.
6411         * arm/coff.h: Likewise.
6412         * arm/elf.h: Likewise.
6413         * arm/pe.h: Likewise.
6414         * arm/tcoff.h: Likewise.
6415         * arm/telf.h: Likewise.
6416         * arm/tpe.h: Likewise.
6417         * arm/vxarm.h: Likewise.
6418         * convex/convex.c: Likewise.
6419         * i386/dgux.c: Likewise.
6420         * i386/sun386.h: Likewise.
6421         * m88k/m88k.c: Likewise.
6422         * mcore/mcore-pe.h: Likewise.
6423         * mips/mips.h: Likewise.
6424         * romp/romp.h: Likewise.
6425         * sh/sh.c: Likewise.
6426         * cpphash.c: Likewise.
6427         * cppinit.c: Likewise.
6428         * dwarf2out.c: Likewise.
6429         * dwarfout.c: Likewise.
6430         * gcc.c: Likewise.
6431         * gcc.h: Likewise.
6432         * mips-tfile.c: Likewise.
6433         * protoize.c: Likewise.
6434         * toplev.c: Likewise.
6435         * tree.h: Likewise.
6436         
6437         * version.c (version_string): Constify a char*.
6438
6439         * version.h: New file.
6440
6441 2000-02-14  Nick Clifton  <nickc@cygnus.com>
6442
6443         * configure.in: Add mcore-elf and mcore-pe targets.
6444         * configure: Regenerate.
6445
6446         * NEWS: Add note that MCore port has been contributed.
6447
6448         * invoke.texi: Document command line switches for MCore port.
6449         * install.texi: Add MCore to list of supported targets.
6450
6451 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
6452
6453         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
6454         then we will need to import the frame handling functions.
6455         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
6456         to import the frames themselves.
6457
6458 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
6459                           Jason Eckhardt  <jle@cygnus.com>
6460
6461         * basic_block.h: Added prototype for reorder_basic_blocks.
6462         * toplev.c: Changes to add -freorder-blocks and graph dump after
6463         block reordering is done.
6464         * flow.c (reorder_block_def): New structure for use during block
6465         reordering.
6466         (REORDER_BLOCK_*): New macros to access members of above structure.
6467         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
6468         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
6469         functions for block reordering.
6470
6471 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6472
6473         * gcc.texi (Passes): Fix typo.
6474         * md.texi (Standard Names): Ditto.
6475         * tm.texi (Storage Layout): Ditto.
6476
6477 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
6478
6479         * cpplib.c (do_define): Only free the old definition if it
6480         actually had one.
6481
6482 2000-02-13   Neil Booth  <NeilB@earthling.net>
6483
6484         * cppfiles.c (read_and_prescan): When emitting deferred
6485         newlines, test speccase[] again instead of checking each
6486         possible whitespace character in turn.  When we encounter \r,
6487         look behind for \n first, then ahead.
6488
6489 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
6490
6491         * cse.c (cse_altered): New internal flag.
6492         (cse_insn): Set it if we changed an insn.
6493         (cse_main): Clear cse_altered before each basic block.
6494         Only garbage collect if cse_altered is true afterward.
6495
6496 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6497
6498         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
6499
6500 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
6501
6502         * combine.c (simplify_comparison): Fix typo.
6503
6504 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
6505
6506         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
6507         consistently.
6508
6509 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6510
6511         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
6512         previously inserted node instead of root node.  Caller changed.
6513
6514 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6515
6516         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
6517
6518 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6519
6520         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
6521         __dereg_frame_dtor): Add prototype argument.
6522
6523         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
6524
6525         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
6526
6527         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
6528
6529         * gthr-vxworks.h (__gthread_once): Likewise.
6530
6531         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
6532
6533 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
6534
6535         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
6536         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
6537         stack pointer in functions w/o saved registers, output LEAVE more often
6538         on TARGET_USE_LEAVE machines.
6539
6540 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
6541
6542         * config/arm/arm.c (arm_init_cumulative_args); New function:
6543         Initlaise the CUMULATIE_ARGS strcuture for a function
6544         defintion. 
6545         (arm_function_arg): New function: Determine where to place a
6546         function's argument.  Also handles deciding the function's
6547         call cookie.
6548         (current_file_function_operand): New function: Return true if
6549         the symbol is a function which has already been compiled.
6550         (arm_is_long_call_p): New function: Return true if the
6551         indicated function should be called via a long call.
6552         (arm_valid_type_attribute_p): New function: Return true if the
6553         attribute is a valid, arm specific, attribute.
6554         (arm_comp_type_attribute): New function: Return true if the
6555         two types have compatable, arm specific, attributes.
6556
6557         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
6558         structure.
6559         (FUNCTION_ARG): Redefine to call arm_function_arg.
6560         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
6561         structure field.
6562         (INIT_CUMULATIVE_ARGS): Redefine to call
6563         arm_init_cumulative_args.
6564         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
6565         field. 
6566         (SETUP_INCOMING_VARARGS): Redefine to use correct structure 
6567         field. 
6568         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
6569         functions.
6570         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
6571         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
6572         (COMP_TYPE_ATTRIBUTES): Define.
6573
6574         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
6575         if a long call is needed.
6576         (call_value): Call arm_is_long_call_p to decide if a long call
6577         is needed.
6578         (call_symbol): Call arm_is_long_call_p to decide if a long call
6579         is needed.
6580
6581         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
6582
6583 2000-02-11  Denis Chertykov  <denisc@overta.ru>
6584
6585         * README.AVR: New file with information about the avr ports.
6586         * config/avr: New directory with avr port files.
6587
6588 2000-02-11  Andreas Jaeger  <aj@suse.de>
6589
6590         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
6591
6592 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
6593
6594         * cpphash.c: Fix formatting, update commentary.
6595         (dump_definition): Take three separate arguments instead of a
6596         MACRODEF structure argument.
6597         * cpphash.h: Update prototype of dump_definition.
6598         * cppinit.c (cpp_finish): Update call of dump_definition.
6599
6600         * cpplib.c (do_define): Always create new hash entry with
6601         T_MACRO type.  Remove redundant check for redefinition of
6602         poisoned identifier.  Update call of dump_definition.
6603         (do_undef): Don't call check_macro_name.  Rename sym_length to
6604         len.
6605         (do_error, do_warning): Don't use copy_rest_of_line or
6606         SKIP_WHITE_SPACE.
6607         (do_warning): Don't use pedwarn for the actual warning,
6608         only the notice about its not being in the standard.  (Fixes
6609         bug with #warning in system headers.)
6610         (do_ident): Stricter argument checking - accept only a single
6611         string after #ident.  Also, macro-expand the line.
6612         (do_xifdef): Use cpp_defined.  De-obfuscate.
6613
6614         (do_pragma): Split out specific pragma handling to separate
6615         functions.  Use get_directive_token.  Update commentary.  Do
6616         not pass on #pragma once or #pragma poison to the front end.
6617         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
6618         do_pragma_default): New.
6619
6620 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
6621
6622         * jump.c (jump_optimize_1): The first operand in a relational
6623         can be a CONST_INT.
6624         * optabs.c (emit_conditional_move): Handle relationals which
6625         have a known true/false result.
6626
6627 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
6628
6629         * function.c (thread_prologue_and_epilogue_insns): Don't insert
6630         a RETURN insn into a block which already ends with a jump.
6631
6632 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
6633
6634         * haifa-sched.c (BUF_LEN): Increase a lot.
6635
6636 2000-02-11  Nick Clifton  <nickc@cygnus.com>
6637
6638         * configure.in: Add tm_p_file specification for thumb targets.
6639         * configure: Regenerate.
6640
6641         * config/arm/thumb-protos.h: New file: Prototypes for exported
6642         functions defined in thumb.c.
6643
6644 2000-02-11  Robert Lipe  <robertl@sco.com>
6645
6646         * Makefile.in (bootstrap-lean): Remove additional files.
6647         (bootstrap2-lean): Likewise.
6648         (VOL_FILES): List of files for above.
6649
6650 2000-02-11  Nathan Sidwell  <nathan@acm.org>
6651
6652         * cpphash.c (special_symbol): Remove spurious argument to
6653         cpp_lookup.
6654
6655 2000-02-11  Joel Sherrill (joel@OARcorp.com>
6656
6657         * configure.in: (i*86-*-rtems*): Swapped elf and coff
6658         stanzas.
6659         * configure: Rebuilt.
6660
6661 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
6662         
6663         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
6664
6665 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
6666
6667         * pa.c, pa.h: Remove trigraph sequences within comments.
6668
6669 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
6670
6671         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
6672
6673 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
6674
6675         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
6676
6677 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6678         
6679         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
6680
6681 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6682
6683         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
6684         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
6685         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
6686         (ASM_FILE_END): Use c4x_file_end.
6687         * config/c4x/c4x.c (c4x_global_label): New function.
6688         (c4x_external_ref, c4x_file_end): Likewise.
6689
6690         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
6691         (c4x_external_ref, c4x_end_file): Likewise.
6692
6693 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
6694
6695         * cppexp.c: Don't include cpphash.h.
6696         (parse_charconst, cpp_lex): Use cpp_defined.
6697         (cpp_lex): Use get_directive_token throughout.  Remove
6698         unnecessary cases from switch.  Move assertion-handling code
6699         down to OTHER case.
6700         (cpp_parse_expr): If we see '+' or '-', check the context to
6701         determine if they are unary or binary operators.  Streamline
6702         the jumps a bit.  Do not call skip_rest_of_line.
6703
6704         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
6705         static.  Export get_directive_token.  Update commentary.
6706         (cpp_defined): New function.
6707         (do_define): Remove reference to T_PCSTRING.  Call
6708         free_definition to release memory for old definition, when
6709         redefining a macro.
6710         (eval_if_expression): Set only_seen_white to 0 before calling
6711         cpp_parse_expr.  Call skip_rest_of_line after it returns.
6712         (cpp_read_check_assertion): Don't preserve a pointer into the
6713         token buffer across a call to cpp_get_token.
6714
6715         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
6716         * cppfiles.c (redundant_include_p): Use cpp_defined.
6717         * cpphash.c (free_definition): New function.
6718         (delete_macro): Use it.  Update commentary.
6719         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
6720         free_definition.
6721         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
6722         from enum node_type.  Prototype cpp_defined and get_directive_token.
6723         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
6724
6725         * fix-header.c (check_macro_names): Use cpp_defined.
6726         (read_scan_file): Set inhibit_warnings and inhibit_errors in
6727         the options structure.
6728
6729 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6730
6731         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
6732
6733 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
6734
6735         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
6736         rather than die->die_tag.
6737
6738 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6739
6740         * combine.c (make_extraction, force_to_mode): Avoid warning on
6741         mixed-signedness conditionals.
6742         (make_field_assignment, nonzero_bits): Likewise.
6743         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
6744         (store_split_bit_field, extract_split_bit_field): Likewise.
6745         (extract_fixed_bit_field, store_bit_field, 
6746         * expr.c: Change alignment to be unsigned everywhere.
6747         (move_by_pieces, store_constructor_field, store_constructor): 
6748         Alignment parm is unsigned.
6749         (emit_block_move, emit_group_load, emit_group_store): Likewise.
6750         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
6751         (do_compare_rtx_and_jump): Likewise.
6752         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
6753         Compare align with GET_MODE_ALIGNMENT.
6754         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
6755         (get_inner_reference): Likewise.
6756         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
6757         (expand_assignment): Local vars for alignment now unsigned.
6758         (store_constructor, store_field, expand_expr, do_jump): Likewise.
6759         (do_compare_and_jump): Likewise.
6760         (store_field): Call new function expr_align.
6761         * expr.h (emit_block_move, emit_group_load, emit_group_store):
6762         Alignment arg now unsigned.
6763         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
6764         (do_compare_rtx_and_jump, store_bit_field): Likewise.
6765         (extract_bit_field): Likewise.
6766         * fold-const.c (add_double): Add cast to eliminate signedness warning.
6767         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
6768         (get_best_mode): Alignment arg is unsigned.
6769         * rtl.h (move_by_pieces): Likewise.
6770         * store-layout.c (maximum_field_alignment, set_alignment):
6771         Now unsigned.
6772         (layout_decl): Alignment arg is now unsigned.
6773         Remove unneeded casts.
6774         (layout_record, layout_union, layout_type): Remove unneeded casts.
6775         Local alignment variables now unsigned.
6776         (get_best_mode): Alignment arg now unsigned.
6777         * tree.c (expr_align): New function.
6778         * tree.h (expr_align): Likewise.
6779         (maximum_field_alignment, set_alignment): Now unsigned.
6780         (get_inner_reference): Alignment argument is now pointer to unsigned.
6781         * varasm.c (assemble_variable): Add cast to eliminate warning.
6782
6783 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
6784
6785         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
6786         then store directly into op0.
6787
6788         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
6789         the CALL_INSN, and emit the note immediately after it.
6790
6791 2000-02-10  Nick Clifton  <nickc@cygnus.com>
6792
6793         * config/arm/thumb.md (epilogue): Include a (return) in the
6794         generated insn, and emit it using emit_jump_insn not
6795         emit_insn. 
6796
6797 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
6798
6799         * function.c (assign_temp): Change zero-sized arrays to size 1.
6800         * integrate.c (expand_inline_function): Do not update
6801         stack_alignment_needed
6802         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
6803         add some sanity checking, remove optimization for function with
6804         zero frame size.
6805
6806 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6807
6808         * flow.c (mark_regs_live_at_end): Delete unused variables.
6809
6810         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
6811
6812         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
6813         in macro FRAME_GROWS_DOWNWARD.
6814
6815         * stmt.c (expand_end_bindings): Delete unused variable.
6816
6817         * unroll.c (iteration_info): Mark parameter `loop' with
6818         ATTRIBUTE_UNUSED.
6819
6820 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6821
6822         * fixinc/server.c (load_data): Return NULL if the marker line is
6823         not found.
6824         (run_shell): If load_data returns NULL, retry the command once, in
6825         a new shell.
6826
6827         * configure: Rebuilt.
6828
6829 2000-02-09  Bruce Korb  <bkorb@gnu.org>
6830
6831         * gcc/fixincludes:  ** DELETED **
6832         * gcc/fixcpp:  ** DELETED **
6833         * gcc/fixinc-nt.sed:  ** DELETED **
6834         * gcc/just-fixinc:  ** DELETED **
6835         * gcc/Makefile.in:  Removed out-dated commentary
6836         * gcc/configure.in: Removed fast-fixincludes disablement.
6837         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
6838
6839 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
6840         * function.c (thread_prologue_and_epilogue_insns): Uncomment
6841         last change.
6842
6843 2000-02-09  Richard Henderson  <rth@cygnus.com>
6844
6845         * jump.c (delete_insn): Don't delete user labels at -O0.
6846
6847 2000-02-09  Robert Lipe  <robertl@sco.com>
6848
6849         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
6850         Don't link with HOST_LIBS. 
6851
6852 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
6853
6854         * configure.in: Correct --help text for --with-dwarf2.
6855         Put tm-dwarf2.h after other tm files, if it's requested.
6856         * configure: Regenerate.
6857         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
6858         defining it.
6859
6860 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
6861
6862         * cpplib.h: Provide HASHNODE typedef and forward decl of
6863         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
6864         DEFINITION, struct hashnode, struct macrodef, struct
6865         definition, scan_decls prototype, default defn of
6866         INCLUDE_LEN_FUDGE moved elsewhere.
6867
6868         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
6869         definition, and struct hashnode moved here. Remove the unused
6870         'predefined' field from struct definition.  Replace the 'args'
6871         union with its sole member.  All users updated (cpphash.c).
6872         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
6873         multiple include guard.
6874
6875         * cpphash.c (hashf): Make static; use better algorithm; drop
6876         HASHSIZE parameter; return an unsigned int.
6877         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
6878         used. Calculate HASHSIZE modulus here.
6879         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
6880         here.
6881         (create_definition): Drop PREDEFINITION parameter.
6882         * cpplib.c (do_define): Don't calculate a hash value here.
6883         Don't pass (keyword == NULL) to create_definition.
6884
6885         * scan.h: Prototype scan_decls here.
6886         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
6887         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
6888         callers of cpp_lookup and cpp_install updated.
6889         
6890         * cpphash.c (macarg): Hoist all the flag diddling out of the
6891         function...
6892         (macroexpand): ... and out of the loop that calls macarg.
6893         Skip over the initial paren before macro arguments with
6894         cpp_get_non_space_token; point may be some distance before
6895         that paren.  Abort if it's not there.
6896
6897         * cpplib.c (parse_clear_mark): Delete function.
6898         (parse_set_mark, parse_goto_mark): Make static.
6899         (ACTIVE_MARK_P): New macro.
6900         (skip_block_comment, skip_line_comment): Do not bump the line
6901         if ACTIVE_MARK_P is true.
6902         (cpp_pop_buffer): The buffer to be popped may not have an
6903         active mark.
6904         (cpp_get_token): When looking for the initial paren before
6905         macro arguments, only set a mark in a file buffer, Always
6906         return to that mark before proceeding to call macroexpand or
6907         return a NAME token.
6908
6909         * cpplib.h: Remove prototypes of parse_set_mark,
6910         parse_clear_mark, parse_goto_mark.
6911         (struct cpp_options): Rename 'put_out_comments' to
6912         'discard_comments' and invert its sense.
6913         * cppinit.c, cpphash.c, cpplib.c: All users of
6914         put_out_comments changed to use discard_comments, with
6915         opposite sense.
6916
6917 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
6918
6919         * function.c (thread_prologue_and_epilogue_insns): Don't delete
6920         the edge from a block that both jumps and falls through to the
6921         fallthru block.
6922
6923 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
6924
6925         * config/arm/arm.md (movsi): In PIC mode, make sure that a
6926         constant source address is legitimate.
6927
6928 2000-02-09  Philip Blundell  <pb@futuretv.com>
6929
6930         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
6931         correctly.
6932
6933         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
6934         generating PIC.
6935         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
6936
6937 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
6938
6939         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
6940         ends with a newline and a NUL.  Don't be so clever manipulating
6941         strings.
6942
6943 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
6944
6945         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
6946         not to BIGGEST_ALIGNMENT.
6947
6948 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
6949
6950         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
6951         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
6952         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
6953         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
6954         * frame.c (execute_cfa_insn): Handle 
6955         DW_CFA_GNU_negative_offset_extended.
6956
6957 2000-02-08  Richard Henderson  <rth@cygnus.com>
6958
6959         * flow.c (tidy_fallthru_edges): Split out from ...
6960         (delete_unreachable_blocks): ... here.
6961         (find_basic_blocks): Use it.
6962
6963 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6964
6965         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
6966
6967 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
6968
6969         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
6970         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
6971         (fix-header.o): Don't depend on cpphash.h.
6972
6973         * scan.c (hashstr): New function. 
6974         * scan.h: Prototype it.
6975         * fix-header.c: Don't include cpphash.h.  Use hashstr.  
6976         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
6977         hashstr.  Report hash table statistics.  Add private     
6978         definition of xrealloc.
6979
6980 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6981
6982         * i386.h (TARGET_SWITCHES): Fix typo in option name.
6983
6984 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
6985
6986         * function.c (thread_prologue_and_epilogue_insns): Don't replace
6987         jumps with returns unless they are jumps to the fallthru block.
6988
6989 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
6990
6991         * i386.md (addqi3_cc): Fix contraints.
6992
6993 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6994
6995         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
6996
6997 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
6998
6999         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
7000         carriage return after a macro name.
7001
7002 2000-02-07  Fred Fish  <fnf@be.com>
7003
7004         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
7005         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
7006
7007 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
7008
7009         * cppfiles.c (deps_output): Count spacers in deps_column.
7010
7011 2000-02-07  Neil Booth  <NeilB@earthling.net>
7012
7013         * cppinit.c (initialize_dependency_output): If there is no
7014         suffix, don't try to look for known suffixes.  Use strrchr.
7015         (cpp_start_read): Remove duplicate initialization.
7016
7017 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
7018
7019         * calls.c (compute_argument_block_size): New argument
7020         preferred_stack_boundary.
7021         (expand_call): update cfun->preferred_stack_boundary, update call of
7022         compute_argument_block_size
7023         (emit_library_call): Increate cfun->preferred_stack_boundary
7024         to PREFERRED_STACK_BOUNDARY
7025         (emit_library_call_value): Likewise.
7026         * explow.c (allocate_dynamic_stack_spave): Likewise.
7027         * function.c (prepare_function_start): Set
7028         cfun->preferred_stack_boundary
7029         * function.h (struct function): Add preferred_stack_boundary field.
7030         * integrate.c (expand_inline_function): Update
7031         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
7032         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
7033         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
7034
7035 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
7036
7037         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
7038         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
7039         cpp_pedwarn, cpp_pedwarn_with_line,
7040         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
7041         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
7042         v_cpp_error_with_line, v_cpp_warning_with_line,
7043         cpp_message_from_errno, cpp_perror_with_name): Delete.
7044
7045         * cpperror.c (cpp_print_containing_files): Take starting
7046         buffer as argument.
7047         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
7048         (v_cpp_message): Now called directly by all entry points.
7049         Remove -1 case.
7050         (cpp_pfatal_with_name, cpp_message): Delete.
7051         (cpp_notice_from_errno, cpp_ice): New functions.
7052         (cpp_notice): Is now for reporting error conditions, just
7053         without an associated file.
7054         (cpp_error, cpp_error_with_line): Don't do anything if
7055         opts->inhibit_errors is on.
7056         (cpp_pedwarn_with_file_and_line): Take column argument also.
7057
7058         * cpplib.h: Update prototypes of exported functions.
7059         (struct cpp_options): Add inhibit_errors.
7060
7061         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
7062         non-error messages.  Include intl.h.
7063
7064         * cppinit.c, cppmain.c: Likewise.  Also, use
7065         cpp_notice_from_errno instead of cpp_perror_with_name or
7066         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
7067
7068         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
7069         report internal errors.
7070
7071         * cpplib.c (do_define): Switch bcopy to memcpy.
7072         Give cpp_pedwarn_with_file_and_line a dummy column argument.
7073
7074         * cpplib.c (copy_rest_of_line): Revert previous change: don't
7075         bail out early if we hit a line comment.
7076
7077 2000-02-06  Richard Henderson  <rth@cygnus.com>
7078
7079         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
7080         * basic-block.h: Declare them.
7081         * emit-rtl.h (active_insn_p): New.
7082         (next_active_insn, prev_active_insn): Use it.
7083         * rtl.h: Declare it.
7084         * function.c (emit_return_into_block): New.
7085         (thread_prologue_and_epilogue_insns): Insert return insns instead
7086         of epilogues when possible.
7087         * jump.c (jump_optimize_1): Remove code to insert a return insn
7088         on the fallthru to the exit block.
7089
7090         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
7091         and for non-empty stack frames.
7092         * i386.md (return): Expand to return-pop as needed.
7093
7094 2000-02-06  Richard Henderson  <rth@cygnus.com>
7095
7096         * simplify-rtx.c (simplify_relational_operation): Canonicalize
7097         constant to op1 for testing.
7098
7099 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7100
7101         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
7102         (fixuns_truncqfqi2): Use it.
7103
7104 2000-02-06  Richard Henderson  <rth@cygnus.com>
7105
7106         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
7107         as a TYPE_LEA insn.
7108
7109         * i386.md (widening and peepholes): Mask the constant instead of
7110         using gen_lowpart.
7111
7112 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
7113
7114         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
7115         input pointer before possibly branching off to the backslash
7116         code.
7117         * cpphash.c (macroexpand): Correctly delete \r escapes when
7118         stringifying parameters.
7119         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
7120         if we can; bail out early if we hit a line comment.
7121         (handle_directive): Treat '# 123' in an .S file just like
7122         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
7123         Return 1 for '# not_a_directive'.
7124         (get_directive_token): Pop macro buffers here, so that
7125         cpp_get_token can't sneakily move past a newline.
7126         Add sanity checks. 
7127         (cpp_get_token): goto randomchar if handle_directive returns 0.
7128
7129         * cppalloc.c: Update copyright.
7130         * cpplib.c: Merge all the static function prototypes into one
7131         block.
7132         * cpplib.h: Remove #if 0 block.
7133
7134         * cpperror.c: Remove #ifdef EMACS block.
7135         * cppmain.c: Likewise.
7136         * cpphash.c: Remove #if 0 blocks.
7137         * cppinit.c: Remove #if 0 blocks, and the -lint option.
7138         * cpplib.c: Remove #if 0 blocks and code referencing
7139         pcp_inside_if or for_lint.  Remove duplicate error message.
7140         Fix error messages for #else after #else or #elif.  Reformat.
7141         Remove archaic TODO list.
7142         * cpplib.h: Remove pcp_inside_if and for_lint flags.
7143
7144 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
7145
7146         * i386/osf1elf.h: Add missing backslash to multiline string.
7147
7148 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7149
7150         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
7151
7152 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7153
7154         * Makefile.in (c-common.o): Depend on $(EXPR_H).
7155
7156         * c-common.c: Include expr.h.
7157
7158         * c-pragma.c (mark_align_stack): Add prototype.
7159
7160         * caller-save.c (add_stored_regs): Likewise.
7161
7162         * combine.c (record_promoted_value): Likewise.
7163
7164         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
7165         Likewise.
7166
7167         * cppinit.c (new_pending_define): Likewise.
7168
7169         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
7170
7171         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
7172         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
7173         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
7174         class_scope_p): Likewise.
7175
7176         * dwarf2out.h (dwarf2out_set_demangle_name_func,
7177         dwarf2out_add_library_unit_info): Likewise.
7178
7179         * ggc.h (ggc_page_print_statistics): Likewise.
7180
7181         * haifa-sched.c (propagate_deps): Likewise.
7182
7183         * reg-stack.c (next_flags_user, record_label_references): Likewise.
7184
7185         * rtl.h (set_stack_check_libfunc): Likewise.
7186
7187         * toplev.h (set_fatal_function): Likewise.
7188
7189         * toplev.c (set_fatal_function): Delete prototype.
7190         
7191         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
7192         
7193 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
7194
7195         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
7196         (FUNC_END): Likewise.
7197
7198 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7199
7200         * caller-save.c: Include tm_p.h.
7201
7202 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7203
7204         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
7205
7206 2000-02-04  Neil Booth  <NeilB@earthling.net>
7207
7208         * cccp.c (main): Check 'dir' for a NULL pointer before passing
7209         it to strcmp.
7210
7211 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
7212
7213         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
7214         * genflags.c: Use the max_operand_1 logic from genemit.c to
7215         calculate how many arguments gen_insn prototypes have.  Remove
7216         NO_MD_PROTOTYPES ifdefs from the generated file.
7217         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
7218         file.  Cast gen_insn initializers to insn_gen_fn.
7219         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
7220         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
7221
7222 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7223
7224         * fixinc/Makefile.in (HDR): Add machname.h.
7225         (clean): Likewise.
7226
7227 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7228
7229         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
7230         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
7231         (c4x_cpu_version): Ditto.
7232         * config/c4x/c4x-protos.h: ... here.
7233
7234 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
7235
7236         * dwarf2out.c (add_abstract_origin_attribute): Don't call
7237         gen_abstract_function on our context if we're a nested function.
7238
7239 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7240
7241         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
7242         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
7243
7244 2000-02-04  Bruce Korb  <bkorb@gnu.org>
7245
7246         * fixinc/genfixes(machname.h):
7247         Move the functionality from gen-machine.h into this file.
7248         UNdef MN_NAME_PAT if there are no names to change.
7249         Also, be a little kinder when AutoGen is not present.
7250
7251         * fixinc/Makefile.in(machname.h):
7252         Change the generation rule to use genfixes.
7253
7254         * fixinc/fixfixes.c(machine_name):
7255         machine_name_fix's functionality now dependent upon whether
7256         MN_NAME_PAT is defined.
7257
7258         * fixinc/fixtests.c(machine_name):
7259         ditto.
7260
7261         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
7262         of MN_NAME_PAT.
7263
7264         * fixinc/fixlib.h(mn_get_regexps):
7265         ditto
7266
7267         * fixinc/gen-machine.h: DELETED
7268
7269 2000-02-04  Jan Hubicka  <jh@suse.cz>
7270             Richard Henderson  <rth@cygnus.com>
7271
7272         * i386.c (SAVE_REGS_FIRST): Remove.
7273         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
7274         (ix86_compute_frame_size): Likewise.
7275         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
7276         (ix86_emit_restore_regs): Remove.
7277         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
7278         when a frame pointer is in use.
7279         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
7280         instead of pop to restore a register when profitable; emit leave
7281         when profitable.
7282         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
7283         as a TYPE_LEA insn.
7284         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
7285         * i386.md (prologue_allocate_stack): Remove.
7286         (epilogue_deallocate_stack): Remove.
7287         (pro_epilogue_adjust_stack): New.
7288
7289 2000-02-04  Richard Henderson  <rth@cygnus.com>
7290
7291         * function.c (diddle_return_value): Rework to use a callback function.
7292         Use current_function_return_rtx if it's been set up.
7293         (do_clobber_return_reg, clobber_return_register): New.
7294         (do_use_return_reg, use_return_register): New.
7295         (expand_function_end): Use them.
7296         * stmt.c (expand_null_return): Likewise.
7297         * function.h: Declare them.
7298         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
7299         (mark_reg): Change arguments as appropriate for callback.
7300         * integrate.c (expand_inline_function): Revert 19 Jan change.
7301
7302 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7303
7304         * tm.texi (Values in Registers): Fix typo: "fo" "for".
7305         (Misc): Say the scheduler, not the Haifa scheduler.
7306
7307 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
7308
7309         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
7310         when in_mem is set.  Update all callers.
7311
7312 2000-02-04  Richard Henderson  <rth@cygnus.com>
7313
7314         * i386/openbsd.h (INT_ASM_OP): Define.
7315
7316 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7317
7318         * tm.texi: Fix various typos.
7319
7320 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
7321
7322         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
7323         (MD_STARTFILE_PREFIX_1): New macro.
7324
7325 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
7326
7327         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
7328         destination when needed.
7329         (strmovsi, strsetsi): New expander.
7330         (strmovsi_1, strsetsi_1): New pattern.
7331         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
7332         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
7333         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
7334         * invoke.texi (align-stringops, inline-all-stringops): Document.
7335
7336 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
7337
7338         * i386/netbsd.h (INT_ASM_OP): Define.
7339
7340 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
7341
7342         * cpplib.h (cpp_reader): Add new flag, no_directives.
7343         * cpphash.c (macarg): Set it.
7344         * cpplib.c (handle_directive): If no_directives is on and we
7345         find a directive, issue an error and discard the line.
7346
7347 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
7348
7349         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
7350         FP constants.  Add ! TARGET_FPU check for FP constants.
7351
7352 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
7353         
7354         * flow.c (find_basic_blocks): Don't kill label_value_list
7355         here.
7356         (cleanup_cfg): Kill it here.
7357
7358 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7359
7360         * expr.c (store_field): Ensure ALIGN is no stricter than the
7361         alignment of EXP.
7362
7363 2000-02-02  Richard Henderson  <rth@cygnus.com>
7364
7365         * jump.c (delete_insn): Partially revert 19 Jan change; 
7366         don't convert unused code labels to notes at -O0.
7367
7368 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7369
7370         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
7371         split_all_insns to recreate REG_LABEL notes for flow2 pass.
7372
7373 2000-02-01  Richard Henderson  <rth@cygnus.com>
7374
7375         * i386.c (general_no_elim_operand): New.
7376         (nonmemory_no_elim_operand): New.
7377         (ix86_expand_move): Copy eliminable operands before a push.
7378         * i386-protos.h: Declare new functions.
7379         * i386.h (CAN_ELIMINATE): Simplify.
7380         (PREDICATE_CODES): Update.
7381         * i386.md (push insns): Don't allow eliminable register operands.
7382
7383 2000-02-01  Richard Henderson  <rth@cygnus.com>
7384
7385         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
7386         replace BLKmode with DECL_RTL's mode.
7387
7388 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
7389
7390         * frame.c (find_fde): Convert for loop to do-while so compiler
7391         sees it's always executed at least once.
7392         * libgcc2.c (BBINBUFSIZE): Kill.
7393         (__bb_init_prg): Use fgets.
7394         (__bb_exit_trace_func): Don't paste strings.
7395         * unroll.c (unroll_loop): Initialize unroll_type, not
7396         unroll_number, and tweak logic to match.
7397
7398         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
7399         all failure paths.
7400         (ix86_flags_dependant): Likewise.  Disentangle control flow.
7401         (ix86_sched_reorder): Break guts out to
7402         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
7403         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
7404         any possible use.
7405
7406         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
7407         use string concatenation.  Don't save and restore esi.
7408
7409         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
7410         (machname.h): Remove script to separate file.  Use two-step
7411         sequence so target is not created if script fails.
7412         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
7413         identifiers are defined.
7414         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
7415         an empty string, machine_name doesn't need to do anything at
7416         all.
7417         (is_cxx_header): Add more cases to regexp.
7418         * fixinc/fixlib.h: Update prototype.
7419         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
7420         mn_get_regexps.
7421         * fixinc/fixincl.c: Define NO_BOGOSITY.
7422
7423         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
7424         (hp_sysfile): Add missing comma.
7425         (math_exception): Put the wrapper ifdefs at the beginning and
7426         the end of the file.
7427         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
7428
7429 2000-02-01  Richard Henderson  <rth@cygnus.com>
7430
7431         * sparc.c (fp_zero_operand): Turn into a normal predicate.
7432         Use CONST0_RTX.  Update all callers.
7433         * sparc.h, sparc-protos.h: Update accordingly.
7434         * sparc.md (fp mov insns): Use fp_zero_operand directly
7435         where applicable.
7436
7437 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7438
7439         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
7440         example.
7441
7442 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7443
7444         * Makefile.in (specs.ready): New target.
7445         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
7446
7447 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7448
7449         * fixinc.irix: Use unique filenames for writing into /tmp,
7450         * fixinc.ptx: Likewise.
7451         * fixinc.sco: Likewise.
7452         * fixinc.svr4: Likewise.
7453         * fixinc.winnt: Likewise.
7454
7455 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7456
7457         * tsystem.h: New file.
7458
7459         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
7460         s-crtS): Depend on tsystem.h.
7461
7462         * crtstuff.c: Include tsystem.h.
7463         * frame.c: Likewise.
7464         * libgcc2.c: Likewise.
7465
7466 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
7467
7468         * builtins.c (expand_builtin_memset): Expand for variable sized
7469         lengths too.
7470
7471 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au> 
7472
7473         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
7474         on ABI.
7475
7476 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7477
7478         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
7479
7480         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
7481
7482 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
7483
7484         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
7485         case 3->2 combining (combining with splitting) in which 2 is CC0
7486         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are 
7487         checked at the begining of the function with the aid of calling 
7488         function 'can_combine_p'. 
7489
7490 2000-01-31  Dave Brolley  <brolley@redhat.com>
7491
7492         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
7493
7494 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
7495
7496         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
7497         new label.
7498
7499 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7500
7501         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
7502         
7503         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
7504         PROTO -> PARAMS.
7505
7506 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
7507
7508         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
7509         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
7510         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
7511         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
7512         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
7513         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
7514         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
7515         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
7516         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
7517         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
7518         
7519         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
7520         Add %(cpp_cpu) to CPP_SPEC.
7521
7522         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
7523         Add %(cc1_cpu) to CC1_SPEC.
7524
7525 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
7526
7527         * c-decl.c (c_decode_option): Accept optional numeric argument to
7528         -Wformat and set warn_format.
7529         * c-common.c: Don't emit warning about non-constant printf format
7530         string unless warn_format > 1.
7531
7532 2000-01-30  Richard Henderson  <rth@cygnus.com>
7533
7534         * alpha.md (return_internal): Allow after reload only.
7535
7536 2000-01-30  Richard Henderson  <rth@cygnus.com>
7537
7538         * i386.c (ix86_compute_frame_size): Omit padding1 if the
7539         local frame size is zero.
7540
7541 2000-01-30  Richard Henderson  <rth@cygnus.com>
7542
7543         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
7544         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
7545         * alpha.md (return): Turn into an expander.
7546         (return_internal): Don't use $26.
7547         (epilogue): Emit the return insn.
7548
7549 2000-01-30  Richard Henderson  <rth@cygnus.com>
7550
7551         * alpha.md (negtf2, abstf2): Fix word order thinko.
7552         (extendsftf2): New.
7553         (trunctfsf2): Avoid intermediate rounding errors.
7554
7555 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
7556
7557         * cppfiles.c (find_position): Drop 'colp' argument, return the
7558         new line base.
7559         (read_and_prescan): Adjust to match.  Don't ever manipulate
7560         line or line_base except via find_position.
7561
7562 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
7563
7564         * c-parse.in: Apply Ulrich's changes from c-parse.y.
7565         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
7566         Regenerate.
7567
7568 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
7569
7570         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
7571         just print "<command line>".  If 'filename' is null or an
7572         empty string, print "<stdin>" for the filename.
7573         * cpplib.c (do_define): Don't print the 'location of the
7574         previous definition' message if we're still parsing the
7575         command line.
7576         (cpp_pedwarn_with_file_and_line): Always call
7577         cpp_file_line_for_message.
7578
7579 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
7580
7581         * flow.c (mark_regs_live_at_end): Fix typo.
7582
7583 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
7584
7585         * c-common.c: Adjust variable names, comments, help strings to c99.
7586         * c-lex.c: Likewise.
7587         * c-parse.y: Likewise.
7588         * c-tree.h: Likewise.
7589         * cccp.c: Likewise.
7590         * cpplib.h: Likewise.
7591         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
7592         * cppinit.c: Likewise.
7593
7594 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7595
7596         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
7597         * c4x.c: Define the optab rtx values.
7598         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
7599         (c4x_emit_libcall): Use new optab rtx values.
7600         (c4x_emit_libcall3): Likewise.
7601         (c4x_emit_libcall_mulhi): Likewise.
7602         * c4x-protos.h: Add prototypes for optab rtx values and change
7603         prototypes for above c4x_emit_libcall functions.
7604
7605 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7606
7607         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
7608         syntax is used.
7609         (c4x_function_prologue): Use regnames intead of float_reg_names when
7610         TI syntax is used.
7611         (c4x_function_epilogue): Likewise.
7612         (c4x_print_operand): Likewise.
7613         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
7614         * c4x.md (set_high): Disable for TARGET_TI.
7615
7616 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7617
7618         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
7619         of framepointer + constant to ADDR_REGS class.
7620         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
7621         * c4x.c (std_or_reg_operand): New function.
7622         * c4x-protos.h (std_or_reg_operand): Prototype it.
7623
7624 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7625
7626         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
7627                 object names as libgcc2.c.
7628         * libgcc.S: Use newly defined names.
7629
7630 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
7631         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
7632         function.
7633         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
7634         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
7635         (FLOW_LOOP_LAST_BLOCK): Likewise.
7636
7637 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7638
7639         * basic-block.h (struct loop): New fields 'first' and 'last'.
7640         * flow.c (flow_loops_find): Compute loop->first and loop->last.
7641         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
7642         and loop->last to check for NOTE_INSN_LOOP_END.
7643
7644 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
7645
7646         * predict.c (estimate_probability): Use the new FIRST and LAST fields
7647         of the loop descriptor rather than HEADER and LATCH. Also added
7648         missing break statements as well making some coding style modifications
7649         as suggested by Michael Hayes.
7650
7651 2000-01-28  Richard Henderson  <rth@cygnus.com>
7652
7653         * flow.c (find_basic_blocks): Remove do_cleanup argument.
7654         Break out that code ...
7655         (cleanup_cfg): ... here.
7656         (commit_one_edge_insertion): Detect a return instruction being
7657         emitted to an edge.  Emit a barrier following; clear fallthru.
7658         (commit_edge_insertions): Verify CFG consistency.
7659         * function.c (expand_function_start): Kill unused variable.
7660         (expand_function_end): Likewise.
7661         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
7662         to insert the epilogue.
7663
7664         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
7665         (delete_null_pointer_checks): Likewise.
7666         * output.h: Likewise.
7667         * reg-stack.c (reg_to_stack): Likewise.
7668         * toplev.c (rest_of_compilation): Likewise.  Run
7669         thread_prologue_and_epilogue_insns after rebuilding the CFG.
7670
7671 2000-01-28  Richard Henderson  <rth@cygnus.com>
7672
7673         * Makefile.in (flow.o): Revert 24 Jan change.
7674         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
7675         FUNCTION_VALUE result to DECL_RESULT's mode.
7676
7677         * haifa-sched.c (schedule_insns): Don't recompute reg info
7678         after reload.
7679
7680 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
7681
7682         * configure.in: Make --enable-cpplib the default.
7683         * configure: Regenerate.
7684         * gcc.dg/990119-1.c: No longer expected to fail.
7685
7686 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
7687
7688         * jump.c (jump_optimize_1): Delete an optimization that is also done
7689         by merge_blocks in flow.
7690
7691 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7692
7693         * diagnostic.c (build_message_string, output_printf,
7694         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
7695         (build_location_prefix): Fix non-literal format string.
7696
7697 2000-01-27  Richard Henderson  <rth@cygnus.com>
7698
7699         * alpha.md (trunctfsf2): New.
7700
7701 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
7702
7703         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
7704
7705 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
7706
7707         * cppinit.c (cpp_handle_option): Recognize C++ comments under
7708         -std=gnu89.
7709         * cpplib.c (skip_block_comment, skip_line_comment): Split code
7710         out of...
7711         (skip_comment) ... here.  Permit C++ comments in system
7712         headers always.  Warn about C++ comments in user code under
7713         -std=gnu89 -pedantic.
7714         (copy_comment): Use skip_comment.
7715         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
7716         return EOF.
7717         (consider_directive_while_skipping, do_else, do_endif): Call
7718         validate_else unconditionally.
7719         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
7720         text after the conditional in a system header.
7721         * cpplib.h (struct cpp_buffer): Add flag
7722         warned_cplusplus_comments.
7723
7724 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
7725
7726         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
7727         Use unshare_all_rtl_1.
7728         (unshare_all_rtl_again): New function.
7729         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
7730
7731         * function.c (purge_addressof_1): Use unshare_all_rtl_again
7732         rather than resetting the 'used' flags ourself.
7733
7734         * toplev.c (rest_of_compilation): Add current_function_decl
7735         to the unshare_all_rtl call.
7736         * tree.h: Prototype unshare_all_rtl.
7737         * rtl.h: Prototype unshare_all_rtl_again here.
7738
7739 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
7740
7741         * genoutput.c (output_prologue): Include ggc.h in generated
7742         files.
7743         * Makefile.in (insn-output.o): Depends on ggc.h.
7744
7745 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
7746             Hans-Peter Nilsson  <hp@bitrange.com>
7747
7748         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
7749         Remove redundant include of xm-ns32k.h.
7750         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
7751         Remove redundant include of xm-ns32k.h.
7752         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
7753         Remove redundant include of xm-ns32k.h.
7754         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
7755
7756         * ns32k/ns32k.h: Update comment on multiply-add instructions.
7757         (TARGET_SWITCHES): Add documentation strings.
7758         (DWARF_FRAME_REGNUM): Override default definition.
7759         (REG_CLASS_CONTENTS): Add comments.
7760         (SUBSET_P): Format to reduce line length.
7761         (SMALL_REGISTER_CLASSES): Make a run time option.
7762         (GO_IF_NONINDEXED_ADDRESS): Reformat.
7763         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
7764         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
7765         (regclass_map): fix typo in comment.
7766         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
7767         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
7768         (trace, reg_or_mem_operand): Delete, unused function.
7769         (calc_address_cost): Small offsets are cheaper than large ones.
7770         (expand_block_move): Generate more efficient code when bytes is a
7771         known at compile time.
7772         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
7773         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
7774         instead of reg_or_mem_operand.
7775
7776         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
7777         not general_operand.  Similarly use "=rm" or stricter, not "=g".
7778         For input operands, use stricter constraints than "g" if not
7779         general_operand.  Similarly use stricter predicate than
7780         "general_operand" when stricter constraints than "g" are present,
7781         except for matching constraints.
7782         (movstrsi): Use "memory_operand" for operands 0 and 1.
7783         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
7784         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
7785         not reg_or_mem_operand.
7786         (udivmoddisi4): Ditto.
7787         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
7788         Use nonimmediate_operand for operand 3, not register_operand.
7789         (udivmoddiqi4_internal): Use register_operand for operand 1, not
7790         reg_or_mem_operand.
7791
7792 2000-01-27  Fred Fish  <fnf@be.com>
7793
7794         * gthr-posix.h: Fix typo; compatibily -> compatibility.
7795         * gthr-single.h: Likewise.
7796         * gthr-solaris.h: Likewise.
7797         * gthr-vxworks.h: Likewise.
7798         * gthr-win32.h: Likewise.
7799         * gthr.h: Likewise.
7800
7801 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
7802
7803         * cppinit.c: Add " (cpplib)" to end of string printed by
7804         -v / --version.
7805
7806 2000-01-27  Richard Henderson  <rth@cygnus.com>
7807
7808         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
7809         testing for a signed comparison.
7810         (alpha_emit_floatuns): New.
7811         * alpha-protos.h: Declare it.
7812         * alpha.md (floatunsdisf2, floatunsdidf2): New.
7813         (extendsfdf2): Tidy.
7814
7815 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
7816
7817         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
7818         no -g option specifying debugging format, default to -gstabs+.
7819
7820 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
7821
7822         * calls.c (special_function_p): New argument fork_or_exec.
7823         (expand_call): When profile_arc_flag is set and the function
7824         is in the fork_or_exec group, call __bb_fork_func first.
7825         * libgcc2.c, _bb module (__bb_fork_func): New function.
7826         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
7827         output file.
7828         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
7829         * tree.h (special_function_p): Update prototype.
7830
7831 2000-01-26  Richard Henderson  <rth@cygnus.com>
7832
7833         * alpha.c (alpha_split_tfmode_pair): New.
7834         * alpha-protos.h: Declare it.
7835         * alpha.md (abstf2, negtf2): New.
7836         (movtf insn): Add input G constraint.
7837         (movtf splitter): Use alpha_split_tfmode_pair.
7838
7839 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7840
7841         * i386/cygwin.h: PROTO -> PARAMS.
7842
7843 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
7844
7845         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
7846         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
7847         using _Qp_cmp/_Q_cmp and testing the return value.
7848         (print_operand): Call reverse_condition_maybe_unordered if
7849         we are handling CCFPmode or CCFPEmode.
7850         Handle ORDERED, UN* and LTGT comparisons.
7851         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
7852         if not TARGET_HARD_QUAD.
7853         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
7854         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
7855         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
7856         Adjust gen_b* calls so that they reflect return comparison of
7857         sparc_emit_float_lib_cmp.
7858
7859 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7860
7861         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
7862         incoming operands array is large enough for one more operand.
7863         (alpha_emit_xfloating_arith): Likewise.
7864
7865 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
7866
7867         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
7868         file with one line and no trailing newline.
7869         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
7870         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
7871         checking if the match is on the line.
7872         * fixinc/gnu-regex.c: Provide regerror not __regerror.
7873
7874 2000-01-25  Richard Henderson  <rth@cygnus.com>
7875
7876         * sparc.c (output_cbranch): Fix accidental squashing of the
7877         fp branch pre-delay nop.
7878
7879 2000-01-25  Richard Henderson  <rth@cygnus.com>
7880
7881         * tree.def (UNNE_EXPR): Remove.
7882         * c-typeck.c (build_binary_op): Don't handle it.
7883         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
7884
7885         * rtl.def (UNNE): Remove.
7886         (LTGT): Add.
7887         * jump.c (reverse_condition): Update accordingly.
7888         (swap_condition): Likewise.
7889         (comparison_dominates_p): Handle unordered comparisons.
7890         (reverse_condition_maybe_unordered): New.
7891         * rtl.h (reverse_condition_maybe_unordered): Declare.
7892
7893         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
7894         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
7895         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
7896         * sparc.md (bltgt): New.
7897
7898 2000-01-25  Nick Clifton  <nickc@redhat.com>
7899
7900         * emit-rtl.c (emit_insn): Only check machine class insns for
7901         improper emission of a RETURN.
7902
7903 2000-01-25  Richard Henderson  <rth@cygnus.com>
7904
7905         * Makefile.in (flow.o): Depend on $(EXPR_H).
7906         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
7907         duplicate the structure of diddle_return_value for keeping regs live.
7908
7909 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7910
7911         * loop.c (current_loop_info): Delete.
7912         (consec_sets_invariant_p): Add loop argument, update callers.
7913         (get_condition_for_loop): Likewise.
7914         (count_nonfixed_reads, update_giv_derive): Likewise.
7915         (simplify_giv_expr, general_induction_var): Likewise.
7916         (consec_sets_giv, recombine_givs): Likewise.
7917         (move_movables): Delete loop_start and loop_end arguments,
7918         add loop argument, and update callers.
7919         (find_mem_givs, check_final_value): Likewise.
7920         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
7921         (loop_invariant_p): Rename from invariant_p, add loop argument, and
7922         update callers.
7923         (basic_induction_var): Add loop argument, delete loop_level argument,
7924         and update callers.
7925         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
7926         add loop argument, and update callers.
7927         (find_splittable_regs, find_splittable_givs): Likewise.
7928         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
7929         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
7930         (biv_total_increment): Delete loop_start and loop_end arguments;
7931         update callers.
7932         (precondition_loop_p): Delete loop_start and loop_info arguments;
7933         update callers.
7934         * loop.h (get_condition_for_loop): Add loop argument.
7935         (biv_total_increment): Delete loop_start and loop_end arguments.
7936         (precondition_loop_p): Delete loop_start and loop_info arguments;
7937         add loop argument.
7938         (final_biv_value): Delete loop_start and loop_end arguments;
7939         add loop argument.
7940         (final_giv_value, back_branch_in_range_p): Likewise.
7941
7942 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
7943
7944         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
7945
7946 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
7947
7948         * Makefile.in (c-gperf.h) : Change the "See" pointer to
7949         point to the new "generated_files" doc.
7950
7951 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
7952
7953         * config/fp-bit.c (_unord_f2): Fix typo.
7954
7955 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
7956
7957         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
7958         c-typeck.c, objc/objc-act.c: Remove all references to obstack
7959         functions obsoleted by GC, such as push_obstacks_nochange,
7960         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
7961         and code which existed only to decide whether or not to call
7962         them.  Remove now-unused NESTED argument from start_function;
7963         all callers changed.  Do not change behavior based on ggc_p.
7964         The use of the ixp_obstack in c-iterate.c and the util_obstack
7965         in objc/objc-act.c remain; these are not obsoleted by garbage
7966         collection.
7967         * c-tree.h: Update prototype for start_function.
7968
7969         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
7970
7971 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
7972
7973         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
7974         mips16.
7975
7976 2000-01-25  Richard Henderson  <rth@cygnus.com>
7977
7978         * sparc-protos.h (select_cc_mode): Declare.
7979         * sparc.c (select_cc_mode): New.  Handle unordered compares.
7980         (output_cbranch): Always reverse via code change.  Handle
7981         unordered compares.  Factor tests and string updates.
7982         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
7983         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
7984         * sparc.md (bunordered, bordered): New.
7985         (bungt, bunlt, buneq, bunge, bunle): New.
7986
7987 2000-01-25  Richard Henderson  <rth@cygnus.com>
7988
7989         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
7990         * ggc-common.c (ggc_add_rtx_varray_root): New.
7991         (ggc_mark_rtx_varray): New.
7992         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
7993         functions down below ggc_mark_foo.
7994         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
7995
7996 2000-01-25  Richard Henderson  <rth@cygnus.com>
7997
7998         * alpha.c (secondary_reload_class): Don't allocate a secondary
7999         for integral mode memories into FLOAT_REGS.  Rearrange the more
8000         complicated memory expression inward.
8001
8002 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
8003
8004         * inclhack.def: Fixes to play nicer with FreeBSD, and
8005         corrections to comments.
8006         (cxx_unready): Add select expression.
8007         (irix_sockaddr): Add bypass expression.
8008         (machine_ansi_h_va_list): New fix.
8009         (stdio_va_list): No need to edit _BSD_VA_LIST_.
8010         Split out addition of "#include <stdarg.h>" to...
8011         (stdio_stdarg_h): ... here.
8012         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
8013         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
8014         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
8015         size_t.
8016         (ultrix_ifdef): Tighten up select expression.
8017
8018         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
8019         re_ct and max_mach to avoid use of shell.  Make printed names
8020         match names in inclhack.def.  Use static copyright date.
8021         Don't count c_test and test expressions as requiring regex_t
8022         slots.  Add some commentary.
8023         * inclhack.tpl: Do not include the 'This script contains N
8024         fixup scripts' line if PROGRAM is defined.  Use static
8025         copyright date.
8026
8027 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
8028
8029         * dwarf2out.c: include "varray.h", not dyn-string.h.
8030         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
8031         (addr_const_to_string, addr_to_string): Lose.
8032         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
8033         (struct dw_val_struct): val_addr is now an rtx.
8034         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
8035         (used_rtx_varray): New varray.
8036         (dwarf2out_init): Initialize it.
8037         (save_rtx): New fn.
8038         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
8039         addr_to_string.
8040         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
8041         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
8042         * Makefile.in (dwarf2out.o): Update dependencies.
8043
8044 2000-01-24  Richard Henderson  <rth@cygnus.com>
8045
8046         * i386.c (i386_dwarf_output_addr_const): New.
8047         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
8048
8049         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
8050         if defined.
8051         * dwarfout.c (output_mem_loc_descriptor): Likewise.
8052         * i386.c (i386_simplify_dwarf_addr): New.
8053         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
8054
8055 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
8056
8057         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
8058         TYPE_STUB_DECL is NULL.
8059
8060 2000-01-24  Richard Henderson  <rth@cygnus.com>
8061
8062         * builtins.c (expand_tree_builtin): Move ...
8063         * c-common.c (expand_tree_builtin): ... here.
8064
8065 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8066
8067         * loop.h (LOOP_INFO): New accessor macro.
8068         * basic-block.h (struct loop): Rename field `info' to `aux'.
8069         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
8070         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
8071         * unroll.c (loop_iterations, unroll_loop): Likewise.
8072
8073 2000-01-24  Christopher Faylor <cgf@cygnus.com>
8074
8075         * config/i386/t-cygwin: Accomodate new winsup directory layout
8076         when searching for include files.
8077
8078 2000-01-24  Richard Henderson  <rth@cygnus.com>
8079
8080         * rtl.def: Add unordered fp comparisions.
8081         * tree.def: Likewise.
8082         * tree.h: Add ISO C 9x unordered fp comparision builtins.
8083
8084         * builtins.c (expand_tree_builtin): New function.
8085         * c-typeck.c (build_function_call): Use it.
8086         (build_binary_op): Support unordered compares.
8087         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
8088
8089         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
8090         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
8091         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
8092         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
8093         * jump.c (reverse_condition): Don't abort for UNLE etc, but
8094         return UNKNOWN.
8095         (swap_condition): Handle unordered compares.
8096         (thread_jumps): Check can_reverse before reversing.
8097         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
8098         reversed for FP.
8099
8100         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
8101         setcc is present before acking for cmp_optab.  Update all callers.
8102         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
8103         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
8104         * expr.c (expand_expr): Likewise.  Support unordered compares.
8105         (do_jump, do_store_flag): Likewise.
8106         * expr.h (enum libfunc_index): Add unordered compares.
8107
8108         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
8109         (DPBIT_FUNCS): Add _unord_df.
8110         * config/fp-bit.c (_unord_f2): New.
8111         * fp-test.c (main): Try unordered compare builtins.
8112
8113         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
8114         * alpha.c (alpha_comparison_operator): Check mode properly.
8115         (alpha_swapped_comparison_operator): Likewise.
8116         (signed_comparison_operator): Likewise.
8117         (alpha_fp_comparison_operator): New.
8118         (alpha_emit_conditional_branch): Handle unordered compares.
8119         * alpha.h (PREDICATE_CODES): Update.
8120         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
8121         (bunordered, bordered): New.
8122
8123 2000-01-24  Richard Henderson  <rth@cygnus.com>
8124
8125         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
8126         * alpha.md (movtf): New expander, insn, and splitter.
8127
8128 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
8129
8130         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
8131         dead registers.
8132
8133 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
8134
8135         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
8136         (FIXED_REGISTERS, CALL_USED_REGISTERS,
8137          REG_ALLOC_ORDER): Add frame pointer
8138         (FRAME_POINTER_REGNUM): Set to 20
8139         (HARD_FRAME_POINTER_REGNUM): New macro.
8140         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
8141         to HARD_FRAME_POINTER.
8142         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
8143         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
8144         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
8145         (HI_REGISTER_NAMES): Add "frame".
8146         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
8147         (debug_reg): Handle FRAME_POINTER_REGNUM.
8148         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
8149         GENERAL_REGS and INDEX_REGS.
8150         * i386.c (SAVED_REGS_FIRST): new macro.
8151         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
8152         (ix86_decompose_address, memory_address_length): Likewise.
8153         (regclass_map): Add frame pointer.
8154         (call_insn_operand): Handle frame_pointer_rtx.
8155         (reg_no_sp_operand): Likewise.
8156         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
8157         (print_operand, legitimize_pic_address): Fix formating.
8158         (ix86_compute_frame_size): Make static, update prototype, new
8159         parameters padding1, padding2, use ix86_nsaved_regs, use
8160         stack_alignment_needed.
8161         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
8162         to HARD_FRAME_POINTER_REGNUM conversions.
8163         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
8164         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
8165         (print_reg): Abort on FRAME_POINTER_REGNUM
8166
8167 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
8168
8169         * i386.h (PREDICATE_CODES): Add aligned_operand.
8170         * i386.c (aligned_operand): New function.
8171         (ix86_aligned_p): Kill.
8172         * i386.md (movhi_1): Emit mov for aligned operands.
8173         (promoting peep2s): Use aligned_operand.
8174
8175 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
8176
8177         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
8178         expression to allow underscores in macro names.
8179         (fix_char_macro_defines): Increment scanning pointer.
8180
8181 2000-01-23  Richard Henderson  <rth@cygnus.com>
8182
8183         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
8184         * alpha/osf5.h: New file.
8185         * configure.in (alpha-*-osf5): Add it to tm_file.
8186
8187         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
8188
8189         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
8190         (alpha_emit_xfloating_cvt, function_arg): Declare.
8191         * alpha.c (alpha_emit_conditional_branch): Call
8192         alpha_emit_xfloating_compare for TFmode compares.
8193         (alpha_lookup_xfloating_lib_func): New.
8194         (alpha_compute_xfloating_mode_arg): New.
8195         (alpha_emit_xfloating_libcall): New.
8196         (alpha_emit_xfloating_arith): New.
8197         (alpha_emit_xfloating_compare): New.
8198         (alpha_emit_xfloating_cvt): New.
8199         (print_operand): Add default abort case.
8200         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
8201         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
8202         (BIGGEST_ALIGNMENT): Increase to 128 bits.
8203         (RETURN_IN_MEMORY): True for TF/TCmode.
8204         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
8205         (FUNCTION_ARG): Move to function_arg.
8206         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
8207         (ASM_OUTPUT_LONG_DOUBLE): New.
8208         (ASM_OUTPUT_DOUBLE): Always output bits.
8209         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
8210         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
8211         (extenddftf2, trunctfdf2): New.
8212
8213 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8214
8215         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
8216         * config/sparc/sol2.h: ... here.
8217
8218 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8219
8220         * basic-block.h (struct loops): New field `levels'.
8221         * flow.c (flow_loops_level_compute): Traverse all outer loops.
8222         (flow_loop_level_compute): Initialise level to 1.
8223         (flow_loops_find): Set loops->levels.
8224         (flow_loops_dump): Print loops->levels.
8225
8226 2000-01-23  Richard Henderson  <rth@cygnus.com>
8227
8228         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
8229         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
8230
8231 2000-01-23  Richard Henderson  <rth@cygnus.com>
8232
8233         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
8234         * i386.h (DBX_REGISTER_NUMBER): Use them.
8235         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
8236         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
8237         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
8238         * i386/sequent.h: Kill incorrect comment.
8239
8240 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
8241
8242         * ggc-page.c (struct page_entry): Make `context_depth' an
8243         `unsigned short'.
8244         (struct globals): Likewise.
8245
8246 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
8247
8248         * loop.c (check_dbra_loop): When checking a loop for
8249         reversability, check the source of any stores to ensure
8250         they don't depend on an initial value.
8251
8252 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8253
8254         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
8255
8256 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
8257
8258         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
8259         'pz_scan' into scope of entire function.  Only affects
8260         compiles with -DDEBUG.
8261
8262 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
8263
8264         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
8265         section naming to that prior to 2000-01-07 patch.
8266         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
8267         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
8268         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
8269         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
8270         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
8271
8272 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
8273
8274         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
8275         constant.
8276
8277 2000-01-21  Jim Wilson  <wilson@cygnus.com>
8278
8279         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
8280         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
8281
8282 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
8283
8284         * cpphash.c (change_newlines): Delete function.
8285         (struct argdata): Delete 'newlines' and 'use_count' fields.
8286         (macroexpand): Remove code referencing those fields.
8287
8288 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8289
8290         * loop.c (loops_info): New variable.
8291         (loop_optimize): Allocate loops->array and free it on exit.
8292         Allocate memory for loops_info and assign to each loop,
8293         replacing alloca.
8294         (find_and_verify_loops): Do not allocate loops->array.
8295
8296 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
8297
8298         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
8299
8300 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
8301
8302         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
8303         pseudos if expanded after first flow.
8304         (movdi_pic_label_ref): Likewise.
8305
8306 2000-01-20  Richard Henderson  <rth@cygnus.com>
8307
8308         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
8309
8310 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
8311
8312         * Makefile.in (fixinc.sh): Depend on specs.
8313         * fixinc/Makefile.in: Add rule to create machname.h.
8314         (fixlib.o): Depend on machname.h.
8315         * fixinc/fixtests.c (machine_name): New test.
8316         * fixinc/fixfixes.c (machine_name): New fix.
8317         * fixinc/fixlib.c (mn_get_regexps): New helper function for
8318         the machine_name test and fix.
8319         * fixinc/fixlib.h: Prototype it.
8320         * fixinc/inclhack.def (machine_name): Use the C test and fix.
8321         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
8322
8323         * gcc.c (do_spec_1) [case P]: Take care not to create
8324         identifiers with three leading or trailing underscores.
8325
8326         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
8327         (fixincl): Don't specify libraries twice on link line.
8328         (gnu-regex.o): Remove special rule.
8329         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
8330         defined by config.h.  Do not define _REGEX_RE_COMP.
8331         (regcomp): Allocate and initialize a fastmap.
8332         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
8333
8334 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
8335
8336         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
8337
8338 2000-01-19  Richard Henderson  <rth@cygnus.com>
8339
8340         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
8341         arguments with BB.  Update all callers.  Tidy line wrapping.
8342
8343 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
8344
8345         * emit-rtl.c (try_split): Return last_insn if we split the
8346         last_insn.
8347
8348 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
8349
8350         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
8351         (ix86_initial_elimination_offset): Declare.
8352         * i386.c (ix86_nsaved_regs): Break out from ...
8353         (ix86_can_use_return_insn_p): ... here.
8354         (ix86_emit_save_regs): Break out from ...
8355         (ix86_expand_prologue): ... here.
8356         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
8357         out from ...
8358         (ix86_expand_epilogue): ... here.
8359         (ix86_compute_frame_size): Make static, add prototype.
8360         (ix86_initial_elimination_offset): Break out from ...
8361         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
8362
8363 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8364
8365         * recog.h (OUT_FCN): Delete.
8366
8367         * vax.md: Call `get_insn_template' instead of OUT_FCN.
8368
8369 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8370
8371         * cppalloc.c: PROTO -> PARAMS.
8372         * cpperror.c: Likewise.
8373         * cppfiles.c: Likewise.
8374         * cpplib.c: Likewise.
8375         * cpplib.h: Likewise.
8376
8377         * config/arm/arm-protos.h: PROTO -> PARAMS.
8378         * config/arm/arm.c: Likewise.
8379         * config/c4x/c4x.c: Likewise.
8380         * config/fr30/fr30-protos.h: Likewise.
8381         * config/nextstep.c: Likewise.
8382         * config/pa/pa.c: Likewise.
8383         * config/pj/pj.c: Likewise.
8384         * config/rs6000/rs6000.c: Likewise.
8385         * config/v850/v850-protos.h: Likewise.
8386         * config/v850/v850.c: Likewise.
8387
8388 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8389
8390         * i370-protos.h: New file.
8391
8392         * i370.c: Include tm_p.h.  Fix compile time warnings.
8393
8394         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
8395         warnings.
8396
8397         * i370.md: Likewise.
8398
8399 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8400
8401         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
8402         (target_isinf, target_isnan, eisnan): Mark parameter with
8403         ATTRIBUTE_UNUSED.
8404         (eiisinf): Wrap in INFINITY.
8405         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
8406         (ibmtoe): Remove unused variable `rndsav'.
8407
8408 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8409
8410         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
8411         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
8412
8413 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
8414
8415         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
8416         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
8417         (fix_char_macro_defines, fix_char_macro_uses): New functions.
8418
8419         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
8420         Recognize Emacs mode markers also.
8421         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
8422         C++ comments in C++ headers.  Call is_cxx_header only if
8423         necessary.
8424
8425         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
8426         bypass for ncurses.
8427         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
8428         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
8429         ... these, which use the new C fixes.
8430         (math_exception): Escape literal '+' in bypass expression.
8431
8432         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
8433         Regenerate.
8434
8435 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8436
8437         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
8438         inside the MEM.
8439
8440 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8441
8442         * loop.c (loop_optimize): Allocate loop_info structure for each loop
8443         prior to calling scan_loop.
8444
8445 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8446
8447         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
8448         (split_branches, calc_live_regs): Likewise.
8449
8450 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8451
8452         * sh.md (fpu_single, fp_mode): New attributes.
8453
8454 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8455
8456         * loop.c (current_loop_info): Renamed from loop_info_data
8457         and changed to a pointer.
8458         (loop_optimize): Allocate loop_info structure for each loop
8459         and initialise to zero.
8460         (scan_loop): Set current_loop_info.
8461
8462         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
8463         on iteration_var.
8464
8465 2000-01-19  Richard Henderson  <rth@cygnus.com>
8466
8467         * stupid.c: Die die die.
8468         * Makefile.in (OBJS): Remove stupid.o.
8469         (stupid.o): Likewise.
8470
8471         * except.c (emit_eh_context): Don't emit USEs for stupid.
8472         * explow.c (probe_stack_range): Likewise.
8473         * flags.h (obey_regdecls): Remove.
8474         * flow.c (find_basic_blocks): Don't run try_merge_blocks
8475         when not optimizing.
8476         (life_analysis): Limit data collection when not optimizing.
8477         (mark_regs_live_at_end): Always mark the return value registers.
8478         (mark_used_regs): Remove dummy RETURN case.
8479         (print_rtl_with_bb): Don't consult obey_regdecls.
8480         * function.c (use_variable, use_variable_after): Remove.
8481         (assign_parms): Consult optimize not obey_regdecls.
8482         (expand_function_start): Don't emit USEs for stupid.
8483         (expand_function_end): Likewise.
8484         * global.c (build_insn_chain): Export.
8485         * integrate.c (expand_inline_function): Kill return-value USE
8486         handling code.
8487         * jump.c (jump_optimize_1): Do simple jump optimizations and
8488         dead code elimination.
8489         (calculate_can_reach_end): Remove check_deleted argument.
8490         (delete_insn): Patch out insns even when not optimizing.
8491         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
8492         * rtl.h (use_variable, use_variable_after): Remove declarations.
8493         (build_insn_chain): Declare.
8494         * stmt.c (expand_value_return): Don't emit USEs for stupid.
8495         (expand_end_bindings): Likewise.
8496         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
8497         * toplev.c (obey_regdecls): Remove.
8498         (rest_of_compilation): Don't set it.  Kill stupid in favour of
8499         flow1, local-alloc, and reload.
8500         (main): Don't set obey_regdecls.
8501
8502         * config/nextstep.c (handle_pragma): Likewise.
8503
8504         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
8505
8506         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
8507
8508 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8509
8510         * alpha-protos.h: PROTO -> PARAMS.
8511         * alpha.c: Likewise.
8512         * elf.h: Likewise.
8513         * h8300.c: Likewise.
8514         * i386-protos.h: Likewise.
8515         * i386.c: Likewise.
8516         * m32r-protos.h: Likewise.
8517         * m32r.c: Likewise.
8518         * mips.c: Likewise.
8519         * mips.md: Likewise.
8520         * gmon-sol2.c: Likewise.
8521         * sparc.c: Likewise.
8522
8523 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8524
8525         * ns32k-protos.h: New file.
8526
8527         * ns32k.c: Fix compile time warnings.
8528
8529         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
8530         warnings.
8531
8532         * ns32k.md: Likewise.
8533
8534 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8535
8536         * vax-protos.h: New file.
8537
8538         * vax.c: Fix compile time warnings.
8539
8540         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
8541         warnings.
8542
8543         * vax.md: Likewise.
8544
8545         * vaxv.md: Likewise.
8546
8547 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8548
8549         * romp-protos.h: New file.
8550
8551         * romp.c: Fix compile time warnings.
8552
8553         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
8554         warnings.
8555
8556         * romp.md: Likewise.
8557
8558 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8559
8560         * we32k-protos.h: New file.
8561
8562         * we32k.c: Fix compile time warnings.
8563
8564         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
8565         warnings.
8566
8567 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8568
8569         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
8570
8571         * except.c (eh_regs): Likewise.
8572
8573         * final.c (output_operand): Likewise.
8574
8575         * fold-const.c (target_isinf, target_isnan): Likewise.
8576
8577 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
8578
8579         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
8580         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
8581
8582         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
8583         when optimize_size.
8584         (clrstrsi): Rewrite.
8585         (strsethi, strsetqi): New expanders.
8586         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
8587         (cmpstrsi): Emit compare insn before cmpstrsi_1
8588         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
8589         (strlensi_1): Likewise.
8590         (cmpstrsi_1): Likewise; do not output compare.
8591         (strlen expander): Do not unroll when optimizing for size.
8592         (*subsi3_carry): Rename to subsi3_carry
8593         (addqi3_cc): New pattern.
8594         * i386.h (processor_costs): Add move_ratio field.
8595         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
8596         * i386.c (*_cost): Set move_ratio.
8597         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
8598         (x86_expand_strlensi_1): Rewrite the main loop.
8599
8600 2000-01-17  Richard Henderson  <rth@cygnus.com>
8601
8602         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
8603         * cse.c (find_comparison_args, fold_rtx): Likewise.
8604         * integrate.c (subst_constants): Likewise.
8605         * loop.c (get_condition): Likewise.
8606
8607         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
8608
8609         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
8610
8611 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8612
8613         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
8614         (RESTORE_WARN_FLAGS): Unpack it.
8615         Change semantic type of extension to ttype.
8616         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
8617         * c-parse.y, c-parse.c, objc/objc-parse.y,
8618         objc/objc-parse.c: Regenerate.
8619
8620 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
8621
8622         * fixinc/fixlib.c: Add copyright notice.
8623         (compile_re): New function.
8624         * fixinc/fixlib.h: Prototype compile_re.
8625
8626         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
8627         Use compile_re to compile regular expressions.
8628
8629         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
8630         where the pattern matched.
8631
8632         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
8633         use 'replace'.
8634         (ultrix_ansi_compat): Likewise.
8635         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
8636         add egrep test.
8637         (interactv_add2, interactv_add3): Delete.
8638         (x11_sprintf): Don't use filename glob.
8639         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
8640         Regenerate.
8641
8642 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8643
8644         * print-rtl.c: PROTO -> PARAMS.
8645         * real.c: Likewise.
8646         * reg-stack.c: Likewise.
8647         * resource.c: Likewise.
8648         * sdbout.h: Likewise.
8649         * simplify-rtx.c: Likewise.
8650         * stor-layout.c: Likewise.
8651         * stupid.c: Likewise.
8652         * xcoffout.c: Likewise.
8653         * xcoffout.h: Likewise.
8654
8655 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8656
8657         * toplev.c: PROTO -> PARAMS.
8658         * toplev.h: Likewise.
8659         * tree.c: Likewise.
8660         * tree.h: Likewise.
8661         * unroll.c: Likewise.
8662         * varasm.c: Likewise.
8663         * varray.c: Likewise.
8664         * varray.h: Likewise.
8665
8666 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8667
8668         * reload.c: PROTO -> PARAMS.
8669         * reload.h: Likewise.
8670         * reload1.c: Likewise.
8671         * reorg.c: Likewise.
8672         * resource.h: Likewise.
8673         * rtl.c: Likewise.
8674         * rtl.h: Likewise.
8675         * rtlanal.c: Likewise.
8676         * sbitmap.h: Likewise.
8677         * sdbout.c: Likewise.
8678         * stack.h: Likewise.
8679         * stmt.c: Likewise.
8680         * system.h: Likewise.
8681
8682 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8683
8684         * machmode.h: PROTO -> PARAMS.
8685         * mbchar.h: Likewise.
8686         * mips-tdump.c: Likewise.
8687         * mips-tfile.c: Likewise.
8688         * optabs.c: Likewise.
8689         * output.h: Likewise.
8690         * prefix.c: Likewise.
8691         * profile.c: Likewise.
8692         * protoize.c: Likewise.
8693         * real.h: Likewise.
8694         * recog.c: Likewise.
8695         * recog.h: Likewise.
8696         * regclass.c: Likewise.
8697         * regmove.c: Likewise.
8698         * regs.h: Likewise.
8699
8700 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8701
8702         * ggc-common.c: PROTO -> PARAMS.
8703         * ggc-page.c: Likewise.
8704         * ggc-simple.c: Likewise.
8705         * ggc.h: Likewise.
8706         * global.c: Likewise.
8707         * graph.c: Likewise.
8708         * gthr-win32.h: Likewise.
8709         * haifa-sched.c: Likewise.
8710         * halfpic.h: Likewise.
8711         * integrate.c: Likewise.
8712         * integrate.h: Likewise.
8713         * jump.c: Likewise.
8714         * lcm.c: Likewise.
8715         * local-alloc.c: Likewise.
8716         * loop.c: Likewise.
8717         * loop.h: Likewise.
8718
8719 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8720
8721         * genattr.c: PROTO -> PARAMS.
8722         * genattrtab.c: Likewise.
8723         * gencheck.c: Likewise.
8724         * gencodes.c: Likewise.
8725         * genconfig.c: Likewise.
8726         * genemit.c: Likewise.
8727         * genextract.c: Likewise.
8728         * genflags.c: Likewise.
8729         * gengenrtl.c: Likewise.
8730         * genopinit.c: Likewise.
8731         * genoutput.c: Likewise.
8732         * genpeep.c: Likewise.
8733         * genrecog.c: Likewise.
8734
8735 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
8736
8737         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
8738
8739 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8740
8741         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
8742         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
8743         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
8744         * configure, config.in: Rebuilt.
8745
8746 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
8747
8748         * config/i386/i386.md: Add peephole to merge successive stack
8749         adjusts.
8750
8751 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
8752
8753         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
8754         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
8755         when walking backwards to find all the parameter loads when
8756         the basic block ends in a call.
8757
8758 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8759
8760         * loop.c (this_loop_info): Delete.
8761         (uid_loop): Add in place of uid_loop_num.  All uses updated.
8762         (loop_number_exit_count): Delete and replace with entry in loop
8763         structure.  All uses updated.
8764         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
8765         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
8766         (loop_outer_loop): Likewise.
8767         (loop_invalid, loop_number_exit_labels): Likewise.
8768         (loop_used_count_register): Delete and replace with entry in
8769         loop_info structure.
8770         (find_and_verify_loops): Add loops argument.
8771         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
8772         loop_end, etc. arguments with loop structure pointer.  All callers
8773         changed.
8774         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
8775         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
8776         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
8777         (insert_bct): Likewise.
8778         (basic_induction_var): New argument level.
8779         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
8780         vtop, and cont.  Add used_count_register.
8781         (uid_loop): Delete declaration.
8782         (loop_number_exit_count): Likewise.
8783         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
8784         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
8785         (loop_outer_loop, loop_used_count_register): Likewise.
8786         (loop_invalid, loop_number_exit_labels): Likewise.
8787         (unroll_loop): Replace loop_start and loop_end arguments
8788         with loop structure pointer.
8789         (loop_precondition_p, loop_iterations): Likewise.
8790         Include basic-block.h.
8791         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
8792         with loop structure pointer.
8793         (loop_precondition_p, loop_iterations): Likewise.
8794         * basic-block.h (struct loop): New entries vtop, cont,
8795         cont_dominator, start, end, top, scan_start, exit_labels,
8796         exit_count.
8797         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
8798
8799 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8800
8801         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
8802
8803 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
8804
8805         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
8806
8807 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8808
8809         * pdp11-protos.h: New file.
8810
8811         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
8812         time warnings.
8813
8814         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
8815         warnings.
8816
8817         * pdp11.md: Likewise.
8818
8819         * 2bsd.h: Likewise.
8820
8821 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8822
8823         * mn10300-protos.h: New file.
8824
8825         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
8826         time warnings.
8827
8828         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
8829         warnings.
8830
8831         * mn10300.md: Likewise.
8832
8833 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8834
8835         * mn10200-protos.h: New file.
8836
8837         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
8838         time warnings.
8839
8840         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
8841         warnings.
8842
8843         * mn10200.md: Likewise.
8844
8845 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8846
8847         * h8300-protos.h: New file.
8848
8849         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
8850         time warnings.
8851
8852         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
8853         warnings.
8854
8855         * h8300.md: Likewise.
8856
8857 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8858
8859         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
8860         (asm_emit_uninitialised): Likewise.
8861
8862 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
8863
8864         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
8865         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
8866
8867 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
8868
8869         * config/mips/mips.c (override_options): Don't turn on extra
8870         alignment for mips16.
8871
8872 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
8873
8874         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
8875         eabi, and make sure queued POSTINCREMENT rtl is emitted at
8876         the right point.
8877
8878 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
8879
8880         * builtins.c (PAD_VARARGS_DOWN): Define.
8881         (std_expand_builtin_va_arg): Use the above macro.
8882         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
8883         * tm.texi (Register Arguments): Document the above macro.
8884
8885 2000-01-14  Nick Clifton  <nickc@cygnus.com>
8886
8887         * emit-rtl.c (emit_insn): If checking is enabled, make sure
8888         that this function has not been used to emit a jump
8889         instruction.
8890
8891         * jump.c (return_jump_1): Cope with being passed a null rtx.
8892
8893 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8894
8895         * eh-common.h: PROTO -> PARAMS.
8896         * emit-rtl.c: Likewise.
8897         * errors.c: Likewise.
8898         * errors.h: Likewise.
8899         * except.c: Likewise.
8900         * except.h: Likewise.
8901         * explow.c: Likewise.
8902         * expmed.c: Likewise.
8903         * expr.c: Likewise.
8904         * expr.h: Likewise.
8905         * final.c: Likewise.
8906         * fix-header.c: Likewise.
8907         * flow.c: Likewise.
8908         * fold-const.c: Likewise.
8909         * function.c: Likewise.
8910         * function.h: Likewise.
8911         * gcc.c: Likewise.
8912         * gcov-io.h: Likewise.
8913         * gcov.c: Likewise.
8914         * gcse.c: Likewise.
8915
8916 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8917
8918         * sh-protos.h: New file.
8919
8920         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
8921         Add static prototypes.  Fix compile time warnings.
8922
8923         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
8924         * sh.md: Likewise.
8925         * elf.h: Likewise.
8926
8927 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8928
8929         * arc-protos.h: New file.
8930
8931         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
8932         time warnings.
8933
8934         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
8935         warnings.
8936
8937         * arc.md: Likewise.
8938
8939 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8940
8941         * dsp16xx-protos.h: New file.
8942
8943         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
8944         time warnings.
8945
8946         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
8947         warnings.
8948
8949         * dsp16xx.md: Likewise.
8950
8951 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8952
8953         * convex-protos.h: New file.
8954
8955         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
8956         time warnings.
8957
8958         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
8959         warnings.
8960
8961 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8962
8963         * elxsi-protos.h: New file.
8964
8965         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
8966         time warnings.
8967
8968         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
8969         warnings.
8970
8971         * elxsi.md: Likewise.
8972
8973 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
8974
8975         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
8976         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
8977         match the comment for MIPS16.
8978
8979 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
8980
8981         * flow.c (split_edge): Do not call set_block_for_insn if we
8982         do not have a basic_block_for_insn structure.
8983
8984         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
8985         and destination functions are 32bit aligned within the trampoline.
8986         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
8987         (TRAMPOLINE_ALIGNMENT): Define.
8988
8989         * cse.c (cse_insn): When changing (set (pc) (reg)) to
8990         (set (pc) (label_ref)), verify the change creates a valid insn.
8991
8992         * fr30.c (call_operand): Tighten and rework to match rules for
8993         call RTL expressions.
8994         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
8995         * fr30.md (call patterns): Improve constraints.
8996
8997 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
8998
8999         * fr30.c (fr30_expand_epilogue): Revert last change.
9000         Use emit_jump_insn for the return insn.
9001
9002 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
9003                           Stan Cox  <scox@cygnus.com>
9004
9005         * predict.c: New file. Preliminary infrastructure work for static
9006         branch prediction and basic block reordering.
9007         * basic-block.h: Add prototype for estimate_probability.
9008         * Makefile.in: Add rules for predict.o.
9009
9010 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
9011
9012         * fixincludes (va_list): Use __not_va_list__ for the dummy.
9013         * fixinc/*: Likewise.
9014
9015 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9016
9017         * cccp.c: PROTO -> PARAMS.
9018         * cexp.y: Likewise.
9019         * collect2.c: Likewise.
9020         * combine.c: Likewise.
9021         * convert.h: Likewise.
9022         * cse.c: Likewise.
9023         * dbxout.c: Likewise.
9024         * dbxout.h: Likewise.
9025         * diagnostic.c: Likewise.
9026         * doprint.c: Likewise.
9027         * dwarf2out.c: Likewise.
9028         * dwarf2out.h: Likewise.
9029         * dwarfout.c: Likewise.
9030         * dwarfout.h: Likewise.
9031         * dyn-string.h: Likewise.
9032
9033 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9034
9035         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
9036         macro conditionals guarding use.
9037
9038         * dwarf2out.c: Include "tm_p.h".
9039
9040         * function.c (locate_and_pad_parm): Mark parameter with
9041         ATTRIBUTE_UNUSED.
9042         (expand_function_end): Likewise for variable `context'.
9043
9044         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
9045
9046 2000-01-13  Nick Clifton  <nickc@cygnus.com>
9047
9048         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
9049         register to prevent compile time warnings.
9050
9051 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
9052
9053         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
9054         to avoid -Wtraditional warning.
9055
9056 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9057
9058         * 1750a-protos.h: New file.
9059
9060         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
9061         time warnings.
9062
9063         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
9064         warnings.
9065
9066         * 1750a.md: Likewise.
9067
9068 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9069
9070         * a29k-protos.h: New file.
9071
9072         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
9073         time warnings.
9074
9075         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
9076         warnings.
9077
9078 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9079
9080         * clipper-protos.h: New file.
9081
9082         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
9083         time warnings.
9084
9085         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
9086         warnings.
9087
9088 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9089
9090         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
9091
9092 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
9093
9094         * configure.in (--enable-new-gxx-abi): New option.
9095         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
9096         * Makefile.in (GXX_ABI_FLAG): New variable.
9097         * configure: Regenerate.
9098
9099 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9100
9101         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
9102         * tm.texi (FORCE_STRUCT_BLK): Document.
9103         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
9104
9105 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
9106
9107         * config/ns32k/ns32k.md: Revert Jan 9 change.
9108
9109         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
9110         to a mode-test, if the predicate is address_operand.
9111
9112 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
9113
9114         * combine.c (if_then_else_cond): Be careful about what kinds
9115         of RTL expressions are passed to operand_subword.
9116
9117         * flow.c (split_edge): If we have to insert a new jump, make
9118         sure to associate it with a basic block.
9119
9120         * flow.c (commit_one_edge_insertion): A block with one successor
9121         can end in a JUMP_INSN that is not a simplejump.
9122
9123 2000-01-12  Robert Lipe  <robertl@sco.com>
9124
9125         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
9126         (BUILD_VA_LIST_TYPE): Define.
9127         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
9128         with crtstuff.c.
9129
9130 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
9131
9132         * cccp.c (do_pragma): Add cast to (char *).
9133
9134 2000-01-12  Richard Henderson  <rth@cygnus.com>
9135             Fred Fish  <fnf@be.com>
9136             Jason Merrill  <jason@cygnus.com>
9137
9138         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
9139         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
9140         * i386/beos-elf.h, i386/beos-pe.h: New files.
9141
9142         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
9143         * cross-make (SYSTEM_HEADER_DIR): Define using
9144         CROSS_SYSTEM_HEADER_DIR.
9145
9146         * gcc.c (LIBRARY_PATH_ENV): Provide default.
9147         (process_command): Use it.
9148         (main): Likewise.  Kill trailing = from env vars.
9149         (build_search_list): Put it back.
9150         * collect2.c (main): Use LIBRARY_PATH_ENV.
9151
9152         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
9153         * toplev.c: Use NEED_DECLARATION_ENVIRON.
9154
9155         * tm.texi (Frame Layout): Document SMALL_STACK.
9156         * c-common.c (c_common_nodes_and_builtins): Check it.
9157
9158         * system.h: Undef alloca after including glibc's <stdlib.h>,
9159         if USE_C_ALLOCA is defined.
9160
9161         * gcc.c (set_input): New fn.
9162         (main): After all input files are compiled, reset the input file
9163         info to the first.
9164
9165         * aclocal.m4 (rindex, index): If already defined, don't attempt
9166         to redefine.
9167
9168         * ginclude/varargs.h: (__va_list__): Define ifndef.
9169         * ginclude/stdarg.h: Likewise.
9170
9171         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
9172         instead of unsigned char.
9173
9174         * hash.h (true, false, boolean): Undef before enum.
9175
9176         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
9177         proper type of "HOST_WIDE_INT *", rather than their natural type of
9178         "unsigned HOST_WIDE_INT *".
9179
9180 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9181
9182         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
9183
9184         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
9185
9186         * regclass.c (choose_hard_reg_mode): Likewise.
9187
9188         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
9189
9190         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
9191
9192 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9193
9194         * c-common.c: PROTO -> PARAMS.
9195         * c-common.h: Likewise.
9196         * c-decl.c: Likewise.
9197         * c-iterate.c: Likewise.
9198         * c-lang.c: Likewise.
9199         * c-lex.c: Likewise.
9200         * c-lex.h: Likewise.
9201         * c-parse.in: Likewise.
9202         * c-pragma.c: Likewise.
9203         * c-pragma.h: Likewise.
9204         * c-tree.h: Likewise.
9205         * c-typeck.c: Likewise.
9206         * objc/objc-act.c: Likewise.
9207         * objc/objc-act.h: Likewise.
9208
9209 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9210
9211         * m88k-protos.h: New file.
9212
9213         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
9214         time warnings.
9215
9216         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
9217
9218         * m88k.md: Likewise.
9219
9220         * tekXD88.h: Likewise.
9221
9222 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9223
9224         * m68k-protos.h: New file.
9225
9226         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
9227         time warnings.
9228
9229         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
9230
9231         * mot3300.h: Likewise.
9232
9233 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
9234
9235         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
9236         extract_bitlst.
9237         (extract_bitlist): Declare bitlen.
9238
9239 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
9240
9241         * cccp.c: Accept and ignore -lang-fortran.
9242
9243         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
9244         qualifiers don't match at any level of pointerness.
9245
9246 2000-01-12  Robert Lipe  <robertl@sco.com>
9247
9248         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
9249
9250 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
9251
9252         * reload1.c (reload_reg_unavailable): New static variable.
9253         (reload_reg_free_p): Test it.
9254         (reload_reg_free_for_value_p): Test it instead of
9255         reload_reg_used.
9256         (choose_reload_regs_init): Compute it.
9257
9258 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
9259
9260         * reorg.c (fill_slots_from_thread): Check modified_in_p
9261         before replacing.
9262
9263 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
9264
9265         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
9266         these nodes even if INTERNALS is not set.
9267
9268 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
9269
9270         * gcse.c (delete_null_pointer_checks_1): Cope when
9271         get_condition cannot determine the condition.
9272
9273 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9274
9275         * toplev.h (set_message_length): Declare.
9276
9277         * diagnostic.c (obstack_chunk_alloc): Define macro.
9278         (obstack_chunk_free): Likewise.
9279         (struct output_buffer): New data structure.
9280         (vmessage): Remove.
9281         (output_maximum_width): New variable.
9282         (doing_line_wrapping, set_message_length, init_output_buffer,
9283         get_output_prefix, output_space_left, emit_output_prefix,
9284         output_newline, output_append, output_puts, dump_output,
9285         vbuild_message_string, build_message_string, build_location_prefix,
9286         voutput_notice, output_printf, line_wrapper_printf,
9287         vline_wrapper_message_with_location):  New functions. Implement
9288         automatic line wrapping.
9289         (v_message_with_decl): Make it handle automatic line wrapping.
9290         (v_error_with_file_and_line): Likewise.
9291         (v_warning_with_file_and_line): Likewise.
9292         (announce_function): Likewise.
9293         (default_print_error_function): Likewise.
9294
9295 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
9296
9297         * cpplib.h (struct cpp_options): Change lang_asm to char.
9298         Add lang_fortran.
9299         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
9300         done in cpp_handle_option now.
9301         (initialize_builtins): Take out special case code used only by
9302         __STDC_VERSION__.
9303         (cpp_handle_option): Turn off trigraphs and trigraph warnings
9304         if -traditional.  Recognize -lang-fortran and set
9305         lang_fortran, also turn off cplusplus_comments.
9306         (print_help): Document -lang-fortran.
9307         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
9308         lang_asm. Ignore all directives other than `# 123 "file"' if
9309         CPP_PREPROCESSED.
9310         (cpp_get_token): If -traditional, don't recognize directives
9311         unless the # is in column 1.
9312         (parse_string): If lang_fortran or lang_asm, silently
9313         terminate strings ('' or "") at end of line.
9314         Remove unnecessary braces.
9315
9316 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9317             Richard Henderson  <rth@cygnus.com>
9318
9319         * resource.c (mark_referenced_resources): Mark a set strict_low_part
9320         as used.
9321         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
9322         strict_low_part when possible.
9323
9324 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9325
9326         * alias.c: PROTO -> PARAMS.
9327         * basic-block.h: Likewise.
9328         * bitmap.c: Likewise.
9329         * bitmap.h: Likewise.
9330         * builtins.c: Likewise.
9331         * c-aux-info.c: Likewise.
9332         * caller-save.c: Likewise.
9333         * calls.c: Likewise.
9334
9335 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9336
9337         * Makefile.in (toplev.o): Depend on regs.h.
9338
9339         * output.h (tdesc_section): Prototype.
9340
9341         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
9342
9343         * sdbout.c: Include "tm_p.h".
9344
9345         * toplev.c: Include "regs.h".
9346
9347 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
9348
9349         * unroll.c (unroll_loop): Add EH support.
9350
9351 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9352
9353         * pa-protos.h: New file.
9354
9355         * pa.c: Include recog.h and tm_p.h.
9356         (compute_zdepwi_operands, compute_movstrsi_length,
9357         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
9358         find_addr_reg, import_milli): Add static prototypes.
9359         (pa_cpu_string, pa_arch_string): Constify a char*.
9360         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
9361         (read_only_operand): Add argument `mode'.
9362         (singlemove_string, output_move_double, output_fp_move_double,
9363         output_block_move, output_and, output_ior, output_ascii,
9364         remove_useless_addtr_insns, milli_names, output_mul_insn,
9365         output_div_insn, output_mod_insn, output_arg_descriptor,
9366         output_cbranch, output_bb, output_bvb, output_dbra, ,
9367         output_millicode_call, output_call, hppa_encode_label,
9368         output_parallel_movb, output_parallel_addb): Constify a char*.
9369         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
9370         (output_parallel_addb): Remove extra arg to `constrain_operands'
9371
9372         * pa.h:  Move all prototypes to pa-protos.h.
9373         (pa_cpu_string, pa_arch_string): Constify a char*.
9374         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
9375
9376         * pa.md: Call `function_label_operand' with mode argument.
9377         Likewise for `read_only_operand'.
9378         Fix nesting of parens in call to `symbolic_operand'.
9379
9380 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9381
9382         * i860-protos.h: New file.
9383
9384         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
9385         time warnings.
9386
9387         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
9388
9389         * i860.md: Likewise.
9390
9391 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
9392
9393         * i386.md (movstrsi expander): Rewrite.
9394         (movstrsi_1 insn): Deleted.
9395         (strmovhi, strmovqi expander): New expanders.
9396         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
9397         * i386.c (x86_single_stringop): New global variable.
9398         * i386.h (x86_single_stringop): Declare.
9399         (TARGET_SINGLE_STRINGOP): New macro.
9400
9401 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
9402
9403         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
9404         integer vararg POSTINCREMENT before the destination of the jump
9405         for the hard fp case.
9406         (function_arg_pass_by_reference): Pass a copy of CUM to
9407         FUNCTION_ARG.
9408
9409         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
9410         for CONSTANT_ADDRESS_P above while loop for subreg.
9411
9412 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
9413
9414         * flow.c (propagate_block): When a prologue/epilogue insn
9415         is marked dead, unconditionally clear libcall_is_dead and
9416         insn_is_dead, and only dump rtl if warnings aren't being
9417         suppressed.
9418
9419 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
9420
9421         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
9422         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
9423         (FIXED_REGISTERS): Set dirflag as fixed.
9424         (CALL_USED_REGISTERS): Set dirflag as used.
9425         (REG_ALLOC_ORDER): Set dirflag as last one.
9426         (DIRFLAG_REG): New macro.
9427         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
9428         (HI_REGISTER_NAMES): Add dirflag.
9429         (DEBUF_PRINT_REG): Handle dirflag.
9430         * i386.md (type attribute): New cld and str types.
9431         (length_opcode attribute): Set cld and str to 1.
9432         (memory attribute): Set str to unknown - it is not clear from the
9433         patterns.
9434         (pent_np function unit): Prefixed string operations takes 12 cycles
9435         minimally; cld takes 2 cycles.
9436         (ppro_uops attribute): Str is "many" and cld is "few".
9437         (ppro_p0 unit): Handle cld here.
9438         (k6_alux unit): Handle cld and str types.
9439         (k6_load unit): It is ocupied by str opcodes.
9440         (k6_store unit): It is ocupied by str opcodes.
9441         (athlon_decode): Str is vector decoded.
9442         (athlon_ieu): Handle str and cld.
9443         (cld pattern): New.
9444         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
9445         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
9446         cmpstrsi_nz_1 insn): Do not output cld instruction
9447
9448 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
9449
9450         * gcc.texi (G++ and GCC): Add Java and Chill.
9451         (Bug Critera): Don't list languages.
9452
9453         * gcc.texi (Incompatibilities): No longer claim most C compilers
9454         are K&R.
9455
9456         * gcc.texi (G++ and GCC): Update other front-ends list.
9457
9458 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
9459
9460         * i386.c (ix86_expand_setcc): Fix typo.
9461         (ix86_expand_movcc): Similarly.
9462
9463         * Band-aid until haifa's bitset implementation is nuked.
9464         * haifa-sched.c (extract_bitlst): New parameter for size of the
9465         bitset in bits.  All callers changed.  Avoid looking at undefined
9466         bits in the bitset.
9467         (edgeset_bitsize): New variable.
9468         (schedule_region): Initialize edgeset_bitsize.
9469
9470 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9471
9472         * Makefile.in (optabs.o): Depend on real.h
9473         (resource.o): Depend on insn-attr.h
9474
9475         * builtins.c (result_vector): Wrap prototype in macro conditions
9476         governing definition and use.
9477
9478         * c-common.c: Include tm_p.h.
9479
9480         * c-lex.c: Likewise.
9481
9482         * elfos.h: Constify a char*.
9483
9484         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
9485         (get_attr_length, shorten_branches, profile_after_prologue): Mark
9486         parameter with ATTRIBUTE_UNUSED.
9487
9488         * fold-const.c (exact_real_inverse): Wrap variable `i' in
9489         CHECK_FLOAT_VALUE.
9490
9491         * haifa-sched.c (schedule_insns): Mark parameter with
9492         ATTRIBUTE_UNUSED.
9493
9494         * optabs.c: Include real.h.
9495
9496         * real.h (ereal_atof): Add prototype arguments.
9497
9498         * resource.c: Include insn-attr.h.
9499
9500         * sdbout.c (sdbout_queue_anonymous_type,
9501         sdbout_dequeue_anonymous_types): Wrap in macro
9502         SDB_ALLOW_FORWARD_REFERENCES.
9503         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
9504         ATTRIBUTE_UNUSED.
9505
9506         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
9507
9508         * stupid.c: Include tm_p.h.
9509
9510         * tree.c (real_value_from_int_cst): Mark parameter with
9511         ATTRIBUTE_UNUSED.
9512
9513 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9514
9515         * i960-protos.h: New file.
9516
9517         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
9518         time warnings.
9519
9520         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
9521
9522 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9523
9524         * combine.c (expand_field_assignment): Do not discard SUBREGs
9525         while computing nonzero_bits.
9526
9527 2000-01-09  Nick Clifton  <nickc@cygnus.com>
9528
9529         * config/arm/arm.c: Fix compile time warnings about signed vs
9530         unsigned constants.
9531         * config/arm/arm.h: Fix compile time warnings about signed vs
9532         unsigned constants.
9533
9534 2000-01-09  Philip Blundell  <philb@gnu.org>
9535
9536         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
9537         than `ldm' with only one register.
9538         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
9539         only one register.
9540
9541         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
9542         clobbered.
9543
9544 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
9545
9546         * config/ns32k/ns32k.md (load or push effective address): Operand 1
9547         must have SImode.
9548
9549 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9550
9551         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
9552         assignment used as truth value.
9553
9554         * function.c (assign_temp): Mark parameter `dont_promote' with
9555         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
9556         PROMOTE_FOR_CALL_ONLY.
9557
9558         * genrecog.c (write_subroutine): Mark variable `operands' with
9559         ATTRIBUTE_UNUSED.
9560
9561         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
9562         ATTRIBUTE_UNUSED.
9563
9564         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
9565         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
9566
9567         * toplev.c (note_deferral_of_defined_inline_function): Likewise
9568         for `decl'.
9569
9570 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9571
9572         * config/c4x.h: Tidy up comments.
9573         * config/c4x.c: Likewise.
9574
9575 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
9576
9577         * fold-const.c (lshift_double, rshift_double): Handle
9578         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
9579
9580 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9581
9582         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
9583         in prepare_function_start().
9584
9585 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
9586
9587         * config/v850/v850.c (expand_epilogue): Interrupt functions no
9588         longer allocate extra stack for function calls.
9589
9590 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9591
9592         * config/c4x/c4x.md (*subqf3_set): Fix typo.
9593
9594 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9595
9596         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
9597
9598 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
9599
9600         * rs6000.c (processor_target_table): Add power3 as alias for 630.
9601         * aix43.h: Revert Aug 2 change.
9602         (HAS_INIT_SECTION): Define, not visible yet.
9603         (LD_INIT_SWITCH): Define, not visible yet.
9604         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
9605
9606         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
9607
9608         * collect2.c (main): Expand ld2 size further.
9609         (export_object_lst): Cast assignment to avoid warning.
9610         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
9611         (scan_prog_file, COFF): Do not collect initialization or
9612         finalization functions generated for entire shared object if
9613         init/fini support present.
9614
9615 2000-01-07  Nick Clifton  <nickc@cygnus.com>
9616
9617         * config/elfos.h: Tidy up formatting of marcos.  Make sure
9618         that .section directives are always prefixed by a tab.
9619
9620         * config/svr4.h: Add #include "elfos.h" and remove duplicate
9621         definitions.
9622
9623 2000-01-07  Matt Austern  <austern@sgi.com>
9624
9625         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
9626         expon.
9627
9628 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
9629
9630         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
9631         crtstuff.c.
9632         (crtbegin.o, s-crtS): Likewise.
9633
9634 2000-01-06  Richard Henderson  <rth@cygnus.com>
9635
9636         * alpha.md (adddi_2+1): Limit offset such that it will be
9637         loadable with a single ldah+lda pair.
9638         (adddi_2+2): Explicitly fail split if we can't make it work.
9639
9640 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
9641
9642         * protoize.c: Conditionally include unistd.h.
9643         (IS_SAME_PATH_CHAR): New macro.
9644         (IS_SAME_PATH): New macro.
9645         (CPLUS_FILE_SUFFIX): New macro.
9646         (cplus_suffix): New static variable.
9647         (is_abspath): New static function.
9648         (in_system_include_dir): Handle DOS style pathnames.
9649         (file_could_be_converted): Likewise.
9650         (file_normally_convertible): Likewise.
9651         (directory_specified_p): Likewise.
9652         (file_excluded_p): Likewise.
9653         (abspath): Likewise.
9654         (shortpath): Likewise.
9655         (referenced_file_is_newer): Likewise.
9656         (save_def_or_dec): Likewise.
9657         (do_processing): Likewise.
9658         (main): Likewise.
9659         (edit_file): Likewise. Use rename instead of link.
9660         (rename_c_file): Likewise. Don't rename syscalls file.
9661         (munge_compile_params): Define null device for DOS based systems.
9662         (process_aux_info_file): Use binary mode if appliable.
9663         (edit_file): Likewise.
9664         * invoke.texi (Running Protoize): Document C++ suffixes used.
9665
9666         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
9667         IS_DIR_SEPARATOR macros.
9668         * collect2.c: Likewise.
9669         * cppinit.c: Likewise.
9670         * dwarf2out.c: Likewise.
9671         * gcc.c: Likewise.
9672         * gcov.c: Likewise.
9673         * prefix.c: Likewise.
9674         * rtl.c: Likewise.
9675         * toplev.c: Likewise.
9676         * system.h: And move to here.
9677
9678         * prefix.c (update_path): Fix typo in variable name.
9679
9680 2000-01-06  Richard Henderson  <rth@cygnus.com>
9681
9682         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
9683         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
9684         (count_reg_sets_1, count_reg_references): Likewise.
9685         (flow_loops_level_compute): Start counting actual loop depth at 1.
9686         (flow_loops_find): Likewise.
9687         * local-alloc.c (update_equiv_regs): Likewise.
9688         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
9689
9690 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
9691
9692         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
9693         FIRST_PSEUDO_REGISTER
9694         * dwarf2out.c: Don't include frame.h
9695         * dwarfout.c: Likewise
9696         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
9697         frame.h
9698
9699 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
9700
9701         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
9702         dead registers.
9703
9704         * i386.c (movsf splitter): Fix typo in my last checkin.
9705
9706 2000-01-05  Nick Clifton  <nickc@cygnus.com>
9707
9708         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
9709         own definition of this macro.
9710         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
9711         flag_data_sections or UNIQUE_SECTION_P are true.
9712
9713         * tm.texi (UNIQUE_SECTION): Document that it can be called for
9714         unitialised data decls.
9715
9716         * config/i386/winnt.c (i386_pe_unique_section): Cope with
9717         being called for uninitialised data.
9718
9719         * config/i386/interix.c (i386_pe_unique_section): Cope with
9720         being called for uninitialised data.
9721
9722         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
9723         for uninitialised data.
9724
9725         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
9726         for uninitialised data.
9727
9728         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
9729         for uninitialised data.
9730
9731         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
9732         (UNIQUE_SECTION_P): Always generate a unique section if
9733         flag_data_sections is true.
9734         (UNIQUE_SECTION): Also generate unique sections for
9735         uninitialised data.
9736         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
9737         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
9738         named_section().
9739
9740 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9741
9742         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
9743         SI, or DI.
9744
9745 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9746
9747         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
9748         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
9749         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
9750         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
9751         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
9752
9753         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
9754
9755 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
9756
9757         * c-decl.c (finish_enum): Simplify code to determine minimum and
9758         maximum values of the enum, and calculate the type.  Remove check
9759         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
9760         the DECL_INITIAL of each enumeration constant with a copy converted
9761         to the enumeration type.  When updating variant types, don't bother
9762         updating the type itself.
9763
9764         * c-typeck.c (build_binary_op): Simplify conditional expressions
9765         when weeding out spurious signed-unsigned warnings.  Add new
9766         spurious warning category: if the unsigned quantity is an enum
9767         and its maximum value fits in signed_type(result_type).  Update
9768         commentary.
9769         (build_conditional_expr): Warn here if one alternative is signed
9770         and the other is unsigned.
9771
9772 2000-01-05  Nick Clifton  <nickc@cygnus.com>
9773
9774         * config/fr30/fr30.h: Remove extraneous comments.
9775
9776 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
9777
9778         * reload1.c (choose_reload_regs): When disabling a reload, also
9779         set reload_spill_index to -1.
9780
9781 2000-01-04  Joel Sherrill (joel@OARcorp.com>
9782
9783         * configure.in (m68*-*-rtemscoff*): New target, formal name for
9784         old m68*-*-rtems*.
9785         (m68*-*-rtemself*): New target.
9786         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
9787         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
9788         (sparc*-*-rtemself*): New target.
9789         (sparc*-*-rtems*): Now elf not a.out.
9790         * config/i386/rtems.h: Include config/rtems.h.
9791         * config/i386/rtemself.h: Include config/rtems.h.
9792         * config/i960/rtems.h: Include config/rtems.h.
9793         * config/m68k/rtems.h: Include config/rtems.h.
9794         * config/m68k/rtemself.h: Include config/rtems.h.
9795         * config/mips/rtems64.h: Include config/rtems.h.
9796         * config/pa/rtems.h: Include config/rtems.h.
9797         * config/rs6000/rtems.h: Include config/rtems.h.
9798         * config/sh/rtems.h: Include config/rtems.h.
9799         * config/sh/rtemself.h: Include config/rtems.h.
9800         * config/sparc/rtems.h: Include config/rtems.h.
9801         * config/sparc/rtemself.h: Include config/rtems.h
9802
9803 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
9804
9805         * final.c (shorten_branches): Correctly compute length of
9806         asms without operands.
9807
9808 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
9809
9810         * configure.in: Add pj target.
9811         * configure: Regenerate.
9812         * config/pj: New directory.
9813         * config/pj/lib1funcs.S: New file.
9814         * config/pj/linux.h: New file.
9815         * config/pj/pj.c: New file.
9816         * config/pj/pj.md: New file.
9817         * config/pj/pjl.h: New file.
9818         * config/pj/t-pj: New file.
9819         * config/pj/xm-pj.h: New file
9820
9821 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
9822
9823         * toplev.c (rest_of_compilation): Run shorten-branches before
9824         reg-stack for now.
9825
9826 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9827
9828         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
9829         macros so that they're consistent with their names.
9830         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
9831         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
9832
9833 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9834
9835         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
9836         modified inadvertently.
9837
9838 2000-01-04  Joel Sherrill <joel@OARcorp.com>
9839
9840         * configure.in (v850*-*-rtems*): New target.
9841         * configure: Regenerate.
9842         * config/v850/rtems.h: New file.
9843
9844 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
9845
9846         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
9847         (__gthread_key_create): Likewise.
9848         (__gthread_key_dtor):  Likewise.
9849         (__gthread_once): Fix logic.
9850         (__gthread_key_delete): Cast away constness.
9851
9852         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
9853         * invoke.texi: Document.
9854         * i386/mingw32.h (CPP_SPEC): Use.
9855         (LIBGCC_SPEC): Likewise.
9856         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
9857
9858 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
9859
9860         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
9861         (HANDLE_PRAGMA_PACK): Undefine.
9862         (SLOW_UNALIGNED_ACCESS): Define.
9863
9864 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
9865
9866         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
9867         to default definition.
9868         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
9869         (store_fixed_bit_field): Call macro with word_mode and alignment.
9870         (extract_bit_field): Call macro with relevant mode and alignment.
9871         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
9872         to default definition.
9873         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
9874         and alignment.
9875         (move_by_pieces_ninsns): Likewise.
9876         (clear_by_pieces): Likewise.
9877         (emit_push_insn): Likewise.
9878         (store_field): Call macro with relevant mode and alignment.
9879         (expand_expr): Likewise.
9880         (expand_expr_unaligned): Likewise.
9881
9882         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
9883         (SLOW_UNALIGNED_ACCESS): Define.
9884         (CASE_VECTOR_MODE): Always use 32-bit offsets.
9885         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
9886         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
9887         (toc_section): Likewise and .toc pseudo-op.
9888         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
9889         64-bit mode.
9890         (TEXT_SECTION_ASM_OP): Likewise.
9891         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
9892         32-bit offsets.
9893
9894         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
9895         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
9896         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
9897         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
9898         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
9899
9900 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
9901
9902         * regclass.c: Revert my Jan 4 change to loop cost computation.
9903
9904 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
9905
9906         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
9907         compilation.
9908
9909 2000-01-04  Stan Cox  <scox@cygnus.com>
9910
9911         * haifa-sched.c (build_control_flow): Change unreachable simple
9912         loop test to check if current block has only one predecessor.
9913         (find_rgns): Initialize degree.  Use dest as degree index, not src.
9914
9915 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9916
9917         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
9918
9919         * calls.c (expand_call): Likewise for
9920         `old_stack_arg_under_construction'.
9921
9922         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
9923
9924         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
9925         `save_constant'.
9926
9927         * gcc.c (execute): Likewise for `ut' and `st'.
9928
9929         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
9930
9931         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
9932
9933         * jump.c (jump_optimize_1): Likewise for `temp2'.
9934
9935         * local-alloc.c (block_alloc): Likewise for `r1'.
9936
9937         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
9938
9939         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
9940         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
9941
9942         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
9943         and `set2'.
9944
9945         * reload.c (find_reloads): Likewise for `goal_alternative_number'
9946         and `goal_earlyclobber'.
9947
9948         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
9949
9950         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
9951
9952         * stupid.c (stupid_life_analysis): Likewise for `chain'.
9953
9954         * unroll.c (copy_loop_body): Likewise for `copy'.
9955
9956         * varasm.c (output_constructor): Likewise for `byte'.
9957
9958 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
9959
9960         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
9961         all FP constants for constant->reg moves.
9962         (ix86_split_to_parts): Try to convert memory address into immediate
9963         when available in the constant pool.
9964         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
9965         moves.
9966         (LEGITIMATE_CONSTANT_P): Return 1.
9967         * i386.md (pushsf): New splitter to convert constant pool memory
9968         reference to immediate.
9969         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
9970         reload.
9971
9972 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
9973
9974         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
9975         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
9976         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
9977         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
9978         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
9979
9980 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
9981
9982         * ginclude/stdbool.h:  Support compilation as C++.
9983
9984 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9985
9986         * fold-const.c (make_range): Don't try to reverse an unbounded range.
9987
9988 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
9989
9990         * regclass.c (regclass): Properly compute loop_cost.  Adjust
9991         comments.
9992
9993         * regclass.c: Fix minor whitespace problems.
9994
9995 2000-01-03  Anthony Green  <green@cygnus.com>
9996
9997         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
9998         Restore the pic register if required.
9999
10000 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
10001
10002         * c-common.c (format_char_info): Update comment.
10003         (check_format_info): Recognize 'z' modifier in the same way 'Z'
10004         was recognized.  Emit warning for formats new in ISO C99 only
10005         if flag_isoc9x is not set.
10006
10007 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
10008
10009         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
10010
10011 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
10012
10013         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
10014         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
10015         (make_compound_operation): Choose cheaper alternative between
10016         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
10017
10018         * regclass.c (op_costs): Remove global variable.
10019         (record_reg_classes): New parameter "op_costs" and "reg_pref".
10020         (record_operand_costs): Break out from ...
10021         (scan_one_insn): ... here.
10022         (dump_regclass): Make dumps nicer.
10023         (regclass): Dump preferrences choosed and changes done during passes.
10024
10025 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
10026
10027         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
10028
10029 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
10030
10031         * config/sparc/sparc.c (gen_df_reg): New function.
10032         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
10033         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
10034         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
10035         movtf_cc_reg_sp64+1): Use it.
10036
10037 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
10038
10039         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
10040         copied LABEL_DECLs.
10041
10042 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10043
10044         * config/i386/i386.c (ix86_expand_unary_operator): Function
10045         definition made void.
10046         (ix86_expand_binary_operator): Update outdated preceding comment.
10047         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
10048         prototype.
10049
10050         * config/i386/i386.c (override_options): Fix option-name typo.
10051
10052 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
10053
10054         * system.h (CEIL): Define.
10055         * builtins.c (CEIL): Remove.
10056         * expmed.c (CEIL): Likewise.
10057         * expr.c (CEIL): Likewise.
10058         * stor-layout.c (CEIL): Likewise.
10059
10060 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
10061
10062         * expr.c (store_constructor_field): Fix typo introduced with last
10063         gcc2 merge.
10064
10065 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
10066
10067         * tree.h (BINFO_N_BASETYPES): New macro.
10068
10069 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
10070
10071         * expmed.c (emit_store_flag): Prevent losing a pending stack
10072         adjust the same way we prevent losing queued increments.
10073
10074 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10075
10076         * function.c (update_temp_slot_address): Handle case where sum of
10077         temporary address plus offset in register is a valid address.
10078
10079 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
10080
10081         * genrecog.c (change_state) Corrected typo.
10082
10083 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10084
10085         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
10086         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
10087         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
10088
10089 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
10090
10091         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
10092         case, expand GT comparisons correctly.  Fix a comment before this
10093         part of the code.
10094
10095 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
10096
10097         * dwarfout.c: Include "frame.h"
10098         * dwarf2out.c: Likewise.
10099         * Makefile.in (dwarfout.o): Depend on frame.h
10100         (dwarf2out.o): Likewise.
10101
10102 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
10103
10104         Restore i386 binary compatibility in Dwarf EH info.
10105         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
10106         value of FIRST_PSEUDO_REGISTER.
10107         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
10108         (struct frame_state): Use DWARF_FRAME_REGISTERS.
10109         * dwarfout.c (output_reg_number): Ditto.
10110         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
10111         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
10112
10113 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
10114
10115         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
10116         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
10117         (<hack>_RE_CT): not needed
10118         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
10119         rewritten to scan the file text once only
10120         "template<..." test added
10121         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
10122         (is_cxx_header): declaration added
10123         * fixinc/fixtests.c(is_cxx_header): removed
10124         (apply_fix_p_t): removed
10125         (double_slash_test): is_cxx_header is only called once now
10126         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
10127         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
10128         within the templates.
10129         The borken spelling of "broken" was fixed.
10130         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
10131         The default level depends on FIXINC_DEBUG.
10132
10133 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10134
10135         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
10136         Otherwise provide a declaration for atexit.
10137         (init_dummy): Make sure dummy call to atexit is nevertheless
10138         called with correct number of args.
10139
10140         * frame.c: Update comments referring to other files.
10141
10142         * libgcc2.c: Likewise.
10143
10144 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10145
10146         * cse.c (free_element, get_element): Remove unused prototypes.
10147
10148         * fold-const.c (extract_muldiv): Initialize variables `op0' and
10149         `op1'.
10150
10151         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
10152         `else' clauses.
10153
10154 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
10155
10156         * configure.in,configure: case arm for mn10200-*-* now sets
10157         float_format=i32 so that float.h will correctly claim "double"
10158         to be 32 bits. Ran autoconf to generate configure from .in file.
10159
10160 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
10161
10162         * pa.md (conditional zero): If op1 is a register, force it into
10163         the same register as op0.
10164
10165 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
10166
10167         * tree.h (BINFO_BASETYPES): Improve documentation.
10168
10169 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10170
10171         * configure.in (--enable-checking): Use a more portable `for'
10172         loop syntax.
10173
10174 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10175
10176         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
10177         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
10178
10179         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
10180         Delete files.
10181
10182         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
10183         Delete descriptions.
10184
10185         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
10186         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
10187         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
10188         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
10189         xm-svr4.h: Remove all instances of sys_siglist handling.
10190
10191 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
10192
10193         * config/sparc/sparc.md (cmp_zero_qi,
10194         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
10195         cmp_zero_extendqidi2_andcc_set): New patterns.
10196
10197 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
10198
10199         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
10200         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
10201         (fpgnulib.c, xfgnulib.c): Add rules.
10202         * m68k/t-mot3300-gas: Likewise.
10203
10204 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
10205
10206         * configure.in: Avoid [[ by using test and changequote.  Add
10207         changequote required by 1999-12-14 change.
10208         * configure: Rebuild.
10209
10210 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
10211
10212         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
10213
10214 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
10215
10216         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
10217         * flow.c (find_use_as_address): Likewise.
10218         * function.c (fixup_var_refs_1): Likewise.
10219         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
10220         * jump.c (invert_exp, redirect_exp): Likewise.
10221         * loop.c (replace_call_address): Likewise.
10222         (count_nonfixed_reads): Likewise.
10223         * rtlanal.c (modified_between_p): Likewise.
10224         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
10225         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
10226         * unroll.c (remap_split_bivs): Likewise.
10227
10228 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10229
10230         * diagnostic.c (v_message_with_decl): Use .* format specifier
10231         instead of building the format specifier width manually.
10232
10233         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
10234         determining whether to provide a prototype.  Remove the
10235         sys_siglist clause in the conditional.
10236
10237 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10238
10239         * fold-const.c (operand_equal_p): Use memcmp to compare string
10240         constants.
10241         Suggested by D. J. Bernstein
10242
10243 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
10244
10245         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
10246         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
10247         compiling libgcc2.
10248         * config/mips/mips.h (TARGET_64BIT): Likewise.
10249         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
10250         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
10251         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
10252         dsps.  Give routines proper names if SI/DI modes are not used.
10253         * longlong.h: Use DWunion instead of DIunion.
10254
10255 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
10256
10257         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
10258         GC_CHECKING, GC_ALWAYS_COLLECT.
10259         * configure.in: Allow --enable-checking with an argument
10260         listing check modes to enable.
10261         * config.in, configure: Rebuilt.
10262         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
10263         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
10264         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
10265         ENABLE_GC_ALWAYS_COLLECT.
10266         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
10267         throughout.
10268         * tree.h, tree.c: Change ENABLE_CHECKING to
10269         ENABLE_TREE_CHECKING throughout.
10270
10271 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10272
10273         * fold-const.c (fold_truthop): Properly check for FP RHS.
10274
10275 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
10276
10277         * toplev.h (note_deferall_of_defined_inline_function): Declare.
10278         * toplev.c (note_deferral_of_defined_inline_function): New
10279         function, split out from ...
10280         (rest_of_compilation): ... here.  Use it.
10281
10282 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10283
10284         * expr.c (store_constructor): Don't call clear_storage if size is
10285         variable.
10286
10287 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10288
10289         * Makefile.in (toplev.o): Depend on loop.h.
10290
10291         * dwarfout.c: Include tm_p.h.
10292
10293         * emit-rtl.c (restore_emit_status): Mark parameter with
10294         ATTRIBUTE_UNUSED.
10295
10296         * final.c (final_scan_insn): Likewise.
10297
10298         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
10299         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
10300         flow_depth_first_order_compute, flow_loop_pre_header_find,
10301         flow_loop_tree_node_add, flow_loops_tree_build,
10302         flow_loop_level_compute, flow_loops_level_compute,
10303         flow_loop_outside_edge_p): Add prototypes.
10304         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
10305
10306         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
10307         Mark with ATTRIBUTE_NORETURN.
10308
10309         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
10310
10311         * local-alloc.c (no_conflict_p): Likewise.
10312
10313         * loop.c (insert_bct): Hide definitions of variables with hidden
10314         usage.
10315         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
10316
10317         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
10318         with ATTRIBUTE_UNUSED.
10319         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
10320         (reg_scan): Likewise.
10321
10322         * reload.c (find_reloads): Remove unused variables `changed'.
10323
10324         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
10325         away const-ness.
10326         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
10327         Remove unused variable `insn'.
10328
10329         * toplev.c: Include loop.h.
10330         (report_file_and_line): Remove unnecessary prototype.
10331
10332         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
10333
10334         * unroll.c (biv_total_increment): Likewise.
10335
10336 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10337
10338         * reload1.c (emit_input_reload_insns): Restore old behaviour
10339         wrt. 'special' reloads.
10340
10341 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
10342
10343         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
10344         hash.h.  (cse.c): Don't depend on hashtab.h.
10345
10346         * cse.c: Don't include hashtab.h.
10347         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
10348         of dead functions.
10349         * ggc-simple.c: Don't include hash.h.
10350
10351 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
10352
10353         * dwarf2out.c (add_abstract_origin_attribute): Call
10354         gen_abstract_function on our function context.
10355
10356 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
10357
10358         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
10359
10360 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10361
10362         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
10363         case in switch.
10364
10365 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10366
10367         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
10368         constraints to "a!r".
10369
10370 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
10371
10372         * Makefile.in (calls.o): Depend on function.h.
10373         (alias.o): Likewise.
10374
10375 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
10376
10377         * reload1.c (emit_reload_insns): Break out code and variables into...
10378         (input_reload_insns, other_input_address_reload_insns,
10379         other_input_reload_insns, input_address_reload_insns,
10380         inpaddr_address_reload_insns, output_reload_insns,
10381         output_address_reload_insns, outaddr_address_reload_insns,
10382         operand_reload_insns, other_operand_reload_insns,
10383         other_output_reload_insns): ... new static variables, and...
10384         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
10385         do_output_reload): ... new functions.
10386
10387 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10388
10389         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
10390
10391 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10392
10393         * md.texi: Add c4x constraints documentation.
10394
10395 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10396
10397         * config/i386/dgux.c (struct option): Rename to
10398         lang_independent_option.
10399         (struct m_options): Add description field.
10400         (output_options): Rename option type, add sep declaration, output
10401         ix86_cpu_string and ix86_arch_string only if set.
10402         (output_file_start): Rename option type.
10403
10404 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
10405
10406         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
10407         stmp-int-hdrs.
10408         (libgcc2.a): Similarly.
10409
10410 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
10411
10412         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
10413         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
10414         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
10415
10416 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
10417
10418         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
10419         Remove redundant initialization of "frexpon" and "expon".
10420
10421 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10422
10423         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
10424
10425         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
10426         (store_constructor_field, expand_expr): Pass new arg.
10427
10428 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
10429
10430         * Makefile.in (explow.o): Depend on function.h.
10431
10432         * stor-layout.c (set_sizetype): Fix typo.
10433
10434 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
10435
10436         * function.c (cfun): Renamed from current_function.  All users
10437         changed.
10438         * function.h (cfun): Rename declaration as well.
10439
10440         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
10441         to be of type regset_head, not regset.  All users changed by adding
10442         address operator.
10443         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
10444
10445 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10446
10447         * config/c4x/rtems.h: New file.
10448
10449 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
10450
10451         * reload1.c (spill_failure): Take class of failed reload as argument
10452         and print it.  Caller changed.
10453
10454 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10455
10456         * rs6000.h (SUBTARGET_DEFAULT): New macro.
10457         (TARGET_SWITCHES): Allow subtargets to default switches.
10458         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
10459
10460 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
10461
10462         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
10463         in a main program.
10464
10465 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
10466
10467         * cccp.c (main): Define __STDC_VERSION__ as necessary.
10468         * cppinit.c (cpp_handle_option): Likewise.
10469
10470         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
10471         determine when to define.
10472
10473 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
10474
10475         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
10476         cmove with mismatched test and data modes.
10477
10478 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
10479
10480         * c-typeck.c (c_expand_start_case): Don't warn for long switch
10481         in system headers.
10482
10483 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10484
10485         * alias.c: Minor reformatting.
10486         * flow.c: Likewise.
10487         * regs.h: Likewise.
10488         * stor-layout.c: Likewise.
10489         * fold-const.c: Likewise.
10490         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
10491         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
10492         not arg itself.
10493         (size_int_wide): Cache nodes even if garbage collecting.
10494         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
10495         of SAVE_EXPR has no side effects.
10496         * cse.c: Move a comment.
10497         * tree.c: Minor reformatting.
10498         (int_size_in_bytes): Return -1 if constant overflows.
10499
10500 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10501
10502         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
10503
10504 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
10505
10506         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
10507         after any change to c-parse.in, even if objc-parse.y didn't
10508         change.  Oops.
10509
10510 1999-12-18  David S. Miller  <davem@redhat.com>
10511
10512         * toplev.c (rest_of_compilation): Restore BLOCK tree
10513         reconstruction and branch shortening changes lost in
10514         December 18th change.
10515
10516 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
10517
10518         * config/arm/linux-elf.h: Change all instances of
10519         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
10520         * config/arm/uclinux-elf.h: Likewise.
10521
10522 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
10523
10524         * toplev.c (notice, vmessage, v_message_with_file_and_line,
10525         v_message_with_decl, file_and_line_for_asm,
10526         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
10527         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
10528         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
10529         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
10530         pfatal_with_name, fatal_io_error, need_error_newline,
10531         last_error_function, last_error_tick, announce_function,
10532         default_print_error_function, print_error_function,
10533         report_error_function, fnotice, error_with_file_and_line,
10534         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
10535         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
10536         warning_with_decl, warning_for_asm, warning, pedwarn,
10537         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
10538         diagnostic.c
10539         (compile_file): Use fnotice instead of notice.  Adjust call.
10540
10541         * diagnostic.c: New file.
10542
10543         * Makefile.in (OBJS): Include diagnostic.o
10544         (diagnostic.o): Define dependence.
10545
10546 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10547
10548         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
10549         Tweak formatting.
10550
10551 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10552
10553         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
10554
10555 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
10556
10557         * fixtests.c (is_cxx_header): New fn, split out of
10558         double_slash_test.
10559         (else_endif_label): Allow "#endif // comment" in C++ headers,
10560         as determined by is_cxx_header.
10561         * fixfixes.c (else_endif_label_fix): Update comment.
10562         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
10563         a tty.
10564         * genfixes: Correct double thinko in commandline parsing.
10565         * hackshell.tpl: Generate correct sh syntax for bypass
10566         entries.
10567
10568         * inclhack.def (all): Whenever an inserted preprocessor
10569         conditional is split over multiple lines, use double
10570         backslashes in this file so the fixed header will be readable.
10571
10572         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
10573         and add bypass entry for correct version of this header.
10574         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
10575         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
10576
10577         (hpux8_bogus_inlines): New fix, split from...
10578         (ultrix_atof_param) ... here.
10579         (math_expression): Add bypass entry keyed to glibc comment
10580         indicating the problem has been dealt with; disable
10581         unnecessary sed operations; update commentary.
10582         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
10583         add select and bypass entries, simplify shell operation.
10584         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
10585
10586         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
10587          ultrix_atof_param): Add select entry.
10588         (stdio_va_list, sunos_mather_decl): Add bypass entry.
10589         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
10590         comments with the fixes they describe.
10591
10592         * c-parse.in (string action): Do not warn about ANSI string
10593         concatenation in system headers.  Affects C parser only.
10594         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
10595
10596 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
10597
10598         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
10599         compiling libgcc2 the macro depends always on arch cpp defines.
10600
10601 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
10602
10603         * loop.c (insert_loop_mem): Don't record MEMs from inside
10604         EXPR_LISTs.
10605
10606 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
10607
10608         * regclass.c (regclass): Do not use flowgraph when not optimizing.
10609
10610         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
10611         notes too, create one when replacement failed, attempt to simplify
10612         resulting notes.
10613         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
10614         or REG_EQUIV notes.
10615
10616 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
10617
10618         * crtstuff.c (__dso_handle): Declare.
10619         (__cxa_finalize): Likewise.
10620         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
10621         non-NULL.
10622
10623         * invoke.texi: Document -fuse-cxa-atexit.
10624
10625         * tree.h (ptr_type_node): Document.
10626         (const_ptr_type_node): Likewise.
10627
10628 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10629
10630         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
10631         (optimize_reg_copy_2): Likewise.
10632         (optimize_reg_copy_3): Likewise.
10633         (fixup_match_2): Likewise.
10634         (regmove_optimize): Likewise.
10635         (fixup_match_1): Liekwise.
10636
10637         * i386.md (HI to SImode promoting splitters): Rewrite.
10638         (pushsf mem peep2): New.
10639         (testhi to andhi peep2): Remove.
10640         * i386.h (x86_promote_QImode): New.
10641         (TARGET_PROMOTE_QImode): New.
10642         (PREDICATE_CODES): Add promotable_binary_operator.
10643         * i386.c (x86_promote_QImode0: New.
10644         (promotable_binary_operator): New.
10645         * i386-protos.h (promotable_binary_operator): New.
10646
10647         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
10648         condition.
10649         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
10650
10651 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
10652
10653         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
10654         * function.c (insert_block_after_note): Remove.
10655         (retrofit_block): Likewise.
10656         (identify_blocks): Fix indentation.
10657         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
10658         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
10659         * function.h (insert_block_after_note): Remove prototype.
10660         (retrofit_block): Likewise.
10661         * integrate.c (expand_inline_function): Don't call
10662         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
10663         just expand_start_bindings.  Use the block_map to remap old
10664         NOTE_BLOCKs to new ones.
10665         (integrate_decl_tree): Keep track of remapped blocks.
10666         * integrate.h (struct inline_remap): Add block_map.
10667         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
10668         NOTE_BLOCK on the notes.
10669         (expand_start_bindings): Rename to ...
10670         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
10671         (expand_end_bindings): Set NOTE_BLOCK.
10672         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
10673         reconstruct the BLOCK tree.
10674         * tree.h (expand_start_bindings): Macroize.  Call ...
10675         (expand_start_bindings_and_block): New function.
10676
10677 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
10678
10679         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
10680         to match the format.
10681
10682 1999-12-16  David S. Miller  <davem@redhat.com>
10683
10684         * expr.c (emit_move_insn_1): Only emit clobbers if one of
10685         the outputs is a SUBREG.
10686         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
10687         change.
10688
10689         * config/sparc/sparc.c (epilogue_renumber): Add default case
10690         to switch stmt.
10691
10692 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10693
10694         * toplev.c (rest_of_compilation): Run branch shortening after
10695         reg-stack.
10696
10697         * regclass.c (loop_depth): Remove
10698         (scan_one_insn): Do not handle LOOP_NOTE insns.
10699         (regclass): Go through basic blocks and set loop_cost
10700
10701 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
10702
10703         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
10704
10705 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10706
10707         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
10708         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
10709         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
10710
10711 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
10712
10713         * loop.c (insert_loop_mem): Ignore memory clobbers.
10714
10715         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
10716         to (OP A B).
10717
10718 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
10719
10720         * profile.c: Remove redundant #include "output.h".
10721
10722         * h8300.md (HImode preinc peephole): Fix typo.
10723
10724 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
10725
10726         * function.c (retrofit_block): Abort if we don't find a suitable insn.
10727         (insert_block_after_note): Abort if we don't have a previous block.
10728         Remove FN parameter.
10729         * function.h: Adjust.
10730
10731 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
10732
10733         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
10734         argument more than once.
10735
10736 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
10737
10738         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
10739
10740 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
10741
10742         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
10743
10744 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10745
10746         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
10747         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
10748         update stack_alignment_needed.
10749         (prepare_function_start): Initialize stack_alignment_needed
10750         * function.h (struct function): Add field stack_alignment_needed.
10751
10752 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10753
10754         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
10755         Handle live_throughout / dead_or_set instead of live_before /
10756         live_after.
10757         (save_call_clobbered_regs): Get register livenessinformation from
10758         chain->live_throughout.
10759         (add_stored_regs): New function.
10760         (insert_restore, insert_save): Add restored / saved registers to
10761         dead_or_set.
10762         * global.c (reg_dies): New parameter chain.
10763         (reg_becomes_live): Third parameter is regs_set now.
10764         Changed all callers.
10765         (reg_dies): New parameter chain.  Changed all callers.
10766         (build_insn_chain): Set live_throughout instead of
10767         live_before / live_after.
10768         * reload.h (struct insn_chain): Replace members live_before /
10769         live_after with live_throughout / dead_or_set.
10770         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
10771         instead of live_before / live_after.
10772         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
10773         (order_regs_for_reload, find_reg, finish_spills): Likewise.
10774         (choose_reload_regs_init): Likewise.
10775         * stupid.c (current_chain, find_clobbered_regs): Delete.
10776         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
10777         instead of chain->live_before / chain->live_after.
10778         (mark_hard_ref): New function.
10779         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
10780
10781 1999-12-15  David S. Miller  <davem@redhat.com>
10782
10783         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
10784
10785 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10786
10787         * flow.c (calculate_loop_depth): Make global, remove prototype,
10788         rewrite to use new loop infrastructure.
10789         (find_basic_block): Remove calculate_loop_depth call.
10790         * toplev.c (rest_of_compilation): Call find_basic_block.
10791         * output.h (calculate_loop_depth): Declare.
10792
10793         * flow.c (dump_flow_info): Dump loop_depth.
10794         (flow_loops_nodes_find): Increase loop_depth for basic block in the
10795         body.
10796         (flow_loops_find): Initialize the loop_depth for each basic block.
10797
10798 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
10799
10800         * tree.c (decl_function_context): Handle virtual functions.
10801
10802         * tlink.c (scan_linker_output): Don't look in demangled name when
10803         looking for linker output keywords.
10804
10805         * dwarfout.c (output_type): We can defer namespace-scope classes.
10806
10807 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
10808
10809         * regclass.c (record_reg_classes): Update comment for merging
10810         register class preferences in reg->reg copies.  Tighten conditions
10811         for merging register class preferences in reg->reg copies.
10812
10813 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
10814
10815         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
10816
10817 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
10818
10819         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
10820         (INIT_SECTION_ASM_OP): Delete.
10821         (FINI_SECTION_ASM_OP): Delete.
10822         (STARTFILE_SPEC): Define to hold just crtbegin.o.
10823
10824 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
10825
10826         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
10827         the abstract origin wasn't emitted.
10828
10829         * dwarf2out.c (class_scope_p): New fn.
10830         (gen_subprogram_die): Use it.
10831         (gen_variable_die): Use it.  Tweak logic.
10832         (gen_struct_or_union_type_die): Check context_die to determine
10833         if we're function-local.
10834         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
10835
10836 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
10837
10838         * loop.c (check_dbra_loop): Can't reverse a biv that has
10839         maybe_multiple set.
10840
10841 1999-12-14  Nick Clifton  <nickc@cygnus.com>
10842
10843         * config/arm/arm.c: Add support for -mcpu=arm720 command line
10844         switch.
10845
10846 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10847
10848         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
10849         for givs made from biv increments.
10850
10851 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
10852
10853         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
10854         * alpha.c (override_options): Recognize -mcpu=ev67.
10855         * alpha.h (CPP_CPU_EV67_SPEC): New.
10856         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
10857         (EXTRA_SPECS): Update.
10858
10859 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
10860
10861         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
10862         appropriate for -lang-c89 and -std=*.
10863         * cppinit.c (cpp_handle_option): Likewise.
10864         (new_pending_define): New, split out from cpp_handle_option.
10865         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
10866         or enable trigraphs for -ansi/-std=*.
10867
10868         * ginclude/stdarg.h (__va_copy): New.
10869         (va_copy): Don't define for C89.
10870
10871 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
10872
10873         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
10874         for long long multiply-accumulate.
10875
10876 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10877
10878         * regclass.c (scan_one_insn): Set loop_cost to 1 when
10879         optimizing for size.
10880
10881 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
10882
10883         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
10884         if something changed.  Back out that part of yesterday's changes.
10885
10886         * loop.c (loop_max_reg): New static variable.
10887         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
10888         max_reg_num.
10889         (scan_loop): Call reg_scan_update whenever we may have added new
10890         registers, and update loop_max_reg.
10891
10892 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10893
10894         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
10895         when source does not die.
10896
10897         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
10898
10899 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
10900
10901         * config/sparc/linux64.h (TARGET_LIVE_G0,
10902         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
10903         variants on Linux.
10904         * config/sparc/linux.h (TARGET_LIVE_G0,
10905         TARGET_BROKEN_SAVERESTORE): Likewise.
10906         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
10907         TARGET_BROKEN_SAVERESTORE): Likewise.
10908
10909         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
10910         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
10911         not %g2.
10912         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
10913         as sparc64 block profiling register.
10914         * config/sparc/sparc.c (sparc_override_options): Allow block
10915         profiling with -m32.
10916         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
10917         profiling register.
10918         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
10919         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
10920         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
10921
10922         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
10923         for sparc64.
10924         * config/sparc/sparc.h: Likewise.
10925         * config/sparc/xm-sysv4-64.h: Likewise.
10926         * config/float-sparc.h: Likewise.
10927         * glimits.h: Likewise.
10928         * longlong.h: Likewise.
10929
10930         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
10931         (ASM_IDENTIFY_GCC): Remove.
10932
10933 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
10934
10935         * combine.c (combine_simplify_rtx): Don't make shared rtl.
10936         (simplify_logical): Likewise.
10937
10938 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
10939
10940         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
10941         * cppfiles.c (INO_T_EQ): Likewise.
10942
10943 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
10944
10945         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
10946         * i386/mingw32.h (LIB_SPEC): Likewise.
10947         (STARTFILE_SPEC): Likewise.
10948         * i386/uwin.h (LIB_SPEC): Likewise.
10949         (STARTFILE_SPEC): Likewise.
10950
10951         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
10952         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
10953
10954 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
10955
10956         * combine.c (combine_simplify_rtx): Fix order of checks for
10957         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
10958
10959 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
10960
10961         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
10962         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
10963
10964 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
10965
10966         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
10967         defined.
10968         * regclass.c (inv_reg_alloc_order): New array.
10969         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
10970
10971         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
10972         counted_for_groups, counted_for_nongroups.  Add fields rld and
10973         n_reloads.
10974         * reload.c (push_secondary_reload): Don't set nongroup field of
10975         new reloads.
10976         (push_reload): Likewise.
10977         (find_reloads): Delete code to compute nongroup fields.
10978         * reload1.c (reload_insn_firstobj): New static variable.
10979         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
10980         users changed.
10981         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
10982         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
10983         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
10984         functions.
10985         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
10986         functions.
10987         (struct hard_reg_n_uses): Deleted.
10988         (potential_reload_regs): Deleted.
10989         (init_reload): Initialize spilled_pseudos and pseudos_counted.
10990         (reload): Don't try to allocate reload registers if we already know
10991         we have to make another pass.  Call select_reload_regs.  Free memory
10992         starting with reload_firstobj when starting another pass.
10993         Don't allocate spilled_pseudos.
10994         (calculate_needs_all_insns): Call copy_reloads for an insn that
10995         needs reloads; don't call calculate_needs.
10996         (spill_cost): New static array.
10997         (used_spill_regs_local): New static variable.
10998         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
10999         to compute potential_reload_regs.
11000         (find_reload_regs): Completely rewritten to use find_reg.
11001         (allocate_reload_reg): Don't test counted_for_groups or
11002         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
11003         all cllers changed.
11004         (choose_reload_regs): Add fallback code that uses the existing
11005         register allocation from find_reload_regs.
11006
11007 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
11008
11009         * flow.c (create_edge_list): Cast xmalloc return value.
11010
11011 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
11012
11013         * doprnt.c: Remove incorrect comment closure.
11014
11015         * cse.c: Fix a few minor whitespace goofs.
11016
11017 1999-12-13  Don Bowman  <don@pixstream.com>
11018
11019         * mips/vxworks.h: Fix problem with comment termination.
11020         (EXTRA_SECTIONS): Add in_sbss.
11021         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
11022
11023 1999-12-12  David S. Miller  <davem@redhat.com>
11024
11025         * cse.c (struct cse_reg_info): Add hash_next member,
11026         reorder rest of struct for better packing on 64-bit
11027         hosts.
11028         (cse_reg_info_tree): Kill.
11029         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
11030         REGHASH_FN): New custom pow2 hash mechanism.
11031         (NBUCKETS): Kill.
11032         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
11033         use a pow2 hash table.
11034         (get_cse_reg_info): Rework to use new REGHASH.
11035         (new_basic_block): Likewise, use HASH_SIZE, and inline
11036         free_element call.
11037         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
11038         and inline free_element call.
11039         (lookup_as_function, insert, flush_hash_table, invalidate,
11040         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
11041         invalidate_for_call, use_related_value, find_comparison_args,
11042         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
11043         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
11044         get_element): Kill.
11045
11046 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
11047
11048         * cse.c (cse_basic_block): Free qty_table consistently.
11049
11050 1999-12-12  David S. Miller  <davem@redhat.com>
11051             Jakub Jelinek    <jakub@redhat.com>
11052
11053         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
11054         SUBREGs by hand, gen the appropriate hard reg directly.
11055         (movtf reg/mem split): Likewise and alter_subreg on destination
11056         if necessary.
11057         (movtf mem/reg split): Similarly.
11058         (movdf_cc_sp64): Rename from hidden pattern.
11059         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
11060         (movtf_cc_sp64, following split): New pattern and splitter.
11061         (movdf_cc_reg_sp64): Rename from hidden pattern.
11062         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
11063         TARGET_HARD_QUAD.
11064         (movtf_cc_reg_sp64, following split): New pattern and splitter.
11065
11066 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
11067
11068         * loop.c (load_mems): Don't hoist written floating point mem
11069         if -ffloat-store.
11070
11071 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
11072
11073         * except.h (struct eh_queue): Add `next' pointer.
11074         (struct eh_status): Make x_ehqueue a pointer.
11075         (push_ehqueue):  Declare.
11076         (pop_ehqueue): Likewise.
11077         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
11078         pointer.
11079         (expand_fixup_region_end): Likewise.
11080         (expand_leftover_cleanups): Likewise.
11081         (push_ehqueue): Define.
11082         (pop_ehqueue): Likewise.
11083         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
11084         than doing it inline.
11085         (expand_start_all_catch):  Adjust now that ehqueue is a
11086         pointer.
11087         (mark_eh_queue): Mark all level of the queue.
11088         (mark_eh_status):  Adjust now that ehqueue is a
11089         pointer.
11090         (init_eh_for_function): Allocate ehqueue.
11091         (free_eh_status): Free it.
11092         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
11093         expansion for a fixup.
11094
11095 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11096
11097         * gthr-single.h (__gthread_active_p): Add prototype arguments.
11098
11099         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
11100         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
11101         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
11102         function_ptr, getpagesize, __enable_execute_stack,
11103         __enable_execute_stack, __clear_insn_cache,
11104         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
11105         _cleanup, _exit, __default_terminate, __terminate_func,
11106         __terminate, __empty, __throw, new_eh_context,
11107         eh_context_initialize, eh_context_static, eh_context_specific,
11108         get_eh_context, __get_eh_context, __get_eh_info,
11109         init_reg_size_table, eh_threads_initialize,
11110         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
11111         __unwinding_cleanup, throw_helper, __throw, __rethrow,
11112         __pure_virtual): Add prototype arguments.
11113         (__bb_exit_func): Cast a sizeof to long when comparing against one.
11114         Cast a signed value to unsigned long when comparing against one.
11115         (new_eh_context): Wrap in _GTHREADS macro.
11116         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
11117         declaration.
11118         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
11119         (throw_helper): Initialize variables `handler_p' and `pc_p'.
11120
11121 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11122
11123         * combine.c (record_promoted_value): Remove unused variable
11124         `links2'.
11125
11126         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
11127
11128         * global.c (record_conflicts): Likewise for `j'.
11129
11130         * genoutput.c (output_insn_data): Don't unnecessarily cast away
11131         const-ness.
11132
11133 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11134
11135         * i386-protos.h (output_387_binary_op, output_fix_trunc,
11136         output_fp_compare): Constify a char*.
11137
11138         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
11139         static prototypes.
11140         (override_options, ix86_comp_type_attributes, print_operand,
11141         output_387_binary_op, output_fix_trunc, output_fp_compare):
11142         Constify a char*.
11143         (ix86_sched_reorder): Mark parameter `clock_var' with
11144         ATTRIBUTE_UNUSED.
11145
11146         * i386.h (DEBUG_PRINT_REG): Constify a char*.
11147
11148 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11149
11150         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
11151         operand, for use in the Java front-end.
11152
11153 1999-12-10  Ben Collins  <bcollins@debian.org>
11154
11155         * configure.in: Fix typo for "-64" in 64bit as check.
11156         * configure: Rebuilt.
11157
11158 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
11159
11160         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
11161         appropriate.
11162
11163 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11164
11165         * c-parse.in (string): With -Wtraditional, warn if ANSI string
11166         concatenation is utilized.
11167
11168         * invoke.texi (-Wtraditional): Document it.
11169
11170 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11171
11172         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
11173         Cast a ptrdiff_t to long and pass it to printf with %ld.
11174
11175 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
11176
11177         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
11178         68881, we have no 68881 registers at all.
11179         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
11180         value in a 68881 register if it is available.
11181
11182 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
11183
11184         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
11185         for long long multiply-accumulate.
11186
11187 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
11188
11189         * loop.c (insert_loop_mem): Undo last change.
11190
11191 1999-12-10  David S. Miller  <davem@redhat.com>
11192
11193         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
11194         New functions.
11195         * config/sparc/sparc-protos.h: Add them.
11196         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
11197         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
11198         constraints which use those helpers.
11199         (EXTRA_CONSTRAINT): Use this new macro.
11200         * md.texi: Update sparc target constraints documentation.
11201         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
11202         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
11203         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
11204         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
11205         (movsf high/lo_sum split): Rework for new patterns.
11206         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
11207
11208 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
11209
11210         * c-common.c (c_common_nodes_and_builtins):
11211         Create __builtin_ptrdiff_t and __builtin_size_t.
11212
11213 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
11214
11215         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
11216
11217 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11218
11219         * regclass.c (globalize_reg): Re-instate test that allows
11220         fixed registers to be declared as a variable even after functions
11221         are defined.
11222
11223 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11224
11225         * i386.md (cpu attribute): Add "athlon".
11226         (athlon_decode): New attribute.
11227         (Athlon scheduling units definitions): New.
11228         (fcmp and shld patterns): Set athlon_decode to "vector".
11229         * i386.c (athlon_cost): New.
11230         (m_ATHLON): New.
11231         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
11232         x86_use_sahf): Set for Athlon.
11233         (x86_use_fiop): Unset for Athlon.
11234         (override_options): Define Athlon alignments and "athlon" name.
11235         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
11236         * i386.h (TARGET_ATHLON): New.
11237         (enum processor_type): Add PROCESSOR_ATHLON.
11238         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
11239         for CPU_DEFAULT==5
11240         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
11241
11242 1999-12-09  Andreas Jaeger  <aj@suse.de>
11243
11244         * loop.c (record_biv): Declare parameter as int.
11245
11246         * config/i386/i386-protos.h: Declare long_memory_operand.
11247
11248 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
11249
11250         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
11251         EXPR_WITH_FILE_LOCATION.
11252
11253 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
11254
11255         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
11256         in expander.
11257
11258         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
11259
11260         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
11261         updating code.
11262
11263 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
11264
11265         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
11266         default on linux64 again.
11267         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
11268         models for multilibing.
11269         * genmultilib: Accept | as alternative separator within a set in
11270         MULTILIB_OPTIONS.
11271
11272         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
11273
11274         * calls.c (precompute_arguments): Make sure initial_value contains
11275         value pseudo which CSE expects.
11276         * cse.c (struct set): New entry orig_src.
11277         (cse_insn): Set it early on entry, use it for libcall EQUIV note
11278         replacement.
11279
11280 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
11281
11282         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
11283
11284 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
11285
11286         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
11287
11288 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
11289
11290         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
11291         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
11292
11293         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
11294         if TARGET_ARCH32.
11295
11296         * longlong.h: Merge in changes from glibc.
11297         Also don't clobber %g2 register in 32bit SPARC assembly, so that
11298         -mno-app-regs libgcc can be compiled.
11299         * libgcc2.c: Add defines so that the updated longlong.h
11300         can be used in libgcc2.a. Also, make sure on most architectures
11301         (at least on all which have optimized code in longlong.h defined
11302         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
11303
11304 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11305
11306         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
11307         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
11308         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
11309         is GNU ld.
11310         * configure: Rebuilt.
11311
11312 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
11313
11314         * alpha.c (secondary_reload_class): For !BWX, sub-simode
11315         outputs require a register.
11316
11317 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
11318
11319         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
11320         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
11321         functions like dptoul will be resolved.
11322         (libgcc2.a): Make sure that the object files from DPBIT are named
11323         differently (prefix `_dp') from those that would be coming from
11324         FPBIT.
11325
11326 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
11327
11328         * configure.in: When target is sparc* and tm_file contains 64,
11329         test for 64bit support in assembler.  If not supported, remove
11330         sparc/t-sol2-64 from target-dependent Makefile fragments.
11331         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
11332         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
11333         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
11334         * acconfig.h (AS_SPARC64_FLAG): Added.
11335         * configure, config.in: Rebuilt.
11336         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
11337         support.  Use AS_SPARC64_FLAG.
11338
11339 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
11340
11341         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
11342         suitable for holding OFmode values so that gcc works with complex
11343         quad long doubles.
11344         (hard_64bit_mode_classes): Likewise.
11345
11346         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
11347         so that it is actually matched.
11348         (sethi_di_medlow): Likewise.
11349
11350         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
11351         as legitimate constant if -mvis.
11352         * config/sparc/sparc.md (movtf): Likewise.
11353         (clear_sf): Use const_double_operand.
11354         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
11355
11356         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
11357         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
11358         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
11359         routines, _Qp_* cannot be handled like that now.
11360         (INIT_TARGET_OPTABS): Likewise.
11361         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
11362         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
11363         sparc_emit_float_lib_cmp if ARCH64 and soft float.
11364         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
11365         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
11366         divtf3, sqrttf3): New expanders.
11367         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
11368         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
11369         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
11370         non-_hq patterns.
11371
11372         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
11373         * configure: Rebuilt.
11374         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
11375         -mcpu is given and we're doing 64bit compiles.
11376
11377 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
11378
11379         * loop.h (struct induction): Add multi_insn_incr.
11380         * loop.c (basic_induction_var): New multi_insn_incr argument.
11381         Set it if we search back through previous insns for the biv.
11382         (record_biv): New multi_insn_incr argument; fill in struct induction.
11383         (strength_reduce): Discard an iv with multiple bivs, any of
11384         which require multiple insns to increment.
11385
11386 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11387
11388         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
11389         documentation.
11390
11391 1999-12-06  David S. Miller  <davem@redhat.com>
11392
11393         * combine.c (check_promoted_subreg): Do not conditionalize this upon
11394         PROMOTE_FUNCTION_RETURN.
11395
11396 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
11397
11398         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
11399         and handle REG_UNUSED note on insn.
11400
11401         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
11402         inner_mask instead of mask.
11403
11404 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
11405
11406         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
11407         zero if there was an error.
11408
11409 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
11410
11411         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
11412         output string.
11413
11414         * longlong.h: Fix clobbers in SPARC asm statements.
11415
11416         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
11417         valid sethi operations when TARGET_ARCH64.
11418
11419         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
11420         always use move_by_pieces to avoid infinite recursion.
11421         (restore_fixed_argument_area): Likewise.
11422
11423         * combine.c (check_promoted_subreg, record_promoted_value): New
11424         functions.
11425         (combine_instructions): Use them to retain nonzero and sign bit
11426         information after SUBREGs are eliminated by optimizations in
11427         this pass if PROMOTE_FUNCTION_RETURN.
11428
11429         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
11430         .register declaration. Don't use variables with __ prefixes.
11431
11432 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11433
11434         * fold-const.c (optimize_bit_field_compare): Only use one mode
11435         for both RHS and LHS in non-constant case.
11436
11437 1999-12-06  Nathan Sidwell  <nathan@acm.org>
11438
11439         * frame.c (start_fde_sort): Only allocate erratic array, if
11440         linear one was allocated. Return allocated flag.
11441         (fde_insert): Only insert, if there's a valid array.
11442         (fde_end_sort): Split, sort and merge if linear and erratic
11443         arrays exist, else just sort linear one.
11444         (search_fdes): New function. Linear search through original fde
11445         structure.
11446         (frame_init): Permit multiple initializations. Cope with
11447         memory shortages.
11448         (find_fde): Fallback on linear search, if failed to sort array.
11449         (__deregister_frame_info): Only free sorted array, if we
11450         allocated it.
11451
11452 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
11453
11454         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
11455
11456 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
11457
11458         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
11459
11460 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
11461
11462         * tree.h (special_function_p): Declare.
11463         * calls.c (special_function_p): Make it global.  Don't take `name'
11464         as a parameter.  Fix typo in 1999-11-28 change.
11465         (expand_cal): Adjust.
11466
11467 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
11468
11469         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
11470         * tree.h (EXPR_WFL_FILENAME): Define in terms of
11471         EXPR_WFL_FILENAME_NODE.
11472         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
11473         the TREE_CHAIN.
11474         * print-tree.c (print_note): Print TREE_PRIVATE and
11475         TREE_PROTECTED.
11476
11477         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
11478         the original die cannot be found.
11479
11480         * varray.h (varray_head_tag): Add elements_used.
11481         (VARRAY_PUSH): New macro.
11482         (VARRAY_POP): Likewise.
11483         (VARRAY_TOP): Likewise.
11484         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
11485         types.
11486         * varray.c (varray_init): Initialize elements_used.
11487         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
11488         (INTEGRATE_H): New variable.
11489         (integrate.o): Depend on INTEGRATE_H.
11490         (unroll.o): Likewise.
11491
11492         * function.h (insert_block_after_note): Declare.
11493         * function.c (insert_block_after_note): Split out from ...
11494         (retrofit_block): ... here.
11495
11496         * stmt.c (expand_fixup): Fix typo in comment.
11497
11498 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11499
11500         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
11501         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
11502         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
11503         (regmove_optimize, fixup_match_1): Likewise.
11504
11505 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11506
11507         * flow.c (flow_loops_dump): Add missing argument when calling
11508         flow_loop_nested_p.
11509
11510 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
11511             Greg McGary  <gkm@gnu.org>
11512
11513         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
11514         (init_attributes): Add A_NO_LIMIT_STACK.
11515         (decl_attributes): Handle A_NO_LIMIT_STACK.
11516         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
11517         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
11518         Handle stack bounds checking.
11519         * flags.h (flag_stack_check): Use the word 'probe' rather than
11520         'check', because the flag doesn't actually cause any checking to
11521         be done.
11522         * function.c (expand_function_start): Set
11523         current_function_limit_stack.
11524         * function.h (struct function): Add limit_stack.
11525         (current_function_limit_stack): Define.
11526         * invoke.texi (Code Gen Options): Document new options.
11527         * rtl.h: Declare stack_limit_rtx.
11528         * toplev.c (stack_limit_rtx): New variable.
11529         (decode_f_option): Handle new options -fstack-limit-register=REG,
11530         -fstack-limit-symbol=IDENT, -fno-stack-limit.
11531         (main): Add stack_limit_rtx as GC root.
11532         * tree.h (DECL_NO_LIMIT_STACK): New macro.
11533         (struct tree_decl): New member no_limit_stack.
11534
11535         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
11536         stack_limit_rtx.
11537         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
11538         (conditional_trap+1): Get new mnemonic correct.
11539         (conditional_trap+2): New pattern for DImode traps.
11540
11541         * config/m68k/m68k.c (output_function_prologue): Handle
11542         stack_limit_rtx.
11543         * config/m68k/m68k.md (trap): New insn.
11544         (conditional_trap): New insn.
11545         * md.texi (Standard Names): Document `trap' and
11546         `conditional_trap'.
11547         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
11548         so a cc0 setter doesn't get emitted at some random place in the
11549         function.
11550
11551         * config/i960/i960.md (trap): New insn.
11552         (conditional_trap): New expander.
11553         (conditional_trap+1, conditional_trap+2): New insns for signed
11554         and unsigned cases.
11555         * config/i960/i960.c (i960_function_prologue): Use
11556         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
11557
11558 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
11559                           Geoffrey Keating  <geoffk@cygnus.com>
11560
11561         * flags.h (warn_padded, warn_packed): Add global var decls.
11562         * toplev.c (warn_padded, warn_packed): Add global var defns.
11563         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
11564         * stor-layout.c (layout_record): Add local variable `type'
11565         to hold often-used TREE_TYPE (field).  Add local variable
11566         `unpacked_align' to hold alignment that would be in force
11567         if no `packed' attribute were present.  Warn if `packed' attribute
11568         is unnecessary, or even harmful.  Warn when gcc inserts padding
11569         to satisfy alignment requirements of members.  Use NULL_TREE
11570         when checking whether var_size is set.
11571         * invoke.texi: Document new flags.
11572
11573 1999-12-03  Nathan Sidwell  <nathan@acm.org>
11574
11575         * frame.c (fde_split): Reimplement to avoid variable sized array.
11576
11577 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11578
11579         * combine.c (try_combine): Before fixing up LOG_LINKS for the
11580         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
11581
11582 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
11583
11584         * invoke.texi: Document the mips option -mno-crt0
11585
11586 1999-12-02  Mike Karr  <mkarr@mathworks.com>
11587
11588         * cccp.c (argdata): Added free_ptr member.
11589         (macroexpand): Initialize free_ptr of each argument. When an
11590         argument's buffers are freed, if the argument's free_ptr corresponds
11591         to a buffer on the input stack, then return the free_ptr to that stack
11592         frame, otherwise, free it.
11593         (macarg): If an argument begins and ends on the same input stack level,
11594         then transfer the free_ptr of that buffer to the argument in case
11595         the stack is popped during the processing of a subsequent argument.
11596
11597 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
11598
11599         * loop.c (note_reg_stored): New function.
11600         (struct note_reg_stored_arg): New structure.
11601         (try_copy_prop): Change to be more conservative; only replace within
11602         one extended basic block and stop replacing if a store to the
11603         replacement reg is seen.
11604
11605 1999-12-02  Nick Clifton  <nickc@cygnus.com>
11606
11607         * config/fp-bit.c: Initialise all fields of the NAN
11608         constants.
11609
11610         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
11611         to HANDLE_PRAGMA.
11612
11613 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
11614
11615         * i386.md (extend?f?f2): Force the input into a register, not
11616         the output.
11617
11618 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
11619
11620         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
11621         regclass' sake.
11622         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
11623         alternative because setting up 64bit constant is usually costly,
11624         especially when reload is in progress or completed.
11625         (movdf_const_intreg_sp64): Likewise.
11626         (movdf_const_intreg split): Fix building up constants when
11627         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
11628
11629 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
11630
11631         * combine.c (if_then_else_cond): Use const_true_rtx instead of
11632         const1_rtx for return values in EQ/NE comparison against (const_int 0)
11633         case.
11634
11635         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
11636         (asm_file_start): Emit .am33 into assembly file when compiling for
11637         the AM33.
11638         (print_operand_address): Handle POST_INC addresses.
11639         (can_use_return_insn, initial_offset): Check AM33 registers too.
11640         (expand_prologue): Check & save AM33 registers too.
11641         (expand_epilogue): Similarly.
11642         (secondary_reload_class): Handle AM33 specific secondary reloads.
11643         (output_tst): Emit efficient code for the AM33 too.
11644         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
11645         (TARGET_SWITCHES): Add -mam33 switch.
11646         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
11647         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
11648         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
11649         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
11650         (enum reg_class, REG_CLASS_NAMES): Likewise.
11651         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
11652         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
11653         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
11654         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
11655         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
11656         (HAVE_POST_INCREMENT): Define.
11657         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
11658         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
11659         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
11660         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
11661         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
11662         (zero_extend to SI from QI/HI): Likewise.
11663         (sign_extend to SI from QI/HI): Likewise.
11664         (mulsidi3, umulsidi3): New patterns for the AM33.
11665         (tstsi with zero extension from QI/HI): Add AM33 variants.
11666         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
11667         (return_internal_regs, store_movm): Handle new AM33 registers.
11668         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
11669         (LIBGCC, INSTALL_LIBGCC): Likewise.
11670         * invoke.texi: Document new flags.
11671
11672 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11673
11674         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
11675         (addsi3_carry): Likewise.
11676         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
11677         (sbbsi3_carry): Likewise.
11678         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
11679         (mulhi3): Likewise.
11680         (test?i_1): Ensure that only one operand is memory.
11681         (conditional move patterns): likewise.
11682         (shift and rotate patterns): Rewrite to expander, add
11683         "binary_operator_ok" to the condition.
11684
11685         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
11686         * i386.h (procesor_costs): Add movzbl_load field.
11687         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
11688         non-Q registers, accept DImode registers anywhere.
11689         (Q_CLASS_P): New.
11690         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
11691         * i386.c (*_cost): Set value for movxbl_load field.
11692
11693         * (addsi): New add to lea splitter.
11694         (ashlsi): Likewise.
11695         (lea to add/shift peep2): New.
11696
11697 1999-12-01  Mark Salter <msalter@cygnus.com>
11698
11699         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
11700         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
11701         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
11702
11703 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11704
11705         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
11706         * i386.md (movsi_xor): New.
11707         (movsi_or): New.
11708         (movsi_1, movhi_1, movqi_1): Remove.
11709         (movsi_2): Rename to movsi_1.
11710         (movhi_2): Rename to movhi_1.
11711         (movqi_2): Rename to movqi_1.
11712         (movdi_1): Remove; remove splitter.
11713         (movdi_2): Rename to movdi_1.
11714         (divmodsi4 splitter): Do not emit clobbers for move patterns.
11715         (long move peep2): Do not create QI or HI mode mov0s
11716         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
11717
11718         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
11719         rewrite splitters.
11720
11721         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
11722         (abs?f2_if): Likewise.
11723
11724 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
11725
11726         * ggc.h (ggc_test_and_set_mark): New macro.
11727         (ggc_mark_rtx): Use ggc_test_and_set_mark.
11728         (ggc_mark_tree): Likewise.
11729         (ggc_mark_rtvec): Likewise.
11730         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
11731
11732 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
11733
11734         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
11735         containing types.
11736         (decl_scope_table): Just an array of trees now.
11737         (push_decl_scope): Simplify.
11738         (dwarf2out_init): Adjust.
11739         (local_scope_p): New fn.
11740         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
11741         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
11742         (gen_typedef_die): Likewise.
11743         (gen_lexical_block_die): Don't call push/pop_decl_scope.
11744         (gen_inlined_subroutine_die): Likewise.
11745         (gen_abstract_function): Set current_function_decl temporarily.
11746         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
11747         Handle block extern declarations.  Don't call push/pop_decl_scope.
11748         (gen_decl_die): Fix logic for block externs.
11749
11750 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11751
11752         * calls.c (special_function_p): Remove `realloc' and add `strdup'
11753         to the list of functions which have attribute malloc by default.
11754
11755 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11756
11757         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
11758         integer constant does not match the traditional type, limit the
11759         warnings to cases where the base of the type is ten.
11760
11761         * invoke.texi (-Wtraditional): Document it.
11762
11763 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11764
11765         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
11766         * rs6000.md: Only access a CONST_INT with INTVAL
11767
11768 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
11769
11770         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
11771         (compute_nearerout): Likewise.
11772         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
11773         size_t to unsigned long for formatting.
11774
11775 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
11776
11777         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
11778         Allow the user to override call-used/fixed state of %g2-5
11779         registers from the command line (with the exception of %g4 for
11780         embedded model).
11781         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
11782         there is a higher chance of having a leaf function.
11783         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
11784         for ARCH64 which has %ccr register.
11785         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
11786         patterns.
11787         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
11788         insn accept into delay slot any insn which does not use %[ol]
11789         registers.  Accept some LO_SUM and shift left by 1 for the normal
11790         restore case.
11791         (output_function_epilogue): Likewise.
11792         (epilogue_renumber): Added argument which inhibits any renumbering
11793         and just tests if the rtx does not use any %[ol] registers.
11794         (output_return): Reflect above change.
11795
11796 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
11797
11798         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
11799         aggregate passing for sizes <= 16 bytes.
11800
11801 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
11802
11803         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
11804         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
11805         * reload.c (find_dummy_reload): Likewise.
11806         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
11807         * reload1.c (reload_as_needed): Likewise.
11808         * stupid.c (stupid_find_reg): Likewise.
11809         * tm.texi (Obsolete Register Macros): Delete section.
11810         * gmicro.h: Remove all traces of the two macros.
11811         * i386.h: Likewise.
11812         * m88k.h: Likewise.
11813         * mips.h: Likewise.
11814
11815 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
11816
11817         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
11818         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
11819         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
11820         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
11821         units for the sparclite86x chip.
11822         (flush): Revert October 14th change; add SImode specifically.
11823         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
11824         * invoke.texi: Document it.
11825
11826 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
11827
11828         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
11829         psimode_truncation_operand.
11830
11831         * config/mn10200/mn10200.c (psimode_truncation_operand): New
11832         function.  Return true if the operand is either a MEM valid
11833         for a PSImode address or not a MEM at all.
11834
11835         * config/mn10200/mn10200.md (truncsipsi2): Use
11836         psimode_truncation_operand.
11837
11838 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11839
11840         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
11841         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
11842         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
11843         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
11844         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
11845         (flow_loop_level_compute, low_loops_level_compute): Likewise.
11846         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
11847         * basic-block.h: Protect from multiple inclusion.
11848         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
11849         (struct loops, struct loop): Define structures.
11850         * sbitmap.c (sbitmap_a_subset_b_p): New function.
11851         * sbitmap.h: Protect from multiple inclusion.
11852         (sbitmap_a_subset_b_p): Add prototype.
11853         * Makefile.in (LOOP_H): New macro.
11854         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
11855
11856 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
11857
11858         * cppinit.c (CAT): The argument list of this macro may not contain
11859         spaces !
11860
11861 1999-11-29  David S. Miller  <davem@redhat.com>
11862
11863         Move quantity tables and register equivalence chains into
11864         per-qty and per-register structure arrays respectively.
11865         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
11866         qty_const_insn, qty_comparison_code, qty_comparison_const,
11867         qty_comparison_qty): Delete, replace with...
11868         (qty_table): this structure table.
11869         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
11870         (reg_eqv_table): this structure table.
11871         (make_new_qty): Add argument MODE.  Caller updated.
11872         Update to use qty_table and reg_eqv_table.
11873         (make_regs_eqv, delete_reg_equiv, insert_regs,
11874         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
11875         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
11876         cse_process_notes, cse_main, cse_basic_block): Likewise.
11877
11878 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11879
11880         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
11881         operation if C is negative.
11882         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
11883         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
11884         law for some divisions if constant is negative and change other
11885         divisions to the opposite rounding.
11886
11887         * expr.c (store_constructor_field): If bit position is not multiple
11888         of alignment of TARGET's mode, use BLKmode.
11889
11890         * expr.c (expand_expr_unaligned): Add more code from full case
11891         that is needed when OP0 is in a register.
11892
11893 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11894
11895         * dwarfout.c (field_byte_offset): Size can be zero if there was
11896         an error.
11897
11898 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
11899
11900         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
11901         (associate_trees): Delete unused var TEM.
11902         (extract_muldiv): Delete unused var CANCEL_P.
11903
11904         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
11905         (target_isinf, target_isnan, target_negative): Add return types to
11906         function definitions.
11907
11908 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
11909
11910         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
11911         * fixinc/hackshell.tpl: ditto
11912         * fixinc/fixtests.c(double_slash_test): more C++ header testing
11913         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
11914
11915 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
11916
11917         * reload.c (push_reload): When looking for a register to put into
11918         reg_rtx, make sure all hard regs in a multi-reg register are in the
11919         right class and nonfixed.
11920
11921         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
11922         pending_read_insns, pending_write_insns, pending_read_mems,
11923         pending_write_mems, pending_list_length, last_pending_memory_flush,
11924         last_function_call, sched_before_next_call): Move static variables
11925         into a structure.
11926         (bb_ prefixed versions): Replace with single array bb_deps.
11927         (struct deps): New structure.
11928         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
11929         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
11930         argument of type "struct deps *"; use that instead of global
11931         variables.  All callers changed.
11932         (init_rgn_data_dependencies): Delete function.
11933         (init_rtx_vector): Delete function.
11934         (init_deps): New function.
11935
11936         (free_pending_lists): Simplify, we always use the bb_deps array even
11937         if only one basic block.
11938         (compute_block_backward_dependences): Likewise.
11939         (schedule_region): Likewise.
11940
11941         (propagate_deps): New function, broken out of
11942         compute_block_backward_dependences.
11943         (compute_block_backward_dependences): Use it.
11944
11945         * alpha.md: Delete useless patterns that tried to work around
11946         register elimination problems.
11947
11948         * unroll.c (loop_iterations): Don't abort if iteration variable
11949         was made by loop.
11950
11951         From Joern Rennecke:
11952         * reload1.c (reloads_conflict): Reverse test comparing operand
11953         numbers when testing for conflict between output/outaddr reloads.
11954
11955 1999-11-29  David S. Miller  <davem@redhat.com>
11956
11957         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
11958         arg.
11959         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
11960
11961 1999-11-28  Robert Lipe  <robertl@cygnus.com>
11962
11963         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
11964         table from .fini into .dtor.
11965
11966 1999-11-28  Anthony Green  <green@cygnus.com>
11967
11968         * tree.h (struct tree_decl): Add malloc_flag.
11969         (DECL_IS_MALLOC): Define.
11970         * c-common.c (attrs): Add A_MALLOC attribute.
11971         (init_attributes): Add this attribute to the table.
11972         (decl_attributes): Handle malloc attribute.
11973         * calls.c (special_function_p): Check for the malloc attribute.
11974         * extend.texi (Function Attributes): Document malloc attribute.
11975
11976 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
11977
11978         * pa.md (reload shift-add patterns): Remove.
11979
11980 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11981
11982         * reorg.c (dbr_schedule) Print more statistics. Corrected
11983         problem when printing info when 3 delay slots are filled.
11984
11985 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
11986
11987         * combine.c (setup_incoming_promotions): Pass an outgoing
11988         regno to FUNCTION_ARG_REGNO_P which it expects.
11989
11990 1999-11-28  Andreas Jaeger  <aj@suse.de>
11991
11992         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
11993
11994 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
11995
11996         * cccp.c (do_include): Avoid initialization of automatic variable.
11997
11998         * integrate.c (mark_stores): Function definition made void, to match
11999         previous declaration.
12000         * regclass.c (dump_regclass): Ditto.
12001         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
12002
12003 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12004
12005         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
12006         known to be multiple of divisor.
12007
12008         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
12009
12010         * combine.c (try_combine): Add code to try to merge a set of a
12011         two-word pseudo to a constant with a setting of one of those words
12012         to a constant.
12013
12014         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
12015         (split_tree): Completely rework to make more general.
12016         (make_range, fold): Call negate_expr.
12017         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
12018         (fold, associate): Call new split_tree and associate_trees.
12019         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
12020
12021 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
12022
12023         * loop.c (try_copy_prop): Avoid GNU C extension.
12024
12025 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
12026
12027         * except.c (init_eh_for_function): Still zero eh_return_context,
12028         eh_return_stack_adjust, and eh_return_handler.
12029
12030         * except.h (eh_status): Adjust documentation for x_protect_list.
12031         (begin_protect_partials): New function.
12032         * except.c (enqueue_eh_entry): Fix formatting.
12033         (get_first_handler): Add consistency check.
12034         (add_partial_entry): Adjust usage of protect_list.
12035         (emit_cleanup_handler): Save and restore ehqueue.
12036         (expand_start_all_catch): Add comment.
12037         (begin_protect_partials): New function.
12038         (end_protect_partials): Adjust usage of protect_list.
12039         (init_eh_for_function): Use xcalloc.
12040
12041 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12042
12043         * c-common.c (check_format_info): Don't call a variadic function
12044         with a non-literal format string.
12045
12046         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
12047
12048         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
12049         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
12050         Likewise.
12051
12052         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
12053         Likewise.
12054
12055         * collect2.c (collect_wait): Likewise.
12056
12057         * dbxout.c (dbxout_type): Likewise.
12058
12059         * gcc.c (do_spec_1): Likewise.
12060
12061         * genemit.c (gen_insn, gen_expand): Likewise.
12062
12063         * genrecog.c (write_switch, write_subroutine): Likewise.
12064
12065         * mips-tfile.c (catch_signal, botch): Likewise.
12066
12067         * print-rtl.c (print_rtx): Likewise.
12068
12069         * toplev.c (default_print_error_function, report_error_function,
12070         _fatal_insn): Likewise.
12071
12072 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
12073
12074         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
12075
12076 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12077
12078         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
12079         operations when needed.
12080         * i386.md (fop_?f_comm): New.
12081         (fop_?f_1): Do not accept commutative operands.
12082
12083 1999-11-25  Andreas Jaeger  <aj@suse.de>
12084
12085         * config/mips/mips.md (casesi_internal): Add missing brace.
12086
12087 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
12088
12089         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
12090         (splice_child_die): Handle moving a child DIE from the declaration
12091         DIE of a class to its specification.
12092         (gen_struct_or_union_type_die): Use 'complete' consistently.
12093         (gen_decl_die): Generate the virtual context DIE first.
12094         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
12095
12096 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
12097
12098         * config/mips/mips.md (call_value_multiple_interanal1): New.
12099
12100 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
12101
12102         * dwarf2out.c (free_AT, free_die): New fns.
12103         (remove_children): Call them.
12104         (output_line_info): Disable removal of duplicate notes.
12105
12106         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
12107         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
12108         means pretend the type isn't defined.
12109         Don't defer emitting types.
12110         (gen_type_die_for_member): New fn.
12111         (gen_decl_die): Call it.
12112         (splice_child_die): New fn.
12113         (gen_member_die): Call it rather than generate duplicate dies.
12114
12115         Defer emitting information for the abstract instance of an inline
12116         until we either inline it or emit an out-of-line copy.
12117         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
12118         from output_inline_function if DECL_ABSTRACT is also set.
12119         (block_ultimate_origin): Likewise.
12120         (gen_abstract_function): New fn.
12121         (gen_decl_die, gen_inlined_subroutine_die): Call it.
12122         (gen_subprogram_die):  An abstract instance is not a declaration
12123         just because it doesn't match current_function_decl.  Don't abort
12124         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
12125         has an abstract origin.
12126         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
12127         abstract instance here.
12128
12129 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
12130
12131         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
12132         where we need to reload fpul from a system register.
12133
12134 1999-11-24  Andreas Jaeger  <aj@suse.de>
12135
12136         * config/mips/linux.h (CPP_PREDEFINES): Added.
12137         (LINK_SPEC): Remove -Y since this is only needed on sparc.
12138
12139 1999-11-24  Andreas Jaeger  <aj@suse.de>
12140
12141         * config/mips/linux.h (TARGET_VERSION): Added.
12142         (HANDLE_SYSV_PRAGMA): Added.
12143         (DEFAULT_VTABLE_THUNKS): Added.
12144
12145 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12146
12147         * local-alloc.c (qty): New structure and static variable.
12148         (qty_phys_reg): Remove, all references changed to qty.
12149         (qty_n_refs): Likewise.
12150         (qty_min_class): Likewise.
12151         (qty_birth): Likewise.
12152         (qty_death): Likewise.
12153         (qty_size): Likewise.
12154         (qty_mode): Likewise.
12155         (qty_n_calls_crossed): Likewise.
12156         (qty_alternate_class): Likewise.
12157         (qty_changes_size): Likewise.
12158         (qty_first_reg): Likewise.
12159         (alloc_qty): Rename variable QTY to QTYNO.
12160         (finf_free_reg): Likewise.
12161         (local_alloc): Allocate qty, do not allocate the removed variables.
12162
12163 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
12164
12165         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
12166         when -membedded-pic is passed.
12167
12168         * config/mips/mips.md (casesi): Handle 64-bit case too.
12169         (casesi_internal_di): New insn.
12170
12171         * config/mips/mips.c (embedded_pic_offset): Always make the
12172         embedded-pic subtractions relative to the name of the current
12173         function by use of the magic string "..CURRENT_FUNCTION".
12174         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
12175
12176 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
12177
12178         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
12179         of (const_int 0), when what we really care about is
12180         whether it's a zero constant anyway.
12181         (div_trap_mips16): Likewise.
12182
12183 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
12184
12185         * loop.c (loop_optimize): Always find_loop_tree_blocks and
12186         unroll_block_trees when generating debuggable code.
12187
12188         * tree.h (unsave_expr_1): New function.
12189         (lang_unsave): New variable.
12190         (get_callee_fndecl): New function.
12191         * tree.c (unsave_expr_now_r): New function.
12192         (lang_unsave): Define.
12193         (unsave_expr_1): Likewise.
12194         (unsave_expr_now_r): Split out from unsave_expr_now.
12195         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
12196         call unsave_expr_now_r.
12197         (get_callee_fndecl): Define.
12198
12199         * Makefile.in (gencheck): Don't depend on lang_tree_files.
12200         (gencheck.o): Do depend on lang_tree_files.
12201
12202         * integrate.h (copy_decl_for_inlining): New declaration.
12203         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
12204         (copy_decl_for_inlining): New function.
12205         (integrate_parm_decls): Use it.
12206         (integrate_decl_tree): Likewise.
12207
12208 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
12209
12210         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
12211         the second two from the first.
12212         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
12213         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
12214         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
12215         ISA_HAS_FP4.
12216         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
12217         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
12218         ISA_HAS_FP4.
12219
12220 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
12221
12222         * pa.md (call_internal_symref, call_value_internal_symref): No mode
12223         needed on the address operand.
12224         * pa.c (call_operand_address): Check for the correct mode.
12225
12226 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
12227
12228         * loop.c: Include "basic-block.h".
12229         (try_copy_prop, replace_loop_reg): New functions.
12230         (load_mems): Detect registers that just hold copies of the hoisted
12231         mem, and call try_copy_prop to eliminate them.
12232         * Makefile.in (loop.o): Update dependencies.
12233
12234 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
12235
12236         * Makefile.in (gencheck.o): Depend on gencheck.h.
12237         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
12238         (insn-peep.o): Depend on except.h and function.h.
12239         (insn-attrtab.o): Depend on RECOG_H.
12240         (insn-output.o): Depend on toplev.h and flags.h.
12241         (gengenrtl.o): Depend on real.h.
12242         (gen-protos.o): Depend on cpplib.h and cpphash.h.
12243         Unify all dependencies to be on RECOG_H rather than recog.h.
12244
12245 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12246
12247         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
12248         * configure.in: Try building a bi-arch 32/64-bit compiler on
12249         sparc-*-solaris2.7 and higher.
12250         * configure: Rebuild.
12251
12252 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
12253
12254         * config/freebsd.h: New, FreeBSD architecture independent file.
12255         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
12256         independent pieces.
12257         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
12258         directly by i386/freebsd.h.
12259         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
12260         independent configuration file.
12261         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
12262         directly by i386/freebsd.h.
12263         * configure: Rebuilt.
12264
12265         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
12266         which is in the user's namespace.
12267         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
12268         `i386' which is not in our namespace.
12269
12270 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
12271
12272         * invoke.texi (ARM Options): Add in -mno-alignment-traps
12273
12274 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
12275
12276         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
12277         (add_dwarf_attr, add_child_die): Just push onto the front.
12278         (reverse_die_lists): New fn.
12279         (add_sibling_attributes): Use it.
12280         (push_decl_scope): Reorganize.
12281         (add_name_and_src_coords_attributes): Don't set file and line for
12282         an artificial decl.
12283         (gen_subprogram_die): An artificial function doesn't need to match
12284         file and line.
12285         (gen_compile_unit_die): Return the generated die.  Only add
12286         AT_comp_dir if the filename is relative.
12287         (remove_AT): Simplify loop.  Also free string values.
12288         (output_die): A DIE ref can't be null.
12289         (output_value_format, value_format): Take a dw_attr_ref.
12290         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
12291         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
12292         AT_addr, AT_lbl): New fns.
12293         (various): Use them.
12294         (various): Constify.
12295
12296 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12297
12298         * combine.c (combine_simplify_rtx): When handling a SUBREG,
12299         take SUBREG_WORD into account.
12300         (if_then_else_cond): Likewise.
12301
12302 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
12303
12304         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
12305         clause from BSD license, pursuant with
12306
12307           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
12308
12309 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
12310
12311         * loop.c (load_mems): Reformat slightly.
12312         * basic-block.h (regset_head): New typedef.
12313         (INIT_REG_SET): New macro.
12314
12315 1999-11-22  Bruce Korb  <autogen@linuxbox.com
12316
12317         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
12318         (mips-dec-bsd*): non-functional code
12319         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
12320
12321         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
12322         added three replacement fixes
12323         (no_double_slash): removed comments that are not (any longer) pertinent
12324         (bad_lval): this fix currently runs against many files.
12325         The comment seems to indicate that we should select for files
12326         containing 'pragma extern_prefix'.
12327
12328         * fixinc/fixinc.x86-linux-gnu: deleted
12329         * fixinc/inclhack.sh:  regen
12330         * fixinc/fixincl.x:  regen
12331         * fixinc/fixincl.sh:  regen
12332
12333 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
12334
12335         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
12336         its code is INSN and it has no notes.
12337
12338 1999-11-22  Andrew Haley  <aph@cygnus.com>
12339
12340         * varasm.c (function_defined): Remove.
12341         (make_function_rtl): Don't set function_defined.
12342         (make_decl_rtl): Remove global register warning.
12343         * regclass.c (no_global_reg_vars): New variable.
12344         (globalize_reg): Warn if function has already been defined.
12345         (regclass_init): Set no_global_reg_vars.
12346
12347 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12348
12349         * regclass.c (reg_pref): New structure and static variable
12350         (prefclass): Delete.
12351         (altclass): Delete.
12352         (all uses of prefclass and altclass): Use reg_pref instead.
12353
12354 1999-11-21  Nick Clifton  <nickc@cygnus.com>
12355
12356         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
12357         -malignment-traps.
12358         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
12359         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
12360         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
12361
12362 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
12363
12364         * varasm.c (output_constructor): Solve problem with long long
12365         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
12366
12367 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12368
12369         * global.c (allocno): New structure and static variable.
12370         (allocno_reg): Remove, all references replaced by allocno.
12371         (allocno_size): Likewise.
12372         (hard_reg_conflicts): Likewise.
12373         (hard_reg_preferences): Likewise.
12374         (hard_reg_copy_preferences): Likewise.
12375         (hard_reg_full_preferences): Likewise.
12376         (regs_someone_prefers): Likewise.
12377         (allocno_calls_crossed): Likewise.
12378         (allocno_n_refs): Likewise.
12379         (allocno_live_length): Likewise.
12380         (find_reg): Rename ALLOCNO to NUM.
12381
12382         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
12383         references updated.
12384         (may_move_out_cost): New variable.
12385         (init_reg_sets_1): Initialize may_move_out_cost.
12386         (record_reg_classes): Use may_move_out_cost.
12387
12388         * regclass.c (dump_regclass): New function.
12389         (regclass): New parameter DUMP, call DUMP_REGCLASS.
12390         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
12391         pass rtl_dump_file to regclass.
12392         * rtl.h (regclass): Update prototype.
12393
12394 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12395
12396         * i386.md (neg, not and abs patterns): Revmap to use
12397         ix86_expand_unary_operator and ix86_unary_operator_ok.
12398         (add?f and sub?f expanders): Force operand 1 to register.
12399         * i386.c (ix86_expand_unary_operator): Rewrite.
12400         (ix86_unary_operator_ok): Ensure that memory operands
12401         match real opcode.
12402         (ix86_binary_operator_ok): Do not allow operand 1 to
12403         come into memory and operand 0 not.
12404         (ix86_expand_binary_operator): Ensure that
12405         src1 is not non-matching memory.
12406
12407         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
12408         to support integer registers and memory.
12409         (abss?2_integer): Likewise.
12410
12411         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
12412         (REG_CLASS_NAMES): Likewise.
12413         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
12414         and GENERAL_REGS.
12415         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
12416         (movsf): Likewise; unify 4th and 5th alternative.
12417         (pushdf): Likewise.
12418         (movdf_1): Likewise; rename to movdf_integer.
12419         (pushxf): Likewise; rename to pushxf_integer; fix output template;
12420         remove redundant splitter.
12421         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
12422         (movdf_nointeger): New.
12423         (movxf_nointeger): New.
12424         (pushxf_nointeger): New.
12425
12426         * i386.md (extend?f?f): Split to expander and pattern, refuse two
12427         memory operands in patterns.
12428         (fop*): Refuse two memory operands.
12429
12430         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
12431         on !TARGET_USE_CLTD CPUs.
12432
12433 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
12434
12435         * extend.texi: Document C++ restricted pointers and references.
12436
12437 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
12438
12439         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
12440         (invalidate_skipped_set): Call it unconditionally.
12441         (cse_set_around_loop): Likewise.
12442
12443 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
12444
12445         * rtl.texi (mem): Add documentation for alias-set argument
12446         to RTX `mem'.
12447
12448 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12449
12450         * i386.h (struct_processor_costs): New fields int_load, int_store,
12451         fp_move, fp_load and fp_store
12452         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
12453         fp->int moves
12454         (MEMORY_MOVE_COST): New macro.
12455         * i386.c (386_cost): Define new fields.
12456         (i486_cost): Likewise.
12457         (pentium_cost): Likewise.
12458         (pentiumpro_cost): Likewise.
12459         (k6_cost): Likewise.
12460
12461 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
12462                           Geoffrey Keating  <geoffk@cygnus.com>
12463
12464         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
12465
12466         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
12467         MASK_ALIGN_INT.
12468
12469         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
12470         (TARGET_STRICT_ALIGNMENT): New macro.
12471         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
12472         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
12473         * invoke.texi (M680x0 Options): Document -mstrict-align.
12474
12475 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
12476                           Richard Henderson  <rth@cygnus.com>
12477
12478         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
12479         (ix86_split_long_move): Declare.
12480         * i386.c (split_xf, ix86_split_movdi): Remove.
12481         (ix86_split_to_parts, ix86_split_long_move): New.
12482         * i386.md (dimode move splitters): Use ix86_split_long_move.
12483         (dfmode move splitters): Likewise.
12484         (xfmode move splitters): Likewise.
12485         (movsf_1): Allow F->r.
12486         (movdf_1, movxf_1): Allow F->ro.
12487
12488 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
12489
12490         * except.h (struct eh_entry): Add goto_entry_p.
12491         (eh_region_from_symbol): Remove prototype.
12492         * except.c (find_func_region_from_symbol): New function.
12493         (emit_cleanup_handler): Likewise.
12494         (eh_region_from_symbol): Make it static.
12495         (add_new_handler): Verify the argument.
12496         (find_func_region): Update comment.
12497         (expand_eh_region_end): Expand handlers here, rater than waiting
12498         until expand_leftover_cleanups or start_all_catch.
12499         (expand_leftover_cleanups): Don't expand here.
12500         (expand_start_all_catch): Or here.
12501         (expand_rethrow): Check the return value from find_func_region.
12502         * function.c (expand_function_end): Emit the catch_clauses.
12503
12504 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
12505
12506         * integrate.c (expand_inline_function): Add necessary check for NULL.
12507
12508 1999-11-18  Nick Clifton  <nickc@cygnus.com>
12509
12510         * toplev.c (main): Correctly detect an unrecognised option.
12511
12512         * cppinit.c (cpp_handle_option): Do not claim to have consumed
12513         a -f option if it has not been recognised.
12514
12515 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
12516
12517         * basic-block.h (update_life_extent): Remove trailing comma on
12518         enumeration type list.
12519
12520 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12521
12522         * varasm.c (output_constructor) Solved problem with long long
12523         bitfields. Corrected calculating this_time and shift. Also
12524         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
12525
12526 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
12527
12528         * flow.c (split_edge): Take looping structure into account when
12529         determining where to put the new block note.
12530
12531 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
12532
12533         * Makefile.in (ggc-none.o): Provide host specific version if
12534         needed.
12535
12536 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
12537
12538         * cse.c (delete_trivially_dead_insns): Identify no-op insns
12539         containing subregs too.
12540
12541 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
12542
12543         * invoke.texi: Add documentation for -muninit-const-in-rodata.
12544         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
12545         (TARGET_UNINIT_CONST_IN_RODATA): Define.
12546         (text_section): Add switches -munint-const-in-rodata and
12547         -mno-uninit-const-in-rodata.
12548         (ASM_OUTPUT_COMMON): Remove.
12549         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
12550         const objects should be placed in read-only data. Otherwise declare
12551         them in common.
12552
12553 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
12554
12555         * jump.c (jump_optimize_1): Revert last change.
12556
12557 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
12558
12559         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
12560         test if optimizing for size.
12561
12562 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
12563
12564         * Makefile.in (toplev.o): Depend on except.h.
12565         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
12566
12567 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12568
12569         * i386.md (divmodsi4): Rewrite to expander.
12570         (*divmodsi4_nocltd): New.
12571         (*divmodsi4_cltd): New.
12572         (divmodsi4 splitter): Handle the case when input comes in edx.
12573         (udivmodhi4): Do not use constraints in exander.
12574         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
12575
12576 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
12577
12578         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
12579         for the common case.
12580
12581 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
12582
12583         * explow.c (hard_function_value): Add outgoing argument.
12584         * expr.h (hard_function_value): Declare it.
12585         * calls.c (expand_call, emit_library_call_value): Update callers.
12586         * function.c (aggregate_value_p): Ditto.
12587         (diddle_return_value): Must look at the outgoing registers
12588         on archs with register windows.
12589
12590 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
12591
12592         * alpha.c (alpha_build_va_list): Use make_lang_type and
12593         initialize TYPE_NAME for the va_list record.
12594
12595         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
12596
12597         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
12598         for printing.
12599         * ggc.h (struct ggc_statistics): Rearrange elements for better
12600         packing on 64-bit hosts.
12601         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
12602         (compute_nearerout): Likewise.
12603
12604 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
12605
12606         * config/rs6000/rs6000.c (first_reg_to_save): Save
12607         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
12608
12609 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
12610
12611         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
12612         notion of nesting to find the DIE for a type or function.
12613         DIEs can go in limbo even if we got a context_die.
12614         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
12615         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
12616         for local type.
12617         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
12618         (gen_type_die): Writing out the context doesn't cause member class
12619         template instantiations to be written out as well.
12620
12621 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
12622
12623         * rs6000.h (ASM_OUTPUT_DEF): New.
12624         Based on proposed addition from David Edelsohn.
12625
12626 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
12627             Bruce Korb  <autogen@linuxbox.com>
12628
12629         * fixinc/inclhack.def
12630         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
12631         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
12632                 in net/inet.h.
12633         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
12634         (svr4_endian): enabled with SVR5
12635         (svr4_mkdev): simplified syntax and enabled with SVR5
12636
12637 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
12638
12639         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
12640         * configure: Rebuilt.
12641         * config/t-freebsd-thread: New file.
12642
12643 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
12644
12645         * i386.c (ix86_decompose_address): Verify the base is a REG
12646         before trying to examine its register number.
12647
12648         * basic-block.h: Remove all #defines and prototypes related to
12649         integer lists.
12650         (free_bb_mem, compute_preds_succs): Remove prototype.
12651         * rtl.h (free_bb_mem): Remove prototype.
12652         * flow.c (alloc_int_list_node); Remove function.
12653         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
12654         (compute_preds_succs, free_bb_mem): Likewise.
12655         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
12656         * toplev.c (rest_of_compilation): Likewise.
12657         * haifa-sched.c (build_control_flow): Use flow generated edge
12658         list to build the haifa specific edge list.
12659         (find_rgns): Use new CFG data structures instead of pred/succ lists.
12660         (schedule_insns): Do not build pred/succ lists anymore.  Instead
12661         build the edge table.
12662
12663         * basic-block.h (dump_bb_data): Remove declaration.
12664         * flow.c (dump_bb_data): Remove function.
12665         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
12666         (sbitmap_union_of_predsucc): Likewise.
12667
12668         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
12669         argument.  All callers changed.
12670         (delete_null_pointer_checks_1): No longer need to compute the
12671         pred/succ lists.
12672
12673         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
12674         All callers changed.
12675         (pre_expr_reaches_here_p_work): Likewise.
12676         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
12677         * lcm.c (compute_laterin): Fix initialization of LATER.
12678         (compute_nearerout): Similarly for NEARER.
12679
12680 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12681
12682         * cse.c (set_nonvarying_address_components): Delete unused function.
12683         (refers_to_p): Likewise.
12684
12685 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
12686
12687         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
12688         needed.
12689
12690 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12691
12692         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
12693         definition in do while (0).
12694
12695 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
12696
12697         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
12698
12699 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
12700
12701         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
12702
12703 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
12704
12705         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
12706         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
12707         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
12708         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
12709
12710         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
12711         saved on the stack.  Output more accurate stack frame statistics
12712         into assembler file.
12713
12714 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
12715
12716         * genextract.c (record_insn_name): New function.
12717         (get_insn_name): No longer a stub.
12718         (main): Call record_insn_name for each insn.  After each label
12719         written, print the insn name in a comment.
12720
12721 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12722
12723         * output.h (const_section, init_section, fini_section): Add
12724         prototypes.
12725
12726         * alpha/elf.h (const_section): Delete declaration.
12727
12728         * svr4.h (const_section): Likewise.
12729
12730 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
12731
12732         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
12733         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
12734         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
12735         expressions.
12736         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
12737         variable-sized array bounds.
12738
12739 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
12740
12741         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
12742         ASM_OUTPUT_LABEL.
12743
12744 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12745
12746         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
12747         addresses the same way GO_IF_LEGITIMATE_INDEX does.
12748
12749 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12750
12751         * cse.c (hash_arg_in_struct): Delete.
12752         (struct table_elt): Delete elt in_struct.
12753         (struct set): Delete elt src_in_struct.
12754         (merge_equiv_classes): Don't set either hash_arg_in_struct or
12755         the corresponding in_struct elts.
12756         (canon_hash): Likewise.
12757         (safe_hash): Likewise.
12758         (find_best_addr): Likewise.
12759         (record_jump_cond): Likewise.
12760         (cse_insn): Likewise.
12761
12762 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
12763
12764         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
12765
12766         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
12767         unsigned types.
12768
12769 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
12770
12771         * function.c (diddle_return_value): Put back check that the DECL_RTL
12772         for the function is a register.
12773
12774         * function.c (diddle_return_value): Use hard_function_value to
12775         get an rtx suitable for use in the USE/CLOBBER insn.
12776
12777         * global.c (global_conflicts): Update comments.
12778         (record_conflicts): No need to record conflicts between pseudos here.
12779
12780 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
12781
12782         * fixinc/fixincl.c: Added verbose levels for status messages
12783
12784 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12785
12786         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
12787         operand as argument to expand_and or expand_binop.
12788
12789 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
12790
12791         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
12792         gcc_add_string_root.
12793
12794 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
12795
12796         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
12797
12798 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
12799
12800         * flow.c (compute_flow_dominators): Initially put all blocks on
12801         the worklist.
12802         * lcm.c (compute_antinout_edge, compute_available): Similarly.
12803         * gcse.c (compute_cprop_avinout): Remove.
12804         (compute_cprop_data): Use compute_available.
12805         (delete_null_pointer_checks_1): Use compute_available.
12806
12807         * basic-block.h (compute_available): Returns a void now.
12808         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
12809         to return a value anymore.
12810         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
12811         worklists.  Fix boundary cases. Compute maximal solutions.
12812         (compute_laterin, compute_nearerout): Similarly.
12813
12814         * dwarf2out.c (add_AT_location_description): Allow
12815         (mem (plus (pseudo) (...)) too.
12816
12817 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
12818
12819         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
12820
12821 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
12822                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12823
12824         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
12825
12826         * gansidecl.h: Likewise.
12827
12828         * rtl.c: Likewise.
12829
12830         * rtl.h: Likewise.
12831
12832         * toplev.h: Likewise.
12833
12834         * tree.c: Likewise.
12835
12836         * tree.h: Likewise.
12837
12838         * varray.c: Likewise.
12839
12840         * varray.h: Likewise.
12841
12842 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
12843
12844         * gcov.c (struct arcdata): Add hits and total, remove prob.
12845         (output_branch_counts): New.
12846         (process_args): Set output_branch_counts if -c.
12847         (calculate_branch_probs): Store hits and total instead of
12848         percentage.
12849         (output_data): Emit counts if output_branch_counts is true.
12850         * gcov.texi (Invoking Gcov): Document -c switch..
12851
12852 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
12853
12854         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
12855         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
12856
12857 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
12858
12859         * invoke.texi (C Dialect Options): Add missing builtins from
12860         c-common.c to list.
12861         * extend.texi (Other Builtins): Copy to this list.
12862
12863 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12864
12865         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
12866         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
12867         redundant bitmap.h.
12868
12869 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
12870
12871         * flow.c (compute_flow_dominators): No longer treat basic block 0
12872         or (n_basic_blocks - 1) specially.  Clear the AUX field before
12873         starting computation of doms/pdoms.  Fix initial state for pdoms.
12874
12875 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12876
12877         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
12878         match rtl.o's: added ggc.h and toplev.h
12879         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
12880         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
12881         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
12882
12883 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
12884
12885         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
12886         from HAVE_DOS_BASED_FILESYSTEM.
12887         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
12888         HAVE_DOS_BASED_FILESYSTEM.
12889         (main): Likewise.
12890         (split_directories): Only special-case DOS file names if
12891         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
12892         instead of explicit tests.  Conditionalize on !VMS.
12893         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
12894         tests.  Conditionalize on !VMS.
12895         (process_command): Only use make_relative_prefix if !VMS.
12896         (free_split_directories): Conditionalize on !VMS.
12897         (DIR_UP): Conditionalize on !VMS.
12898
12899 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12900
12901         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
12902
12903 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12904
12905         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
12906         case.
12907
12908 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
12909
12910         * invoke.texi (Environment Variables): Document relative path
12911         lookup.
12912         * gcc.c (DIR_UP): If not defined, define as "..".
12913         (standard_bindir_prefix): New static, holds target location to
12914         install binaries.
12915         (split_directories): New function to split a filename into
12916         component directories.
12917         (free_split_directories): New function, release memory allocated
12918         by split_directories.
12919         (make_relative_prefix): New function, make a relative pathname if
12920         the compiler is not in the expected location.
12921         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
12922         can figure out an appropriate prefix from argv[0].
12923         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
12924         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
12925         STANDARD_BINDIR_PREFIX.
12926
12927 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12928
12929         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
12930         in c4x.c.
12931         * config/c4x/c4x.h: Moved prototypes to c4x.h.
12932         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
12933         c4x_secondary_memory_needed) Delete.
12934         (fp_zero_operand): Add mode argument.
12935
12936 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
12937
12938         * reload1.c (reload_reg_free_for_value_p): Don't use a register
12939         that is in reload_reg_used.
12940
12941 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
12942
12943         * config/arm/arm-protos.h: New file: Prototypes for functions
12944         defined in arm.c and pe.c.
12945         * config/arm/arm.h: Fix compile time warnings.
12946         * config/arm/arm.c: Fix compile time warnings.
12947         * config/arm/pe.h: Fix compile time warnings.
12948         * config/arm/aout.h: Fix compile time warnings.
12949
12950 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
12951
12952         * config/m32r/m32r-protos.h: New file: Prototypes for functions
12953         defined in m32r.c
12954
12955         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
12956         Add support for subtargets.
12957         Add prototypes for new predicates.
12958         Add scheduling macros.
12959
12960         * config/m32r/m32r.c: Fix compile time warnings.
12961         (int8_operand): New predicate function.
12962         (reg_or_cmp_int16_operand): New predicate function.
12963         (extend_operand): New predicate function.
12964         (m32r_adjust_code): New scheduling function.
12965         (m32r_adjust_priorty): New scheduling function.
12966         (m32r_sched_init): New scheduling function.
12967         (m32r_sched_reorder): New scheduling function.
12968         (m32r_sched_variable_issue): New scheduling function.
12969         (direct_return): New codegen function.
12970         (m32r_not_same_reg): New rtl testsing function.
12971
12972         * config/m32r/m32r.md: Fix compile time warnings.
12973         Add support for pre decrement and post increment memory
12974         references.
12975         Add S<cc> patterns.
12976         Add fabs patterns.
12977
12978 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12979
12980         * global.c (EXECUTE_IF_CONFLICT): Don't define.
12981         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
12982         (find_reg): Likewise.
12983
12984 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
12985
12986         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
12987         to avoid assembler errors.
12988
12989 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
12990
12991         * config/v850/v850-protos.h: New file: Prototypes for functions
12992         defined in v850.c
12993         * config/v850/v850.h: Move prototypes to v850-protos.h
12994         * config/v850/v850.c: Move prototypes to v850-protos.h
12995         * config/v850/v850.md: Fix compile time warnings.
12996
12997         * config/fr30/fr30-protos.h: New file: Prototypes for functions
12998         defined in fr30.c
12999         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
13000         * config/fr30/fr30.c: Fix compile time warnings.
13001         * config/fr30/fr30.md: Fix compile time warnings.
13002
13003 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
13004
13005         * tree.h (get_containing_scope): Declare it.
13006         * tree.c (get_containing_scope): New fucntion.
13007         (decl_function_context): Use it.
13008         * toplev.c (rest_of_compilation): Use get_containing_scope.
13009
13010 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13011
13012         * Makefile.in (rtl.o): Depend on toplev.h.
13013
13014 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
13015
13016         * cse.c (delete_trivially_dead_insns): Replace alloca with
13017         xmalloc/xcalloc.
13018         * except.c (update_rethrow_references): Likewise.
13019         (init_eh_nesting_info): Likewise.
13020         * function.c (identify_blocks): Likewise.
13021         * gcse.c (dump_hash_table): Likewise.
13022         * graph.c (print_rtl_graph_with_bb): Likewise.
13023         * loop.c (combine_movables): Likewise.
13024         (move_movables): Likewise.
13025         (count_loop_regs_set): Likewise.
13026         (strength_reduce): Likewise.
13027         * profile.c (compute_branch_probabilities): New function, split
13028         out from ...
13029         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
13030         * regclass.c (regclass): Likewise.
13031         * regmove.c (regmove_optimize): Likewise.
13032         * toplev.c (compile_file): Likewise.
13033         (main): Don't mess with the stack rlimit.
13034
13035 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
13036
13037         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
13038         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
13039
13040 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
13041
13042         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
13043
13044 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
13045
13046         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
13047         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
13048         macro expansion.
13049
13050 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
13051
13052         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
13053
13054 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
13055
13056         * gcse.c (post_dominators): Kill.
13057         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
13058         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
13059         pass in a pdom array since we do not need pdoms.
13060         * haifa-sched.c (schedule_insns): Similarly.
13061         * flow.c (compute_dominators): Remove dead function.
13062         (compute_flow_dominators): Do not compute doms or pdoms if the
13063         caller does not request them.  Split up loop to build doms and
13064         pdoms.  Use a worklist to compute doms and pdoms.
13065         * basic-block.h (compute_dominators): Remove prototype.
13066
13067 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
13068
13069         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
13070         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
13071         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
13072         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
13073         (cant_move, fed_by_spec_load, is_load_insn): Remove.
13074         (schedule_region): Remove unused variable.
13075         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
13076
13077 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
13078
13079         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
13080         (update_equiv_regs): Likewise.
13081         (block_alloc): Likewise.
13082         * reg-stack.c (reg_to_stack): Likewise.
13083         (convert_regs_2): Likewise.
13084         * reload1.c (reload_as_needed): Likewise.
13085
13086 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
13087
13088         * Makefile.in (dbxout.o): Depend on ggc.h.
13089         (dwarf2out.o): Likewise.
13090         (xcoffout.o): Likewise.
13091         * dbxout.c: Include ggc.h.
13092         (dbxout_init): Register lastfile as a root.
13093         * dwarf2out.c: Include ggc.h.
13094         (dwarf2out_line): Register lastfile as a root.
13095         * xcoffout.c: Include ggc.h.
13096         (xcoffout_source_line): Register xcoff_lastfile as a root.
13097
13098 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
13099
13100         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
13101
13102 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
13103
13104         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
13105         defined.
13106         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
13107
13108 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13109
13110         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
13111         (EXECUTE_IF_CONFLICT): Likewise.
13112         (ALLOCNO_LIVE_P): Avoid signed division.
13113         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
13114         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
13115         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
13116
13117 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
13118
13119         * haifa-sched.c (schedule_block): Don't crash if there's no
13120         next insn for an interblock movement.
13121         (add_branch_dependences): Don't allow clobber insns to move either.
13122
13123 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
13124
13125         * i386.c (split_xf): New.
13126         * i386-protos.h: Declare it.
13127         * i386.md (movxf_1): Add general regs alternatives.
13128         (movxf_1+1): New splitter for same.
13129
13130 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
13131
13132         * function.c (purge_addressof_1): Add missing return values.
13133
13134 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
13135
13136         * function.c (is_addressof): New function.  Returns true if
13137         the given piece of RTL is an ADDRESSOF.
13138         (purge_addressof_1): Make boolean.  Return false if the
13139         ADDRESSOFs could not be purged.
13140         (purge_addressof): If ADDRESSOFs could not be purged from the
13141         notes attached to an insn, remove the offending note(s),
13142         unless they are attached to a libcall.
13143
13144 1999-11-05  Andreas Jaeger  <aj@suse.de>
13145
13146         * genoutput.c (null_operand =): Initialize all fields.
13147
13148         * errors.h: Add extern to prototypes.
13149
13150 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
13151
13152         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
13153         * configure: Rebuilt.
13154
13155 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13156
13157         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
13158         (mirror_conflicts): New function.
13159         (global_alloc): Call it.
13160         (expand_preferences): Remove redundant CONFLICTP test.
13161         (find_reg, dump_conflicts): Likewise.
13162         (prune_preferences): Process conflicts one word at a time.
13163
13164 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
13165
13166         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
13167         instead of an explicit loop.
13168
13169 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
13170
13171         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
13172         if REG_RETVAL check succeeds, then put classp in src_elt.
13173
13174 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
13175
13176         * function.c (pad_to_arg_alignment): Only update argument_pad
13177         if the argument's alignment is greater than STACK_BOUNDARY.
13178
13179 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
13180
13181         * bitmap.h (BITMAP_XFREE): New.
13182         * flow.c (life_analysis): Use it.
13183         (life_analysis_1): Free blocks.
13184
13185         * combine.c (undo_commit): New.
13186         (try_combine): Use it.  Don't zap undobuf.undos.
13187         (combine_instructions): Don't zap undobuf.undos; free the
13188         undobuf.frees list.
13189
13190         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
13191
13192         * stmt.c (cost_table_): New.
13193         (estimate_case_costs): Use it instead of xmalloc.
13194
13195         * toplev.c (compile_file): Reuse dumpname memory instead
13196         of strdup'ing it.
13197
13198 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
13199
13200         * reg-stack.c (convert_regs_1): Initialize target_stack->top
13201         after verifying an EH edge.
13202
13203         * haifa-sched.c (init_rgn_data_dependences): Correctly
13204         size bb_pending_lists_length when zeroing.
13205
13206 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
13207
13208         * function.c (diddle_return_value): New.
13209         (expand_function_end): Use it.
13210         * stmt.c (expand_null_return): Likewise.
13211         (expand_value_return): Likewise.
13212
13213         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
13214
13215         * reload1.c (reload): Don't remove return value clobbers.
13216
13217 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
13218
13219         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
13220
13221 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
13222
13223         * cse.c (cse_main): Use xmalloc, not alloca.
13224         (cse_basic_block): Likewise.
13225         * local-alloc.c (local_alloc): Likewise.
13226
13227 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
13228                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13229
13230         * rtl.c: Include toplev.h.
13231         (fatal): Remove declaration.
13232
13233 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
13234
13235         * haifa-sched.c (schedule_block): Fix thinko.
13236
13237 1999-11-03  James McKelvey <mckelvey@fafnir.com>
13238
13239         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
13240         S_IR* defined values
13241
13242 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
13243
13244         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
13245         call `malloc' instead.
13246
13247 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
13248
13249         * flags.h (flag_renumber_insns): Declare.
13250         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
13251         renumbering table.
13252         * rtl.h (renumber_insns): Change prototype.
13253         * toplev.c (flag_renumber_insns): Define.
13254         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
13255
13256 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
13257
13258         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
13259         and fpsqrtd.  Use them and create fdiv function unit to more
13260         accurately represent fpu sqrt pipeline semantics on UltraSparc.
13261         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
13262
13263 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
13264
13265         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
13266         3 on UltraSparc.
13267         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
13268         insn into ready list, do not use just a raw swap.
13269
13270 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
13271
13272         * rtl.h (renumber_insns): New function.
13273         (remove_unnecessary_notes): Likewise.
13274         * emit-rtl.c (renumber_insns): Define.
13275         (remove_unncessary_notes): Likewise.
13276         * toplev.c (rest_of_compilation): Remove dead code.
13277         Use renumber_insns and remove_unncessary_notes.
13278
13279         * gcse.c (struct null_pointer_info): New type.
13280         (get_bitmap_width): New function.
13281         (current_block): Remove.
13282         (nonnull_local): Likewise.
13283         (nonnull_killed): Likewise.
13284         (invalidate_nonnull_info): Take a null_pointer_info as input.
13285         (delete_null_pointer_checks_1): New function.
13286         (delete_null_pointer_checks): Use it.
13287
13288         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
13289         (split_edges): Likewise.
13290         (schedule_block): Likewise.
13291         (compute_block_backward_dependencies): Likewise.
13292         (schedule_region): Likewise.
13293         (schedule_insns): Likewise.
13294
13295 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
13296
13297         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
13298         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
13299         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
13300         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
13301         * jump.c (delete_unreferenced_labels): Don't delete if
13302         LABEL_ALTERNATE_NAME is set.
13303         * print-rtl.c (print_rtx): Dump alternate name.
13304         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
13305         * rtl.h (LABEL_ALTERNATE_NAME): Define.
13306         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
13307         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
13308
13309 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13310
13311         * fix-header.c (recognized_extern, recognized_function): Constify
13312         a char*.
13313
13314         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
13315         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
13316         (compute_available): Remove unused variable `last'.
13317         (compute_nearerout): Remove unused variable `temp_bitmap'.
13318         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
13319         Remove unused variable `x'.
13320
13321         * scan.h (recognized_function, recognized_extern): Constify a
13322         char*.
13323
13324         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
13325
13326 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13327
13328         * varasm.c (decode_rtx_const): Use XSTR to access the string
13329         of a SYMBOL_REF.
13330
13331 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
13332
13333         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
13334
13335 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13336
13337         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
13338
13339 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
13340
13341         * pa.c (ireg_operand): New function.
13342         * pa.h (PREDICATE_CODES): Handle ireg_operand.
13343         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
13344         Fix out of date comment.
13345
13346         * pa.md (negdi2): Turn into expander + anonymous pattern.
13347
13348         * reload.c (find_reloads): Fix typos in recent change.
13349
13350         * dwarf2out.c: Do not include ctype.h.
13351
13352 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13353
13354         * regclass.c (record_reg_classes): Always use may_move_cost when
13355         seeing how operand fits with various register classes.
13356
13357 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
13358
13359         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
13360         * toplev.c: Revert Nov 1 13:22 change.
13361
13362 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
13363
13364         * config/pa/pa.md (height reduction patterns): Add checks for
13365         overlapping operands to avoid semantic-destroying splits for
13366         height reduction patterns.
13367
13368 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13369
13370         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
13371         have been an hyphen, fixed.
13372         * configure: Rebuilt.
13373
13374 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
13375
13376         * config/arm/tpe.h: Add prototypes for exported functions.
13377         * config/arm/pe.c: Fix compile time warnings.
13378         * config/arm/semi.h: Fix compile time warnings.
13379         * config/arm/arm.c: Fix compile time warnings.
13380         * config/arm/arm.h: Fix compile time warnings.
13381         * config/arm/arm.md: Fix compile time warnings.
13382         * config/arm/thumb.c: Fix compile time warnings.
13383         * config/arm/thumb.h: Fix compile time warnings.
13384         * config/arm/thumb.md: Fix compile time warnings.
13385
13386 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
13387
13388         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
13389         detection code
13390
13391         * unroll.c (unroll_loop): Remove LOOP notes when loop is
13392         completely unrolled.
13393
13394 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13395
13396         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
13397
13398 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
13399
13400         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
13401         * rtl.h (rtx_equal_p): Move prototype.
13402         * rtl.c (rtx_equal_function_value_matters): Move from
13403         rtlanal.c
13404         (rtx_equal_p): Likewise.
13405         * rtlanal.c (rtx_equal_function_value_matters): Delete.
13406         (rtx_equal_p): Likewise.
13407
13408 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
13409
13410         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
13411         ! HAS_INIT_SECTION.
13412
13413 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
13414
13415         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
13416
13417         * pa.h (ADDR_VEC_ALIGN): Define.
13418
13419         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
13420         notes when presented with "if (foo) break; end_of_loop" and
13421         the break sequence gets moved out of the loop.
13422
13423         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
13424         Remove explicit zero initializations of entries within MAP.
13425
13426 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
13427
13428         * reg-stack.c (convert_regs_1): Handle EH edges specially.
13429
13430 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
13431
13432         * bitmap.h (BITMAP_XMALLOC): New macro.
13433         * flow.c (CLEAN_ALLOCA): Remove.
13434         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
13435         (life_analysis): Likewise.
13436         (update_life_info): Don't use CLEAN_ALLOCA.
13437         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
13438         (calculate_global_regs_live): Likewise.
13439         (print_rtl_with_bb): Likewise.
13440         (verify_flow_info): Likewise.
13441         * global.c (global_alloc): Likewise.
13442         (global_conflicts): Likewise.
13443         * integrate.c (save_for_inline_nocopy): Likewise.
13444         (expand_inline_function): Likewise.
13445         * jump.c (jump_optimize_1): Likewise.
13446         (duplicate_loop_exit_test): Likewise.
13447         (thread_jumps): Likewise.
13448         * loop.c (loop_optimize): Likewise.
13449         (combine_givs): Likewise.
13450         (recombine_givs): Likewise.
13451         * reorg.c (dbr_schedule): Likewise.
13452         * unroll.c (unroll_loop): Likewise.
13453
13454         * combine.c (combine_instructions): Use xmalloc instead of alloca.
13455
13456 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
13457
13458         * toplev.c (rest_of_compilation): Don't optimize the CFG
13459         when rebuilding, just before dbr.
13460
13461 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13462
13463         * output.h (assemble_end_function, assemble_destructor,
13464         assemble_constructor, assemble_gc_entry, assemble_global,
13465         assemble_label, output_constant_pool) Constify a char*.
13466
13467         * varasm.c (assemble_destructor, assemble_constructor,
13468         assemble_gc_entry, assemble_end_function, assemble_global,
13469         assemble_label, output_constant_pool): Likewise.
13470
13471 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
13472
13473         * config/arm/thumb.c (thumb_expand_prologue): Add comments
13474         explaining what is goin on in this function.
13475
13476 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13477
13478         * regclass.c (record_reg_classes): In matching case, recompute
13479         costs since the direction of movement is different.
13480
13481 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
13482
13483         * resource.c (mark_target_live_regs): For unconditional branches,
13484         the resources found at the branch target should be added to the
13485         resources found so far, not intersected.
13486
13487 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
13488
13489         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
13490         old cpp's.
13491         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
13492         (sys/mman.h): Include this file only if #HAVE_MMAP.
13493         (run_compiles): Initialize `esac_fmt' with one old KR string, not
13494         with automatically concatenated ANSI strings.
13495
13496 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
13497
13498         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
13499         (DIV_ROUND_UP): Robustify.
13500         (ggc_recalculate_in_use_p): New function.
13501         (release_pages): Don't inline it.
13502         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
13503         outer contexts.
13504         (ggc_pop_context): Use ggc_recalculate_in_use_p.
13505         (clear_marks): Always save in_use_p.
13506         (sweep_pages): Use ggc_recalculate_in_use_p.
13507         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
13508         Release pages before counting statistics.
13509
13510 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
13511
13512         * toplev.c (rest_of_compilation): Fix thinko in this change:
13513
13514         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
13515
13516         (rest_of_compilation): If inside an inlined external function,
13517         pretend we are just being declared.
13518
13519 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
13520
13521         * flow.c (calculate_global_regs_live): Fix thinko.
13522
13523         * integrate.c (expand_inline_function): Fix bugs in previous
13524         change from Oct 28, 1999.
13525
13526 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
13527
13528         * stmt.c (expand_value_return): Fix typo in this change:
13529
13530         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13531         (expand_value_return): Correctly convert VAL when promoting function
13532         return; support RETURN_REG being a PARALLEL.
13533
13534 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
13535
13536         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
13537
13538 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13539
13540         * hard-reg-set.h (reg_names): Constify a char*.
13541
13542         * regclass.c  (reg_names): Likewise.
13543
13544         * regs.h (reg_names): Likewise
13545
13546         * a29k/a29k.c (reg_names): Delete declaration.
13547
13548         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
13549
13550         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
13551         arc_output_function_epilogue): Likewise.
13552
13553         * elxsi/elxsi.c (reg_names): Likewise.
13554
13555         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
13556
13557         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
13558         Likewise.
13559
13560         * m88k/m88k.c (output_function_profiler): Likewise.
13561
13562         * sparc/sparc.c (sparc_flat_output_function_prologue,
13563         sparc_flat_output_function_epilogue): Likewise.
13564
13565 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
13566
13567         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
13568         warning from -Wuninitialized and put it under -W.
13569         * function.c (uninitialized_vars_warning): Warn only when the
13570         corresponding flag is set.
13571
13572 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
13573
13574         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
13575         is nonzero and the single set does not have an elt, then assign
13576         it an elt.
13577
13578         * simplify-rtx.c: New file.
13579         * Makefile.in (OBJS): Add simplify-rtx.o
13580         (simplify-rtx.o): Add dependencies.
13581         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
13582         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
13583         (cse_gen_binary, simplify_unary_operation): Delete.
13584         (simplify_binary_operation, simplify_plus_minus): Likewise.
13585         (check_fold_consts, simplify_relation_operation): Likewise.
13586         (simplify_ternary_operation): Likewise.
13587         (delete_trivially_dead_insns): Simplify the contents of the
13588         REG_EQUAL note before trying to substitute it into the source
13589         of the reg-reg copy at the end of a libcall sequence.
13590
13591         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
13592         references/callers changed.
13593
13594         * mn10200.c (mn10200_va_arg): Force the return value into a
13595         register.
13596
13597         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
13598
13599         * cccp.c (macroexpand): Avoid out of range accesses for omitted
13600         arguments.
13601
13602 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
13603
13604         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
13605
13606 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
13607
13608         * fold-const.c (fold): Fix thinko when optimizing comparisons
13609         against -0.0.
13610
13611 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
13612
13613         * gcc.texi (Passes): Update front-end files to their current
13614         location.
13615
13616 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
13617
13618         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
13619         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
13620         (PREDICATE_CODES): Add addition_operation.
13621         * alpha-protos.h (addition_operation): Declare.
13622         (secondary_reload_class): Likewise.
13623         * alpha.c (addition_operation): New.
13624         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
13625         * alpha.md (adddi3): Turn into expander.
13626         (*lda, *adddi_2): New.
13627         (movsf, movdf patterns): Don't preference integer regs.
13628         (movsi, movdi patterns): Don't preference fp regs.
13629
13630 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
13631
13632         * genrecog.c (write_switch): Check for duplicate CODE cases.
13633
13634 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
13635
13636         * ggc-common.c: Update pre-function commentary.
13637         * ggc-page.c: Likewise.
13638         (poison): Remove.
13639         (poison_pages): Use memset directly.
13640         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
13641         (ggc_collect): Poison before sweeping.
13642         * ggc-simple.c: Update pre-function commentary.
13643         (ggc_alloc_obj): Poison non-zeroed memory.
13644
13645 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
13646
13647         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
13648         match format string, even on 64-bit hosts.
13649         * gcc-page.c (ggc_page_print_statistics): Likewise.
13650
13651 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
13652
13653         * config/i386/i386.c (ix86_cpu): Revert last patch.
13654         * config/i386/i386.h (ix86_cpu): Ditto.
13655
13656 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
13657
13658         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
13659         TYPE_SIZE, convert type of result to sizetype.
13660
13661 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
13662
13663         * flow.c (count_or_remove_death_notes): Equate NULL with the
13664         universal set.
13665
13666         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
13667         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
13668         dbr_schedule.
13669
13670         * i386.c (pic_label_no): Delete.
13671         (ix86_attr_length_default): Don't use single_set to peek
13672         inside a parallel.
13673
13674         * recog.c (peephole2_optimize): Allow recog_next_insn to index
13675         the first insn after bb->end.
13676         * i386.md (push mem peeps): Scratch is live after evaluation
13677         of the memory.
13678         (cmp mem peep): Similarly.
13679
13680 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
13681
13682         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
13683         * function.c (pad_to_arg_alignment): Add missing braces.
13684
13685 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13686
13687         * alpha/alpha-protos.h (literal_section): Add prototype.
13688         (alpha_need_linkage, alpha_start_function,alpha_end_function):
13689         Constify a char*.
13690
13691         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
13692         prototype.
13693         (alpha_start_function, alpha_end_function, float_strings,
13694         alpha_need_linkage): Constify a char*
13695
13696         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
13697
13698         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
13699
13700         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13701
13702         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
13703
13704 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13705
13706         * flow.c (debug_flow_info): Add prototype.
13707
13708         * gcc.c (main): Likewise.
13709
13710         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
13711         Likewise.
13712
13713         * reload1.c (failed_reload, set_reload_reg): Likewise.
13714
13715         * mips-tfile.c (main): Likewise.
13716         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
13717         with ATTRIBUTE_NORETURN.
13718
13719 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
13720
13721         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
13722         DECL is not a memory ref.
13723
13724 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
13725
13726         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
13727         * config/i386/i386.c (ix86_cpu): Add extern attribute.
13728
13729 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
13730
13731         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
13732         * config/mips/elf64.h: ditto.
13733
13734 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
13735
13736         * expr.c (emit_push_insn): New argument alignment_pad.
13737         Update all callers.  Adjust stack pointer based on alignment pad.
13738         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
13739         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
13740         (locate_and_pad_parm): New argument alignment_pad.  Update all
13741         callers.
13742         * expr.h (emit_push_insn): Update prototype.
13743         (locate_and_pad_parm): Update prototype.
13744         * calls.c (arg_data):  Add new field alignment_pad.
13745         (initialize_argument_information): Initialize alignment_pad.
13746
13747 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
13748
13749         * except.c (free_eh_nesting_info): Free the info itself.
13750         * function.c (free_after_compilation): Don't free NULL.
13751         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
13752         (pre_edge_insert): Free inserted.
13753         * stmt.c (free_stmt_status): Don't free NULL.
13754
13755 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
13756
13757         * gcov.c (DIR_SEPARATOR): Provide default.
13758         (output_data): Add test for MS-DOS format absolute filename.
13759         (fancy_abort): Correct program name.
13760         (open_files): Open all files in binary mode.
13761         * libgcc2.c (__bb_exit_func): Likewise.
13762
13763         * profile.c (init_branch_prob): Specify binary when opening files.
13764
13765         * flags.h (flag_unwind_tables): New decl.
13766         * toplev.c (flag_unwind_table): New definition.
13767         (f_options): Add -funwind-tables.
13768         (decode_g_option): Clarify warning when unknown -g option is given.
13769         (rest_of_compilation): If inside an inlined external function,
13770         pretend we are just being declared.
13771
13772         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
13773         (dwarf2out_frame_finish): Likewise.
13774
13775 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
13776
13777         * fold-const.c (merge_ranges): If not in0, but in1, handle
13778         upper bounds equal like subset case.
13779
13780 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
13781
13782         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
13783         passed in a register but moved to the stack.
13784
13785 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
13786
13787         * gcc.c (pass_exit_codes, greatest_status): New variables.
13788         (struct option_map): Add entry for "--pass-exit-codes".
13789         (execute): Update greatest_status if error.
13790         (display_help): Add documentation for -pass-exit-codes.
13791         (process_command): Handle -pass-exit-codes.
13792         (main): Look at pass_exit_codes and greatest_status on call to exit.
13793
13794 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13795
13796         * reload.c (find_reloads): Refine test for no input reload
13797         case to not includes reloads emitted after insn.
13798
13799         * function.c (find_temp_slots_from_address): Handle sum involving
13800         a register that points to a temp slot.
13801         (update_temp_slot_address): Make recursive call if both old and
13802         new are PLUS with a common operand.
13803         * calls.c (expand_call): Mark temp slot for result as having
13804         address taken.
13805
13806         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
13807
13808         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
13809         component as well as "BINUTILS".
13810
13811         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
13812         * integrate.c (copy_rtx_and_substitute): Likewise.
13813         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
13814         All callers changed.
13815         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
13816
13817         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
13818         gdb extensions, write size of type; also be more consistent
13819         in using references when this is a subtype.
13820
13821         * pa.md (extv, extzv, insv): Use define_expand to reject constant
13822         that is out of range.
13823
13824         * loop.c (unknown_constant_address_altered): New variable.
13825         (prescan_loop): Initialize it.
13826         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
13827         (invariant_p, case MEM): Remove handling for volatile and readonly;
13828         check new variable if readonly.
13829         (check_dbra_loop): Chdeck unknown_constant_address_altered.
13830
13831         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
13832         (addr_affects_sp_p): Removed from note_mem_written and only
13833         define #ifdef AUTO_INC_DEC.
13834
13835         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
13836
13837         * regclass.c (record_reg_classes): Properly handle register move
13838         directions.
13839
13840         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
13841         Don't think valid if both operands are invalid.
13842         (struct constant_descriptor): New field RTL.
13843         (mark_const_hash_entry): Mark it.
13844         (record_constant{,_rtx}): Initialize it.
13845         (output_constant_def): Allocate RTL in permanent obstack and
13846         save in table.
13847         ({record,compare}_constant_1): Modes must match for
13848         CONSTRUCTOR of ARRAY_TYPE.
13849
13850         * c-common.h (initializer_constant_valid_p): Delete decl from here.
13851         * output.h (initializer_constant_valid_p): Move decl to here.
13852         * c-common.c (initializer_constant_valid_p): Delete function from here.
13853         * varasm.c (initializer_constant_valid_p): Move function to here.
13854
13855         * tree.h (STRIP_SIGN_NOPS): New macro.
13856         * fold-const.c (optimize_minmax_comparison): New function.
13857         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
13858         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
13859         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
13860         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
13861         widening conversions.
13862         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
13863         to look at size of mode, not precision of type; also add missing cases.
13864         (optimize_bit_field_compare, decode_field_reference): Don't try to
13865         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
13866
13867         * dwarf2out.c (ctype.h): Include.
13868         (dwarf2out_set_demangle_name_func): New function.
13869         (size_of_line_info): Deleted.
13870         (output_line_info): Compute size of line info table from difference
13871         of labels.
13872         (base_type_die, add_name_attribute): Call demangle function, if any.
13873         (field_byte_offset): Use bits per word for variable length fields.
13874         (gen_array_type_die): Add array name.
13875         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
13876         (dwarf2out_add_library_unit_info): New function.
13877
13878         * explow.c (set_stack_check_libfunc): New function.
13879         (stack_check_libfunc): New static variable.
13880         (probe_stack_range): Allow front-end to set up a libfunc to call.
13881
13882         * combine.c (simplify_comparison): When making comparison in wider
13883         mode, check for having commuted an AND and a SUBREG.
13884         (contains_muldiv): New function.
13885         (try_combine): Call it when dividing a PARALLEL.
13886         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
13887         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
13888         a PLUS.
13889         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
13890         use one of the CLOBBERs instead.
13891         (if_then_else_cond): If comparing against zero, just return thing
13892         being compared.
13893
13894         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
13895         Don't generate shifts and subtract if have conditional arithmetic.
13896
13897         * rtl.h (delete_barrier): New declaration.
13898         * jump.c (jump_optimize): Set up to handle conditional call.
13899         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
13900         (delete_barrier): New function.
13901
13902         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
13903
13904         * recog.c (nonmemory_operand): Accept ADDRESSOF.
13905
13906         * tree.c (build_type_attribute_variant): Push to obstack of
13907         ttype around type_hash_canon call.
13908
13909         * expr.c (placeholder_list): Move decl to file scope.
13910         (expand_expr): Don't force access to volatile just because its
13911         address is taken.
13912         If ignoring reference operations, just expand the operands.
13913         (expand_expr, case COMPONENT_REF): Propagate
13914         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
13915         Refine test for using bitfield operations vs pointer punning.
13916         (expand_expr, case CONVERT_EXPR): If converting to
13917         BLKmode UNION_TYPE from BLKmode, just return inner object.
13918         Use proper mode in store_field call.
13919         Properly set sizes of object to store and total size in store_field
13920         call for convert to union.
13921         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
13922         memory (like for ADDR_EXPR).  Also, don't put constant in register if
13923         we'll want it in memory.
13924         (readonly_fields_p): New function.
13925         (expand_expr, case INDIRECT_REF): Call it if LHS.
13926         (expand_assignment): Handle a RESULT_DECL where
13927         DECL_RTL is a PARALLEL.
13928         (do_jump, case WITH_RECORD_EXPR): New case.
13929         (get_inner_reference): Always go inside a CONVERT_EXPR
13930         and NOP_EXPR if both modes are the same.
13931         (store_field): Use bitfield operations if size of bitsize is not same
13932         as size of RHS's type.
13933         Check for bitpos not a multiple of alignment in BLKmode case.
13934         Do block move in largest possible alignment.
13935         (store_constructor): Set BITSIZE to -1 for variable size and properly
13936         in case of array of BLKmode.
13937         (expand_expr_unaligned): New function.
13938         (do_compare_and_jump): Call it.
13939
13940         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
13941         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
13942         does not include 'o'.
13943
13944         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
13945         both SET_DEST and SET_SRC reference a virtual register.
13946         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
13947
13948         * integrate.c (expand_inline_function): Handle case of setting
13949         virtual stack vars register (from built in setjmp); when parameter
13950         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
13951         (subst_constant): Add new parm, MEMONLY.
13952         (expand_inline_function, integrate_parm_decls): Pass new parm.
13953         (integrate_decl_tree): Likewise.
13954         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
13955         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
13956         (copy_rtx_and_substitute, case SET): Add explicit calls to
13957         copy_rtx_and_substitute for both sides.
13958
13959         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
13960         constraints.
13961         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
13962         within INDEX_TYPE, instead of before.
13963         (fixup_gotos): Use f->target_rtl, not the next insn,
13964         since latter may be from a later fixup.
13965         (expand_value_return): Correctly convert VAL when promoting function
13966         return; support RETURN_REG being a PARALLEL.
13967         (expand_return): When checking for result in regs and having
13968         cleanup, consider PARALLEL in DECL_RTL as being in regs.
13969
13970 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
13971
13972         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
13973         last_nominal_fname): Mark const.
13974         (struct include_hash: name, nshort, control_macro): Mark
13975         const.
13976         (struct macrodef: symnam): Mark const.
13977         (struct if_stack: fname): Mark const.
13978         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
13979         (IStable): New character-syntax array which encompasses all
13980         the old is_foo arrays.
13981         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
13982         is_space): New macros for interrogating IStable.
13983         (check_macro_name): Kill last argument.  All callers changed.
13984
13985         * cppinit.c (initialize_char_syntax): Delete.
13986         (is_idchar, is_idstart, is_hor_space, is_space,
13987         trigraph_table): Delete.
13988         (IStable): New.  Initialize with clever macros to avoid
13989         information duplication.
13990         (builtin_array): Table of builtins to get rid of explicit list
13991         in initialize_builtins.
13992         (initialize_builtins): Use builtins_array.
13993         (cpp_start_read): Call init_IStable, and set IStable['$'] if
13994         opts->dollars_in_ident.
13995
13996         * cppexp.c: Change all refs to is_xyz[] arrays to use new
13997         is_xyz() macros.
13998         (cpp_parse_expr): Avoid 'format string is not constant'
13999         warning. Use ISGRAPH to identify printable chars.
14000         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
14001         is_xyz() macros.
14002         (read_and_prescan): Map trigraphs to chars with open-coded
14003         if-else-if-... sequence, not a lookup table.
14004         * cpphash.c: Change all refs to is_xyz[] arrays to use new
14005         is_xyz() macros.
14006         * cpplib.c: Change all refs to is_xyz[] arrays to use new
14007         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
14008         (check_macro_name): Remove ability to report an invalid
14009         assertion name, which is never used.
14010         (do_line): Constify a couple of char *'s.
14011         * cppmain.c (main): Call cpp_cleanup before returning.
14012
14013 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
14014
14015         * ggc.h (struct ggc_statistics): New type.
14016         (ggc_get_size): New function.
14017         (ggc_print_statistics): Likewise.
14018         * ggc-common.c (ggc_stats): New variable.
14019         (ggc_mark_rtx_children): Keep statistics.
14020         (ggc_mark_tree_children): Likewise.
14021         (ggc_print_statistics): New function.
14022         * ggc-page.c (struct globals): Add bytes_mapped field.
14023         (alloc_anon): Update it.
14024         (release_pages): Likewise.
14025         (ggc_get_size): New function.
14026         (ggc_page_print_statistics): New function.
14027         * ggc-simple.c (ggc_get_size): New function.
14028
14029 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
14030
14031         * flow.c (propagate_block): When the last reference to a label
14032         before an ADDR_VEC is deleted because the reference is a dead
14033         store, delete the ADDR_VEC.
14034
14035 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
14036
14037         * resource.c (find_free_register): Don't use the frame pointer
14038         if frame_pointer_needed.
14039
14040 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
14041
14042         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
14043         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
14044
14045         * config/i960/i960.c (i960_va_start): New locals base, num.
14046         Use INDIRECT_REF instead of ARRAY_REF on valist.
14047         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
14048
14049 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
14050
14051         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
14052
14053 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
14054
14055         * tree.def (PLACEHOLDER_EXPR): Update comments.
14056
14057 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14058
14059         * c-common.c (check_format_info): Avoid non-literal format string
14060         warnings when `first_arg_num' is zero.
14061
14062 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14063
14064         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
14065
14066 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
14067
14068         * arm.md (casesi_insn): Add a clobber of the condition code
14069         register.
14070
14071 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
14072
14073         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
14074         used by both cc1 and cc1plus.
14075
14076 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
14077
14078         * config/arm/arm.c: Initialise arm_structure_size_boundary to
14079         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
14080         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
14081         to the value 32 if it has not already been defined.
14082         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
14083         Override definition in arm.h with a value of 8.
14084
14085 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
14086
14087         * c-pragma.c (push_alignment): Don't check the return value
14088         of xmalloc.
14089
14090 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
14091
14092         * sparc.h (ADJUST_COST): Fix thinko.
14093
14094 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
14095
14096         * cccp.c (rescan): Fixed obp pointer handling around call to
14097         check_expand subroutine.
14098
14099 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
14100
14101         * gcse.c (delete_null_pointer_checks): Only record non-null info
14102         for pseudos when examining stores.
14103
14104         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
14105         splitters for these patterns.  Use "#" for output templates.
14106         (addsi3_carryin_shift): New pattern.
14107
14108 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
14109
14110         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
14111         of the function return register into a plain REG until
14112         after function inlining is done.
14113
14114 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
14115
14116         * jump.c (jump_optimize_1): If we did cross-jumping, and
14117         the data will matter, rebuild the CFG.
14118         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
14119         not optimizing.  Don't run shorten_branches.
14120         * toplev.c (rest_of_compilation): Run shorten_branches after
14121         reg_to_stack.
14122
14123 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
14124
14125         * rtl.h (note_stores): Add additional paramter.
14126         * rtlanal.c (reg_set_p_1): Take additional paramter.
14127         (reg_set_last_1): Likewise.
14128         (reg_set_p): Adjust call to note_stores.
14129         (reg_set_last): Likewise.
14130         (note_stores): Pass data parameter to worker function.
14131         * alias.c (record_set): Take additional parameter.
14132         (init_alias_analysis): Pass it.
14133         * caller-save.c (mark_set_regs): Take additional parameter.
14134         (save_call_clobbered_regs): Pass NULL to note_stores.
14135         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
14136         parameter.
14137         (record_dead_and_set_regs_1): Likewise.
14138         (reg_dead_at_p_1): Likewise.
14139         (combine_instructions): Adjust calls to note_stores.
14140         (try_combine): Likewise.
14141         (record_dead_insn): Remove.
14142         (record_dead_and_set_regs): Adjust calls to note_stores.
14143         (reg_dead_at_p): Likewise.
14144         * cse.c (invalidate_skipped_set): Take additional parameter.
14145         (cse_check_loop_start): Likewise.
14146         (cse_check_loop_start_value): Remove.
14147         (cse_set_around_loop): Adjust calls to note_stores.
14148         * flow.c (notice_stack_pointer_modification): Take additional
14149         parameter.  Remove duplicate declaration.
14150         (record_volatile_insns): Adjust calls to note_stores.
14151         * gcse.c (record_set_info): Take additional parameter.
14152         (record_last_set_info): Likewise.
14153         (invalidate_nonnull_info): Likewise.
14154         (record_set_insn): Remove.
14155         (compute_sets): Adjust calls to note_stores.
14156         (last_set_insn): Remove.
14157         (compute_hash_table): Adjust calls to note_stores.
14158         (insert_insn_end_bb): Likewise.
14159         (delete_null_pointer_checks): Likewise.
14160         * global.c (mark_reg_store): Take additional parameter.
14161         (mark_reg_clobber): Likewise.
14162         (reg_becomes_live): Likewise.
14163         (global_conflicts): Adjust calls to note_stores.
14164         (build_insn_chain): Likewise.
14165         * integrate.c (note_modified_parmregs): Take additional parameter.
14166         (mark_stores): Likewise.  Make it static.
14167         (save_for_inline_nocopy): Adjust calls to note_stores.
14168         (try_constants): Likewise.
14169         * integrate.h (mark_stores): Remove declaration.
14170         * jump.c (mark_modified_reg): Take additional parameter.
14171         (thread_jumps): Adjust calls to note_stores.
14172         * local-alloc.c (validate_equiv_mem_from_store): Take additional
14173         parameter.
14174         (no_equiv): Likewise.
14175         (reg_is_set): Likewise.
14176         (validate_equiv_mem): Adjust calls to note_stores.
14177         (update_equiv_regs): Likewise.
14178         (block_alloc): Likewise.
14179         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
14180         (note_addr_stored): Take additional parameter.
14181         (note_set_pseudo_multiple_uses): Likewise.
14182         (record_initial): Likewise.
14183         (prescan_loop): Adjust calls to note_stores.
14184         (strength_reduce): Likewise.
14185         (check_dbra_loop): Likewise.
14186         * regmove.c (flags_set_1): Take additional paramter.
14187         (mark_flags_life_zones): Adjust calls to note_stores.
14188         * reload1.c (mark_not_eliminable): Take additional parameter.
14189         (forget_old_reloads_1): Likewise.
14190         (reload_cse_invalidate_rtx): Likewise.
14191         (reload_cse_check_clobber): Likewise.
14192         (reload_combine_note_store): Likewise.
14193         (move2add_note_store): Likewise.
14194         (reload): Adjust calls to note_stores.
14195         (reload_as_needed): Likewise.
14196         (emit_reload_insns): Likewise.
14197         (reload_cse_regs_1): Likewise.
14198         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
14199         (reload_combine): Adjust calls to note_stores.
14200         * resource.c (update_live_status): Take additional paramter.
14201         (mark_target_live_regs): Adjust calls to note_stores.
14202         * stupid.c (find_clobbered_regs): Take additional parameter.
14203         (stupid_life_analysis): Adjust calls to note_stores.
14204
14205 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
14206
14207         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
14208         definition.
14209
14210         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
14211         definition.
14212
14213         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
14214         of the variable arm_structure_size_boundary.
14215
14216 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
14217
14218         * alias.c (init_alias_analysis): Allocate reg_known_value and
14219         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
14220         and reg_seen.
14221         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
14222         * cse.c (cse_main): Call end_alias_analysis.
14223         * haifa-sched.c (schedule_insns): Likewise.
14224         * local-alloc. (update_equiv_regs): Likewise.
14225         * reload1.c (reload_cse_regs): Likewise.
14226
14227 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14228
14229         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
14230         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
14231         mapping from MASK_FPU.
14232
14233 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
14234
14235         * sparc.md (call): Don't bound structure return size to 0xfff.
14236
14237 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
14238
14239         * resource.c (mark_target_live_regs): Check that the target
14240         insn wasn't created after compute_bb_for_insn.
14241
14242 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
14243
14244         * ggc-page.c (poison_pages): Don't be overzealous.
14245
14246 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
14247
14248         * alias.c: Update comments for ADDRESS.
14249         (nonlocal_reference_p): Look inside the ADDRESS to determine if
14250         it is a local memory reference.
14251
14252         * c-typeck.c (build_function_call): Check that the built-in
14253         function is of class BUILT_IN_NORMAL before trying to recongize
14254         it as BUILT_IN_ABS.
14255         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
14256         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
14257
14258 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
14259
14260         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
14261         of alloca.
14262         (pre_gcse): Likewise.
14263         (hoist_expr_reaches_here_p): Likewise.
14264         (hoist_code): Likewise.
14265         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
14266         code to ...
14267         (pre_expr_reaches_here_p_work): ... here.
14268         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
14269         code to ...
14270         (expr_reaches_here_p_work): ... here.
14271
14272 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
14273
14274         * resource.c (find_basic_block): Delete.
14275         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
14276         (init_resource_info): Call compute_bb_for_insn.
14277
14278 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
14279
14280         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
14281         with already adjacent blocks, but no fallthru.
14282         (merge_blocks_move_successor_nojumps): Simplify.
14283         (debug_flow_info): New.
14284
14285         * toplev.c (rest_of_compilation): Open jump1 dump file before
14286         jump and close after, as opposed to just using dump_rtl.
14287
14288 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14289
14290         * reload.h (earlyclobber_operand_p): Declare.
14291         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
14292         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
14293         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
14294         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
14295
14296 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
14297                           Richard Henderson  <rth@cygnus.com>
14298
14299         * emit-rtl.c (emit_block_insn_before): New.
14300         (emit_block_insn_after): New.
14301         * basic-block.h: Declare them.
14302
14303         * bitmap.h: Protect from multiple inclusion.
14304
14305         * recog.c (scratch_operand): Handle VOIDmode correctly.
14306
14307         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
14308
14309         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
14310         * function.c (assign_parms): Likewise.
14311         * global.c (global_conflicts): Clarify STACK_REGS commentary.
14312
14313         * reg-stack.c (max_uid): Remove.
14314         (blocks, block_begin, block_end, block_drops_in): Remove.
14315         (block_stack_in, block_out_reg_set, block_number): Remove.
14316         (struct block_info_def, BLOCK_INFO): New.
14317         (enum emit_where): New.
14318         (current_block): New.
14319         (BLOCK_NUM): Remove.
14320         (mark_regs_pat, record_label_references): Remove.
14321         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
14322         (nan): New.
14323         (goto_block_pat, print_blocks, dump_stack_info): Remove.
14324         (reg_to_stack): Simplified test for existance of fp code.  Use
14325         flow.c code.  Call shorten_branches after cross-jump opt.
14326         (check_asm_stack_operands): Renamed from record_asm_reg_life.
14327         Return false if the asm doesn't use stack regs.  Don't do life
14328         analysis on the asm.
14329         (emit_pop_insn): Replace function pointer arg `when' with
14330         enum `where'.  Update all callers.
14331         (change_stack): Likewise.  Update basic block end.
14332         (emit_swap_insn): Use current_block->head to limit reverse search
14333         for start of block.  Use emit_block_insn_after.
14334         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
14335         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
14336         structure assignment instead of bcopy.
14337         (print_stack): New.
14338         (convert_regs_entry, convert_regs_exit): New.
14339         (convert_regs_1, convert_regs_2): Split out from convert_regs.
14340         Work on basic blocks and the CFG.
14341         (convert_regs): Use them.
14342
14343         * i386.c (output_fix_trunc): Remove code for DImode input operand
14344         not at top-of-stack.
14345         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
14346         appropriate mode.
14347         (fix_truncdi_1): Allow any mode scratch.
14348
14349 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
14350
14351         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
14352         * linux.h, netbsd.h, vms.h: Not here.
14353
14354 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
14355
14356         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
14357         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
14358         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
14359         CONDITIONAL_REGISTER_USEAGE): Use them.
14360         * config/mips/mips.c (mips_move_1word,mips_move_2words,
14361         gen_conditional_branch,override_options) : Use them.
14362         * config/mips/mips.md : Use them.
14363
14364 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
14365
14366         * i386.md (zero_extendqihi2): Use SImode register name with andl.
14367
14368 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
14369
14370         * integrate.c (function_cannot_inline_p): Don't allow inlining
14371         if setjmp is used.
14372
14373 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14374
14375         * c-parse.in (cast_expr): Constify.
14376
14377         * cccp.c (special_symbol): Likewise.
14378
14379         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
14380
14381         * dwarf2out.c (base_type_die): Likewise.
14382
14383         * global.c (allocno_compare): Likewise.
14384
14385         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
14386
14387         * regclass.c (fix_register): Likewise.
14388
14389         * rtl.h (fix_register): Likewise.
14390
14391         * stupid.c (stupid_reg_compare): Likewise.
14392
14393         * toplev.c (decode_f_option): Likewise.
14394
14395         * tree.c (build_complex_type): Likewise.
14396
14397 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
14398
14399         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
14400
14401 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14402
14403         * reload.c (find_reloads): Compute mode and nregs fields of all
14404         reloads.
14405         * reload1.c (calculate_needs_all_insns): Simplify a bit.
14406         (calculate_needs): Use precomputed mode/nregs values.
14407         (allocate_reload_reg): Likewise.
14408         Break out two...
14409         (failed_reload, set_reload_reg): ... new functions.
14410         (choose_reload_regs_init): New function, mostly broken out from...
14411         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
14412         Also lose one #if 0 block.
14413
14414 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
14415
14416         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
14417         substitution.
14418
14419 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
14420
14421         * tree.h (BLOCK_TYPE_TAGS): Remove.
14422         (BLOCK_END_NOTE): Likewise.
14423         (BLOCK_LIVE_RANGE_FLAG): Likewise.
14424         (BLOCK_LIVE_RANGE_START): Likewise.
14425         (BLOCK_LIVE_RANGE_END): Likewise.
14426         (tree_block): Remove live_range_flag, live_range_var_flag, and
14427         type_tags.  Remove end_note, live_range_start, and live_range_end.
14428         (remember_end_note): Remove prototype.
14429         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
14430         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
14431         remember_end_note.
14432         * ggc-common.c (ggc_mark_tree_children): Don't mark
14433         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
14434         * integrate.c (adjust_copied_decl_tree): Remove.
14435         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
14436         * stmt.c (last_block_end_note): Remove.
14437         (init_stmt): Don't add a GC root for it.
14438         (expand_fixup): Don't set it.
14439         (remember_end_note): Remove.
14440         (expand_end_bindings): Don't set last_block_end_note.
14441
14442 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14443
14444         * reload1.c (reload_reg_free_for_value_p): Show
14445         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
14446         reloads.
14447
14448 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
14449
14450         * expmed.c (extract_bit_field): Allow for the case of non-integer
14451         objects that are smaller than a word (like SFmode on a 64-bit
14452         machine).
14453
14454         * loop.c (basic_induction_var): A non-integer variable which is
14455         being set by a paradoxical subreg is probably not a biv.
14456
14457 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14458
14459         * prefix.c (translate_name) Check for empty prefix string.
14460
14461 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
14462
14463         * Makefile.in (CPP_CROSS_NAME): New variable.
14464         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
14465         xcpp.
14466         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
14467         names of the files to be uninstalled.
14468
14469 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
14470
14471         * collect2.c (IS_DIR_SEPARATOR): Define.
14472         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
14473
14474         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
14475         functions too.
14476
14477         * haifa-sched.c (add_dependence): Update the true dependency
14478         cache the first time we add a true dependence to the LOG_LINKS chain.
14479
14480 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
14481
14482         * fold-const.c (fold): Fix comment.
14483
14484 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14485
14486         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
14487         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
14488         dbxout_start_new_source_file, dbxout_source_file,
14489         dbxout_source_line, dbxout_finish, dbxout_type_fields,
14490         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
14491         Constify a char*.
14492         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
14493         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
14494         (dbxout_block): Initialize variable `blocknum'.
14495
14496         * dbxout.h (dbxout_init, dbxout_finish,
14497         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
14498         dbxout_args, dbxout_source_line): Constify a char*.
14499
14500         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
14501         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
14502         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
14503         low_pc_attribute, high_pc_attribute, body_begin_attribute,
14504         body_end_attribute, comp_dir_attribute, sf_names_attribute,
14505         src_info_attribute, mac_info_attribute, producer_attribute,
14506         lookup_filename, generate_macinfo_entry, fundamental_type_code,
14507         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
14508         dwarfout_undef): Constify a char*.
14509         (add_incomplete_type, retry_incomplete_types): Add prototypes.
14510
14511         * dwarfout.h (dwarfout_define, dwarfout_undef,
14512         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
14513
14514 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
14515
14516         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
14517         (MULTILIB_ISA_DEFAULT): New.
14518         (MULTILIB_DEFAULTS): Use it.
14519         * config/mips/mips.c (): Remove the now unnecessary definition
14520         of MIPS_ISA_DEFAULT.
14521         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
14522         unnecessary definition.
14523
14524 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
14525
14526         * arm.md (pic_load_addr): Add constraints to operand 1.
14527
14528 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
14529
14530         * fixinc/genfixes:  Provide a means for specifying -D options to
14531         AutoGen
14532
14533 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
14534
14535         * arm.c (arm_override_options): Correct initialization of
14536         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
14537         arm_is_strong, and arm_is_6_or_7.
14538
14539         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
14540         (note_set_pseudo_multiple_uses): New function.
14541         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
14542         if a pseudo set in the loop exit is used elsewhere.
14543
14544 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
14545
14546         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
14547
14548 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
14549
14550         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
14551         a single load-address pattern.
14552
14553 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
14554
14555         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
14556         depending on whether or not line-number notes are present.
14557
14558 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14559
14560         * cccp.c (progname, file_buf, default_include, include_file,
14561         macrodef, definition, hashval, wchar_type, user_label_prefix,
14562         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
14563         expand_to_temp_buffer, is_system_include, base_name,
14564         absolute_filename, read_name_map, open_include_file,
14565         record_control_macro, check_precompiled, check_preconditions,
14566         pcfinclude, pass_thru_directive, create_definition,
14567         check_macro_name, comp_def_part, collect_expansion,
14568         check_assertion, read_token_list, assertion_install,
14569         assertion_lookup, eval_if_expression, conditional_skip,
14570         validate_else, skip_quoted_string, quote_string, macarg1,
14571         error_from_errno, install, lookup, hashf, dump_defn_1,
14572         perror_with_name, pfatal_with_name, main, trigraph_pcp,
14573         check_white_space, rescan, handle_directive, monthnames,
14574         special_symbol, do_include, remap_include_file, write_output,
14575         arglist, do_assert, do_unassert, do_line, do_error, do_once,
14576         do_ident, do_sccs, do_xifdef, skip_if_group,
14577         output_line_directive, macroexpand, macarg, change_newlines,
14578         initialize_builtins, make_definition): Constify a char*.
14579
14580         * pcp.h (stringdef): Likewise.
14581
14582 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
14583
14584         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
14585         not of pattern.
14586
14587 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
14588                           Richard Henderson  <rth@cygnus.com>
14589
14590         * alias.c: Include ggc.h.
14591         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
14592         (record_set): Verify enough room in reg_base_value.
14593         (init_alias_analysis): Allocate reg_base_value with xcalloc.
14594         Register it as a GC root.
14595         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
14596         * Makefile.in (alias.o): Depend on ggc.h.
14597
14598         * unroll.c (unroll_loop): Verify the insn before a barrier
14599         is a JUMP_INSN before checking JUMP_LABEL.
14600
14601 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14602
14603         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
14604         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
14605         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
14606         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
14607         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
14608         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
14609
14610 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14611
14612         * output.h (ctors_section, dtors_section, bss_section): Prototype.
14613
14614         * alpha/alpha-interix.h (text_section): Delete prototype.
14615         * alpha/elf.h (text_section): Likewise.
14616         * arm/linux-elf.h (text_section): Likewise.
14617         * arm/linux-telf.h (text_section): Likewise.
14618         * c4x/c4x.h (text_section): Likewise.
14619         * dsp16xx/dsp16xx.h (bss_section): Likewise.
14620         * elfos.h (text_section): Likewise.
14621         * i386/aix386ng.h (text_section): Likewise.
14622         * i386/i386-interix.h (text_section): Likewise.
14623         * i386/sco5.h (text_section): Likewise.
14624         * i386/svr3gas.h (text_section): Likewise.
14625         * nextstep.h (text_section): Likewise.
14626         * psos.h (text_section): Likewise.
14627         * ptx4.h (text_section): Likewise.
14628         * svr3.h (text_section): Likewise.
14629         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
14630
14631 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14632
14633         * final.c (peephole): Delete prototype.
14634
14635         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
14636         (pre_insert_copies): Remove unused variable `bb'.
14637
14638         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
14639         prototypes.
14640
14641         * output.h (peephole): Add prototype.
14642
14643 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
14644
14645         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
14646         -O0.
14647
14648 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
14649
14650         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
14651         for inlined declarations.
14652
14653 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
14654
14655         * arm.c (logical_binary_operator): New fucntion.
14656         * arm.h (logical_binary_operator): Declare it.
14657         (PREDICATE_CODES): Handle logical_binary_operator.
14658         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
14659         output constraints.  Add appropriate splitters.
14660         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
14661         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
14662         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
14663
14664 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14665
14666         * genoutput.c (struct operand_data): New elt eliminable.
14667         (output_operand_data): Write it.
14668         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
14669         (compare_operands): Take it into account.
14670         * recog.h (struct insn_operand_data): New elt eliminable.
14671         * reload1.c (check_eliminable_occurrences, elimination_effects): New
14672         functions.
14673         (old_asm_operands_vec, new_asm_operands_vec): Delete.
14674         (eliminate_regs): Move code that detects changes to elimination
14675         target regs into new function elimination_effects.
14676         Delete one #if 0 block.
14677         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
14678         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
14679         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
14680         Only call eliminate_regs for real operands of the insn, not for parts
14681         of its structure or parts matched by things like match_operator.
14682         Use elimination_effects and check_eliminable_occurrences.  Use
14683         copy_insn to duplicate the pattern when not in the final pass.
14684
14685 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
14686
14687         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
14688         and fld.
14689
14690 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
14691
14692         * fixinc/README: document the "mach" machine matching test
14693         * fixinc/fixfixes.c: Implement the #else/#endif label fix
14694         * fixinc/fixtests.c: Implement the #else/#endif label test
14695         * fixinc/inclhack.def: utilize these tests and fixes
14696         * fixinc/inclhack.sh:  regen
14697         * fixinc/fixincl.x:  regen
14698         * fixinc/fixincl.sh:  regen
14699
14700 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
14701
14702         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
14703         depend on ggc.h.
14704
14705 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
14706
14707         * gcc.1: Document exit codes.
14708
14709 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14710
14711         * calls.c: Include tm_p.h later, so everything we need is defined.
14712         * expr.c: Likewise.
14713         * function.c: Likewise.
14714
14715         * except.c: Include tm_p.h.
14716
14717         * sparc.c: Likewise.
14718         (dwarf2out_cfi_label): Don't prototype.
14719         (check_return_regs, epilogue_renumber,
14720         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
14721         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
14722         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
14723         ultra_schedule_insn): Add static prototype.
14724         (data_segment_operand, text_segment_operand): Call itself with the
14725         proper number of arguments.
14726         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
14727
14728         * sparc.h: Move all declarations to sparc-protos.h.
14729         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
14730         symbolic_operand.
14731
14732         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
14733
14734         * config/svr4.h (text_section, ctors_section, dtors_section): Add
14735         Prototypes.
14736         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
14737         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
14738         ASM_OUTPUT_ASCII): Constify a char*.
14739
14740         * sparc-protos.h: New file for sparc prototypes.
14741
14742 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14743
14744         * function.c (record_insns, contains): Always declare and define.
14745         (record_insns): Mark with ATTRIBUTE_UNUSED.
14746
14747 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
14748
14749         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
14750         to .section when outputting a .bss section to deal with multiple
14751         .bss input sections (as happens with -fdata-sections)
14752         Also output %progbits, not @progbits so the assembler doesn't treat as
14753         a comment.
14754         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
14755
14756         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
14757         thumb parts even when building with non-thumb CPUs, by forcing
14758         thumb mode.
14759
14760 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
14761
14762         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
14763         (movdf_const_intreg_sp64): Similarly.
14764
14765         * local-alloc.c (update_equiv_regs): Check the correct insn
14766         for pre-existing REG_EQUIV notes.
14767
14768 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
14769
14770         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
14771         block reached by a branch if we're not going to actually process
14772         this block.
14773
14774 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
14775
14776         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
14777         a local extern function declaration.
14778
14779 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
14780
14781         * i386.c (ix86_expand_prologue): Properly wrap USE around
14782         reg for CALL_INSN_FUNCTION_USAGE.
14783
14784 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
14785
14786         * config/mips/mips.md (movdf_internal1a): Allow floating-point
14787         move between GP_REGs.
14788
14789 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
14790
14791         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
14792         the mode size when finding out if an offset is legal.
14793
14794 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
14795
14796         * basic-block.h (PROP_*): Move constants from ...
14797         * flow.c: ... here.
14798         (compute_bb_for_insn): Free the array before reallocating.
14799         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
14800         (allocate_reg_life_data): Reset all reg variables collected by
14801         propagate_block.
14802         (get_block_head_tail): Don't convert from bb to block.
14803         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
14804         (find_insn_reg_weight): Take block not bb.
14805         (schedule_block): Don't set block num for moved insns.
14806         (schedule_region): Don't update_life_info or find_insn_reg_weight.
14807         (schedule_insns): Do it here instead.
14808         * combine.c (combine_instructions): Invoke compute_bb_for_insn
14809         before update_life_info.
14810         * recog.c (split_all_insns, peephole2_optimize): Update for
14811         new arg to update_life_info.
14812         * rtlanal.c (remove_note): Cope with NULL note.
14813         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
14814         if we did sched1.
14815
14816 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
14817
14818         * jump.c (jump_optimize_1): More accurately detect casesi insns.
14819
14820         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
14821         block records so that merge_blocks_nomove will clean up correctly.
14822         (split_edge): Handle casesi insns.
14823
14824         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
14825
14826 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
14827
14828         * pa.md (call, call_value): Do not emit a blockage after restoring
14829         the PIC register.
14830
14831 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
14832
14833         * c-typeck.c (c_expand_asm_operands): Fix typo.
14834
14835 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14836
14837         * arm.c (fpu_rhs_operand): Verify modes.
14838         (fpu_add_operand): Likewise.
14839         (di_operand): Likewise.
14840         (soft_df_operand): Likewise.
14841
14842 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
14843
14844         * arm.c (arm_return_in_memory): APCS rules state that the elements
14845         of a structure returned in a register must be 'integer-like'.
14846
14847 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
14848
14849         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
14850         in the source tree when the generated targets are out of date
14851         * fixinc/genfixes: Alter it to run individual fixes for make.
14852         * fixinc/README: rewrite
14853         * fixinc/inclhack.def: moved initial comments to README
14854
14855 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
14856
14857         * toplev.c (main): Do not generate an error message if an
14858         unrecognised command line switch is recognisable by another
14859         language.  If extra_warnings are enabled, then generate a
14860         warning message instead.
14861
14862 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
14863
14864         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
14865         (insert_pack_attributes): Delete prototype.
14866
14867         * c-pragma.c (default_alignment): New static variable.
14868         (push_alignment): Initialize to current effective alignment.
14869         (pop_alignment): Use to set new alignment.
14870         (insert_pack_attributes): Delete function.
14871         (handle_pragma_token): Set default_alignment as well each time
14872         a #pragma pack(<n>) is encountered.
14873
14874 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
14875
14876         * reg-stack.c (stack_result): Aggregates are not returned in
14877         stack registers.
14878
14879 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
14880
14881         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
14882
14883 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
14884
14885         * basic-block.h (set_block_num): Declare.
14886         * flow.c (update_life_info): Don't call compute_bb_for_insn
14887         or free_basic_block_vars.
14888         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
14889         (insn_orig_block): Remove.
14890         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
14891         (schedule_block): Keep BLOCK_NUM up-to-date.
14892         (schedule_insns): Use compute_bb_for_insn.
14893         * recog.c (split_all_insns): Likewise.
14894         (peephole2_optimize): Likewise.
14895
14896 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
14897
14898         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
14899         if the pic register is used.
14900
14901 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14902
14903         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
14904         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
14905         if that tests TREE_PERMANENT.
14906
14907 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
14908
14909         * cse.c (invalidate_for_call): Do not remove memory references from
14910         the table here.  It's handled elsewhere.
14911
14912         * haifa-sched.c (add_dependence): Protect references to the
14913         true dependency cache with #ifdef INSN_SCHEDULING.
14914         (remove_dependence): Similarly.
14915
14916         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
14917         to the cfg code that this is a return instruction.
14918         * mn10300.md (return_internal): Similarly.
14919
14920         * combine.c (get_last_value): If the last set of a register
14921         is after subst_low_cuid, then we can not use it to determine
14922         the register's last value.
14923
14924 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
14925
14926         * Makefile.in: Back out previous change.
14927
14928 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
14929
14930         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
14931
14932         * haifa-sched.c (add_dependence): Only check/update the cache
14933         if it exists.
14934         (remove_dependence): Likewise.
14935         (schedule_insns): Only create the true_dependency_cache if the
14936         average number of instructions in a basic block is very large.
14937
14938 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
14939
14940         * Makefile.in (ggc-common.o): Depend on genrtl.h.
14941         (ggc-simple.o): Likewise.
14942         (ggc-page.o): Likewise.
14943
14944 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
14945
14946         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
14947         Prototype for exported functions.
14948         (pre_lcm, pre_rev_lcm): Remove prototypes.
14949         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
14950         (compute_available): Move to lcm.c, and change parameter order.
14951         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
14952         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
14953         (gcse_main): No longer call compute_preds_succs.  Rebuild the
14954         set table after reach pre pass.
14955         (pre_insert_map, pre_delete_map, edge_list): New.
14956         (alloc_pre_mem): Allocate edge vectors.
14957         (free_pre_mem): Delete edge vectors.
14958         (compute_pre_data): Call new edge based lcm routines.
14959         (process_insert_insn): New function.
14960         (insert_insn_end_bb): Use it.
14961         (pre_edge_insert): New function.
14962         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
14963         needed.
14964         (pre_insert_copies): Revamp using new edge based lcm outputs.
14965         (pre_delete): Likewise.
14966         (one_pre_gcse_pass): Insert & remove fake edges to the exit
14967         block.
14968         (compute_code_hoist_vbeinout): New new edge based routines.
14969         * lcm.c: Remove all the old LCM functions.  Replace with new ones
14970         that work with the new cfg datastructures and work with edges
14971         instead of blocks.
14972
14973 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14974
14975         * reload.h (struct reload): Add new fields "mode" and "nregs".
14976         * reload1.c: Change all occurrences of reload_mode and reload_nregs
14977         to reference the "mode" and "nregs" field within struct reload.
14978
14979 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
14980
14981         * haifa-sched.c (true_dependency_cache): New.
14982         (add_dependence): Use the true dependency cache to avoid expensive
14983         walks down the LOG_LINKS dependency list.  Add entries to the
14984         cache as necessary.
14985         (remove_dependence): Remove entries from the true dependency cache
14986         as needed.
14987         (schedule_insns): Allocate and initialize and free the true
14988         dependency cache.
14989
14990         * haifa-sched.c (schedule_insns): Do not remove inter-block
14991         dependencies anymore.
14992
14993 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
14994
14995         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
14996         * i386/t-winnt: Likewise.
14997
14998 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
14999
15000         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
15001
15002 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
15003
15004         * Makefile.in (LANGUAGES): Omit "proto".
15005         (clean): Remove stale comment about removing unprotoize.c.
15006
15007 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15008
15009         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
15010         using arithmetic on void pointers.
15011
15012 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
15013
15014         * haifa-sched.c (compute_block_forward_dependencies): Only check
15015         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
15016
15017 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
15018
15019         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
15020         (expr_equiv_p): Reject memories with different alias sets.
15021
15022 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
15023
15024         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
15025         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
15026         (f_options): Add "bounded-pointers" and "bounds-check" entries.
15027         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
15028         (lang_init): Set default for flag_bounds_check if still "unspecified".
15029
15030 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15031
15032         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
15033
15034 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15035
15036         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
15037         instructions.
15038
15039 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15040
15041         * config/c4x/c4x.md (*db_noclobber,
15042         *decrement_and_branch_until_zero_noclobber): New patterns and
15043         associated splitters.
15044
15045 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15046
15047         * config/c4x/c4x.md (parallel instruction patterns): Rework
15048         constraints to keep reload happy.
15049
15050 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15051
15052         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
15053         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
15054         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
15055         Add new patterns and associated post-reload splitters.
15056
15057 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15058
15059         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
15060
15061 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15062
15063         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
15064         if appropriate.
15065         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
15066
15067 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15068
15069         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
15070         memory mode.
15071
15072 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
15073
15074         * pa.c (move_operand): Rely on memory_address_p to determine the
15075         validity of non-indexed memory addresses.
15076         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
15077         operand in DFmode and SFmode when generating PA2.0 code.
15078
15079 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
15080
15081         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
15082
15083 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
15084
15085         * mips.c (function_prologue): Fix argument types.
15086         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
15087         (casesi_internal): Write to the scratch register.
15088
15089 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
15090
15091         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
15092         to U_CHAR **.
15093         (parse_charconst): Delete unnecessary cast when calling
15094         cpp_parse_escape.
15095         (cpplib.h): Kill prototype of cpp_parse_escape.
15096
15097 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
15098
15099         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
15100         * unroll.c (unroll_loop): Cast return value of alloca.
15101         * i370/i370.c: Include function.h and toplev.h.
15102         (i370_label_scan): Remove c++ commented abort.
15103         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
15104         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
15105         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
15106         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
15107
15108 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
15109
15110         * config/t-freebsd: Do not override USER_H.
15111         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
15112
15113 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
15114                           Mumit Khan  <khan@xraylith.wisc.edu>
15115
15116         * c-parse.in (component_decl): Support anonymous struct/union.
15117         (%expect): Update.
15118         * c-parse.y: Regenerate.
15119         * c-parse.c: Likewise.
15120         * objc/objc-parse.y: Likewise.
15121         * objc/objc-parse.c: Likewise.
15122         * c-decl.c (finish_struct): Don't sort the fields.
15123         (field_decl_cmp): Delete unused function.
15124
15125 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
15126
15127         * sparc.md (movsf_const_intreg): Revert last constraint change.
15128         (movdf_const_intreg_sp32): Likewise.
15129
15130 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
15131
15132         * cse.c: Include hashtab.h instead of splay-tree.h
15133         (struct cse_reg_info): No longer use variant union.  Add new
15134         field "regno".  All references changed to avoid union.
15135         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
15136         (free_cse_reg_info): Remove.
15137         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
15138         (get_cse_reg_info): Revamp to use expandable hash tables instead
15139         of splay trees.  Initialize new fields in cse_reg_info structure.
15140         (new_basic_block): Similarly.
15141
15142 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
15143
15144         * genrecog.c (message_with_line): Prototype.
15145         (validate_pattern): Pass along the set for the dest, not a flag.
15146         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
15147         Check for PC/CC0 as sources.
15148         (nodes_identical): Check for children position match before
15149         allowing the combination.
15150
15151         * rtl.c (read_rtx): Track line number across \\\n.
15152
15153 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
15154
15155         * mips.h (SPECIAL_MODE_PREDICATES): New.
15156         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
15157         (movdi+1, movsi+1): Add output reload constraint.
15158         (casesi_internal): Likewise.  Fix commentary.
15159         (return_internal): Use pmode_register_operand.
15160
15161 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
15162
15163         * 1750a.md (movstrqi): Add missing output reload constraint.
15164         (call_value): Likewise.
15165         * a29k.md (cpxxx patterns): Add missing match_operator mode.
15166         (jmpfdec): Add missing inout reload constraint.
15167         * elxsi.md (addsi patterns): Add missing output reload constraint.
15168         (move from sp): Use @ alternates.
15169         (call_value): No constraint on output.
15170         * fr30.md (movsi_pop): Add missing output reload constraint.
15171         (movsf_constant_store): Likewise.
15172         (splits): Remove constraints.
15173         (subsi3): Add missing mode.
15174         * i370.md (cmpstrsi+1): Add missing output reload constraint.
15175         (call_value): Likewise.
15176         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
15177         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
15178         * m32r.md (movsicc_internal): Add output reload constraint.
15179         (movstrsi_internal): Add inout reload constraints.
15180         * m88k.h (reg_names): Don't declare.
15181         (SPECIAL_MODE_PREDICATES): New.
15182         * m88k.md (*): Use register_operand not reg_or_0_operand
15183         on destinations.
15184         * mn10200.h (PREDICATE_CODES): New.
15185         * ns32k.md (ffs pattern): Add output reload constraint.
15186         * pdp11.md (sob pattern): Add inout reload constraint.
15187         * sh.md (splits): Remove constraints.
15188         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
15189         * v850.md (pattern_is_ok_for_epilogue): Likewise.
15190         * vax.md (jgequ pattern): Add inout reload constraint.
15191
15192 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
15193
15194         * configure.in (djgpp): Revert previous patch.
15195         * configure: Rebuit.
15196         * config/i386/djgpp.h: Revert previous patch.
15197
15198 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
15199
15200         * fixinc/inclhack.def: Restore patch lost during last merge of
15201         "no_bogosity" branch.
15202         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
15203
15204 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
15205
15206         * fixincludes: Add a HPUX 11 fix for inttypes.h.
15207         * fixinc/inclhack.def: Same.
15208         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
15209
15210 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
15211
15212         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
15213         as the base of a PLUS.
15214
15215 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15216
15217         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
15218         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
15219
15220 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
15221
15222         * pa.md (post_stw+1): Use pmode_register_operand.
15223         (dcacheflush, icacheflush): Likewise.
15224
15225         * i386.md (movstricthi_1): Allow r/r.
15226
15227 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
15228
15229         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
15230         to (not (and (arg0) (arg1))). Similary for and.
15231
15232         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
15233         fallthrough to associate code.
15234         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
15235         bits in common.
15236
15237         * combine.c (simplify_logical): Convert XOR to IOR if operands have
15238         no bits in common; remove XOR to ROTATE conversion.
15239
15240 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15241
15242         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
15243
15244 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15245
15246         * config/c4x/c4x.c (dst_operand): New.
15247         (PREDICATE_CODES): Update.
15248         * config/c4x/c4x.h (dst_operand): Declare it.
15249         * config/c4x/c4x.md:  Define mode for each unspec usage.
15250         (move patterns):  Use dst_operand predicate instead of src_operand.
15251         (movqi_update, movqf_update): Delete.
15252
15253 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
15254
15255         * recog.c (pmode_register_operand): New.
15256         * recog.h: Declare it.
15257         * genrecog.c (pred_codes): Likewise.
15258         (special_mode_pred_table): Likewise.
15259         (validate_pattern): Don't warn no mode for address_operand.
15260
15261         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
15262         if the operand is not insn-like.
15263
15264 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
15265                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
15266
15267         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
15268
15269 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
15270
15271         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
15272         instead of general_operand in a SET_DEST.  Use const_double_operand
15273         instead of an explicit test against CONST_DOUBLE.
15274         (movsf_const_lo): Add missing register mode.
15275         (goto_handler_and_restore): Add auxiliary test for Pmode.
15276         (flush): Adjust to use address_operand.
15277         (return_sf_no_fpu): Add missing output constraint.
15278
15279 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
15280
15281         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
15282         for call return value.
15283         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
15284
15285 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
15286
15287         * toplev.c (main): Only warn about options for other languages.
15288         * collect2.c (main): Pass -w to sub-gcc.
15289
15290 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
15291
15292         * flow.c (propagate_block): Add call-clobbered registers to
15293         significant too.
15294
15295         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
15296         zapping mem_set_list.
15297         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
15298         (mark_set_1, mark_used_regs): Likewise.
15299
15300 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
15301
15302         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
15303
15304 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15305
15306         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
15307         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
15308         options. Also add a new item "C-only Warning Options" to the
15309         option summary.
15310
15311 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
15312
15313         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
15314         from multiple calls.
15315
15316 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
15317
15318         * i386.md (call value patterns): Move to the end of the file.
15319         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
15320
15321 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
15322
15323         * configure.in (djgpp configuration): Define extra_objects..
15324         * configure: Rebuilt.
15325         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
15326         (DTORS_SECTION_ASM_OP): Define.
15327         (INIT_SECTION_ASM_OP): Define.
15328         (FINI_SECTION_ASM_OP): Define.
15329         (DATA_SECTION_ASM_OP): Define.
15330         (TEXT_SECTION_ASM_OP): Define.
15331         (EH_FRAME_SECTION_ASM_OP): Define.
15332         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
15333         (STARTFILE_SPEC): Add crtbegin.o.
15334         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
15335         to here from LINK_COMMAND_SPEC.
15336         (DO_GLOBAL_CTORS_BODY): Define.
15337         (CRTSTUFF_USE_FINI_SECTION): Define
15338         (HAS_INIT_SECTION): Delete.
15339
15340 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
15341
15342         * Makefile.in (all.cross): Depend on xcpp$(exeext).
15343
15344 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
15345
15346         * pa.h (PREDICATE_CODES): New.
15347
15348         * genrecog.c (validate_pattern): Condense the destination
15349         non-lvalue message.
15350
15351 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
15352
15353         * alpha.md (call-1): Supply missing mode for operator.
15354         (*): Add missing output reload constraints.  Remove constraints
15355         from define_splits.
15356
15357         * i386.h (SPECIAL_MODE_PREDICATES): New.
15358         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
15359         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
15360         (addsi_lea_3): Add missing mode for op 3.
15361         (prologue_set_got, prologue_get_pc): Add missing modes.
15362         (*) Add missing output reload constraints.
15363
15364 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
15365
15366         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
15367         check for member bit-size overflow and use var_size if it occurs.
15368         (layout_record): Use bitsize_int() to define the type size in bits.
15369         Likewise for computation and assignment to DECL_FIELD_BITPOS.
15370         (layout_decl): Likewise when assigning to DECL_SIZE.
15371
15372 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
15373
15374         * genrecog.c (validate_pattern): Typo last change.  Verify
15375         that output operands have output reloads.
15376
15377 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
15378
15379         * genrecog.c (special_mode_pred_table): New.
15380         (NUM_SPECIAL_MODE_PREDS): New.
15381         (find_operand): New.
15382         (validate_pattern): New argument `insn'.  Warn for assignment to
15383         any predicate accepting non-lvalues.  Conditionaly warn for
15384         match_operand without a mode.  Try much harder to match source
15385         and destination modes on a set.
15386         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
15387
15388 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
15389
15390         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
15391
15392 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
15393
15394         * combine.c (simplify_logical): Recognize xor pattern that encodes
15395         rotation.
15396
15397 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15398
15399         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
15400         alignment.
15401
15402 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
15403
15404         * ggc-page.c (MAP_FAILED): Provide default.
15405
15406 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
15407
15408         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
15409         * sparc.h (PREDICATE_CODES): Update.
15410
15411 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
15412
15413         * alpha.c (some_ni_operand): New.
15414         * alpha-protos.h: Declare it.
15415         * alpha.h (PREDICATE_CODES): Update.
15416         * alpha.md (sXaddq reload insns): Use some_ni_operand
15417         for SET_DEST instead of some_operand.
15418
15419 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
15420                           Jim Wilson  <wilson@cygnus.com>
15421
15422         * genrecog.c (maybe_both_true_2): Don't compare modes of
15423         two DT_pred tests.
15424         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
15425         after find_afterward.
15426         (debug_decision_1): Dump next and afterward codes.
15427
15428 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
15429
15430         * rtl.c (dump_and_abort): Remove.
15431         (fatal_with_file_and_line): New.
15432         (fatal_expected_char): New.
15433         (read_rtx_lineno, read_rtx_filename): New.
15434         (read_skip_spaces): Track line number.
15435         (read_name): Use fatal_with_file_and_line.
15436         (read_rtx): Use fatal_expected_char.  Track line number.
15437         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
15438
15439         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
15440         if it isn't a CODE_LABEL.
15441
15442         * genattr.c (main): Set read_rtx_filename.
15443         * genattrtab.c (main): Likewise.
15444         * gencodes.c (main): Likewise.
15445         * genconfig.c (main): Likewise.
15446         * genemit.c (main): Likewise.
15447         * genextract.c (main): Likewise.
15448         * genflags.c (main): Likewise.
15449         * genopinit.c (main): Likewise.
15450         * genoutput.c (main): Likewise.
15451         * genpeep.c (main): Likewise.
15452
15453         * genrecog.c (decision_test.u.insn): Add `lineno'.
15454         (pattern_lineno, error_count): New variables.
15455         (message_with_line): New.
15456         (add_to_sequence): Break out checking code to ...
15457         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
15458         (merge_insn): Use message_with_line.
15459         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
15460         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
15461
15462 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15463
15464         * expr.c (store_constructor): Clear union if constructor is empty.
15465
15466 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
15467
15468         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
15469         Add !endian checks.  Change %{...} to %(...).
15470
15471 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
15472
15473         * i386.md (*addsi3_cc): Renamed from addcsi3.
15474         (*addsi3_carry): Renamed from addxsi3.
15475         (*subsi3_cc): Renamed from subcsi3.
15476         (*subsi3_carry): Renamed from subxsi3.
15477         (*xorqi_cc_1): Renamed from xorcqi_1.
15478         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
15479         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
15480
15481 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
15482
15483         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
15484         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
15485
15486 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
15487
15488         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
15489         climb up the chain of insns.
15490
15491 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
15492
15493         * genrecog.c (write_subroutine): Careful for null trees.
15494         (process_tree): Don't elide empty functions.
15495
15496 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
15497
15498         * Makefile.in (genrtl.o): Depend on ggc.h.
15499         * configure.in (valloc): Probe for it.
15500         (with-gc): Use ggc-page if valloc present.
15501         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
15502         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
15503         (ggc_alloc_string): Moved from ggc-page.c.
15504         * ggc-none.c (ggc_alloc_obj): New.
15505         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
15506         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
15507         (struct globals): Likewise for dev_zero_fd.
15508         (init_ggc): Likewise for it's initialization.
15509         (ggc_allocated_p): Move careful dereference from ...
15510         (ggc_lookup_page_table): ... here.  Delete.
15511         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
15512         (alloc_anon): Use valloc if no mmap.
15513         (release_pages): Use free if using valloc.
15514         (ggc_alloc_obj): Renamed from alloc_obj.
15515         (ggc_set_mark): Renamed from mark_obj.
15516         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
15517         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
15518         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
15519         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
15520         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
15521         (ggc_collect): Use fp printing instead of our own rounding.
15522         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
15523         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
15524         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
15525         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
15526         (struct ggc_string, struct ggc_any): Delete.
15527         (offsetof): Provide default definition.
15528         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
15529         (PTR_KEY): New.
15530         (struct ggc_mem): New, from corpse of ggc_any.
15531         (struct ggc_status): Delete.
15532         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
15533         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
15534         (n_strings_collected, n_anys_collected): Delete.
15535         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
15536         (ggc_alloc_string, ggc_alloc): Delete.
15537         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
15538         (ggc_free_string, ggc_free_any): Delete.
15539         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
15540         (ggc_compare_addresses, ggc_mark_string): Delete.
15541         (ggc_mark_string_if_gcable, ggc_mark): Delete.
15542         (search_data): Delete.
15543         (struct globals): New.
15544         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
15545         (tree_insert, tree_lookup): New.
15546         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
15547         (clear_marks, sweep_objs): New.
15548         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
15549         (init_ggc): Set allocated_last_gc.
15550         (ggc_push_context): Gut.  Use G.context.
15551         (ggc_pop_context): Likewise.
15552         (ggc_pop_context_1): New.
15553         (debug_ggc_tree): New.
15554         (debug_ggc_balance, tally_leaves): New.
15555         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
15556         (ggc_mark_string_if_gcable): Remove decl.
15557         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
15558         (ggc_mark_rtvec_children): New.
15559         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
15560         (ggc_mark_if_gcable): New decl.
15561         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
15562         (ggc_alloc_tree, ggc_alloc): Likewise.
15563         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
15564         (ggc_alloc_obj): New decl.
15565         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
15566         (ggc_alloc_tree, ggc_alloc): Likewise.
15567         (ggc_set_mark): New decl.
15568         * rtl.h (struct rtx_def): Remove gc_mark.
15569         (struct rtvec_def): Likewise.
15570         * tree.h (struct tree_common): Likewise.
15571
15572 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
15573
15574         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
15575         float_format and thread_file definitions.
15576         * configure: Rebuilt.
15577
15578 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
15579
15580         * extend.texi (Function Names): Document types of function names.
15581
15582 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15583
15584         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
15585         an earlyclobbered output conflict with RELOAD_INPUT reloads.
15586
15587 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15588
15589         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
15590
15591 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15592
15593         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
15594
15595 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
15596
15597         * collect2.c (main): Do prelimnary link on AIX if rflag.
15598
15599 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
15600
15601         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
15602         __CTOR_LIST__ in opposite order, which is the correct order for sorted
15603         constructors.
15604         (__do_global_dtors): similarly for __DTOR_LIST__.
15605
15606 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15607                                 Diego Novillo <dnovillo@cygnus.com>
15608
15609         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
15610         FPUL_REGS.
15611
15612 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
15613
15614         * fixincl/*: Merged "no_bogosity" branch
15615         * fixincl/fixlib.h: protect against doubly defining t_bool
15616         * fixincl/server.h: protect against doubly defining t_bool
15617
15618 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
15619
15620         * genoutput.c: Include toplev.h.
15621
15622 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
15623
15624         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
15625         Undef.
15626         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
15627         * configure: Regenerate.
15628
15629 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
15630
15631         * gcse.c (delete_null_pointer_checks): Returns void.
15632
15633 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15634
15635         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
15636         * emit-rtl.c (copy_insn_1): Likewise.
15637
15638 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
15639
15640         * config/mips/mips.c (mips_build_va_list): Correct
15641         TREE_CHAIN setting when hard-float.
15642         (mips_va_start): Use corrected setting.
15643         (mips_va_arg): Likewise.  Also pass a tree to build of
15644         POSTINCREMENT_EXPR rather than a naked 'int'.
15645
15646 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
15647
15648         * ggc.h (ggc_push_context): Fix comment.
15649         (ggc_pop_context): Likewise.
15650         (mark_string_if_gcable): Likewise.
15651         * ggc-common.c (ggc_mark_rtx_children): Use
15652         ggc_mark_string_if_gcable.
15653         * ggc-page.c (ggc_lookup_page_table): New function.
15654         (ggc_allocated_p): Likewise.
15655         (mark_obj): Fix formatting.
15656         (ggc_mark_string_if_gcable): New function.
15657         * ggc-simple.c (ggc_allocated_strings): New variable.
15658         (ggc_strings_used): Likewise.
15659         (ggc_compare_addresses): New function.
15660         (ggc_pop_context): Pop the `any' memory too.
15661         (ggc_mark_string_if_gcable): New function.
15662         (ggc_collect): Initialize and tear down ggc_allocated_strings.
15663
15664 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
15665
15666         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
15667         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
15668         * rs6000.c (expand_block_move): Match movstrsi_?reg register
15669         changes.
15670
15671 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
15672
15673         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
15674         (sched_reg_live_length, sched_reg_basic_block): Delete.
15675         (current_block_num, bb_live_regs, old_live_regs): Delete.
15676         (dead_notes, struct sometimes): Delete.
15677         (sched_note_set, birthing_insn_p): Delete.
15678         (adjust_priority): Gut useless reg lifetime code.
15679         (create_reg_dead_note, attach_deaths): Delete.
15680         (attach_deaths_insn, new_sometimes_live): Delete.
15681         (finish_sometimes_live): Delete.
15682         (find_pre_sched_live, find_post_sched_live): Delete.
15683         (update_reg_usage): Delete.
15684         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
15685         (schedule_insns): Delete reg lifetime code.
15686         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
15687         (unlink_other_notes): Adjust REG_NOTE commentary.
15688         (reemit_notes): Use REG_SAVE_NOTE.
15689         (schedule_block): Likewise.
15690         (schedule_region): Allocate bitmap of blocks in region.  Use
15691         count_or_remove_death_notes.  Use update_life_info.
15692
15693         * rtl.h (REG_SAVE_NOTE): New.
15694         * rtl.c (reg_note_name): Update.
15695
15696 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
15697
15698         * combine.c (refresh_blocks, need_refresh): New.
15699         (combine_instructions): Allocate refresh_blocks.  Invoke
15700         update_life_info if needed.
15701         (distribute_notes): Mark refresh_blocks instead of installing
15702         USE insns.
15703         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
15704         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
15705
15706         * Makefile.in (recog.o): Depend on basic-block.h.
15707
15708 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
15709
15710         * genrecog.c (add_to_sequence): Thinko last change: delete
15711         shadowing allow_const_int variable.
15712
15713 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15714
15715         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
15716         __GNUC__ and __GNUC_MINOR__.
15717
15718         * gansidecl.h: Likewise.
15719
15720         * rtl.c: Likewise.
15721
15722         * rtl.h: Likewise.
15723
15724         * toplev.h: Likewise.
15725
15726         * tree.c: Likewise.
15727
15728         * tree.h: Likewise.
15729
15730         * varray.c: Likewise.
15731
15732         * varray.h: Likewise.
15733
15734 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15735
15736         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
15737         use one before a jump table.
15738
15739         * rtl.def (ADDRESS): Change documentation to match reality.
15740         * md.texi: Don't document it.
15741         * gmicro.md (load address pattern): Use 'p' constraint, delete use
15742         of ADDRESS rtx.
15743
15744         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
15745
15746 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
15747
15748         * genrecog.c (add_to_sequence): Move allow_const_int test outside
15749         known predicate block; default allow_const_int true.
15750         (debug_decision_list): New.
15751
15752 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
15753
15754         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
15755
15756 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
15757
15758         * gcse.c (gcse_main): Avoid global optimizations if we have a
15759         large number of basic blocks and the ratio of edges to blocks
15760         is high.
15761         (delete_null_pointer_checks): Likewise.
15762
15763 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
15764
15765         * c-common.c (check_format_info): Warn if format string isn't a
15766         string literal.
15767
15768 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
15769
15770         * configure.in (arm*-*-*): Don't let autoconf remove brackets
15771         * configure: regenerate
15772
15773 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
15774
15775         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
15776         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
15777         (peepholes): Re-enable.
15778
15779 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
15780
15781         * Makefile.in (flow.o): Depend on TREE_H.
15782         * basic-block.h (REG_SET_EQUAL_P): New.
15783         (XOR_REG_SET): New.
15784         (n_edges): Declare.
15785         (free_regset_vector): Remove declaration.
15786         (flow_delete_insn_chain): Declare.
15787         (enum update_life_extent): New.
15788         (update_life_info, count_or_remove_death_notes): Declare.
15789         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
15790         Verify register live at bb->global_live_at_start before adding USE.
15791         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
15792         (CLEAN_ALLOCA): New.
15793         (n_edges): New.
15794         (PROP_*): New flags.
15795         (find_basic_blocks_1): Use alloc_EXPR_LIST.
15796         (clear_edges): Zero n_edges.
15797         (make_edge): Increment n_edges.
15798         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
15799         (flow_delete_insn_chain): Export.
15800         (delete_block): Decrement n_edges.
15801         (merge_blocks_nomove): Likewise.
15802         (life_analysis): Give life_analysis_1 PROP flags.
15803         (verify_wide_reg_1, verify_wide_reg): New.
15804         (verify_local_live_at_start): New.
15805         (update_life_info): Rewrite to call into propogate_block.
15806         (mark_reg): New.
15807         (mark_regs_live_at_end): After reload, if epilogue as rtl,
15808         always mark stack pointer.  Conditionally mark PIC register.
15809         After reload, mark call-saved registers, return regsiters.
15810         (life_analysis_1): Accept PROP flags not remove_dead_code.
15811         Call mark_regs_live_at_end before zeroing regs_ever_live.
15812         Use calculate_global_regs_live.  Copy global_live_at_end before
15813         calling final propagate_block.  Zero reg_next_use on exit.
15814         (calculate_global_regs_live): New.
15815         (allocate_bb_life_data): Don't allocate bb->local_set.
15816         (init_regset_vector, free_regset_vector): Remove.
15817         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
15818         Test flags before every operation.  Warn if prologue/epilogue insn
15819         would have been deleted.
15820         (mark_set_regs, mark_set_1): Accept and use FLAGS.
15821         Use alloc_EXPR_LIST.
15822         (mark_used_regs): Accept and use FLAGS, not FINAL.
15823         Remove special handling for RETURN.
15824         (try_pre_increment): Use alloc_EXPR_LIST.
15825         (dump_flow_info): Dump n_edges.
15826         (unlink_insn_chain, split_hard_reg_notes): Remove.
15827         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
15828         (find_insn_with_note, new_insn_dead_notes): Remove.
15829         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
15830         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
15831         (replace_insns): Remove.
15832         (count_or_remove_death_notes): New.
15833         (verify_flow_info): Abort on error after all checks.
15834         (remove_edge): Decrement n_edges.
15835         (remove_fake_edges): Tweek format.
15836         * haifa-sched.c (schedule_insns): Use split_all_insns.
15837         * output.h (update_life_info): Remove declaration.
15838         * recog.c (split_all_insns): From the corpse of split_block_insns,
15839         do the whole function block by block.  Use update_life_info.
15840         (recog_last_allowed_insn): New.
15841         (recog_next_insn): Mind it.
15842         (peephole2_optimize): Set it.  Walk backwards through blocks.
15843         Use update_life_info.
15844         * rtl.h (update_flow_info, replace_insns): Remove declarations.
15845         (split_all_insns): Declare.
15846         * toplev.c (rest_of_compilation): Thread prologue before flow2.
15847         Use split_all_insns.
15848
15849         * i386.md (or -1 peep2s): Disable.
15850
15851 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
15852
15853         * config/mips/mips.md (movstrsi+[123]) : Combine these into
15854         a single pattern.  Scrap the 'd' versions as unnecessary.
15855
15856         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
15857         tablejump_mips162,tablejump_internal4): The operands to a
15858         label_ref must be VOIDmode.
15859
15860 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15861
15862         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
15863
15864 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
15865
15866         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
15867
15868 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
15869
15870         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
15871         cache every function if ggc_p.
15872
15873 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15874
15875         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
15876         instead of copy_rtx.  Accept sequences that contain asm statements.
15877         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
15878         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
15879         orig_asm_operands_vector, copy_asm_operands_vector,
15880         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
15881         variables.
15882         * rtl.h (copy_insn, copy_insn_1): Declare.
15883
15884 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15885
15886         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
15887
15888         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
15889         arguments to `current_file_function_operand'.
15890
15891         * genrecog.c: Include hard-reg-set.h and resource.h in the
15892         generated output file.
15893
15894         * real.c: Include tm_p.h.
15895
15896 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15897
15898         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
15899         output operand.
15900
15901 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
15902
15903         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
15904         before the fctiwz insn.
15905
15906 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15907                           Mark Mitchell  <mark@codesourcery.com>
15908
15909         * tree.c (make_lang_type_fn): New funtion pointer.
15910         (make_lang_type): Call it.
15911         * tree.h (make_lang_type): Declare.
15912         (make_lang_type_fn): Likewise.
15913         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
15914
15915 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
15916
15917         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
15918         make sure that HIGH instructions are copied into BASE_REGS.
15919
15920 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
15921
15922         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
15923
15924 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
15925
15926         * c-decl.c (finish_struct): Use simpler method of
15927         removing elements of a singly-linked list.
15928
15929 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
15930
15931         * alpha.md (peephole2's): Comment out peephole2's that generate
15932         buggy code.
15933
15934 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
15935
15936         * genrecog.c (add_to_sequence): Disable mode check for
15937         wildcard matches.
15938
15939 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15940
15941         * ggc-simple.c (init_ggc): Set empty_string.
15942
15943 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
15944
15945         * configure.in: Detect mmap.  Add --with-gc=foo to select
15946         garbage collector; default to page if mmap available.
15947         * Makefile.in (GGC): Substitute.
15948
15949 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
15950
15951         * c-decl.c (ggc_p): Enable.
15952
15953 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15954
15955         * flow.c (verify_flow_info): Make it extern & unconditionally define.
15956
15957 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
15958
15959         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
15960         string for little-endian-data.
15961
15962 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
15963
15964         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
15965         case somebody tries to compile --enable-checking code with gcc
15966         1.34 or such.
15967
15968 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
15969
15970         * genrecog.c (add_to_sequence): Verify operand to label_ref is
15971         VOIDmode.
15972
15973 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
15974
15975         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
15976         * jump.c (jump_optimize_1): Document why.
15977
15978 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15979
15980         * collect2.c (scan_prog_file, scan_libraries): Prototype function
15981         pointers and casts for `int_handler' and `quit_handler'.
15982
15983         * flow.c (verify_flow_info, split_hard_reg_notes,
15984         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
15985         remove_edge, remove_fake_successors): Add static prototypes.
15986         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
15987         (mark_set_1): Initialize variable `regno'.
15988         (unlink_insn_chain): Likewise for variable `curr'.
15989         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
15990
15991         * loop.c (strength_reduce): Initialize variable
15992         `unrolled_insn_copies'.
15993         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
15994         prototypes.  Change these functions to take const PTR parameters
15995         to avoid prototype conflict when used as the comparson argument
15996         for qsort.
15997         (check_dbra_loop): Initialize variable `comparison_val'.
15998
15999         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
16000         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
16001         (find_valid_class): Initialize variable `best_class'.
16002         (find_reloads): Call memcpy, not bcopy.
16003
16004         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
16005         (hard_reg_use_compare): Don't needlessly cast away const.
16006         (reload_reg_class_lower): Likewise.
16007         (choose_reload_regs): Initialize variable `regno'.
16008
16009 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
16010
16011         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
16012
16013 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
16014
16015         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
16016         ({,d}discard): Add forward declarations.  Declare parameter as
16017         unused.
16018         (main_without_main): Explicitly declare return type to be int.
16019         (memcpy): Properly declare.
16020
16021         * libgcc2.c (toplevel): If inhibit_libc is defined and not
16022         building the trampoline support, declare malloc, free, and
16023         atexit.
16024         (__clear_cache): Mark arguments as potentially unused.
16025
16026         * frame.c (toplevel): If inhibit_libc is defined, declare
16027         malloc and free.
16028
16029 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
16030
16031         * flow.c (make_edge): Accept an optional 2D bitmap in which
16032         to cache edge existence.  Update all callers.
16033         (make_label_edge, make_eh_edge): Pass through the edge cache.
16034         (make_edges): Provide the cache.
16035
16036 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16037
16038         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
16039         a char*.
16040         (local_mbtowc): Change the type of variable `i' from int to size_t.
16041
16042         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
16043         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
16044
16045 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
16046
16047         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
16048         after other includes that define the appropriate types.  Include
16049         tm_p.h for getting user prototypes.
16050         * ggc-callbacks.c (toplevel): Ditto.
16051         * ggc-none.c (toplevel): Ditto.
16052         * gcc-page.c (toplevel): Ditto.
16053         * ggc-simple.c (toplevel): Ditto.
16054
16055 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
16056                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
16057
16058         * config/mips/mips.c (mips_move_2words): Split doubles if
16059         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
16060
16061 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
16062
16063         * genrecog.c (struct decision_test): New.
16064         (struct decision): Remove test-related members, sort the rest by size.
16065         (IS_SPLIT): Simplify.
16066         (new_decision, new_decision_test): New.
16067         (add_to_sequence): Use them.  No special handling for args of
16068         non-MATCH codes.
16069         (maybe_both_true): Renamed from not_both_true; return sense changed.
16070         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
16071         of maybe_both_true and adjusted for decision_test.
16072         (position_merit): Remove.
16073         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
16074         (merge_accept_insn): New, broken out of merge_trees.
16075         (merge_trees): Use them.  No special case for c_test; no node
16076         splitting; use test type instead of position_merit.
16077         (factor_tests): New.
16078         (simplify_tests): New.
16079         (break_out_subroutines): Don't write code now.
16080         (find_afterward): New.
16081         (write_afterward, write_switch, write_cond): New.
16082         (write_action, is_unconditional): New.
16083         (write_node): New.  Use them.
16084         (write_tree_1): Rewrite.  Use the new functions above.
16085         (write_tree): Remove afterward processing.
16086         (write_subroutine): Simplify function variant emission.
16087         (write_subroutines): New.
16088         (same_codes, clear_codes): Remove.
16089         (same_modes, clear_modes): Remove.
16090         (write_header): New, broken out of main.
16091         (make_insn_sequence): Use new_decision and new_decision_test.
16092         (process_tree): New, broken out of main.
16093         (main): Adjust for merge_trees interface change.
16094         Don't #define operands in the output file.
16095         (record_insn_name): New, broken out of make_insn_sequence.
16096         (debug_decision_2, debug_decision_1, debug_decision_0): New.
16097         (debug_decision): New.
16098
16099 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
16100
16101         * resource.c (find_free_register): Mark class_str argument const.
16102         * resource.h: Update prototype to match.
16103
16104         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
16105         * i386.md: Give all anonymous insns names.
16106
16107 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
16108
16109         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
16110         blocks.
16111
16112 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
16113
16114         * toplev.c (dbr_sched_time): Unconditional.
16115         (peephole2_time): New.
16116         (compile_file): Add pass numbers to all of the dump file suffixes.
16117         Dump peephole2_time.  Don't dump times for non-applicable passes.
16118         (rest_of_compilation): Add pass numbers to dump file suffixes.
16119         Conditionalize calls to the scheduler.
16120         * invoke.texi: Update.
16121
16122 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
16123
16124         * flow.c (make_edges): Fix insn iteration.
16125         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
16126         (find_basic_blocks_1): Fix spelling mistake.
16127
16128 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
16129
16130         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
16131         always have side-effects.  Use memset not bzero.
16132         (make_node): Likewise.
16133
16134 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
16135
16136         * stmt.c (expand_anon_union_decl): When any of the elements of the
16137         union is addressable, so is the entire union.
16138
16139 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
16140
16141         * sbitmap.c (sbitmap_ones): Don't set too many bits.
16142
16143         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
16144         * bitmap.c (bitmap_operation): Return true iff TO changed.
16145         (bitmap_equal_p): New.
16146         (bitmap_bit_p): Tidy arithmetic.
16147         (debug_bitmap_file): Likewise.
16148
16149 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
16150
16151         * toplev.c (rest_of_compilation): Turn on cse_not_expected
16152         before cse2 instead of after.
16153
16154 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
16155
16156         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
16157         register offsets.
16158
16159 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16160
16161         * cppinit.c (is_idchar initializer): Loosen tests to accept
16162         gcc 2.>6 and >2.
16163
16164 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
16165
16166         * mips.md: Define conditional move patterns for floating point
16167         operands and DI mode conditions.
16168
16169 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
16170
16171         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
16172         always have side-effects.
16173
16174 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
16175
16176         * mn10200.c (asm_file_start): Fix typo.
16177
16178         * cppinit.c (is_idchar initializer): Tighten tests for when
16179         to put the table into initialized memory.
16180
16181         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
16182         not an array of rtunion.
16183         * gcc-page.c (ggc_alloc_rtvec): Similarly.
16184         * gcc-simple (ggc_free_rtvec): Similarly.
16185
16186         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
16187         of rtunions.
16188
16189         * mbchar.h: Add missing #endif.
16190
16191         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
16192         (FPBIT, DPBIT): Define.
16193
16194 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16195
16196         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
16197
16198         * profile.c (instrument_arcs, output_gcov_string,
16199         tablejump_entry_p): Add static prototypes.
16200         (output_gcov_string): Constify a char*.
16201
16202         * regmove.c (replacement_quality, fixup_match_2): Add static
16203         prototypes.
16204
16205         * resource.h (reg_dead_p): Add extern prototype.
16206
16207         * rtl.c (trim_filename): Add static prototype.
16208
16209         * scan-decls.c (skip_to_closing_brace): Likewise.
16210
16211         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
16212         (expand_end_case): Initialize variable `range'.
16213         (emit_case_nodes): Remove unused prototype `rtx_fn'.
16214
16215         * varasm.c (asm_emit_uninitialised): Add static prototype.
16216         (asm_emit_uninitialised, assemble_variable): Mark parameter with
16217         ATTRIBUTE_UNUSED.
16218
16219 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16220
16221         * cpplib.c (if_directive_nameo): Add static prototype.
16222
16223         * cse.c (cse_insn): Remove unused variable `p'.
16224
16225         * except.c (create_rethrow_ref, push_entry,
16226         receive_exception_label, new_eh_region_entry, find_func_region,
16227         clear_function_eh_region, process_nestinfo): Add static prototypes.
16228         (get_reg_for_handler): Hide definition.
16229         (process_nestinfo): Initialize variable `extra_handlers'.
16230
16231         * expr.h (expand_builtin_longjmp): Add extern prototype.
16232
16233         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
16234
16235         * function.c (prepare_function_start): Likewise.
16236         (pop_function_context_from): Mark parameter `context' with
16237         ATTRIBUTE_UNUSED.
16238         (push_temp_slots_for_block, flush_addressof): Hide definition.
16239
16240         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
16241         solve_program_flow_graph, calculate_branch_probs,
16242         function_summary, main, fancy_abort): Add prototypes.
16243
16244         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
16245         (add_hash): Constify a char*.
16246
16247         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
16248         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
16249         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
16250
16251         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
16252
16253         * lists.c (free_list, zap_lists): Likewise.
16254
16255 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16256
16257         * alias.c (nonlocal_reference_p): Add static prototype.
16258
16259         * bitmap.c (bitmap_element_allocate): Prototype args in function
16260         pointer cast.
16261
16262         * builtins.c (stabilize_va_list): Add static prototype.
16263         (expand_builtin_va_arg): Constify a char*.
16264
16265         * c-lex.c (getch, put_back, extend_token_buffer_to,
16266         read_line_number, token_getch, token_put_back): Add static
16267         prototypes.
16268
16269         * c-parse.gperf (hash, is_reserved_word): Likewise.
16270
16271         * cccp.c (is_dir_separator): Likewise.
16272
16273 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16274
16275         * graph.h: New file to prototype functions exported by graph.c.
16276
16277         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
16278
16279         * graph.c: Include graph.h.
16280
16281         * toplev.c: Likewise.  Remove redundant prototypes.
16282
16283 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
16284
16285         * invoke.texi: Removed duplicated description for -Q.
16286
16287 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
16288
16289         * extend.texi: Grammar fix in __extension__ text.
16290
16291 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
16292
16293         * md.texi (define_peephole2): New section.
16294
16295 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
16296
16297         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
16298         (mov $-1 to or peepholer): Enable for pentium when optimizing for
16299         speed.
16300
16301 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
16302
16303         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
16304
16305 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
16306
16307         * i386.md (ffs expander): Emit Pentium friendly code for
16308         TARGET_PENTIUM.
16309
16310 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
16311
16312         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
16313         for non-trees.
16314         (build1): Likewise.
16315
16316 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16317
16318         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
16319
16320 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
16321
16322         * config/m68k/m68k.c (use_return_insn): Return false if the pic
16323         register is in use.
16324
16325 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16326
16327         * md.texi (No Constraints): Delete section.
16328         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
16329         * final.c (final_scan_insn): We always have register constraints.
16330         * genattrtab.c: Don't include "insn-config.h".
16331         (write_attr_case): We always have register constraints.
16332         * genconfig.c (register_constraint_flag): Delete.
16333         (walk_insn_part): Don't check whether we have register constraints.
16334         (main): Don't write out "#define REGISTER_CONSTRAINTS".
16335         * genoutput.c (have_constraints): Delete.
16336         (main): Don't set it.
16337         (output_operand_data): We always have constraints.
16338         (scan_operands): Likewise.
16339         (compare_operands): Likewise.
16340         * local-alloc.c (block_alloc): We always have constraints.
16341         (requires_inout): Always compile this function.
16342         * recog.c (extract_insn): We always have constraints.
16343         (constrain_operands, reg_fits_class_p): Always compile these
16344         functions.
16345         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
16346         fields.
16347         (struct insn_operand_data): Likewise.
16348         * regclass.c (regclass): We always have constraints.
16349         (record_reg_classes, copy_cost, record_address_regs,
16350         auto_inc_dec_reg_p): Always compile these functions.
16351         * regmove.c (regmove_optimize): We always have constraints.
16352         * reload.c (find_reloads): Likewise.
16353         * reload1.c (reload): Likewise.
16354         (reload_cse_simplify_operands): Likewise.
16355         * i860.c (output_delay_insn): Likewise.
16356
16357 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
16358
16359         * iris6.h (BUILD_VA_LIST_TYPE): Define.
16360
16361 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16362
16363         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
16364         for the va_list record.
16365
16366 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
16367
16368         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
16369         prologues.
16370
16371 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
16372
16373         * alias.c: Include insn-flags.h.
16374         * Makefile.in (alias.o): Update.
16375
16376 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
16377
16378         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
16379         to LTU and GEU.  Handle more cases using sbb.
16380
16381 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
16382
16383         * i386.md (truncatexfdf splitters): Do not use subreg.
16384         (fop XFmode patterns): Fix mode in operand testing.
16385
16386 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
16387
16388         * jump.c (jump_optimize_1): Amend last change to test only the
16389         form of the operand, not the insn.
16390
16391         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
16392         not register_operand to determine when B may need preloading.
16393
16394 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
16395
16396         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
16397         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
16398         (call-value patterns): Move to end of file.
16399         (*): Remove mode from label_ref in (pc) context.
16400         (movstrqi): Use memory not general_operand for BLKmode operands.
16401         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
16402         to register_operand operands.
16403         (peep2 patterns): Convert from commented-out peephole patterns.
16404
16405 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16406
16407         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
16408         to BUILT_IN_INIT_DWARF_REG_SIZES.
16409         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
16410         Renamed from BUILT_IN_DWARF_REG_SIZE; call
16411         expand_builtin_init_dwarf_reg_sizes.
16412         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
16413         with __builtin_init_dwarf_reg_size_table.
16414         * dwarf2out.c (struct reg_size_range): Delete.
16415         (expand_builtin_init_dwarf_reg_sizes): New function.
16416         (expand_builtin_dwarf_reg_size): Delete.
16417         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
16418         (expand_builtin_dwarf_reg_size): Don't declare.
16419         * libgcc2.c (dwarf_reg_size_table_initialized): New.
16420         (dwarf_reg_size_table): New.
16421         (init_reg_size_table): New function.
16422         (copy_reg): Use dwarf_reg_size_table.
16423         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
16424         before use.
16425
16426 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
16427
16428         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
16429         Correctly build argument list to constructor and destructor functions.
16430
16431 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
16432
16433         * c-tree.h (warn_float_equal): Declare.
16434         * c-decl.c (warn_float_equal): Define.
16435         (c_decode_option): Recognize -W[no-]float-equal.
16436         * c-typeck.c (build_binary_op): Conditionally warn
16437         about equality tests of floating point types.
16438         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
16439         * invoke.texi: Add docs for -Wfloat-equal warning.
16440
16441 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
16442
16443         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
16444         generating RTL directly.
16445         * mips.h (INIT_TARGET_OPTABS): Likewise.
16446         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
16447
16448         * expr.h (init_mov_optab): Delete declaration
16449
16450         * h8300.c (WORD_REG_USED): Update to avoid useless register
16451         saves in interrupt functions and functions which never return.
16452
16453         * cse.c (struct set): Delete inner_dest_loc field.
16454         (cse_insn): Remove assignments to inner_dest_loc field.
16455
16456 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
16457
16458         * ggc-page.c: Don't include <unistd.h> etc taken care of
16459         by "system.h".  Include <sys/mman.h> afterward.
16460
16461 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
16462
16463         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
16464         ggc_alloc_string.
16465
16466 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
16467
16468         * xcoffout.c (xcoffout_declare_function): Add documentation.
16469         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
16470         TARGET_64BIT.  Compare constant to -1, not bit pattern.
16471         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
16472         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
16473         gen_movsi typos.
16474
16475 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
16476
16477         * dwarf2out.c (add_abstract_origin_attribute): Abort if
16478         origin_die is NULL.
16479         (gen_inlined_enumeration_type_die): Do not abort if the type has
16480         not been writeen out.
16481         (gen_inlined_structure_type_die): Do not abort if the type has
16482         not been writeen out.
16483         (gen_inlined_union_type_die): Do not abort if the type has
16484         not been writeen out.
16485         (gen_tagged_type_instantiation_die): Do not abort if the type
16486         has not been written out.
16487
16488 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16489
16490         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
16491         call it.
16492         * reg-stack.c (straighten_stack): Copy hard reg set with
16493         COPY_HARD_REG_SET.
16494
16495 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
16496
16497         * builtins.c (stabilize_va_list): Stabilize array type va_list
16498         to a pointer type, not the base record type.
16499         (expand_builtin_va_copy): Dereference the pointers explicitly;
16500         use the correct size for the copy.
16501
16502         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
16503         (rs6000_va_arg): Likewise.
16504
16505 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
16506
16507         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
16508
16509 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
16510
16511         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
16512         field.
16513         (DECL_BUILT_IN_CLASS): Adjust accordingly.
16514
16515 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
16516
16517         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
16518         (init_ggc): Use it instead of a constant.
16519         (ggc_collect): Bound allocated_last_gc by it.
16520
16521 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
16522
16523         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
16524         with va_list.
16525
16526 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
16527
16528         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
16529         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
16530         * configure:  Regen.
16531         * config/mips/openbsd.h:  New, OpenBSD little endian target.
16532         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
16533         * config/mips/xm-openbsd.h:  New, OpenBSD host.
16534
16535 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
16536
16537         * config/m68k/m68k.c (output_function_prologue,
16538         output_function_epilogue): Use
16539         current_function_uses_pic_offset_table instead of regs_ever_live
16540         to decide whether to save/restore pic register.
16541         (legitimize_pic_address): Don't modify regs_ever_live any more.
16542
16543 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
16544
16545         * function.h (struct function): Add x_dont_save_pending_sizes_p.
16546         * stor-layout.c (variable_size): Don't add sizes to the pending
16547         sizes list if x_dont_save_pending_sizes_p is set.
16548
16549 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
16550
16551         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
16552         for symbolic_operand().
16553         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
16554
16555 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16556
16557         * combine.c (gen_rtx_combine): Add missing call to va_end().
16558
16559         * final.c (asm_fprintf): Likewise.
16560
16561         * genattrtab.c (attr_rtx): Likewise.
16562
16563 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
16564
16565         * cse.c: Update comments.
16566         (cse_insn): When converting a conditional/computed jump into
16567         an unconditional jump, always make sure a BARRIER immediately
16568         follows the converted jump.  Do not delete unreachable code.
16569         (cse_basic_block): Do not delete unreachable code.
16570         * toplev.c (rest_of_compilation): Move call to
16571         delete_trivially_dead_insns after the conditional call to
16572         jump_optimize.
16573
16574 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16575
16576         * collect2.c (make_temp_file): Don't prototype.
16577
16578         * gcc.c (make_temp_file): Likewise.
16579
16580         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
16581
16582 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
16583
16584         * varasm.c (asm_emit_uninitialised): New function: Generate
16585         the assembler statements necessary to declare an uninitialised
16586         variable.
16587         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
16588         variable.
16589         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
16590         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
16591         section.
16592         (assemble_variable): Use asm_emit_uninitialised to emit an
16593         uninitialised variable.
16594
16595 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
16596
16597         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
16598         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
16599         <geoffk@cygnus.com>.
16600
16601 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16602
16603         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
16604         * c-common.h (builtin_function): Don't declare.
16605
16606         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
16607         DECL_BUILT_IN.
16608         (pushdecl): Likewise.
16609         (finish_decl): Likewise.
16610         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
16611         int.  All callers changed.
16612         Set the builtin's DECL_BUILT_IN_CLASS.
16613         * tree.h (enum built_in_class): New.
16614         (enum built_in_function): Delete NOT_BUILT_IN.
16615         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
16616         in a union.
16617         (DECL_SET_FUNCTION_CODE): Likewise.
16618         (DECL_BUILT_IN_CLASS): New macro.
16619         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
16620         (struct tree_decl): Split builtin function code field into a
16621         struct.
16622         (builtin_function): Declare.
16623
16624 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
16625
16626         * optabs.c (init_traps): Fix typo in last change.
16627
16628 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
16629
16630         * toplev.c (rest_of_decl_compilation): Update comment.
16631
16632 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
16633
16634         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
16635         in .sbss if appropriate.
16636         (EXTRA_SECTION_FUNCTIONS): Add sbss.
16637         (SBSS_SECTION_ASM_OP): New macro.
16638         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
16639         (EXTRA_SECTIONS): Add in_sbss.
16640         * config/mips/mips.h: Prototype sbss_section.
16641
16642 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
16643
16644         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
16645         to disappear.
16646
16647 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
16648
16649         * optabs.c (init_traps): Register trap_rtx as a GC root.
16650
16651 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16652
16653         * config/mips/mips.c (function_arg_pass_by_reference): Define
16654         unconditionally, since it's called unconditionally.
16655
16656 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
16657
16658         * toplev.c (documented_lang_options): Add -fshort-wchar.
16659         * c-decl.c (c_decode_option): Likewise.
16660         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
16661         for wchar_t.
16662         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
16663         * gcc.c (default_compilers): If -fshort-wchar,
16664         override __WCHAR_TYPE__.
16665         * tm.texi (C Dialect Options): Add -fshort-wchar.
16666
16667         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
16668         symbol for a variable.
16669
16670         * cpplib.h (CPP_PREPROCESSED): New macro.
16671         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
16672         we're seeing this input for a second time.
16673
16674 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
16675
16676         * emit-rtl.c (init_emit_once): Initialize modes first.
16677
16678 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
16679
16680         * config/i386/i386.c (pic_label_name): Change to char pointer.
16681         (global_offset_table): New variable.
16682         (load_pic_register): Fill global_offset_table if it hasn't
16683         already been done.  Allocate pic_label_name dynamically.
16684         * ggc.h (empty_string): New variable.
16685         * ggc-simple.c (empty_string): Likewise.
16686         (init_ggc): Allocate empty_string and add as root.
16687         * stmt.c (digit_strings): New variable.
16688         (init_stmt): Add last_block_end_note as root.  Allocate and
16689         initialize digit_strings.
16690         (expand_asm_operands): Use empty_string instead of string
16691         constant.  Use digit_strings instead of string constants.
16692         * profile.c (init_arc_profiler): Allocate string with
16693         ggc_alloc_string instead of xmalloc.
16694         (output_func_start_profiler): Likewise.
16695         * c-typeck.c (digest_init): Check if init is error_mark_node.
16696
16697 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
16698                           Richard Henderson  <rth@cygnus.com>
16699
16700         * ggc-page.c: New file.
16701         * Makefile.in (ggc-page.o): New.
16702
16703 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
16704
16705         * invoke.texi: Document -fdelete-null-pointer-checks
16706         * toplev.c (flag_delete_null_pointer_checks): New.
16707         (f_options): Add entry for -fdelete-null-pointer-checks.
16708         (rest_of_compilation): Conditionalize null pointer check
16709         elimination on flag_delete_null_pointer_checks.
16710         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
16711
16712 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
16713
16714         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
16715         copyright notice and special exception to GPL.
16716
16717 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16718
16719         * abi64.h (mips_function_value): Add prototype arguments.
16720
16721         * mips-protos.h: New file with mips prototypes.
16722
16723         * mips.c: Include "tm_p.h".
16724         (mktemp, lookup_name): Add prototype arguments.
16725         (extern_list, string_constant, mips_fill_delay_slot,
16726         mips_output_external, mips_output_external_libcall,
16727         mips_output_filename, mips_declare_object, function_prologue,
16728         mips_expand_prologue, function_epilogue, mips16_constant,
16729         build_mips16_function_stub, mips_output_conditional_branch):
16730         Constify a char*.
16731         (mips_va_start): Remove unused variable `u'.
16732         (mips_va_arg): Cast value to unsigned when comparing against one.
16733         (trace): Delete.
16734         (save_restore_insns, mips_expand_prologue): Add missing arg in
16735         call to `large_int'.
16736
16737         * mips.h: Move prototypes to mips-protos.h.
16738         (data_section, memory_address_p, rdata_section,
16739         readonly_data_section, simple_epilogue_p, text_section): Delete
16740         prototypes delcared elsewhere.
16741         (mips_epilogue_delay_slots, print_options): Delete unused decls.
16742         (trace): Delete.
16743         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
16744
16745         * mips.md: Delete extra args in call to `mips_move_2words'.
16746
16747         * xm-iris6.h (alloca): Add prototype argument.
16748
16749         * genpeep.c: Include "tm_p.h" in generated output file.
16750
16751 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
16752
16753         * basic-block.h (find_edge_index): Change parameters.
16754         * flow.c (verify_edge_list): Pass basic_block parameters to
16755         find_edge_index instead of integers.
16756
16757 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
16758
16759         * combine.c (simplify_comparison): Use an unsigned shift to adjust
16760         the constant.
16761
16762 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
16763
16764         * gcc.1: Fix a formatting error.
16765
16766 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
16767
16768         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
16769         i786, mn10200, mn10300, pdp11, v850.
16770
16771 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
16772
16773         * libgcc2.c (num_digits): Add prototype with
16774         __attribute__((const)).
16775         (__terminate): Add prototype.
16776
16777 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
16778
16779         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
16780
16781         * alpha/alpha.c (print_operand): Fix type of `code'.
16782         (alpha_output_filename): Constify.
16783         * alpha/alpha.h: Move all function declarations ...
16784         * alpha/alpha-protos.h: ... here.  New file.
16785         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
16786         (SECTION_FUNCTION_TEMPLATE): Likewise.
16787
16788 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16789
16790         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
16791         * expr.c (expand_expr): Likewise.
16792         (do_jump): Likewise.
16793         (do_store_flag): Pass ccp_store_flag to can_compare_p.
16794         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
16795         accessor macros.
16796         (enum can_compare_purpose): New.
16797         (can_compare_p): Adjust prototype.
16798         (prepare_cmp_insn, prepare_operand): Declare.
16799         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
16800         * optabs.c (cmp_available_p): Deleted.
16801         (expand_abs): Pass ccp_jump to can_compare_p.
16802         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
16803         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
16804         Call can_compare_p rather than cmp_available_p.
16805         (prepare_operand): No longer static.
16806         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
16807         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
16808         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
16809         sequence to use emit_cmp_and_jump_insns.
16810         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
16811
16812 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
16813
16814         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
16815         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
16816         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
16817         (plus (reg) (const_int 0))
16818         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
16819
16820 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
16821
16822         * rs6000.c (expand_block_move): DImode loads and stores require
16823         word-aligned displacements.  Increment address registers with
16824         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
16825
16826 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
16827
16828         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
16829         is no name for the base type, rather than segfault.  If we are
16830         writing out a complex integer type, use DW_ATE_lo_user.
16831
16832         * expr.c (emit_move_insn_1): If we are copying a complex that fits
16833         in one word or less (complex char, complex short, or on 64 bit
16834         systems complex float) to/from a hard register, copy it through
16835         memory instead of dying in gen_{real,imag}part.  If we have a
16836         short complex type, prevent inlining since it allocates stack
16837         memory.
16838
16839         * tree.c (build_complex_type): If we are writing dwarf2 output,
16840         generate a name for complex integer types.
16841
16842 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
16843
16844         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
16845         * flow.c (remove_edge): Remove extra whitespace.
16846         (remove_fake_edges): Fix comment.
16847         (add_noreturn_fake_exit_edges): Use the correct name.
16848
16849 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
16850
16851         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
16852         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
16853         (clean): Depend on INTL_CLEAN.
16854         (maintainer-clean): Adjust.
16855
16856 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16857
16858         * configure.in (AC_PREREQ): Bump to 2.13.
16859         (AC_C_STRINGIZE): Call this instead of using a custom macro.
16860
16861         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
16862
16863         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
16864
16865         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
16866
16867         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
16868         (HAVE_STRINGIZE): Define.
16869
16870 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
16871
16872         * c-parse.in: save and restore warn_pointer_arith on __extension__
16873         along with pedantic.
16874         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
16875         Set the type of extension to itype rather than $<itype>1 kludge.
16876         * extend.texi (Alternate Keywords): Adjust documentation.
16877         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
16878
16879 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
16880
16881         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
16882         most assembler templates.
16883
16884         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
16885         FP loads and stores.
16886         (following_call): Always return zero for the PA8000.
16887         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
16888         FP loads and stores.
16889         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
16890
16891         * pa.h (BRANCH_COST): Define.
16892
16893         * pa.md (return, return_internal): Use bve for PA2.0.
16894
16895         * pa.md (fused multiply): Add variants which reduce height for the
16896         fused multiply, but which still generate 2 insns.
16897         (fnegabs): Similarly.
16898
16899         * pa.md (subsi3): Turn into an expander.  Create two anonymous
16900         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
16901         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
16902
16903         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
16904         for TARGET_PA_20.
16905         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
16906         code generation.
16907         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
16908         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
16909
16910         * regclass.c (init_regs): Add "top_of_stack" as a garbage
16911         collection root.
16912
16913         * flow.c (record_active_eh_regions): Terminate loop after finding
16914         the last insn in the last basic block.
16915
16916 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16917
16918         * config/c4x/c4x.md: Delete parallel instruction peepholes.
16919
16920 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16921
16922         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
16923
16924 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16925
16926         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
16927         splitting to not use output template.
16928
16929 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16930
16931         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
16932         * config/c4x/c4x.c (c4x_va_start): New function.
16933
16934 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
16935
16936         * genrecog.c (not_both_true): Handle correctly cases when called for
16937         tests with different positions in the insn.
16938
16939 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16940
16941         * machmode.h (HOST_PTR_PRINTF): Move from here ...
16942
16943         * system.h (HOST_PTR_PRINTF): ... to here.
16944
16945         * mips-tfile.c: Don't include machmode.h.
16946
16947         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
16948         (mips-tfile.o): Don't depend on machmode.h.
16949
16950 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16951
16952         * haifa-sched.c (sched_analyze): Rename local variable `region' to
16953         avoid conflicts with typedef struct `region' at the top level scope.
16954
16955 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
16956
16957         * basic-block.h (basic_block): Add eh_beg, eh_end.
16958         * flow.c (entry_exit_blocks): Update.
16959         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
16960         Call new functions.
16961         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
16962         lists.c functions to allocate insn lists.
16963         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
16964         edge creation ...
16965         (make_eh_edge): ... here.  New.
16966         (move_stray_eh_region_notes): New.
16967         (record_active_eh_regions): New.
16968         (delete_unreachable_blocks): Split out block merging ...
16969         (try_merge_blocks): ... here.  New.
16970         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
16971         Dump debugging data.
16972         (merge_blocks_move_successor_nojumps): Likewise.
16973         (merge_blocks): Use eh_beg+eh_end to validate block movement.
16974
16975 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
16976
16977         * extend.texi (Bound member functions): Document unbound pmf
16978         conversion.
16979
16980 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
16981
16982         * flow.c (split_edge): Handle insertion on a fallthrough edge which
16983         has the EXIT_BLOCK as a dest.
16984
16985 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
16986
16987         * flow.c (remove_edge): New function to remove an edge from the
16988         flow graph.
16989         (remove_fake_successors): New function to remove fake successor edges.
16990         (remove_fake_edges): New function to remove all fake edges from the
16991         flow graph.
16992         (add_fake_exit_edges): New function to add fake edges from all blocks
16993         with no successors to the exit block.
16994         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
16995         prototypes for new functions.
16996
16997 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
16998
16999         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
17000         Use Pmode to determine whether to output .dword or .word.
17001
17002 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
17003
17004         * tree.c (built_in_filename): New variable.
17005         (BUILT_IN_FILENAME): New macro.
17006         (init_tree_codes): Allocate built_in_filename.
17007         (make_node): Use built_in_filename instead of string constant.
17008
17009 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
17010
17011         * configure.in: Add fr30 target.
17012         * configure: Regenerate.
17013         * config/fr30: New directory.
17014         * config/fr30/crti.asm: New file.
17015         * config/fr30/fr30.c: New file.
17016         * config/fr30/crtn.asm: New file.
17017         * config/fr30/fr30.h: New file.
17018         * config/fr30/fr30.md: New file.
17019         * config/fr30/lib1funcs.asm: New file.
17020         * config/fr30/t-fr30: New file.
17021         * config/fr30/xm-fr30.h: New file.
17022
17023 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
17024
17025         * flow.c (merge_blocks_move_successor_nojumps): Delete the
17026         BARRIER at the end of the successor, not the BARRIER before
17027         the successor.
17028
17029         * pa.c (pa_add_gc_roots): Fix thinko in last change.
17030
17031 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
17032
17033         * stmt.c (any_pending_cleanups): Don't crash when
17034         current_function->stmt is unset.
17035
17036 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17037
17038         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
17039         other initializations that may use it for relative offsets.
17040
17041 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17042
17043         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
17044         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
17045         * config/i386/sol2dbg.h: Removed.
17046         * config/i386/sol2gas.h: New file, to enable gas work-around.
17047         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
17048         Don't use sol2dbg.h.
17049         * configure: Rebuilt.
17050
17051 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
17052
17053         * invoke.texi (-fthis-is-variable): Remove documentation.
17054
17055 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
17056
17057         * basic-block.h (compute_bb_for_insn): Declare.
17058         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
17059         to use; set size of basic_block_for_insn directly.
17060         (find_basic_blocks): Update.
17061
17062 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17063
17064         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
17065
17066 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17067
17068         * crtstuff.c (ON_EXIT): Delete empty macro definition.
17069         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
17070
17071 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
17072
17073         * c-decl.c (c_decode_option): Extend comment.
17074
17075 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
17076
17077         * toplev.c (progname): Make 'const char *'
17078         (flag_print_mem): Move out of main.
17079         (version_flag): Move out of main.
17080         (filename): Move out of main.
17081         (debug_args): Remove g prefix from options.
17082         (documented_lang_options): Remove cpplib specific options.
17083         (display_help): Add g prefix to debug options.
17084         (check_lang_option): Delete this function.
17085         (decode_d_option): New function: Decode -d... option.
17086         (decode_f_option): New function: Decode -f... option.
17087         (decode_W_option): New function: Decode -W... option.
17088         (decode_g_option): New function: Decode -g... option.
17089         (independent_decode_option): New function: Decode a language
17090         independent command line option.
17091         (main): Invoke lang_decode_option and then
17092         independent_decode_option on each command line option in
17093         turn.
17094
17095 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
17096
17097         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
17098          * fold-const.c (fold_range_test): Do not try to fold the range
17099          test if the rhs or lhs has side effects.
17100
17101         * basic-block.h (compute_flow_dominators): Declare.
17102
17103         * gcse.c (alloc_code_hoist_mem): New function.
17104         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
17105         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
17106         (hoist_code, one_code_hoisting_pass): Likewise.
17107         (gcse_main): If optimizing for size, then hoist expressions
17108         computed in multiple dominated basic blocks.
17109
17110         * gcse.c (invalid_nonnull_info): New function.
17111         (delete_null_pointer_checks): Likewise.
17112         * rtl.h (delete_null_pointer_checks): Declare.
17113         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
17114
17115         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
17116         (merge-blocks_move_successor_nojumps): Likewise.
17117         (merge_blocks): Allow merging of some blocks, even if it requires
17118         physical movement of the blocks, but not if it requires new jumps.
17119
17120         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
17121         Callers and prototype changed.
17122         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
17123
17124 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17125
17126         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
17127         -YP when both -p and -pg are present.  From i386/sol2.h.
17128
17129 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17130
17131         * Makefile.in (distclean): Delete tm_p.h.
17132         * configure.in: Create a new file, "tm_p.h", from a list in
17133         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
17134         "i386/i386-protos.h".
17135
17136         * alias.c: Include "tm_p.h".
17137         * c-typeck.c: Likewise.
17138         * calls.c: Likewise.
17139         * cse.c: Likewise.
17140         * emit-rtl.c: Likewise.
17141         * explow.c: Likewise.
17142         * expmed.c: Likewise.
17143         * expr.c: Likewise.
17144         * final.c: Likewise.
17145         * flow.c: Likewise.
17146         * fold-const.c: Likewise.
17147         * function.c: Likewise.
17148         * gcse.c: Likewise.
17149         * global.c: Likewise.
17150         * haifa-sched.c: Likewise.
17151         * integrate.c: Likewise.
17152         * jump.c: Likewise.
17153         * local-alloc.c: Likewise.
17154         * loop.c: Likewise.
17155         * optabs.c: Likewise.
17156         * recog.c: Likewise.
17157         * reg-stack.c: Likewise.
17158         * regclass.c: Likewise.
17159         * regmove.c: Likewise.
17160         * reload.c: Likewise.
17161         * reload1.c: Likewise.
17162         * reorg.c: Likewise.
17163         * resource.c: Likewise.
17164         * stmt.c: Likewise.
17165         * stor-layout.c: Likewise.
17166         * toplev.c: Likewise.
17167         * tree.c: Likewise.
17168         * unroll.c: Likewise.
17169         * genattrtab.c (main): Make generated file include "tm_p.h".
17170         * genemit.c (main): Likewise.
17171         * genoutput.c (main): Likewise.
17172         * genrecog.c (main): Likewise.
17173
17174         * i386.h: Delete all prototypes.
17175         * i386.c: Include "tm_p.h".
17176         (ix86_attr_length_default): Call constant_call_address_operand
17177         with correct number of arguments.
17178         * i386-protos.h: New file.
17179         * i386.md (unnamed patterns): Call constant_call_address_operand
17180         with correct number of arguments.
17181         (exception_receiver): Call load_pic_register with correct number
17182         of arguments.
17183
17184 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
17185
17186         * c-pragma.c (mark_align_stack): Dereference the void* properly.
17187
17188 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
17189
17190         * rtl.h (insns_safe_to_move_p): New function.
17191         * loop.c (find_and_verify_loops): Use it.
17192         * rtlanal.c (insns_safe_to_move_p): Define it.
17193
17194 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
17195
17196         * c-pragma.c: Include ggc.h.
17197         * Makefile.in (c-pragma.o): Update.
17198
17199 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17200
17201         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
17202         (LIB_SPEC): Likewise.
17203         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
17204         Reindent -YP/-p/-pg.
17205         Copied from config/sparc/sol2.h.
17206
17207 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
17208
17209         * c-pragma.c (mark_align_stack): New.
17210         (init_pragma): New.
17211         * c-pragma.h (init_pragma): Declare it.
17212         * c-lex.c (init_parse): Call it.
17213
17214 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17215
17216         * configure.in: Pick up thread library on Solaris/x86 just
17217         like on Solaris/sparc.
17218         * configure: Rebuilt.
17219
17220 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
17221
17222         * rtl.h (global_rtx_index): New enum.
17223         (global_rtl): Change to array of rtx.
17224         (pc_rtx, cc0_rtx): Redefine accordingly.
17225         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
17226         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
17227         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
17228         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
17229         (const_int_rtx): Change to array of rtx.
17230         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
17231         accordingly.
17232         * emit-rtl.c (global_rtl): Change to array of rtx.
17233         (const_int_rtx): Change to aray of rtx.
17234         (gen_rtx_CONST_INT): Redefine accordingly.
17235         (init_emit_once): Allocate and initialize global_rtl.  Likewise
17236         for const_int_rtx.  Add both as GC roots.
17237         * genattrtab.c (global_rtl): Update declaration.
17238
17239 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
17240
17241         * Makefile (USER_H): Add iso646.h back.
17242
17243 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
17244
17245         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
17246         zapping the LOG_LINKS of sched_before_next_call.
17247
17248         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
17249         * pa.c (insn_refs_are_delayed): Renamed from
17250         insn_sets_and_refs_are_delayed.
17251
17252 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
17253
17254         * functiion.h (struct function): Add x_whole_function_mode_p.
17255         (retrofit_block): Declare.
17256         * function.c (retrofit_block): New function.
17257         (identify_blocks): Add assertions.  Allow an incomplete set of
17258         block notes if we're still generating code for the function.
17259         * integrate.c: Include loop.h.
17260         (expand_inline_function): Call find_loop_tree_blocks to map block
17261         notes to blocks when in whole-function mode.  Use retrofit_block
17262         to insert new BLOCKs for the inlined function, rather than
17263         insert_block.
17264         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
17265         * Makefile.in (integrate.o): Depend on loop.h.
17266
17267 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
17268
17269         * tree.h (warn_about_unused_variables): Declare.
17270         * stmt.c (warn_about_unused_variables): New function, split out
17271         from ...
17272         (expand_end_bindings): Here.
17273
17274 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
17275
17276         * stmt.c (preserve_subexpressions_p): Don't crash when
17277         current_function->stmt is unset.
17278
17279 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
17280
17281         * stmt.c (expand_start_bindings): Allow callers to pass a flag
17282         indicating that no NOTE_INSN_BLOCK_BEG note is required.
17283         (expand_start_target_temps): Use it.
17284         * except.c (expand_eh_region_start_for_decl): Likewise.
17285         * expr.c (expand_expr): Likewise.
17286
17287 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
17288
17289         * fold-const.c (operand_equal_p): Pay attention to side effects.
17290
17291 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
17292
17293         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
17294         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
17295
17296         * tlink.c (scan_linker_output): Look for keywords before accepting
17297         a mangled name in quotes.
17298
17299 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
17300
17301         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
17302         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
17303
17304 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
17305
17306         * alpha.md: Revert Thu Nov 26 change that came in through the
17307         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
17308         Avoid earlyclobber when possible.
17309
17310 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17311
17312         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
17313
17314         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
17315         Define HAVE_ON_EXIT.
17316
17317 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17318
17319         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
17320         CTYPE_CONV in all ctype macros.
17321
17322         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
17323         from system.h.
17324
17325         * cexp.y (initialize_random_junk): Likewise.
17326
17327         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
17328
17329         * i370.c (handle_pragma): Likewise.
17330
17331         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
17332
17333         * v850.c (override_options): Likewise.
17334
17335         * doprint.c (_doprnt): Likewise.
17336
17337         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
17338         Likewise.
17339
17340         * fixinc/server.c (load_data): Likewise.
17341
17342         * fold-const.c (real_hex_to_f): Likewise.
17343
17344         * genattr.c (write_upcase, gen_attr): Likewise.
17345
17346         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
17347         write_upcase): Likewise.
17348
17349         * genemit.c (print_code): Likewise.
17350
17351         * genopinit.c (gen_insn): Likewise.
17352
17353         * genpeep.c (print_code): Likewise.
17354
17355         * genrecog.c (print_code): Likewise.
17356
17357         * optabs.c (init_libfuncs): Likewise.
17358
17359 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
17360
17361         * haifa-sched.c (sched_analyze): Keep the list of notes organized
17362         in pairs.
17363         (reemit_notes): Likewise.
17364
17365 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
17366
17367         * ggc.h (ggc_root): Move to ggc-common.c.
17368         (roots): Remove.
17369         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
17370         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
17371         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
17372         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
17373         * ggc-common.c (ggc_root): Move from ggc.h.
17374         (roots): Declare, static.
17375         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
17376         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
17377         null or check/set mark bit.
17378         (ggc_mark_roots): New.
17379         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
17380
17381 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
17382
17383         * m32r.c: Include toplev.h.
17384         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
17385         (gen_compare): Rename swap_p to must_swap to match uses.
17386         Add default abort case.
17387         (m32r_output_function_epilogue): Remove unused variables.
17388         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
17389         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
17390         define to empty parameter list.  Update all uses.
17391         (predicate decls): Use enum machine_mode not int.
17392         * m32r.md (movsi): Call abort, not fatal_insn.
17393         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
17394
17395 1999-09-14  Andrew Haley  <aph@cygnus.com>
17396
17397         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
17398         use $0 instead of 0.
17399
17400 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17401
17402         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
17403         computation out of loop over hard regs.
17404
17405 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
17406
17407         * function.c (identify_blocks): Don't shadow a variable in an
17408         outer scope.
17409         * integrate.c (integrate_decl_tree): Don't use pushlevel,
17410         pushdecl, or poplevel to build up the new BLOCK tree.
17411         (expand_inline_function): Likewise.
17412         (integrate_parm_decls): Likewise.
17413
17414 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
17415
17416         * c-typeck.c (qualify_type): Merge qualifiers from both types.
17417
17418 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
17419
17420         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
17421         * invoke.texi: Document this change.
17422
17423 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
17424
17425         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
17426         Free the struct.
17427         (mark_emit_status): Renamed from mark_emit_state.
17428         * except.c (mark_eh_status): Renamed from mark_eh_state.
17429         Check not null before marking.
17430         (free_eh_status): New.
17431         * expr.c (mark_expr_status, free_expr_status): New.
17432         * function.c (free_machine_status): New.
17433         (free_after_parsing): New.
17434         (free_after_compilation): Move bits to free_after_parsing; call
17435         free_eh_status, free_expr_status; zero the marked members of the
17436         function state.
17437         (prepare_function_start): No can_garbage_collect.
17438         Call init_eh_for_function.
17439         (expand_dummy_function_end): Free up current_function state.
17440         (mark_function_status): Renamed from mark_function_state.
17441         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
17442         * function.h (struct function): No can_garbage_collect.
17443         (free_machine_status, free_after_parsing): Declare.
17444         (free_eh_status, free_expr_status): Declare.
17445         * ggc.h (mark_expr_status): Declare.
17446         * stmt.c (free_stmt_status): Free the struct.
17447         (mark_stmt_status): Renamed from mark_stmt_state.
17448         (init_stmt): Don't call init_eh.
17449         (init_stmt_for_function): Don't call init_eh_for_function.
17450         * toplev.c (compile_file): Call init_eh.
17451         (rest_of_compilation): Free basic block info before ggc_collect.
17452         Call free_after_parsing; conditionally call free_after_compilation.
17453         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
17454         Check not null before marking.
17455         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
17456
17457 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
17458
17459         * c-lex.c (yylex): Initialize warn.
17460
17461 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
17462
17463         * pa.c (emit_move_sequence): Properly set the mode of the scratch
17464         register when performing secondary reloads for the SAR register.
17465
17466 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
17467
17468         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
17469         (NOTE_BLOCK): New macro.
17470         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
17471         * function.h (identify_blocks): Change prototype.
17472         * function.c (identify_blocks): Simplify.
17473         (reorder_blocks): Likewise.
17474         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
17475         NOTE_INSN_BLOCK_{BEG,END}.
17476         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
17477         the list of saved notes if the note isn't a
17478         NOTE_INSN_BLOCK_{BEG,END}.
17479         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
17480         NOTE_BLOCK_NUMBER.
17481         (reemit_notes): Adjust recreation of notes to reflect new saved
17482         note structure.
17483         * print-rtl.c (print_rtx): Print the address of the BLOCK when
17484         printing a block note.
17485         * stmt.c (block_vector): Remove.
17486         (find_loop_tree_blocks): Simplify.
17487         (unroll_block_trees): Likewise.
17488         * tree.h (reorder_block): Change prototype.
17489
17490 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
17491
17492         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
17493         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
17494         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
17495         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
17496         (atexit, exit): Simplify.
17497         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
17498         * config/lots: Remove defns of HAVE_ATEXIT.
17499
17500 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
17501
17502         * calls.c (precompute_arguments): Fix typo in comment.
17503         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
17504         TARGET_EXPR.
17505
17506 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
17507
17508         * dsp16xx.c (override_options): Fix typos in GC root registration.
17509
17510 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
17511
17512         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
17513         from config/svr4.h.
17514         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
17515         (FUNCTION_PROFILER): Redefine appropriately for Linux.
17516         (CC1_SPEC): Likewise.
17517
17518 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17519
17520         * genattr.c (main): Add extern prototype.  Call return, not exit.
17521         * genattrtab.c (main): Likewise.
17522         * gencheck.c (main): Likewise.
17523         * gencodes.c (main): Likewise.
17524         * genconfig.c (main): Likewise.
17525         * genemit.c (main): Likewise.
17526         * genextract.c (main): Likewise.
17527         * genflags.c (main): Likewise.
17528         * gengenrtl.c (main): Likewise.
17529         * genopinit.c (main): Likewise.
17530         * genoutput.c (main): Likewise.
17531         * genpeep.c (main): Likewise.
17532         * genrecog.c (main): Likewise.
17533
17534         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
17535         * genattrtab.c (get_insn_name): Likewise.
17536         * gencodes.c (get_insn_name): Likewise.
17537         * genconfig.c (get_insn_name): Likewise.
17538         * genemit.c (get_insn_name): Likewise.
17539         * genextract.c (get_insn_name): Likewise.
17540         * genflags.c (get_insn_name): Likewise.
17541         * genopinit.c (get_insn_name): Likewise.
17542         * genpeep.c (get_insn_name): Likewise.
17543
17544         * gencheck.c (usage): Add static prototype.
17545         * genextract.c (print_path): Constify a char*.
17546         * genopinit.c (optabs): Likewise.
17547         * genoutput.c (operand_data, data, output_predicate_decls,
17548         compare_operands): Likewise.
17549         * genrecog.c (write_tree): Add default case in switch.
17550
17551 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17552
17553         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
17554
17555         * print-rtl.c (get_insn_name): Remove prototype.
17556
17557         * toplev.h (progname): Declare const.
17558
17559         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
17560         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
17561         dump_sched_info, dump_local_alloc, regset_release_memory,
17562         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
17563         error_with_file_and_line, error_with_decl, error_for_asm, error,
17564         fatal, warning_with_file_and_line, warning_with_decl, warning,
17565         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
17566         Remove redundant prototypes.
17567
17568         (notice, check_lang_option, report_file_and_line, vnotice,
17569         mark_file_stack): Add static prototype.
17570         (set_fatal_function): Add prototype.
17571         (vnotice, report_file_and_line, set_fatal_function,
17572         check_lang_option): Constify a char*.
17573         (main): Prototype.  Call return, not exit.
17574
17575 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17576
17577         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
17578
17579         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
17580
17581         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
17582
17583         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
17584
17585 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17586
17587         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
17588         behave as if it's zero in all cases.
17589         (expand_function_start): Adjust call to assign_parms.
17590         * tree.h (assign_parms): Adjust prototype.
17591         * objc/objc-act.c (hack_method_prototype): Adjust call to
17592         assign_parms.
17593
17594 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
17595
17596         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
17597         arg_pointer_rtx fixed if the argument pointer register is
17598         not fixed.
17599         (NONZERO_BASE_PLUS_P): Likewise.
17600
17601 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
17602
17603         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
17604         match_insn2 to match_insn.
17605         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
17606
17607 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
17608
17609         * Makefile.in (USER_H): Remove va-foo.h.
17610
17611         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
17612         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
17613         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
17614         va-spur.h,va-v850.h}: Remove.
17615
17616 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
17617
17618         * sparc/sparc.md (eligible_for_return_delay): New attribute.
17619         (in_return_delay): Use it instead of match_insn.
17620
17621 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17622
17623         * config/alpha/va_list.h (va-alpha.h): Do not include.
17624         (__gnuc_va_list): Typedef as in varargs.h.
17625
17626 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
17627
17628         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
17629         DECL_LIVE_RANGE_RTL.
17630
17631 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
17632
17633         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
17634         not NOTE_BLOCK_NUMBER.
17635         (expand_eh_region_end): Likewise.
17636         (find_exception_handler_labels): Likewise.
17637         (scan_region): Likewise.
17638         (exception_optimize): Likewise.
17639         (update_rethrow_references): Likewise.
17640         (set_insn_eh_region): Likewise.
17641         * final.c (final_scan_insn): Likewise.
17642         * flow.c (make_edges): Likewise.
17643         * integrate.c (expand_inline_function): Likewise.
17644         * print-rtl.c (print_rtx): Likewise.
17645
17646 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
17647
17648         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
17649         terms of builtin functions and types.
17650
17651         * mips.c (mips_build_va_list): New.
17652         (mips_va_start, mips_va_arg): New.
17653         * mips.h (BUILD_VA_LIST_TYPE): New.
17654         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
17655
17656         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
17657         (sh_build_va_list, sh_va_start, sh_va_arg): New.
17658         * sh.h (BUILD_VA_LIST_TYPE): New.
17659         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
17660
17661 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
17662
17663         * recog.h (struct recog_data): Make dup_num, operand_address_p,
17664         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
17665         (struct insn_data): Likewise with n_operands, n_dups,
17666         n_alternatives, output_format.
17667         * regclass.c (scan_one_insn): Cast n_operands to int before
17668         arithmetic inside comparison.
17669
17670 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
17671
17672         * toplev.c (compile_function): Unconditionally emit nop.
17673
17674 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17675
17676         * haifa-sched.c (actual_hazard): Move declaration of variable
17677         `this_cost' into the scope where it is used.
17678
17679 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17680
17681         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
17682         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
17683         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
17684
17685         * genrecog.c (make_insn_sequence): Call memset, not bzero.
17686
17687         * jump.c (find_insert_position): Don't declare or define unless
17688         !HAVE_conditional_arithmetic.
17689         (returnjump_p_1, delete_prior_computation): Add static prototypes.
17690
17691         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
17692
17693         * recog.c (offsettable_address_p): Prototype function pointer.
17694         (preprocess_constraints): Call memset, not bzero.
17695
17696         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
17697         (gcc_obstack_init): Don't declare.
17698         (fix_sizetype): Add static prototype.
17699         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
17700         (tree_cons): Call memset, not bzero.
17701
17702         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
17703         definition in macro ASM_WEAKEN_LABEL.
17704         (mark_const_hash_entry): Add static prototype.
17705
17706 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17707
17708         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
17709
17710         * unroll.c (find_common_reg_term, subtract_reg_term,
17711         loop_find_equiv_value): Add static prototypes.
17712         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
17713         (copy_loop_body): Remove unreachable break statement.
17714
17715         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
17716
17717         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
17718
17719 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17720
17721         Undo some changes from the gcc2 merge:
17722         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
17723         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
17724         pointers.
17725
17726         Undo this change:
17727         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
17728         * emit-rtl.c (gen_lowpart_common): Disable optimization of
17729         initialized float-int union if the value is a NaN.
17730
17731 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17732
17733         * gthr-win32.h: New file.
17734
17735         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
17736         shared as a valid attribute.
17737         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
17738         * extend.texi: Document `shared' variable attribute.
17739
17740 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
17741
17742         * configure.in: Handle --enable-threads on FreeBSD.
17743         * configure: Rebuit.
17744
17745 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
17746
17747         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
17748         thread support.
17749         * configure: Rebuilt.
17750
17751 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
17752                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
17753                           Rosimildo DaSilva <rdasilva@connecttel.com>
17754
17755         * configure.in (m68k-*-rtemscoff*): Added.
17756         * configure.in (mips64orion-*-rtems*): Converted to ELF.
17757         * configure.in (sparc-*-rtemsaout*): Added as alias for old
17758         sparc-rtems configuration.
17759         * configure.in (sparc-*-rtemself*): Added.
17760         * configure.in (sparc-*-rtems*): Now ELF not a.out.
17761         * config/i386/rtems.h: Added comment.
17762         * config/sparc/rtemself.h: New file.
17763
17764         * configure.in (m68k-rtemself): Added.
17765         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
17766         and DWARF_DEBUGGING_INFO.
17767         * config/m68k/crti.s: New file.
17768         * config/m68k/crtn.s: New file.
17769         * config/m68k/t-crtstuff: New file.
17770         * config/m68k/rtemself.h: New file.
17771
17772         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
17773         global ctor/dtor and C++ exception handling.
17774         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
17775         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
17776         ENDFILE_SPEC.
17777         * config/i386/t-rtems-i386: New File.
17778
17779 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
17780
17781         * stmt.c (expand_end_case): Return right away if the case stack is
17782         empty.
17783
17784 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
17785
17786         * Makefile.in (version.c): Remove rule incorrectly brought in from
17787         the gcc2 merge.
17788
17789 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
17790
17791         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
17792         * msdos/top.sed:  Take into account a prepended $(SHELL) to
17793         move-if-change.
17794         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
17795
17796         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
17797
17798 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17799
17800         * regmove.c (fixup_match_1): Don't change an unchanging register.
17801         (stable_but_for_p): Renamed to:
17802         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
17803         Changed all callers.
17804
17805 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
17806
17807         * loop.c (strength_reduce): Don't call reg_used_between_p if the
17808         insn from BL2 is after the insn from BL.
17809
17810 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
17811
17812         * recog.h (INSN_OUTPUT_FORMAT_*): New.
17813         (struct insn_data): Merge `template' and `outfun' into `output'.
17814         Add `output_format'.
17815         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
17816         (struct data): Remove `outfun'; add `output_format'.
17817         (name_for_index): Remove declaration.
17818         (output_insn_data): Handle output formats.
17819         (process_template): Emit the bare array for @.
17820         (gen_expand, gen_split): Set output_format to NONE.
17821         * output.h (get_insn_template): Declare.
17822         * final.c (get_insn_template): New.
17823         (final_scan_insn): Use it.
17824         * toplev.c (compile_file): Likewise.
17825
17826         * c4x/c4x.c (c4x_process_after_reload): Likewise.
17827         * i860/i860.c (output_delayed_branch): Likewise.
17828         (output_delay_insn): Likewise.
17829
17830 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17831
17832         * rtl.c (obstack_alloc_rtx): Removed.
17833
17834 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
17835
17836         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
17837
17838 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
17839
17840         * i386.c (call_insn_operand): Reject const_int.
17841         (expander_call_insn_operand): Use call_insn_operand.
17842
17843 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17844
17845         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
17846
17847 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
17848
17849         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
17850         Use DImode operation.
17851
17852 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
17853
17854         * gcc.c: Include sys/resource.h.
17855         (report_times): New flag.
17856         (execute):  If report_times is set, calculate and report the
17857         CPU time consumed by each subprocess.
17858
17859         (rus, prus): New globals.
17860         (option_map): Add --time.
17861         (display_help): Document -time.
17862         (process_command): Set report_times if -time is given.
17863         Turn off -pipe if -time is given.
17864
17865         * invoke.texi: Document new option -time.
17866
17867         * configure.in: Check for getrusage.  Check if we have to
17868         prototype getrusage.
17869         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
17870         * configure: Regenerate.
17871         * config.in: Regenerate.
17872
17873 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
17874
17875         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
17876         fields.
17877
17878 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
17879
17880         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
17881         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
17882         (nan): Return _thenan_sf or _thenan_df as appropriate.
17883         (L_thenan_sf): Define _thenan_sf.
17884         (L_thenan_df): Define _thenan_df.
17885
17886         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
17887         (DPBIT_FUNCS): Add _thenan_df.
17888
17889 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
17890
17891         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
17892         TYPE_SIZE_UNIT.
17893
17894 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17895
17896         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
17897
17898         * gcc.h: New file.
17899         (lang_specific_driver): Don't take a function pointer parameter.
17900         All callers changed.
17901
17902         * gcc.c: Include gcc.h.
17903         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
17904         lang_specific_extra_outfiles, fatal): Don't declare.
17905         (multilib_defaults_raw): Constify.
17906         (read_specs): Call memset, rather than bzero.
17907         (main): Call return, not exit.
17908         (lookup_compiler): Call memcpy, not bcopy.
17909         (fatal): Make extern.
17910
17911         * cppspec.c: Include gcc.h.
17912         (lang_specific_driver): Initialize variable `quote'.  Constify a
17913         char*.  All calls to the function pointer parameter now
17914         explicitly call `fatal'.
17915
17916         * gccspec.c (lang_specific_driver): Include gcc.h.
17917
17918 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
17919
17920         * arm.c (note_invalid_constants): Use recog_data.operand_type
17921         for recog_op_type.
17922
17923 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17924
17925         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
17926         Declare.
17927
17928         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
17929         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
17930         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
17931         reload_secondary_in_reload, reload_secondary_out_reload,
17932         reload_secondary_in_icode, reload_secondary_out_icode,
17933         reload_reg_rtx, reload_when_needed): Delete declarations.
17934         (struct reload): New structure.
17935         (rld): Declare new array.
17936         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
17937         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
17938         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
17939         reload_secondary_in_reload, reload_secondary_out_reload,
17940         reload_secondary_in_icode, reload_secondary_out_icode,
17941         reload_reg_rtx, reload_when_needed): Delete definitions.
17942         (rld): New array.
17943         (whole file): Replace uses of the deleted arrays with uses of rld.
17944         * reload1.c (whole file): Replace uses of the deleted arrays with
17945         uses of rld.
17946         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
17947         explicit loops, not with bcopy.
17948
17949 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
17950
17951         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
17952         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
17953         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
17954         insn_name): Delete and consolidate into new structures.
17955         (insn_operand_predicate_fn): New.
17956         (insn_output_fn): New.
17957         (insn_gen_fn): New.
17958         (struct insn_operand_data): New.
17959         (struct insn_data): New.
17960         (insn_data): New.
17961         (OUT_FCN): Update for insn_data change.
17962         * builtins.c (expand_builtin_strlen): Likewise.
17963         (expand_builtin_memcmp): Likewise.
17964         * combine.c (make_extraction, simplify_comparison): Likewise.
17965         * cse.c (canon_reg, cse_insn): Likewise.
17966         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
17967         * expmed.c (store_bit_field, extract_bit_field): Likewise.
17968         (emit_store_flag): Likewise.
17969         * expr.c (convert_move, emit_block_move): Likewise.
17970         (clear_storage, emit_push_insn, expand_increment): Likewise.
17971         (do_store_flag): Likewise.
17972         * expr.h (GEN_FCN): Likewise.
17973         (insn_gen_function): Die.
17974         * final.c (final_scan_insn): Update for insn_data change.
17975         (output_asm_name): Likewise.
17976         * function.c (fixup_var_refs_1): Likewise.
17977         * loop.c (check_dbra_loop): Likewise.
17978         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
17979         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
17980         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
17981         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
17982         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
17983         * regmove.c (gen_add3_insn): Likewise.
17984         * reload.c (push_secondary_reload, combine_reloads): Likewise.
17985         (find_reloads, find_reloads_address_1): Likewise.
17986         (debug_reload_to_stream): Likewise.
17987         * reload1.c (emit_reload_insns, gen_reload): Likewise.
17988         * stmt.c (expand_end_case): Likewise.
17989         * toplev.c (compile_file): Likewise.
17990
17991         * c4x/c4x.c (c4x_process_after_reload): Likewise.
17992         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
17993
17994         * print-rtl.c (insn_name_ptr): Remove declaration.
17995         (get_insn_name): Declare.
17996         (print_rtx): Use it.
17997         * genoutput.c (insn_name_ptr): Remove.
17998         (next_operand_number): New.
17999         (struct operand_data): New.
18000         (null_operand, odata, odata_end): New.
18001         (struct data): Use struct operand_data.
18002         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
18003         (get_insn_name): Renamed from name_for_index.
18004         (output_prologue): Define NO_MD_PROTOTYPES.
18005         (output_predicate_decls): Break out from output_epilogue.
18006         Iterate over the operands list.
18007         (output_operand_data): Break out from output_epilogue.  Emit
18008         just the operands list.
18009         (output_insn_data): Break out from output_epilogue.  Emit just
18010         the insn data.
18011         (output_epilogue): Remove.
18012         (output_get_insn_name): New.
18013         (constraints, op_n_alternatives, predicates, address_p): Die.
18014         (modes, strict_low, seen): Die.
18015         (scan_operands): Take new param `d' instead of writing to
18016         seven global variables.
18017         (compare_operands): New.
18018         (place_operands): New.
18019         (validate_insn_alternatives): Update for struct data change.
18020         (gen_insn): Don't zero or copy 7 global arrays.  Update for
18021         scan_operands; call place_operands.
18022         (gen_peephole, gen_expand, gen_split): Likewise.
18023         (main): Update for new output routines.
18024
18025         * genattr.c (insn_name_ptr): Remove.
18026         (get_insn_name): New function.
18027         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
18028         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
18029         * genrecog.c: Likewise.
18030
18031         * alpha.md (adddi3): Make `pattern' array static.
18032
18033 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18034
18035         * config/c4x/c4x.h (c4x_rpts_cycles_string,
18036         c4x_cpu_version_string): Constify char *.
18037         * config/c4x/c4x.c (c4x_rpts_cycles_string,
18038         c4x_cpu_version_string): Likewise.
18039
18040 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
18041
18042         * tree.c (save_tree_status): Revert 10 Sep change.
18043         (restore_tree_status): Likewise.  Call obstack_free with NULL
18044         before freeing the obstack proper.
18045
18046 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
18047
18048         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
18049
18050         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
18051         surrounding context.
18052
18053 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
18054
18055         * tree.c (type_hash_canon): Put all types in the hash-table, when
18056         GC'ing.
18057
18058 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
18059
18060         * recog.h (struct recog_data, recog_data): New.
18061         (recog_foo variables): Kill.
18062         * recog.c (recog_operand, recog_operand_loc): Kill.
18063         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
18064         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
18065         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
18066         (recog_data): Define.
18067         (extract_insn): Update all recog_foo references to use recog_data.
18068         (preprocess_constraints, constrain_operands): Likewise.
18069         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
18070         * genattrtab.c (main): Likewise.
18071         * genextract.c (main): Likewise.
18072         * genoutput.c: Likewise.
18073         * genrecog.c (write_subroutine, main): Likewise.
18074         * local-alloc.c (block_alloc): Likewise.
18075         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
18076         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
18077         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
18078         * reload.c (find_reloads, find_reloads_toplev): Likewise.
18079         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
18080         (reload_cse_simplify_operands): Likewise.
18081
18082         * arc/arc.c (arc_final_prescan_insn): Likewise.
18083         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
18084         * h8300/h8300.c (notice_update_cc): Likewise.
18085         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
18086         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
18087         * mn10200/mn10200.c (notice_update_cc): Likewise.
18088         * mn10300/mn10300.c (notice_update_cc): Likewise.
18089         * romp/romp.c (update_cc): Likewise.
18090         * sparc/sparc.c (check_pic): Likewise.
18091         * v850/v850.c (notice_update_cc): Likewise.
18092
18093         * genemit.c (main): Don't declare recog_operand.
18094
18095 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
18096
18097         * ggc.h (rtvec_def): Forward declare.
18098         (tree_node): Likewise.
18099         (ggc_root): Define.
18100         (roots): Declare.
18101         (ggc_set_mark_rtx): Add prototype.
18102         (ggc_set_mark_rtvec): Likewise.
18103         (ggc_set_mark_tree): Likewise.
18104         * ggc-simple.c (ggc_root): Don't define.
18105         (roots): Don't declare.
18106         (ggc_mark_rtx): Remove.
18107         (ggc_mark_rtvec): Likewise.
18108         (ggc_mark_tree): Likewise.
18109         (ggc_mark_varray): Likewise.
18110         (ggc_mark_tree_hash_table_entry): Likewise.
18111         (ggc_mark_tree_hash_table): Likewise.
18112         (ggc_set_mart_rtx): New function.
18113         (ggc_set_mark_rtvec): Likewise.
18114         (ggc_set_mark_tree): Likewise.
18115         (ggc_add_root): Remove.
18116         (ggc_add_rtx_root): Likewise.
18117         (ggc_remove_tree_root): Likewise.
18118         (ggc_add_string_root): Likewise.
18119         (ggc_add_tree_varray_root): Likewise.
18120         (ggc_add_tree_hash_table_root): Likewise.
18121         (ggc_del_root): Likewise.
18122         (ggc_mark_rtx_ptr): Likewise.
18123         (ggc_mark_tree_ptr): Likewise.
18124         (ggc_mark_string_ptr): Likewise.
18125         (ggc_mark_tree_varray_ptr): Likewise.
18126         (ggc_mark_tree_hash_table_ptr): Likewise.
18127         * ggc-common.c: New file.
18128         * Makefile.in (OBJS): Add ggc-common.o.
18129         (ggc-common.o): List dependencies.
18130
18131 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
18132
18133         * cppalloc.c (xstrdup): Use memcpy.
18134         * cpperror.c (cpp_print_containing_files): Don't use
18135         cpp_notice.
18136         * cpplib.c (conditional_skip): Set temp->lineno.
18137         (do_endif): Make error message less obscure.
18138         (if_directive_name): New function.
18139         (cpp_get_token [case EOF]): Unwind the if stack and generate
18140         error messages for each unterminated conditional in this file.
18141         (parse_string):  Do not behave differently if -traditional.
18142
18143 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
18144
18145         * builtins.c (expand_builtin_va_arg): Cope with an array-type
18146         va_list decomposing to pointer-type.
18147         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
18148         (rs6000_va_arg): Likewise.
18149
18150 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
18151
18152         * except.c (start_dynamic_handler): Compute size using
18153         STACK_SAVEAREA_MODE.
18154
18155 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18156
18157         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
18158         include directory headers.  Don't define strrchr.  Don't provide
18159         my_* replacement functions.  Prefer PTR over `pointer_type'.
18160         Don't prototype system functions.  Don't redefine getopt.
18161
18162         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
18163         safe_read, safe_write, save_pointers, restore_pointers,
18164         is_id_char, in_system_include_dir, directory_specified_p,
18165         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
18166         find_corresponding_lparen, referenced_file_is_newer,
18167         save_def_or_dec, munge_compile_params, gen_aux_info_file,
18168         process_aux_info_file, identify_lineno, check_source,
18169         seek_to_line, forward_to_next_token_char, output_bytes,
18170         output_string, output_up_to, other_variable_style_function,
18171         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
18172         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
18173         find_static_definition, connect_defs_and_decs, add_local_decl,
18174         add_global_decls, needs_to_be_converted, visit_each_hash_node,
18175         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
18176         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
18177         scan_for_missed_items, edit_file, string_list_cons): Add static
18178         prototypes.
18179         (standard_exec_prefix, target_machine, target_version,
18180         default_syscalls_dir, string_list, string_list_cons, find_file,
18181         do_cleaning): Constify a char*.
18182         (safe_read, safe_write): Use PTR, not a char*.
18183         (is_id_char): Take an int, not a char.
18184         (main): Add prototype.  Call return, not exit.
18185
18186 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
18187
18188         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
18189         when comparing types.
18190
18191 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
18192
18193         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
18194         (strength_reduce): Release the varrays from the no-bivs early exit.
18195
18196         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
18197         the loop over the registers.
18198
18199         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
18200         for a new obstack.
18201         (restore_tree_status): Check that instead when freeing the obstack.
18202
18203 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
18204
18205         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
18206         as pointers.
18207
18208 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18209
18210         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
18211         operand size modifiers.
18212
18213 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18214
18215         * c-common.c (c_common_nodes_and_builtins): Don't build
18216         va_list_type_node.
18217         * c-common.h (enum c_tree_index and related accesor macros): Remove
18218         everything now declared in tree.h.
18219         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
18220         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
18221         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
18222         (error_mark_node, void_type_node, char_type_node, integer_type_node,
18223         unsigned_type_node, ptr_type_node, va_list_type_node,
18224         integer_zero_node, null_pointer_node, integer_one_node): Delete.
18225         (init_decl_processing): Call build_common_tree_nodes and
18226         build_common_tree_nodes_2 instead of building their nodes here.
18227         Don't add roots for these nodes.
18228         * stor-layout.c (size_zero_node, size_one_node): Delete.
18229         (set_sizetype): Make a new node for bitsizetype each time.
18230         * tree.c (global_trees): New variable.
18231         (init_obstacks): Add a gc root for it.
18232         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
18233         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
18234         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
18235         (build_common_tree_nodes): New function.
18236         (fix_sizetype): New function.
18237         (build_common_tree_nodes_2): New function.
18238         * tree.h (enum tree_index): New.
18239         (global_trees): Declare.
18240         Add accessor macros for all nodes now moved to global_trees.
18241         Delete their declarations.
18242
18243 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
18244
18245         * c-decl.c (finish_function): When processing a nested function,
18246         push and pop GC context around rest_of_compilation.
18247
18248 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
18249
18250         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
18251         Default ix86_arch to PROCESSOR_I386.
18252         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
18253         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
18254         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
18255         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
18256         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
18257         (EXTRA_SPECS): Remove deleted specs.
18258
18259 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
18260
18261         * function.c (assign_stack_local_1): Allocate from
18262         function->x_frame_offset, not frame_offset.
18263
18264 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
18265
18266         * ggc.h (lang_cleanup_tree): Remove.
18267         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
18268         * ggc-callbacks.c (lang_cleanup_tree): Remove.
18269
18270         * c-decl.c (finish_struct): Use ggc_alloc to allocate
18271         TYPE_LANG_SPECIFIC when garbage collecting.
18272         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
18273         (lang_cleanup_tree): Remove.
18274
18275 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
18276
18277         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
18278         * crtstuff.c: Not here.
18279         * dwarf2out.c: Or here.
18280         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
18281         info.
18282
18283 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
18284
18285         * function.h (free_after_compilation): Remove decl parameter.
18286         (free_varasm_status0: Likewise.
18287         (free_emit_status): Likewise.
18288         (free_stmt_status): Likewise.
18289         (free_after_compilation): Likewise.
18290         (init_lang_status): New variable.
18291         (free_lang_status): Likewise.
18292         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
18293         * function.c (init_lang_status): New variable.
18294         (free_lang_status): Likewise.
18295         (push_function_context_to): Don't set function::decl here.
18296         (free_after_copmilation): Make decl parameter implicit.  Call
18297         free_lang_status if defined.
18298         (prepare_function_start): Call init_lang_status if defined.
18299         (init_function_start): Set function::decl here.
18300         * profile.c (output_func_start_profiler): Don't call pushdecl
18301         until we've actually started the function.
18302         * stmt.c (free_stmt_status): Make decl parameter implicit.
18303         * toplev.c (rest_of_compilation): Don't pass decl to
18304         free_after_compilation.
18305         * varasm.c (free_varasm_status): Likewise.
18306
18307 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18308
18309         * except.c (call_get_eh_context): Add root when allocating static
18310         tree variable.
18311
18312 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
18313
18314         * arm.c: Include "ggc.h".
18315         (arm_add_gc_roots): New function.
18316         (arm_override_options): Call it.
18317         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
18318
18319         * arm.md (define_asm_attributes): Add a pool_range attribute.
18320
18321 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
18322
18323         * extend.texi (Volatiles): New node.
18324
18325 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
18326
18327         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
18328         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
18329         (struct ggc_any): Replace `mark' with `magic_mark'.
18330         (ggc_alloc_string): Use memcpy, not bcopy.
18331         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
18332         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
18333         (ggc_free_any): New.
18334         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
18335         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
18336         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
18337         Use IS_MARKED. Use ggc_free_any.
18338
18339 1999-09-09  Scott Bambrough <scottb@netwinder.org>
18340
18341         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
18342
18343 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
18344
18345         * toplev.c (main): Always init_ggc.
18346
18347 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
18348
18349         * except.c (find_all_handler_type_matches): Free the list if
18350         we found no matches.
18351
18352         * combine.c (SUBST): Break out to a real function do_SUBST.
18353         (SUBST_INT): Likewise.
18354         * gcse.c (free_pre_mem): Free `temp_bitmap'.
18355         (pre_insert): Free `inserted'.
18356         * loop.c (basic_induction_var): Always set `location'.
18357
18358         * function.c (expand_function_end): Add initial_trampoline as a root.
18359         * rtl.h (init_varasm_once): Declare.
18360         * toplev.c (compile_file): Call it.
18361         * ggc-simple.c (ggc_mark_string_ptr): New.
18362         (ggc_add_string_root): New.
18363         (ggc_collect): Disable collection avoidance temporarily.
18364         * ggc.h (ggc_add_string_root): Declare.
18365         * except.c (create_rethrow_ref): Use ggc_alloc_string.
18366         * optabs.c (init_libfuncs): Likewise.
18367         * varasm.c (named_section): Use ggc_alloc_string.
18368         (make_function_rtl): Likewise.
18369         (make_decl_rtl): Likewise.
18370         (assemble_static_space): Likewise.
18371         (assemble_trampoline_template): Likewise.
18372         (output_constant_def): Likewise.
18373         (force_const_mem): Likewise.
18374         (mark_const_hash_entry): New.
18375         (mark_pool_sym_hash_table): New.
18376         (mark_varasm_state): Use it.
18377         (init_varasm_once): New.
18378
18379         * expr.h (init_one_libfunc): Declare.
18380         * optabs.c (init_one_libfunc): New.
18381         (init_optabs): Use it.
18382         * config/gofast.h: Likewise.
18383         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
18384         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
18385
18386 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
18387
18388         * Makefile.in (cppexp.o): Depend on cpphash.h.
18389         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
18390         Include cpphash.h.
18391         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
18392         * cpplib.c (do_define): Generalise to handle poisoned definitions,
18393         redefining poisoned identifiers, etc.
18394         (do_undef): Don't allow poisoned identifiers to be undefined.
18395         (do_pragma): Add #pragma poison.
18396         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
18397
18398         * cccp.c: Add T_POISON node type.
18399         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
18400         poisoned xxx.
18401         (do_define): Generalise to handle poisoned definitions,
18402         redefining poisoned identifiers, etc.
18403         (do_undef): Don't allow poisoned identifiers to be undefined.
18404         (do_pragma): Add #pragma poison.
18405         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
18406
18407         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
18408         * c-pragma.h: Add ps_poison state.  We now always have generic
18409         pragmas.
18410
18411 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
18412
18413         * ggc.h (ggc_alloc): New function.
18414         (ggc_mark): Likewise.
18415         * ggc-simple.c (ggc_any): New structure.
18416         (ggc_status): Add anys.
18417         (n_anys_collected): New variable.
18418         (ggc_alloc): Define.
18419         (ggc_mark): Likewise.
18420         (ggc_collect): Collect the anys.
18421
18422 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18423
18424         * c-decl.c (mark_binding_level): Make static to match prototype.
18425
18426 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
18427
18428         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
18429
18430 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
18431
18432         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
18433         will use into account.  Expand the max width to 5.
18434         * rtl.c: Likewise.
18435
18436 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
18437
18438         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
18439         for the rtx length.
18440
18441 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
18442
18443         * alpha.md (call value patterns): Remove the result predicates.
18444
18445 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
18446
18447         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
18448         last change.
18449
18450 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18451
18452         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
18453         changed from extern char *, to extern PTR.  Also fix typo in
18454         NEED_DECLARATION_REALLOC test.
18455
18456         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
18457
18458 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18459
18460         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
18461         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
18462         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
18463         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
18464
18465         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
18466
18467         * cccp.c (pcfinclude): Likewise.
18468
18469         * global.c (allocno_compare): Likewise.
18470
18471         * haifa-sched.c (rank_for_schedule): Likewise.
18472
18473         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
18474
18475         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
18476
18477         * stupid.c (stupid_reg_compare): Likewise.
18478
18479         * tree.c (_obstack_allocated_p): Likewise.
18480
18481         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
18482
18483 1999-09-08  Bruce Korb  autogen@linuxbox.com
18484
18485         * Makefile.in: Give the hapless gperf user a hint about
18486         why "gperf -F" fails.
18487
18488 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
18489
18490         * lists.c: Include ggc.h.
18491         (zap_lists): New.
18492         (init_EXPR_INSN_LIST_cache): Install it.
18493
18494         * ggc-simple.c (init_ggc): Absorb the old init.
18495         (ggc_push_context): Use xcalloc.
18496         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
18497         (ggc_collect): Add [rvts] tags to the collection stats.
18498
18499 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
18500
18501         * cccp.c (main): Fix handling of -include and -imacros options.
18502
18503 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
18504
18505         * cpplib.c (cpp_push_buffer): Fix order of arguments.
18506
18507 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
18508
18509         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
18510         genrtl.c.
18511
18512 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
18513
18514         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
18515         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
18516         and SET_DEST. Update comment.
18517
18518 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18519
18520         * config/c4x/c4x.c: Include ggc.h.
18521         (c4x_add_gc_roots): New function.
18522         (c4x_override_options): Call c4x_add_gc_roots.
18523
18524 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
18525
18526         * defaults.h (TARGET_ESC): Move ...
18527         * system.h: ... here, where Linas had it in the first place.  Silly me.
18528
18529 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
18530
18531         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
18532         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
18533         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
18534         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
18535         * defaults.h (TARGET_ESC): Add default.
18536
18537 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
18538
18539         * configure.in: add i370-*-openedition, i370-*-mvs and
18540         i370-*-linux targets
18541
18542 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
18543
18544         * dsp16xxx.c: Include ggc.h
18545         (override_options): Mark GC roots.
18546         * mn10200.c: Include ggc.h.
18547         (asm_file_start): Mark GC roots.
18548         * tahoe.c: Include ggc.h.
18549         (extensible_operand): Mark GC roots.
18550
18551 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
18552
18553         * README: Add section discussing status of ELF ABI.
18554         * i370.c: Fix misc spelling mistakes.
18555         (i370_label_scan): Updated notes, exception handling.
18556         (i370_function_prolog): Simplify ELF stack handling.
18557         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
18558         (STACK_GROWS_DOWNWARD): ELF stack grows down.
18559         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
18560         * i370.md: (movdi): Add notes.
18561         (floatsidf2): Use stack not rtca for scratch float area.
18562         (iorsi3): Correct operand constraints.
18563         * x-oe: Restore TAROUTOPTS which are used by pax.
18564
18565 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
18566
18567         * rs6000.c: Include ggc.h.
18568         (rs6000_add_gc_roots): New function.
18569         (override_options): Call it.
18570
18571 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
18572
18573         * alpha.h (alpha_compare): New.
18574         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
18575         * alpha.c: Likewise for the definitions.
18576         (alpha_emit_conditional_branch): Update for alpha_compare.
18577         (alpha_emit_conditional_move): Likewise.
18578         * alpha.md (cmpdf, cmpdi): Likewise.
18579         (setcc patterns): Likewise.  Zero alpha_compare after use.
18580         (sne): Optimize (x != 0) into (0U < x).
18581
18582 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
18583
18584         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
18585         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
18586         (INIT_EXPANDERS): Remove.
18587         * alpha.c: Include ggc.h.
18588         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
18589         (alpha_init_machine_status, alpha_mark_machine_status): New.
18590         (override_options): Install them.
18591         (struct machine_function): Moved to alpha.h.
18592         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
18593         (alpha_init_expanders): Remove.
18594         (alpha_return_addr): Adjust to use current_function->machine.
18595         (alpha_ra_ever_killed): Likewise.
18596         (alpha_expand_epilogue): Likewise.
18597         * alpha.md (eh_epilogue): Likewise.
18598
18599 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
18600                           Melissa O'Neill  <oneill@cs.sfu.ca>
18601                           Geoffrey Keating  <geoffk@cygnus.com>
18602
18603         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
18604         call-used registers (call-saved registers must still be contiguous
18605         and end with r31, of course).
18606
18607 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
18608
18609         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
18610         (self_promoting_type_p): Delete.
18611         (self_promoting_args_p): Move ...
18612         * c-common.c: ... here.
18613         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
18614         (simple_type_promotes_to): New.
18615         * builtins.c (lang_type_promotes_to): New.
18616         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
18617         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
18618         * c-common.h: ... here.
18619         (self_promoting_args_p, simple_type_promotes_to): Declare.
18620         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
18621         (grokdeclarator): Likewise.
18622         * tree.h (lang_type_promotes_to): Declare.
18623
18624 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
18625
18626         Add some machine-dependent GC roots.
18627         * sparc.c: Include ggc.h.
18628         (sparc_add_gc_roots): New function.
18629         (mark_ultrasparc_pipeline_state): Likewise.
18630         (override_options): Call sparc_add_gc_roots.
18631         * pa.c: Include ggc.h.
18632         (pa_add_gc_roots): New function.
18633         (mark_deferred_plabels): Likewise.
18634         (override_options): Call pa_add_gc_roots.
18635         * mips.c: Include ggc.h.
18636         (mips_add_gc_roots): New function.
18637         (override_options): Use it.
18638
18639 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18640
18641         * cpperror.c (cpp_file_line_for_message): Constify a char*.
18642
18643         * cppexp.c (parse_number, parse_charconst, cpp_lex,
18644         cpp_parse_expr): Add static prototypes.
18645         (parse_charconst): Don't cast away const-ness.
18646         (token): Constify a char*.
18647
18648         * cppfiles.c (file_name_list, include_hash, find_include_file,
18649         finclude, initialize_input_buffer): Constify a char*.
18650         (file_cleanup, find_position): Add static prototypes.
18651
18652         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
18653         collect_expansion): Add static prototypes.
18654         (cpp_install, create_definition, monthnames): Constify a char*.
18655
18656         * cpphash.h (cpp_install): Likewise.
18657
18658         * cppinit.c (known_suffixes, default_include,
18659         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
18660         (base_name, dump_special_to_buffer, initialize_dependency_output):
18661         Add static prototypes.
18662
18663         * cpplib.c (my_strerror): Constify a char*.
18664         (null_underflow, null_cleanup, skip_comment, copy_comment,
18665         copy_rest_of_line, handle_directive, pass_thru_directive,
18666         get_directive_token, read_line_number, cpp_print_file_and_line,
18667         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
18668         v_cpp_warning_with_line, detect_if_not_defined,
18669         consider_directive_while_skipping): Add static prototypes.
18670         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
18671         cpp_pedwarn_with_file_and_line): Constify a char*.
18672
18673         * cpplib.h (cpp_options, include_hash, progname, definition,
18674         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
18675         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
18676         find_include_file, deps_output, include_hash): Constify a char*.
18677
18678         * cppmain.c (progname): Constify.
18679         (main): Add prototype.  Use return, not exit.
18680
18681         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
18682         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
18683         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
18684         check_protection): Add static prototype.
18685         (xfree): Remove.
18686         (progname, recognized_macrom, recognized_extern): Constify a char*.
18687         (main): Add prototype.
18688
18689         * gen-protos.c (progname): Constify a char*.
18690
18691 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
18692
18693         * emit-rtl.c (free_emit_status): Take decl as a parameter.
18694         (init_emit_once): Add more GC roots.
18695         * except.c (mark_func_eh_entry): New function.
18696         (mark_eh_node): Mark false_label and rethrow_label.
18697         (init_eh): Add more GC roots.
18698         * function.c (free_after_compilation): Take decl as a paramter.
18699         Call free_stmt_status.
18700         (mark_function_state): Don't assume x_parm_reg_stack_loc is
18701         non-NULL.
18702         * function.h (free_after_compilation): Change prototype.
18703         (free_varasm_status): Likewise.
18704         (free_emit_status): Likewise.
18705         (free_stmt_status): New function.
18706         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
18707         Remove, replacing with ...
18708         (ggc_status): New structure.
18709         (ggc_chain): New variable.
18710         (init_gcc): Define.
18711         (ggc_push_context): New function.
18712         (ggc_pop_context): Likewise.
18713         (ggc_alloc_rtx): Adjust for use of ggc_chain.
18714         (ggc_alloc_rtvec): Likewise.
18715         (ggc_alloc_tree): Likewise.
18716         (ggc_alloc_string): Likewise.
18717         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
18718         (ggc_mark_tree): Give language-dependent code a chance to mark
18719         `x' nodes.
18720         (ggc_mark_tree_varray): Handle empty arrays.
18721         (ggc_collect): Adjust for use of ggc_chain.  Clear
18722         bytes_alloced_since_last_gc.
18723         * ggc.h (ggc_pop_context): New function.
18724         (ggc_push_context): Likewise.
18725         * print-tree.c (print_node): Don't print obstacks when GC'ing.
18726         * stmt.c (free_stmt_status): New function.
18727         (init_stmt_for_function): Clear last_expr_value.
18728         * toplev.c (rest_of_compilation): Always call free_after_compilation.
18729         Conditionalize call to ggc_collect.
18730         (main): Call init_ggc.
18731         * tree.c (push_obstacks): Do the push, even when GC'ing.
18732         (push_obstacks_nochange): Likewise.
18733         (pop_obstacks): Liekwise.
18734         * varasm.c (free_varasm_status): Take decl as a parameter.
18735
18736 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18737
18738         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
18739         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
18740         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
18741         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
18742
18743 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
18744
18745         * pa/x-pa-mpeix: New file for the MPE port.
18746
18747         * pa/quadlib.asm: New file for long double support.
18748
18749         * configure.in: Add hppa1.0-*-mpeix for MPE port.
18750         * configure: Rebuilt.
18751
18752 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
18753
18754         * final.c (shorten_branches): Fix last change.
18755
18756 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
18757
18758         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
18759
18760 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
18761
18762         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
18763         details.
18764
18765 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18766
18767         * c-aux-info.c (concat): Don't define.
18768
18769         * cccp.c (my_strerror): Likewise.  All callers changed to use
18770         xstrerror instead.
18771         (do_include): Call xstrdup, not xmalloc/strcpy.
18772         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
18773         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
18774
18775         * collect2.c (my_strsignal): Likewise.  All callers changed to use
18776         strsignal instead.
18777         (locatelib): Call xstrdup, not xmalloc/strcpy.
18778
18779         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
18780
18781         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
18782
18783         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
18784
18785         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
18786
18787         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
18788
18789         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
18790
18791         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
18792         malloc/realloc.
18793         (find_all_handler_type_matches): Likewise.  Don't check return
18794         value.
18795         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
18796         xmalloc, not malloc.
18797         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
18798
18799         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
18800         (init_spec): Call xcalloc, not xmalloc/bzero.
18801         (set_spec): Call xstrdup, not save_string.
18802         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
18803         (find_a_file): Call xstrdup, not xmalloc/strcpy.
18804         (process_command): Call xstrdup, not save_string.
18805         (main): Call xcalloc, not xmalloc/bzero.
18806
18807         * gcov.c (xmalloc): Don't define.
18808         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
18809         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
18810         (output_data): Call xcalloc, not xmalloc/bzero.
18811
18812         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
18813
18814         * mips-tdump.c (xmalloc): Don't define.
18815         (print_symbol): Call xmalloc, not malloc.
18816         (read_tfile): Call xcalloc, not calloc.
18817
18818         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
18819         Don't define.  All callers of xfree/my_strsignal changed to use
18820         free/strsignal instead.
18821         (allocate_cluster): Call xcalloc, not calloc.
18822
18823         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
18824         Fix memory leak, free allocated memory.
18825
18826         * prefix.c (translate_name): Call xstrdup, not save_string.
18827         (update_path): Likewise.
18828
18829         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
18830
18831         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
18832         Don't define.  Callers of xfree/savestring2 changed to use
18833         free/concat instead.
18834
18835         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
18836         (init_elim_table): Likewise.
18837
18838         * resource.c (init_resource_info): Likewise.
18839
18840         * stupid.c (stupid_life_analysis): Likewise.
18841
18842         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
18843         (open_dump_file): Call concat, not xmalloc/strcpy/...
18844         (clean_dump_file): Likewise.
18845         (compile_file): Call xstrdup, not xmalloc/strcpy.
18846
18847 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
18848
18849         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
18850         * v850.c (v850_va_arg): New.
18851
18852 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18853
18854         * haifa-sched.c: Tidy comments.
18855
18856 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18857
18858         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
18859         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
18860         $(out_object_file)): Depend on ggc.h.
18861         * c-common.c: Include "ggc.h".
18862         (combine_strings): If doing GC, use ggc_alloc_string.
18863         * c-decl.c: Include "ggc.h".
18864         (ggc_p): Define with value 0.
18865         (mark_binding_level): New function.
18866         (init_decl_processing): Add GC roots.
18867         (mark_c_function_context): New function.
18868         (lang_mark_false_label_stack): New function.
18869         (lang_mark_tree): New function.
18870         (lang_cleanup_tree): New function.
18871         * c-lang.c: Include "ggc.h".
18872         (lang_init): Call c_parse_init.
18873         * c-lex.c: Include "ggc.h".
18874         (check_linenum): If doing GC, don't copy filenames to permanent
18875         obstack.
18876         * c-parse.in: Include "ggc.h".
18877         (c_parse_init): New function.
18878         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
18879         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
18880
18881         * except.c (mark_eh_state): Mark more state.
18882         * function.c (mark_function_state): Likewise.
18883         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
18884         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
18885         * toplev.c (mark_file_stack): New function.
18886         (compile_file): If doing GC, use ggc_alloc_string on input filename.
18887         (main): Add root for input_file_stack.
18888
18889         * i386.c: Include "ggc.h".
18890         (ix86_mark_machine_status): New function.
18891         (override_options): Set mark_machine_status.
18892
18893 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18894
18895         * tree.c (copy_node): Copy node contents also if doing GC.
18896
18897 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
18898
18899         * collect2.c (scan_libraries): Fix double-thinko :-).
18900
18901 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
18902
18903         * collect2.c (scan_libraries): Fix thinko.
18904
18905         * cse.c (delete_trivially_dead_insns): Do not skip the last
18906         insn if it is a real insn.
18907
18908 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
18909
18910         * Makefile.in (ggc-simple.o): Depend on hash.h.
18911         * ggc.h (ggc_add_tree_hash_table_root): Declare.
18912         (ggc_mark_tree_varray): Likewise.
18913         (ggc_mark_tree_hash_table): Likewise.
18914         * ggc-simple.c: Include hash.h.
18915         (ggc_mark_tree_hash_table_ptr): New function.
18916         (ggc_mark_tree_hash_table_entry): Likewise.
18917         (ggc_mark_tree_hash_table): Likewise.
18918         (ggc_add_tree_hash_table_root): Likewise.
18919         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
18920         rtx, when defining fields.
18921
18922 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
18923
18924         * profile.c (output_func_start_profiler): Remove apparently
18925         nonsensical call to start_sequence.
18926
18927 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
18928
18929         * clipper/clipper.c (clipper_va_start): Fix typos.
18930
18931         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
18932         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
18933         (spur_va_arg): New stub.
18934
18935         * configure.in: Comment out pyramid.
18936
18937 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
18938
18939         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
18940         don't conflict with the bits that win32, cygwin, and dgux
18941         defines.
18942
18943 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
18944                           Bernd Schmidt <bernds@cygnus.co.uk>
18945
18946         * integrate.c (function_cannot_inline_p): Do not inline
18947         functions with forced labels.
18948
18949 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
18950                           Bernd Schmidt <bernds@cygnus.co.uk>
18951                           Mark Mitchell  <mark@codesourcery.com>
18952
18953         * Makefile.in (ggc-simple.o): Depend on varray.h.
18954         (rtl.o): Depend on ggc.h.
18955         (genattrtab.o): Depend on ggc.h.
18956         (print-tree.o): Likewise.
18957         (fold-const.o): Likewise.
18958         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
18959         (make_insn_raw): Don't cache insns when GC'ing.
18960         (emit_insn_before): Likewise.
18961         (emit_insn_after): Likewise.
18962         (emit_insn): Likewise.
18963         (start_sequence): Use xmalloc to allocate the sequence_stack.
18964         (end_sequence): Add free to free it.
18965         (gen_sequence): Don't cache insns when GC'ing.
18966         (clear_emit_caches): Don't use sequence_element_free_list.
18967         (init_emit): Use xcalloc, not xmalloc+bzero.
18968         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
18969         * function.c (pop_function_context_from): Use free to free the
18970         fixup_var_refs_queue.
18971         (put_reg_into_stack): Allocate it with xmalloc.
18972         * genattrtab.c: Include ggc.h.
18973         (operate_exp): Don't use obstack_free when GC'ing.
18974         (simplify_cond): Likewise.
18975         (simplify_text_exp): Likewise.
18976         (optimize_attrs): Likewise.
18977         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
18978         GC'ing.
18979         (gencode): Generate a #include for ggc.h.
18980         * ggc-callbacks.c (ggc_p): Define it to zero.
18981         * ggc-none.c (ggc_p): Likewise.
18982         * ggc-simple.c: Include varray.h.
18983         (ggc_mark_tree_varray): New function.
18984         (ggc_add_tree_varray_root): Likewise.
18985         (ggc_mark_tree_varray_ptr): Likewise.
18986         * ggc.h (ggc_p): Declare.
18987         (varray_head_tag): Likewise.
18988         (ggc_add_tree_varray_root): Declare.
18989         * print-tree.c (print_node): Don't check for TREE_PERMANENT
18990         inconsistencies when GC'ing.
18991         * rtl.c: Include ggc.h.
18992         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
18993         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
18994         (rtx_free): Don't call obstack_free when GC'ing.
18995         * toplev.c (rest_of_compilation): Call ggc_collect after every
18996         pass, if GC'ing.
18997         * tree.c (push_obstacks): Do nothing, if GC'ing.
18998         (pop_obstacks_nochange): Likewise.
18999         (pop_obstacks): Likewise.
19000         (make_node): Use ggc_alloc_tree when GC'ing.
19001         (copy_node): Likewise.
19002         (get_identifier): Use ggc_alloc_string when GC'ing.
19003         (build_string): Likewise.
19004         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
19005         (tree_cons): Likewise.
19006         (build1): Likewise.
19007         (type_hash_canon): Don't call obstack_free when GC'ing.
19008
19009 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
19010
19011         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
19012         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
19013
19014 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
19015                           Bernd Schmidt <bernds@cygnus.co.uk>
19016                           Mark Mitchell  <mark@codesourcery.com>
19017
19018         * Makefile.in (stor-layout.o): Depend on ggc.h.
19019         (expr.o): Depend on ggc.h.
19020         (profile.o): Depend on ggc.h.
19021         (stor-layout.o): Depend on ggc.h.
19022         * emit-rtl.c (init_emit_once): Add gc roots.
19023         * expr.c: Include ggc.h.
19024         (emit_block_move): Add gc roots.
19025         (clear_storage): Likewise.
19026         * expr.h (init_stor_layout_once): New function.
19027         * profile.c: Include ggc.h.
19028         (init_arc_profiler): profiler_label is a root.
19029         * scan.c (make_sstring_space): Trust xrealloc to function
19030         correctly with first parameter NULL.
19031         * stor-layout.c: Include ggc.h.
19032         (set_sizetype): Add gc root.
19033         (init_stor_layout_once): New function.
19034         * toplev.c (compile_file): Call it.
19035
19036 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
19037                           Bernd Schmidt <bernds@cygnus.co.uk>
19038                           Mark Mitchell  <mark@codesourcery.com>
19039
19040         * Makefile.in (tree.o): Depend on ggc.h.
19041         (varasm.o): Likewise.
19042         (function.o): Likewise.
19043         (stmt.o): Likewise.
19044         (except.o): Likewise.
19045         (optabs.o): Likewise.
19046         (emit-rtl.o): Likewise.
19047         * emit-rtl.c: Include ggc.h.
19048         (sequence_element_free_list): Remove, and all references.
19049         (mark_sequence): New functions.
19050         (mark_emit_state): New function.
19051         * except.c: Include ggc.h.
19052         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
19053         (mark_tree_label_node): New functions.
19054         (mark_eh_state): New function.
19055         * function.c: Include ggc.h.
19056         (mark_temp_slot, mark_function_chain): New functions.
19057         (mark_function_state): New function.
19058         (init_function_once): New function.
19059         * function.h (init_function_once): New function.
19060         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
19061         * ggc.h (label_node): Declare.
19062         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
19063         (lang_mark_false_label_stack): New function.
19064         (mark_temp_slot): Remove declaration.
19065         (mark_function_chain): Likewise.
19066         (mark_eh_state): Adjust prototype.
19067         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
19068         Likewise.
19069         * optabs.c: Include ggc.h.
19070         (mark_optab): New function.
19071         (init_optabs): Add gc roots.
19072         * stmt.c: Include ggc.h.
19073         (mark_cond_nesting, mark_loop_nesting): New functions.
19074         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
19075         (mark_stmt_state): New function.
19076         * toplev.c (compile_file): Call init_function_once.
19077         * tree.c: Include ggc.h.
19078         (type_hash): Move declaration earlier in file.
19079         (TYPE_HASH_SIZE, type_hash_table): Likewise.
19080         (init_obstacks): Add gc roots.
19081         (mark_type_hash): New function.
19082         * varasm.c: Include ggc.h.
19083         (mark_pool_constant): New function.
19084         (mark_varasm_state): New function.
19085
19086 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19087
19088         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
19089
19090 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
19091
19092         * c-decl.c (struct language_function): Renamed from struct c_function.
19093         Delete elt NEXT.
19094         (c_function_chain): Delete.
19095         (push_c_function_context): New arg F.  Don't warn about nested
19096         functions here.  Fill LANGUAGE elt of F.  Delete code to update
19097         c_function_chain.  Don't call push_function_context.
19098         (pop_c_function_context): New arg F.  Restore from there instead of
19099         from c_function_chain.  Don't call pop_function_context.  Clear out
19100         LANGUAGE field of F when done.
19101         * c-lang.c: Include "function.h"
19102         (lang_init): Initialize save_lang_status and restore_lang_status.
19103         * c-parse.in (nested_function, nested_function_notype): Warn about
19104         nested functions.  Call push_function_context/pop_function_context
19105         instead of the _c_ variants.
19106         * c-tree.h (push_c_function_context, pop_c_function_context): Update
19107         prototype.
19108         * Makefile.in (c-lang.o): Update dependencies.
19109
19110         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
19111         regno_pointer_flag, regno_pointer_align.
19112         (gen_reg_rtx): Use xrealloc to enlarge them.
19113         (free_emit_status): New function.
19114         * function.c (mark_machine_status, mark_lang_status): New variables.
19115         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
19116         in some bits from assign_stack_local.  All callers changed to use new
19117         name.
19118         (assign_stack_local): Just call assign_stack_local_1.
19119         (free_after_compilation): New function.
19120         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
19121         (trampoline_address): Likewise.
19122         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
19123         (prepare_function_start): Explicitly clear some more variables.
19124         * function.h (struct function): New elt can_garbage_collect.
19125         (mark_machine_status, mark_lang_status): Declare variables.
19126         (free_after_compilation, free_emit_status, free_varasm_status,
19127         init_varasm_status): Declare functions.
19128         * toplev.c (rest_of_compilation): Call free_after_compilation when
19129         done with the current function.
19130         * varasm.c (free_varasm_status): New function.
19131
19132 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
19133
19134         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
19135         (EXPAND_BUILTIN_VA_ARG): Define.
19136         * sparc.c (sparc_va_start): New.
19137         (sparc_va_arg): New.
19138
19139 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19140
19141         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
19142
19143 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19144
19145         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
19146
19147 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
19148
19149         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
19150         (OBJS): Add $(GGC).
19151         (ggc-callbacks.o): New target.
19152         * ggc-callbacks.c: New file.
19153
19154 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19155
19156         * expr.h: Collapse individual optab and libfunc vars to arrays.
19157         (optab_index, libfunc_index): New enumerations.
19158         (optab_table, libfunc_table): New arrays.
19159         Add accessor macros for both.
19160
19161         * optabs.c (optab_table, libfunc_table): New.
19162         Delete declarations for individual optab and libfunc vars.
19163
19164 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
19165
19166         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
19167
19168 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
19169
19170         * Makefile.in (GGC, GGC_LIB): New.
19171         (HOST_RTL): Include ggc-none.o.
19172         (ggc-simple.o): New target.
19173         (ggc-none.o): Likewise.
19174         * tree.h (tree_common): Add gc_mark.
19175         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
19176         (struct rtvec_def): Add gc_mark.
19177         * emit-rtl.c (global_rtl): Update static initializers to contain
19178         enough initializers.
19179         * ggc.h, ggc-none.c, ggc-simple.c: New files.
19180         * toplev.c (gc_time): New variable.
19181         (all_time): New variable.
19182         (compile_file): Print gc time.
19183         (print_time): Calculate percentage of the whole.
19184
19185 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19186
19187         Change obstack memory management and varasm constant pool handling so
19188         that nested functions are treated like any other functions.
19189         * function.c (init_machine_status): New variable.
19190         (push_function_context_to): Set contains_functions for the outer
19191         function.  Don't call save_varasm_status.
19192         (pop_function_context_from): Don't call restore_varasm_status.  Don't
19193         set current_function_contains_functions.
19194         (prepare_function_start): Call init_varasm_status rather than
19195         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
19196         is non-null.
19197         * function.h (struct function) Add field varasm.  Delete fields
19198         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
19199         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
19200         (init_machine_status): Declare.
19201         (save_varasm_status, restore_varasm_status): Delete declarations.
19202         (save_tree_status, restore_tree_status): Delete last argument.
19203         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
19204         code.  All callers changed.
19205         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
19206         save_constants_in_decl_trees, restore_constants, save_constants,
19207         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
19208         functions.
19209         (inlining): New variable.
19210         (reg_map, label_map, insn_map, orig_asm_operands_vector,
19211         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
19212         variables.
19213         (save_for_inline_nocopy): Don't save constants.
19214         Don't set inl_emit field in current_function.
19215         (expand_inline_function): Use emit field, not inl_emit, of the inlined
19216         function.  Set new variable inlining before
19217         calling copy_rtx_and_substitute.
19218         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
19219         constant pool references if inlining is nonzero.
19220         Delete ADDRESS and (most of the) CONST cases.
19221         (output_inline_function): Save and restore current_function/
19222         current_function_decl.  Delete restore_constants code.  Don't call
19223         init_const_rtx_hash_table.
19224         * output.h (init_const_rtx_hash_table): Don't declare.
19225         * rtl.h (struct function): Declare.
19226         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
19227         * toplev.c (rest_of_compilation): Don't treat nested functions or
19228         functions containing them specially.  Delete all code to deal with
19229         save_for_inline_copying.
19230         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
19231         inline_obstacks): Delete variables.
19232         (save_tree_status): Lose arg CONTEXT.  All callers changed.
19233         Simply allocate a new function_maybepermanent_obstack for the new
19234         function, delete all the special cases.
19235         Don't save inline_obstacks.
19236         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
19237         Delete special handling for function_maybepermanent_obstack; simply
19238         free it if empty.
19239         Don't restore inline_obstacks.
19240         (permanent_allocation):  Delete code that frees inline_obstacks.
19241         (print_inline_obstack_statistics): Delete function.
19242         (dump_tree_statistics): Don't call it.
19243         * varasm.c (struct varasm_status): New.
19244         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
19245         last_pool, pool_offset, const_double_chain): Delete global
19246         variables, replace with accessor macros.
19247         (immed_double_const): Don't walk const_double_chain outside a
19248         function, but don't treat nested functions specially anymore.
19249         (immed_real_const_1): Likewise.
19250         (clear_const_double_mem): Don't treat nested functions specially.
19251         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
19252         (save_varasm_status, restore_varasm_status): Delete functions.
19253         (init_varasm_status): New function.
19254         (force_const_mem): Don't treat nested functions specially.
19255         (find_pool_constant): Accept new arg F, search for constants in
19256         that function's pool rather than the current one.  All callers
19257         changed.
19258         (get_pool_constant_for_function, get_pool_mode_for_function): New
19259         functions.
19260
19261         * i386.c (init_386_machine_status): New function, mostly from
19262         clear_386_stack_locals.
19263         (struct machine_functions): Rename element names to avoid name
19264         clashes.
19265         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
19266         macros, replacing global variables.
19267         (clear_386_stack_locals, save_386_machine_status,
19268         restore_386_machine_status): Delete functions.
19269         (override_options): Initialize init_machine_status.
19270         * i386.h (INIT_EXPANDERS): Delete macro.
19271         (save_386_machine_status, restore_386_machine_status,
19272         clear_386_stack_locals): Delete declarations.
19273
19274 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19275
19276         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
19277         (doloop_begin):  Simplify pattern and use emit_jump_insn.
19278         (doloop_end): Simplify pattern, switch operand order,
19279         and use emit_jump_insn.
19280
19281 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
19282
19283         * function.h (struct function): Add new element LANGUAGE.
19284         (save_lang_status): Declare new variable.
19285         (restore_lang_status): Likewise.
19286         * function.c (save_lang_status): Define.
19287         (restore_lang_status): Likewise.
19288         (push_function_context_to): Call language-specific save function.
19289         (pop_function_context_from): Call language-specific restore function.
19290
19291 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
19292
19293         * i386.md (movsf_1): Check REG_P before use of REGNO.
19294         (movdf_1): Likewise.
19295         (movxf_1): Likewise.
19296         (extendsfdf2): Likewise.
19297         (extendsfxf2): Likewise.
19298         (extenddfxf2): Likewise.
19299
19300 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19301
19302         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
19303         constants into memory.
19304         (c4x_shiftable_constant): New function.
19305         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
19306         (c4x_shiftable_constant): Declare.
19307         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
19308         ashlqi3_noclobber): Add new patterns and associated splitters.
19309
19310 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
19311
19312         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
19313         * dwarf2out.c (dwarf2out_frame_init): Likewise.
19314         * final.c (shorten_branches): Likewise.
19315         * global.c (global_alloc): Likewise.
19316         * haifa-sched.c (build_control_flow): Likewise.
19317         * stmt.c (check_for_full_enumeration_handling): Likewise.
19318         (estimate_case_costs): Likewise.
19319
19320 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
19321
19322         * rtl.h (RTL_CHECKC2): Fix typo in last change.
19323
19324 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
19325
19326         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
19327         (recompute_reg_usage): Likewise.
19328         * rtlanal.c (find_regno_fusage): Likewise.
19329
19330         * rtl.c (rtl_check_failed_code1): New function.
19331         (rtl_check_failed_code2): New.
19332         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
19333         (RTL_CHECKC1, RTL_CHECKC2): New.
19334         (XC*): New accessor macros.
19335         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
19336         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
19337         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
19338         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
19339         (TRAP_*, RANGE_INFO_*): Likewise.
19340
19341 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19342
19343         * Makefile.in (tlink.o): Don't depend on toplev.h.
19344
19345         * collect2.c (c_file, o_file, export_file, import_file, ldout,
19346         output_file, nm_file_name, ldd_file_name, strip_file_name,
19347         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
19348         add_prefix, prefix_from_env, prefix_from_string, do_wait,
19349         fork_execute, maybe_unlink, add_to_list,
19350         extract_init_priority, write_list, dump_list,
19351         dump_prefix_list, write_list_with_asm, write_c_file,
19352         write_c_file_stat, write_c_file_glob, scan_prog_file,
19353         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
19354         ignore_library, extract_string, notice, dump_file, target_machine,
19355         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
19356         read_file, print_load_command): Constify a char*.
19357         (fdopen, error, fatal, fatal_perror): Don't prototype.
19358         (my_strerror): Remove.  All callers use xstrerror instead.
19359         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
19360         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
19361         to xcalloc/strcpy/strcat/...  to one call to concat.
19362         (main, scan_prog_file, scan_libraries): Use an intermediate
19363         `const char **' to build an argv array.
19364         (mapfile, libselect, libcompare, locatelib): Add prototypes.
19365
19366         * collect2.h (collect_execute, collect_wait, dump_file,
19367         file_exists): Constify a char*.
19368         (ldout, c_file_name, temporary_obstack, permanent_obstack,
19369         temporary_firstobj, vflag, debug): Add extern declarations.
19370         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
19371
19372         * tlink.c: Don't include toplev.h.
19373         (vflag, debug, ldout, c_file_name, temporary_obstack,
19374         permanent_obstack, temporary_firstobj): Don't declare.
19375         (tlink_execute, frob_extension, symbol_hash_lookup,
19376         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
19377         recompile_files, read_repo_files, demangle_new_symbols,
19378         scan_linker_output): Constify a char*.
19379         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
19380         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
19381
19382 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
19383
19384         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
19385         (relative) rather than jsr (absolute) subroutine call insns.
19386         * config/m68k/m68k-coff.h: Ditto.
19387
19388 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
19389
19390         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
19391         now rework these too.
19392         (arm_reorg): If an insn can't reach the end of the current pool,
19393         ensure that we emit that pool before the insn.
19394
19395 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
19396
19397         * tlink.c (scan_linker_output): Skip the initial underscore in
19398         a mangled name if appropriate.
19399
19400 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19401
19402         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
19403         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
19404         error_with_ivar, gen_declarator, create_builtin_decl,
19405         my_build_string, generate_descriptor_table, generate_ivars_list,
19406         generate_dispatch_table, check_protocols, TAG_GETCLASS,
19407         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
19408         dump_base_name, lang_decode_option, build_encode_expr,
19409         start_class, finish_class, encode_pointer, really_start_method,
19410         gen_declaration, dump_interface, handle_class_ref, handle_impent):
19411         Constify.
19412         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
19413         Add static prototypes.
19414         (build_objc_string_decl, build_selector_reference_decl,
19415         encode_bitfield, build_class_reference_decl): Remove unused
19416         parameter, all callers changed.
19417         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
19418         (objc_printable_name): Likewise.  Change second parameter to type int.
19419         (init_objc): Use memcpy, not bcopy, to avoid casts.
19420
19421 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
19422
19423         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
19424         reg notes on a deleted insn.
19425         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
19426
19427 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
19428
19429         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
19430
19431 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19432
19433         * stmt.c (expand_asm_operands): Fix index into inout_mode when
19434         reading it.
19435
19436 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
19437
19438         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
19439         * tm.texi (MD_ASM_CLOBBERS): Document it.
19440
19441 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
19442
19443         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
19444         * except.c (expand_rethrow): Remove unused variable.
19445         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
19446         * flow.c (replace_insns): Likewise.
19447         (create_edge_list, verify_edge_list): Likewise.
19448         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
19449
19450         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
19451         is special code to run.
19452         (main): Don't define operands to emit_operand.
19453         * genrecog.c (main): Don't emit an empty peephole2_insn function.
19454
19455         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
19456
19457         * alpha/alpha.h (normal_memory_operand): Declare.
19458         (reg_no_subreg_operand): Declare.
19459         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
19460
19461 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
19462
19463         * c-parse.in (compstmt_primary_start): New, broken out of first
19464         part of compstmt handling in primary.
19465         (primary): Use it.  Add an error clause.
19466         (compstmt_nostart): Renamed from compstmt; remove all
19467         initial invocations of compstmt_start.
19468         (compstmt): New.
19469
19470 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
19471
19472         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
19473         needed.
19474
19475 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
19476
19477         * combine.c (simplify_shift_const): Remove extra semicolon.
19478         * dwarf2out.c (remove_AT): Likewise.
19479         * expmed.c (expand_mult): Likewise.
19480         * gcov.c (create_program_flow_graph): Likewise.
19481         * reorg.c (mostly_true_jump): Likewise.
19482
19483 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
19484
19485         * fold-const.c (fold_range_test): Do not try to fold the range
19486         test if the rhs or lhs has side effects.
19487
19488         * combine.c (simplify_rtx): Recognize another case of a synthesized
19489         sign extension.
19490
19491         * varasm.c (mark_constant_pool): When marking indirect references,
19492         only look at SYMBOL_REFs.
19493
19494         * except.c (expand_fixup_region_end): Do not peek at
19495         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
19496
19497 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
19498
19499         * flags.h: New variables align_loops, align_loops_log,
19500         align_jumps, align_jumps_log, align_labels, align_labels_log,
19501         align_functions, align_functions_log.
19502         * toplev.c: Define them.
19503         (f_options): Handle -falign-* when they have no argument.
19504         (main): Add logic to set variables for -falign-functions,
19505         -falign-jumps, -falign-labels, -falign-loops.
19506         Make it -fsched-verbose=<n> and -finline-limit=<n>.
19507         (display_help): Change help to match options.
19508         * final.c (LABEL_ALIGN): Default to align_labels_log.
19509         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
19510         (LOOP_ALIGN): Default to align_loops_log.
19511         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
19512         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
19513         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
19514         * varasm.c (assemble_start_function): Handle align_functions.
19515
19516         * config/sparc/sparc.h: Don't declare sparc_align_*.
19517         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
19518         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
19519         sparc.c.
19520         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
19521         it's a promise.
19522         * config/sparc/sparc.c: Delete sparc_align_loops,
19523         sparc_align_jumps, sparc_align_funcs and the corresponding string
19524         variables.
19525         (sparc_override_options): Default align_functions on ultrasparc.
19526         Delete -malign-* handling.
19527
19528         * config/mips/mips.c (override_options):  On 64-bit targets,
19529         try to align code to 64-bit boundaries.
19530         (print_operand): New substitution, %~,
19531         which aligns labels to align_labels_log.
19532         * config/mips/mips.md (div_trap_normal): Use %~.
19533         (div_trap_mips16): Likewise.
19534         (abssi): Likewise.
19535         (absdi2): Likewise.
19536         (ffssi2): Likewise.
19537         (ffsdi2): Likewise.
19538         (ashldi3_internal): Likewise.
19539         (ashrdi3_internal): Likewise.
19540         (lshrdi3_internal): Likewise.
19541         (casesi_internal): Likewise.
19542
19543 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
19544
19545         Merge new ia32 backend from the branch!
19546
19547         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
19548         See ChangeLog.P2 on new_ia32_branch for details.
19549
19550         * rtl.h (stack_regs_mentioned_p): Delete prototype.
19551         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
19552         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
19553         * i386/gas.h (ASM_FILE_START): Define.
19554         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
19555         for name change of ix86_valid_decl_attribute_p.
19556         (i386_pe_valid_type_attribute_p): Similarly.
19557
19558 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
19559
19560         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
19561         to step through CC modes.
19562
19563 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19564
19565         * regmove.c (fixup_match_1): Don't move INSN in front of P if
19566         it would end up in the shadow of a live flags regsiter.
19567
19568 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19569
19570         * reload1.c: Fix many indentation problems.
19571         * reload.c: Likewise.
19572
19573 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
19574
19575         * alias.c (non_local_reference_p): Constify fmt.
19576
19577 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
19578
19579         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
19580
19581 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
19582
19583         * cse.c (delete_trivially_dead_insns): Do not delete stores to
19584         the internal_arg_pointer.
19585
19586 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
19587
19588         Merge peephole2 from new_ia32_branch:
19589         * Makefile.in (STAGESTUFF): Add *.peephole2.
19590         (mostlyclean): Likewise.
19591         (recog.o): Depend on resource.h.
19592
19593         * final.c (peephole): Conditionalize decl on HAVE_peephole.
19594         (final_scan_insn): Likewise for the invocation of peephole.
19595         * genconfig.c (main): Look for peephole and peephole2 patterns.
19596         Emit HAVE_peephole* accordingly.
19597         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
19598         * flags.h (flag_peephole2): Declare.
19599         * toplev.c: New pass peephole2.  New flag -fpeephole2.
19600
19601         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
19602         * gencodes.c (main): Likewise.
19603         * genextract.c (main): Likewise.
19604         * genoutput.c (main): Likewise.
19605         * genemit.c (max_operand_1): Look for the max scratch operand.
19606         (gen_rtx_scratch): New.
19607         (gen_exp): Use it, and pass on new arg subroutine_type.
19608         (gen_expand): Take max scratch into account.
19609         (gen_split): Emit peephole2 functions.
19610         (output_peephole2_scratch): New.
19611         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
19612         * genrecog.c (routine_type): Add PEEPHOLE2.
19613         (IS_SPLIT): New.
19614         (make_insn_sequence): Match outer parallel for peep2.  Discard
19615         top level scratches and dups.
19616         (add_to_sequence): New args insn_type and top.  Update all callers.
19617         Handle toplevel peep2 matching insns.
19618         (write_subroutine): Handle peep2.
19619         (write_tree_1): Likewise.
19620         (write_tree): Likewise.
19621         (main): Likewise.
19622         (change_state): New arg afterward.  Update all callers.
19623         Handle matching separate insns.
19624         * recog.c (recog_next_insn): New.
19625         (peephole2_optimize): New.
19626         * rtl.def (DEFINE_PEEPHOLE2): New.
19627         * resource.c (find_free_register): New argument last_insn.  Use it
19628         to find a register available through the entire span.
19629         * resource.h (find_free_register): Update prototype.
19630
19631 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
19632
19633         * i386.c (output_strlen_unroll): Don't write xops[7]
19634         label if it wasn't set.
19635
19636 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
19637
19638         * cpplib.c (struct directive): Const-ify name pointer and
19639         function pointer prototype.
19640         (validate_else, do_define, do_line, do_include, do_undef,
19641         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
19642         do_elif, do_endif, do_sccs, do_assert, do_unassert,
19643         do_warning): Const-ify second arg.
19644         (directive_table): Mark const.  Reorder entries by frequency
19645         of usage, record statistics.
19646
19647 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
19648
19649         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
19650         bounds- check RTL accesses if --enable-checking.
19651         (RTVEC_ELT): Bounds check if --enable-checking.
19652         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
19653         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
19654         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
19655         GET_NUM_ELEM.
19656         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
19657         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
19658
19659         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
19660         (NOTE_SOURCE_FILE): Use X0STR.
19661         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
19662         MEM_ALIAS_SET): Use X0INT.
19663         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
19664         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
19665         Use X0EXP.
19666         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
19667         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
19668         (rtl_check_failed_bounds, rtl_check_failed_type1,
19669         rtl_check_failed_type2, rtvec_check_failed_bounds): New
19670         functions.
19671         (fancy_abort): Fix comment.
19672
19673         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
19674         (cse_insn): Decrement LABEL_NUSES for jump target before
19675         deleting jump insn.
19676         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
19677         * final.c (alter_subreg): Compute regno before changing x to
19678         REG; set REGNO(x) after changing it.
19679         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
19680         notes containing CONST_INTs.
19681         (delete_eh_regions): Use NOTE_EH_HANDLER.
19682         * function.c (put_reg_into_stack): Make reg a MEM before
19683         initializing it.
19684         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
19685         delete insn.
19686         (gen_mem_addressof): Make reg a MEM before initializing it.
19687         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
19688         X0WINT.
19689         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
19690         deleting an insn, not after.
19691         (block_alloc): Only look at PATTERN(insn) if we have to, and
19692         only if it's format class 'i'.
19693         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
19694         CONST_INT before using its INTVAL.
19695         * print-rtl.c (print_rtx): Use X0STR.
19696         * regmove.c (fixup_match_1): Don't look at PATTERN of
19697         non-class-'i' insn chain elements.
19698         * reload.c (loc_mentioned_in_p): Take address of
19699         in->fld[1].rtx directly.
19700         * reload1.c (reload): Change reg to a MEM before initializing
19701         it.
19702         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
19703         have no names.
19704         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
19705
19706 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
19707
19708         * config/mips/mips.c (machine_dependent_reorg): Force a
19709         barrier to output the local constant pool if a barrier hasn't
19710         been found at a natural point in the instruction stream.
19711
19712 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19713
19714         * c-parse.in (language_string): Constify.
19715
19716         * dwarf2out.c (language_string): Remove declaration.
19717
19718         * dwarfout.c (language_string): Likewise.
19719
19720         * toplev.c (language_string, init_parse, finish_parse): Likewise.
19721
19722         * tree.h (language_string, init_parse, finish_parse): Declare.
19723
19724         * i386/sun386.h (language_string): Remove declaration.
19725
19726         * mips.h (language_string): Likewise.
19727
19728         * nextstep.h (language_string): Likewise.
19729
19730         * nextstep21.h (language_string): Likewise.
19731
19732         * rs6000.c (language_string): Likewise.
19733
19734 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19735
19736         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
19737         (getpwd.o): Remove target.
19738
19739         * getpwd.c: Delete file.  Its in libiberty now.
19740
19741         * dbxout.c (getpwd): Don't prototype.
19742         * dwarf2out.c (getpwd): Likewise
19743         * dwarfout.c (getpwd): Likewise
19744         * final.c (getpwd): Likewise.
19745         * protoize.c (getpwd): Likewise.
19746
19747 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19748
19749         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
19750
19751 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
19752
19753         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
19754         mark_set_resources.
19755
19756 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
19757
19758         * fixinc/Makefile.in (subdir): New.
19759         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
19760         (Makefile): New.
19761
19762 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
19763
19764         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
19765         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
19766         be shared.
19767
19768         * invoke.texi: Fix typo.
19769
19770         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
19771         changed.  Handle autoincrement addressing modes.
19772
19773         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
19774         just like we would the virtual incoming args register when
19775         integrating.
19776
19777 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
19778
19779         * rs6000.h (ASM_FILE_START): Specify complete filename, including
19780         path, in .file directive.
19781
19782 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
19783
19784         * gcc.texi (External Bugs): Remove obsolete note about Perl on
19785         SunOS.
19786
19787 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
19788
19789         * stdbool.h: Make the typedef name _Bool, with bool a #defined
19790         alias.
19791
19792 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19793
19794         * tree.c (tree_code_name): Constify a char*.
19795
19796         * tree.h (tree_code_name, decl_printable_name): Likewise.
19797
19798         * function.h (struct function): Likewise.
19799
19800         * toplev.c (decl_name, decl_printable_name): Likewise.
19801
19802         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
19803
19804         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
19805         (init_objc): Remove function pointer cast.
19806
19807 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
19808
19809         * pa.md (interspace_jump): New pattern.
19810         (builtin_longjmp): New expander.
19811
19812 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
19813
19814         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
19815         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
19816         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
19817
19818 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
19819
19820         * jump.c (delete_prior_computation): Also check calls
19821         to constant functions.  Don't bother checking for a
19822         REG_UNUSED note before adding it.
19823         (delete_computation): Handle multi-word hard registers
19824         when synthesizing missing REG_DEAD notes for a register
19825         which is both set and used by an insn.
19826
19827 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19828
19829         * loop.c (this_loop_info): New variable.
19830         (loop_has_call, loop_has_volatile, loop_has_tablejump,
19831         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
19832         All uses updated.
19833         (prescan_loop, strength_reduce): New argument loop_info.  All callers
19834         updated.
19835         (scan_loop): New variable loop_info, initialise to address of
19836         this_loop_info.
19837         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
19838         Delete variable loop_has_multiple_exit targets and replace with
19839         field in this_loop_info.
19840         (find_and_verify_loops): Rename this_loop to this_loop_num.
19841         (strength_reduce): Delete loop_iteration_info.  Replace variable
19842         loop_info with function argument of same name.
19843         (insert_bct): Rework test for loop being completely unrolled.
19844
19845         * loop.h (struct loop_info): New fields num, loops_enclosed,
19846         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
19847         has_indirect_jump, and cont.  Redefine use of unroll_number.
19848         (loop_unroll_number): Delete.
19849
19850         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
19851         field of loop_info.
19852         (loop_iterations): Delete variable vtop and instead use
19853         loop_info->vtop computed in prescan_loop.
19854
19855 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
19856
19857         * fix-header.c (main): Do not pass a null pointer to strcmp.
19858
19859 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
19860
19861         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
19862         filenames.
19863         * configure: Rebuilt.
19864
19865 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
19866
19867         * jump.c (jump_optimize_1): Do not delete assignments to
19868         internal_arg_pointer.
19869         * cse.c (delete_trivially_dead_insns): Always consider a set of
19870         the internal_arg_pointer live.
19871
19872 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
19873
19874         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
19875         (update_life_info) [REG_WAS_0]: Search the original insns rather
19876         than the new insns for the note.  Fix typos finding note_dest.
19877         If no dest found, discard the note rather than abort.
19878         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
19879         (replace_insns): Remove the old insn list after update_life_info
19880         not before.
19881
19882 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
19883
19884         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
19885         sched_analyze_insn.
19886         (sched_analyze_1): Let add_dependence care for not adding dups.
19887         (sched_analyze_2): Likewise.
19888         (add_branch_dependences): Likewise.
19889
19890 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19891
19892         * i386/winnt.c (export_list): New type.
19893         (exports_head): Rename to
19894         (export_head):  this.
19895         (i386_pe_record_exported_symbol): Add is_data flag.
19896         (i386_pe_asm_file_end): Emit directive for exported variables.
19897         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
19898         prototype.
19899         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
19900         (ASM_DECLARE_OBJECT_NAME): Likewise.
19901         (ASM_DECLARE_FUNCTION_NAME): Likewise.
19902         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19903
19904 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
19905
19906         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
19907
19908         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
19909         operand.
19910
19911 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
19912
19913         * config/openbsd.h: Define SET_ASM_OP.
19914         * tm.texi: cross-reference SET_ASM_OP in the index.
19915
19916 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
19917
19918         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
19919         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
19920         and class_narrowest_mode at compile time.  Kill init_rtl.
19921         Mark rtx_length, mode_class, mode_size, mode_unit_size,
19922         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
19923         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
19924         EXTRA_CC_NAMES.
19925         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
19926         format.
19927         * rtl.h: Declare rtx_length and rtx_format as const.
19928         * machmode.def: Define CC().  Use CC() to define CCmode.  If
19929         EXTRA_CC_MODES is defined, expand it here.
19930         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
19931         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
19932         const.  Kill all references to EXTRA_CC_MODES.
19933
19934         * toplev.c: Don't prototype or call init_rtl.
19935         * optabs.c: Don't call init_mov_optab.
19936         * genemit.c: Don't generate init_mov_optab.  Don't call
19937         init_rtl.
19938         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
19939         here.
19940         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
19941         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
19942         genrecog.c: Don't call init_rtl.
19943
19944         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
19945         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
19946         definition of EXTRA_CC_MODES.
19947
19948         * md.texi: Kill ref to EXTRA_CC_NAMES.
19949         * tm.texi: Document new way to define EXTRA_CC_MODES.
19950
19951         * genrecog.c: Do not look up the name of a define_split.
19952         (Unrelated bugfix.)
19953
19954 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
19955
19956         * config/v850/v850.md: Fix typo introduced by previous delta.
19957
19958 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19959
19960         * gcc.c (fatal): Make definition static to match prototype.
19961
19962 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19963
19964         * combine.c (get_last_value): Don't look for earlier sets if the last
19965         known set is somewhere in between the insns being combined.
19966
19967 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
19968
19969         * configure.in: Don't use shell ! to negate exit codes
19970         * configure: Regenerate
19971
19972 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
19973
19974         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
19975         the fact that ALIGN is measured in bits, not bytes.
19976
19977 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
19978
19979         * errors.c: New file; defines functions error, warning, and
19980         fatal, variables have_error and progname.
19981         * errors.h: New file; prototypes and decls for stuff in errors.c.
19982
19983         * Makefile: Add rules to build errors.o and
19984         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
19985         genopinit, genrecog, genextract, genpeep, genattr, and
19986         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
19987         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
19988         genpeep.o, genattr.o, and genoutput.o.
19989
19990         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
19991         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
19992         define or prototype fatal.  Set progname at beginning of main.
19993         * genoutput.c:  Likewise, and don't define or prototype error
19994         either.
19995
19996         * c-typeck.c (c_expand_start_case): Return immediately if exp
19997         is an ERROR_MARK.
19998         * fold-const.c (operand_equal_p): Return immediately if arg1
19999         or arg0 are ERROR_MARKs.
20000         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
20001         fields of type ERROR_MARK when calculating if the record can
20002         go in a register.
20003
20004 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
20005         with much help from Jeffrey A Law and Richard Henderson
20006
20007         * i386.md: In the 6 insns which call output_fix_trunc,
20008         earlyclobber operands[0].
20009
20010 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
20011
20012         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
20013         creating new registers.
20014
20015 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
20016
20017         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
20018         i386_reg_alloc_order, i386_regparm_string,
20019         i386_align_loops_string, i386_align_jumps_string,
20020         i386_align_funcs_string, i386_preferred_stack_boundary_string,
20021         and i386_branch_cost_string as type "const char *".
20022         * i386.c: Define all above strings as type "const char *".
20023
20024 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
20025
20026         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
20027         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
20028
20029 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
20030
20031         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
20032         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
20033
20034 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
20035
20036         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
20037         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
20038         (dwarf2out_line, dwarf2out_finish): Likewise.
20039         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
20040
20041 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20042
20043         * tree.c (lang_unsave_expr_now) : Correct return type.
20044         * tree.h (lang_unsave_expr_now) : Same.
20045
20046 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
20047
20048         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
20049         instead of duplicating code.
20050
20051 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20052
20053         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
20054
20055 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
20056
20057         * tree.h: fancy_abort always takes three args.
20058         * resource.c: Move include of system.h before toplev.h.
20059
20060 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
20061
20062         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
20063         as SYMBOL_REFs.
20064
20065 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
20066
20067         * system.h: Don't redefine abort or trim_filename.
20068         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
20069         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
20070         whether or not __FUNCTION__ is available.
20071         * tree.h: Duplicate rtl.h's definition of abort, for files
20072         that don't include rtl.h.  Delete all code to perform type
20073         checking with a compiler other than GCC.
20074         * varray.h: Delete all code to perform type checking with a
20075         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
20076         its arguments exactly once, using a statement expression.
20077         Adjust the VARRAY_<type> accessor macros to match.
20078         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
20079         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
20080         caller's location.  Define fatal_insn and fatal_insn_not_found
20081         as macros that use _fatal_insn and _fatal_insn_not_found.
20082         (fancy_abort, trim_filename): Kill prototypes.
20083
20084         * rtl.c (trim_filename): Move here from toplev.c.
20085         (fancy_abort): New function.
20086         (DIR_SEPARATOR): Provide default definition.
20087         * tree.c (tree_check_failed, tree_class_check_failed): Go
20088         through fancy_abort.
20089         (tree_check, tree_class_check, cst_or_constructor_check,
20090         expr_check): Delete.
20091         * varray.c (varray_check_failed): New function.
20092         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
20093         _fatal_insn and _fatal_insn_not_found.  Go through
20094         fancy_abort.
20095         (trim_filename, fancy_abort): Delete.
20096
20097         * builtins.c (expand_builtin_args_info): Report ICE with abort.
20098         * except.c (start_catch_handler): Report ICE with error/abort
20099         combo.
20100         * final.c (output_operand_lossage): Likewise.
20101         * flow.c (verify_flow_info): Likewise.
20102
20103         * gcc.c: Prototype fatal.
20104         * gengenrtl.c: Undef abort after including rtl.h not system.h.
20105         * genattr.c, genattrtab.c, genemit.c, genextract.c,
20106         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
20107         Don't define fancy_abort.
20108
20109 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
20110
20111         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
20112         canonization.
20113
20114 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
20115
20116         * m88k.h (VERSION_INFO2): Kill.
20117         (VERSION_STRING): Kill.
20118         (TM_RCS_ID): Kill.
20119         (VERSION_INFO1): Tidy.
20120         (TARGET_VERSION): Update.
20121         * m88k/dgux.h (VERSION_INFO2): Kill.
20122         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
20123         * m88k/luna.h (VERSION_INFO1): Tidy.
20124         * m88k/sysv4.h (VERSION_INFO1): Likewise.
20125         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
20126         (output_file_start): Adjust for death of VERSION_STRING.
20127
20128 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
20129
20130         * cpplib.c (detect_if_not_defined): New function.
20131         (do_if): Use it to detect potential once-only headers.
20132
20133 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
20134
20135         * c-common.c (combine_strings): Always set TREE_CONSTANT.
20136
20137 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20138
20139         * combine.c (nonzero_bits) : Allow single-ly set registers to be
20140         anywere in the function only if they are pseudos and set before
20141         being used (not live at the start of the function).
20142         (num_sign_bit_copies) : Same.
20143         (get_last_value_validate) : Same.
20144         (get_last_value) : Same.
20145
20146 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
20147
20148         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
20149         where N and M are constant and N is an integer multiple of M.
20150
20151 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20152
20153         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
20154         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
20155         sbitmap_union_of_preds): Add prototypes.
20156         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
20157         the intersection of successors with the new flow graph structures.
20158         (sbitmap_intersection_of_preds): New function to compute the
20159         intersection of predecessors with the new flow graph structures.
20160         (sbitmap_union_of_succs): New function to compute the union of
20161         successors with the new flow graph structures.
20162         (sbitmap_union_of_preds): New function to compute the union of
20163         predecessors with the new flow graph structures.
20164         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
20165         (expr_reaches_here_p): Use edge and basic_block structures instead
20166         of s_preds and s_succs.
20167         (compute_cprop_avinout): Use new sbitmap routines.
20168         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
20169         of s_preds and s_succs.
20170         * flow.c (compute_flow_dominators): Compute dominators using
20171         edges and basic blocks instead of s_preds and s_succs.
20172
20173 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20174
20175         * lists.c (unused_insn_list, unused_expr_list): New file for
20176         maintaining various types of lists. New statics for maintaining a
20177         cache of available INSN_LIST and EXPR_LIST nodes.
20178         (free_list): Static function for freeing a list of INSN/EXPR nodes.
20179         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
20180         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
20181         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
20182         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
20183         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
20184         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
20185         (free_INSN_LIST_node): Free an individual INSN_LIST node.
20186         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
20187         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
20188         (remove_dependence, free_pending_lists): Use new global routines.
20189         (flush_pending_lists, sched_analyze_insn): Use new global routines.
20190         (sched_analyze, compute_block_backward_dependences): Use new routines.
20191         (sched_analyze_1, sched_analyze_2): Use new routines.
20192         (schedule_insns): Use new global routines.
20193         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
20194         prototypes.
20195         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
20196         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
20197         prototypes.
20198         * toplev.c (rest_of_compilation): Initialize node cache.
20199         * Makefile.in (OBJS): Add lists.o to list of object files.
20200         (lists.o): Add dependancies.
20201
20202 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
20203
20204         * config/v850/v850.md: Fix compile time warning messages.
20205         * config/v850/v850.c: Fix compile time warning messages.
20206         * config/v850/v850.h: Fix compile time warning messages.
20207
20208 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20209
20210         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
20211         Remove unused prototype for `init_lengths'.
20212
20213 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20214
20215         * calls.c (emit_call_1): Mark parameter `stack_size' with
20216         ATTRIBUTE_UNUSED.
20217         (expand_call): Initialize variable `insn'.
20218         (emit_library_call): Likewise for variable `high_to_save'.
20219         (emit_library_call_value): Likewise.
20220         (store_one_arg): Likewise for variables `lower_bound' and
20221         `upper_bound'.
20222
20223         * combine.c (try_combine): Likewise for variables `i2_code_number'
20224         and `other_code_number'.
20225         (find_split_point): Likewise for variables `pos', `unsignedp' and
20226         `inner'.
20227         (simplify_if_then_else): Likewise for variables `op' and `c1'.
20228         (simplify_and_const_int): Remove unused variable `width'.
20229         (merge_outer_ops): Likewise.
20230
20231         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
20232         HOST_WIDE_INT' when comparing against one.
20233         (simplify_relational_operation): Likewise.
20234         (cse_insn): Initialize variables `src_eqv_volatile',
20235         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
20236
20237         * final.c (init_final): Constify parameter `filename'.
20238         (final_start_function): Mark parameter `optimize' with
20239         ATTRIBUTE_UNUSED.
20240         (profile_function): Likewise for parameters `first' and `optimize'.
20241         (output_source_line): Likewise for parameter `file'.
20242
20243         * integrate.c (subst_constants): Cast a value to `size_t' when
20244         comparing against one.
20245         (mark_stores): Initialize variable `mode'.  Cast a value to
20246         `size_t' when comparing against one.
20247
20248         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
20249
20250         * loop.c (move_movables): Initialize variable `first'.
20251         (strength_reduce): Likewise for variable `increment'.
20252         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
20253         value to `size_t' when comparing against one.
20254         (load_mems): Initialize variable `end_label'.
20255
20256         * output.h (init_final): Constify parameter.
20257
20258         * reload.c (decompose): Initialize variable `base'.
20259
20260         * reload1.c (reload): Likewise for variable `is_scalar'.
20261         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
20262         (choose_reload_regs): Initialize variable `mode'.
20263         (emit_reload_insns): Likewise for variable `store_insn'.
20264         (reload_cse_noop_set_p): Mark parameter `insn' with
20265         ATTRIBUTE_UNUSED.
20266         (reload_combine): Initialize variable `set'.
20267
20268         * unroll.c (unroll_loop): Likewise for variable `local_label'.
20269         (copy_loop_body): Cast a value to `size_t' when comparing against
20270         one.
20271
20272         * varasm.c (assemble_variable): Initialize variable `size_tree'.
20273         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
20274         (remove_from_pending_weak_list): Mark parameter `name' with
20275         ATTRIBUTE_UNUSED.
20276
20277 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20278
20279         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
20280         gcse dump file.
20281
20282 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
20283
20284         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
20285         (ASM_DECLARE_FUNCTION_NAME): Define.
20286         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
20287         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
20288         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
20289         not already defined.
20290
20291 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20292
20293         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
20294         of n_popped when call/call_value are not defined.
20295
20296 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
20297
20298         * tm.texi: GNU CC -> GCC conversion.
20299         (CC1_SPEC): Indicate it is used for all language front ends.
20300
20301 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
20302
20303         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
20304         NOTE_INSN_EH_REGION_END correctly.
20305
20306 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
20307                           Jeff Law <law@cygnus.com>
20308
20309         * loop.c (strength_reduce): Automatically unroll loops if the
20310         unrolled loop size is smaller than the rolled loop size.
20311
20312         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
20313         and delete comment that code should be rewritten.
20314
20315 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
20316
20317         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
20318         as reachable.
20319
20320         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
20321
20322 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
20323
20324         * fixinc/mkfixinc.sh: Don't fix uwin headers.
20325         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
20326         (LINK_SPEC): Add -u _main when building executables.
20327         (ASM_DECLARE_FUNCTION): Update from Cygwin.
20328         (ASM_FILE_END): Use the default for ix86-pe.
20329         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
20330
20331 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
20332
20333         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
20334         and ASM_CLOSE_PAREN are empty strings.
20335
20336 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
20337                           Geoffrey Keating <geoffk@cygnus.com>
20338
20339         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
20340         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
20341         (unprotoize.o): Ditto.
20342         (test-protoize-simple): Don't define STD_PROTO_DIR.
20343         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
20344         changes to make 'test-protoize-simple' pass.
20345         (STD_PROTO_DIR): Remove define.
20346         (STANDARD_EXEC_PREFIX): Supply default define.
20347         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
20348         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
20349         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
20350         (GET_ENV_PATH_LIST): New macro.
20351         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
20352         (do_processing): Initialize default_syscalls_dir using new
20353         macros.  Use it to initialize syscalls_absolute_filename.
20354
20355 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
20356
20357         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
20358         B into a register before emit_conditional_move.
20359
20360 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
20361
20362         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
20363         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
20364         multiplicand out of (+ (* a b) (* c d)).
20365
20366 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
20367                           Richard Henderson  <rth@cygnus.com>
20368
20369         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
20370         (new_insn_dead_notes): Likewise.
20371         (update_n_sets): Likewise.
20372         (update_flow_info): Move to flow.c, renamed to update_life_info;
20373         extend to handle multiple source insns.
20374         * flow.c: Include resource.h
20375         (unlink_insn_chain): New.
20376         (split_hard_reg_notes): New.
20377         (maybe_add_dead_note): New.
20378         (maybe_add_dead_note_use): New.
20379         (find_insn_with_note): New.
20380         (new_insn_dead_notes): New.
20381         (update_n_sets): New.
20382         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
20383         (maybe_remove_dead_notes): New.
20384         (update_life_info): New.
20385         (prepend_reg_notes): New.
20386         (replace_insns): New.
20387         * output.h (update_life_info): Declare.
20388         * recog.c (split_block_insns): Use update_life_info.
20389         * resource.c (find_free_register): Use reg_alloc_order, don't use
20390         fixed regs, make sure the mode is supported, don't use new regs.
20391         (reg_dead_p): New.
20392         * rtl.h (replace_insns): Declare.
20393
20394 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
20395
20396         * expr.c (expand_expr): Cope with COND_EXPRs with one
20397         non-returning branch.
20398
20399 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
20400
20401         * expr.c (store_expr): Always pass down the target, even when not
20402         doing CSE.
20403
20404 1999-08-24  Nick Clifton  <nickc@cygnus.com>
20405
20406         * configure.in: Define target_cpu_default for v850 targets.
20407         * configure: Regenerate
20408
20409         * config/v850/v850.h (TARGET_CPU_generic): Define.
20410         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
20411         addresses are 4 byte aligned.
20412
20413         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
20414         addresses.
20415
20416 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20417
20418         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
20419         (main): Add prototypes.
20420
20421         * genattrtab.c (substitute_address, write_const_num_delay_slots,
20422         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
20423         (write_attr_get): Emit prototypes along with function definition.
20424         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
20425         (write_complex_function): Emit static prototype along with
20426         function definition.
20427
20428         * genemit.c (gen_split): Emit prototypes along with function
20429         definition.
20430
20431         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
20432         Likewise for predicates and `insn_operand_predicate'.
20433         (process_template): Emit static prototype along with function
20434         definition.
20435
20436         * genrecog.c (make_insn_sequence): Constify a char*.  Add
20437         prototypes for get_split_*().
20438         (write_subroutine): Emit prototypes along with function
20439         definition.
20440
20441 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20442
20443         * gcse.c (find_avail_set): Follow chains of register-register copies.
20444         Use oprs_not_set_p to guarantee that the returned value can be
20445         substituted.
20446         (cprop_insn): Don't verify the return value of find_avail_set with
20447         oprs_not_set_p.
20448
20449         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
20450         (cprop_cc0_jump): New function.
20451         (cprop_insn): Break out new function cprop_jump and use it.
20452         Also use cprop_cc0_jump for machines with CC0.
20453         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
20454
20455         * tree.h (current_function_calls_setjmp,
20456         current_function_calls_longjmp): Delete declarations.
20457         * dsp16xx.c: Include "function.h".
20458         * elxsi.c: Likewise.
20459         * gmicro.c: Likewise.
20460         * h8300.c: Likewise.
20461         * i370.c: Likewise.
20462         * m32r.c: Likewise.
20463         * mn10200.c: Likewise.
20464         * mn10300.c: Likewise.
20465         * ns32k.c: Likewise.
20466         * spur.c: Likewise.
20467         * v850.c: Likewise.
20468
20469         * rtl.h (rtx_equal_function_value_matters): Declare.
20470         * toplev.c (rtx_equal_function_value_matters): Don't declare.
20471         * cse.c: Likewise.
20472         * function.c: Likewise.
20473         * emit-rtl.c: Likewise.
20474
20475 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
20476
20477         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
20478         call.
20479
20480 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
20481
20482         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
20483         exactly.
20484
20485 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
20486
20487         * cpp.texi: Add a node documenting macro varargs (copied
20488         from extend.texi).
20489
20490 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
20491
20492         * cppspec.c: Put a null pointer at the end of the new argv.
20493
20494 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
20495
20496         * configure.in: Remove code to select/de-select the haifa
20497         scheduler.  Every scheduled port gets haifa now.
20498         * configure: Rebuilt.
20499         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
20500         * sched.c Deleted.
20501         * Makefile.in: Corresponding changes.
20502
20503 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20504
20505         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
20506         All callers changed.
20507         (prepare_float_lib_cmp): Likewise.
20508         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
20509         * expr.h (emit_float_lib_cmp): Delete declaration.
20510         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
20511         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
20512         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
20513         specially.
20514         (cmptf): Now conditional on TARGET_HARD_QUAD.
20515
20516 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
20517
20518         * resource.c (mark_target_live_regs): Use
20519         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
20520
20521 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20522
20523         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
20524
20525         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
20526
20527         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
20528
20529 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20530
20531         * rtl.h (rtx_format): Constify a char*.
20532
20533         * rtl.c (rtx_format): Likewise.
20534         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
20535         (init_rtl): Use accessor macro, not `rtx_format'.
20536
20537         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
20538         char*.
20539
20540         * caller-save.c (mark_referenced_regs): Likewise.
20541
20542         * combine.c (subst, make_compound_operation, known_cond,
20543         gen_rtx_combine, update_table_tick, get_last_value_validate,
20544         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
20545
20546         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
20547         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
20548         count_reg_usage): Likewise.
20549
20550         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
20551         Likewise.
20552
20553         * final.c (leaf_renumber_regs_insn): Likewise.
20554
20555         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
20556         dump_edge_info, count_reg_references): Likewise.
20557
20558         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
20559         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
20560         Likewise.
20561
20562         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
20563         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
20564         add_label_notes): Likewise.
20565
20566         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
20567         clear_struct_flag, count_sub_rtxs, count_alternatives,
20568         compares_alternatives_p, contained_in_p, walk_attr_value,
20569         write_expr_attr_cache): Likewise.
20570
20571         * genconfig.c (walk_insn_part): Likewise.
20572
20573         * genemit.c (max_operand_1, gen_exp): Likewise.
20574
20575         * genextract.c (walk_rtx): Likewise.
20576
20577         * genflags.c (num_operands): Likewise.
20578
20579         * genoutput.c (scan_operands): Likewise.
20580
20581         * genpeep.c (match_rtx): Likewise.
20582
20583         * genrecog.c (add_to_sequence): Likewise.
20584
20585         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
20586         Likewise.
20587
20588         * integrate.c (save_constants, copy_for_inline,
20589         copy_rtx_and_substitute, subst_constants, restore_constants):
20590         Likewise.
20591
20592         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
20593         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
20594
20595         * local-alloc.c (contains_replace_regs, memref_referenced_p):
20596         Likewise.
20597
20598         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
20599         add_label_notes, replace_call_address, count_nonfixed_reads,
20600         invariant_p, find_single_use_in_loop, find_mem_givs,
20601         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
20602         Likewise.
20603
20604         * print-rtl.c (reg_names, print_rtx): Likewise.
20605
20606         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
20607
20608         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
20609         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
20610         print_blocks): Likewise.
20611
20612         * regclass.c (fix_register, record_address_regs,
20613         reg_scan_mark_refs): Likewise.
20614
20615         * regmove.c (stable_but_for_p): Likewise.
20616
20617         * reload.c (loc_mentioned_in_p, operands_match_p,
20618         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
20619         copy_replacements, refers_to_regno_for_reload_p,
20620         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
20621         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
20622         Likewise.
20623
20624         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
20625         delete_address_reloads_1, count_occurrences,
20626         reload_cse_mem_conflict_p, reload_combine_note_use,
20627         add_auto_inc_notes): Likewise.
20628
20629         * resource.c (mark_referenced_resources, mark_set_resources):
20630         Likewise.
20631
20632         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
20633         reg_mentioned_p, regs_set_between_p, modified_between_p,
20634         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
20635         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
20636         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
20637         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
20638
20639         * sched.c (sched_analyze_2, attach_deaths): Likewise.
20640
20641         * stupid.c (stupid_mark_refs): Likewise.
20642
20643         * unroll.c (remap_split_bivs): Likewise.
20644
20645         * varasm.c (mark_constants): Likewise.
20646
20647         * a29k/a29k.c (uses_local_reg_p): Likewise.
20648
20649         * alpha/alpha.c (summarize_insn): Likewise.
20650
20651         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
20652         eliminate_lr2ip): Likewise.
20653
20654         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
20655
20656         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
20657         reg_mentioned_in_mem): Likewise.
20658
20659         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
20660         symbolic_reference_mentioned_p): Likewise.
20661
20662         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
20663
20664         * sh/sh.c (regs_used, mark_use): Likewise.
20665
20666         * vax/vax.c (vax_rtx_cost): Likewise.
20667
20668 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20669
20670         * machmode.h (mode_name): Constify a char*.
20671
20672         * rtl.c (mode_name): Likewise.
20673
20674         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
20675
20676         * optabs.c (init_libfuncs): Constify a char*.
20677
20678         * print-tree.c (mode_name): Remove redundant declaration.
20679         (print_node): Use accessor macro, not `mode_name'.
20680
20681         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
20682         not `mode_name'.
20683         (new_spill_reg): Constify a char*.
20684
20685         * tree.c (mode_name): Remove redundant declaration.
20686
20687 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20688
20689         * rtl.c (rtx_name): Constify a char*.
20690
20691         * rtl.h (rtx_name, fix_sched_param): Likewise.
20692
20693         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
20694         (mypr): Use accessor macro, not `rtx_name'.
20695
20696         * genemit.c (print_code): Constify a char*.
20697
20698         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
20699
20700         * genpeep.c (print_code): Constify a char*.
20701
20702         * genrecog.c (print_code): Likewise.
20703
20704         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
20705         end_bb): Add static prototype.
20706         (draw_edge): Constify a char*.
20707         (end_bb): Remove unused parameter.
20708
20709         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
20710         print_block_visualization): Constify a char*.
20711
20712 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
20713
20714         * c-common.c (c_get_alias_set): Update comment.
20715
20716 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
20717
20718         * linux.h (LIB_SPEC): Added.
20719
20720 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20721
20722         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
20723
20724 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
20725
20726         * tree.c (expr_check): Fix typo in last change.
20727
20728 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
20729
20730         * rtl.def (NOTE): Change format to "iuu0n".
20731         (ADDR_DIFF_VEC): Change format to "eEee0".
20732         (ADDRESSOF): Change format to "eit".
20733
20734         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
20735         (RTVEC_ELT): Change to match.
20736         (XVECEXP): Use XVEC and RTVEC_ELT.
20737         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
20738         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
20739         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
20740         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
20741         TRAP_CONDITION, TRAP_CODE): Use XEXP.
20742         (INTVAL): Use XWINT.
20743         (ADDRESSOF_DECL): Use XTREE.
20744         (SET_ADDRESSOF_DECL): Delete.
20745         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
20746         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
20747         ifdefed out since 2.6 at least.
20748         (gen_rtvec_vv): Delete prototype.
20749
20750         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
20751         not rtunion.
20752         (copy_most_rtx): Handle 't' format letter.
20753         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
20754         (gen_rtvec_vv): Delete function.  All callers changed to use
20755         gen_rtvec_v instead.
20756         * print-rtl.c (print_rtx): Move special casing of NOTEs to
20757         the '0' format letter.
20758
20759         * function.c (gen_mem_addressof): Don't use
20760         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
20761         instead.
20762         * integrate.c (copy_rtx_and_substitute): Likewise.
20763         Copy 't' slots with XTREE.
20764         (subst_constants): Treat 't' slots like '[swi]' slots.
20765         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
20766         * jump.c (rtx_equal_for_thread_p): Likewise.
20767         * rtlanal.c (rtx_equal_p): Likewise.
20768         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
20769         only four arguments.
20770         * gengenrtl.c (type_from_format): Provide correct types for
20771         'b' and 't' slots.
20772
20773
20774         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
20775         If a recent gcc is in use (always in stage2 and beyond), use
20776         statement expressions, so we don't make a function call unless
20777         the check fails.  Evaluate arguments exactly once.
20778         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
20779         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
20780         Delete.
20781         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
20782         they evaluate their arguments exactly once, irrespective of
20783         the compiler in use.
20784
20785         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
20786         is used by the currently-enabled check macros.  This is:
20787         (tree_check_failed, tree_class_check_failed): For gcc.
20788         (tree_check, tree_class_check, cst_or_constructor_check,
20789         expr_check): For other compilers.
20790
20791         * gencheck.c: Do not define any *_CHECK1 macros.
20792
20793 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
20794                           Mark Mitchell <mark@codesourcery.com>
20795
20796         * c-common.c (c_get_alias_set): Fix support for poitners and
20797         references.
20798
20799 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
20800
20801         * alias.c: Include tree.h.
20802         (nonlocal_reference_p, mark_constant_function): New functions.
20803         * flow.c (life_analysis): Call mark_constant_function.
20804         * rtl.h (mark_constant_function): Declare it.
20805
20806 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
20807
20808         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
20809         unrecognisable switches.
20810
20811 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20812
20813         * loop.c (recombine_givs): Set ix field after sorting.
20814         (recombine_givs): Remove bogus index / giv lockstep looping.
20815
20816 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20817
20818         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
20819         on CODE.
20820         (emit_store_flag_force): Use do_compare_rtx_and_jump.
20821         (do_cmp_and_jump): Formatting fixes.
20822         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
20823         do_compare_rtx_and_jump instead of compare_from_rtx.
20824         (do_compare_rtx_and_jump): New function; mostly copied from
20825         compare_from_rtx.
20826         (do_jump_for_compare): Delete.
20827         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
20828         MIN_EXPR.
20829         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
20830         of compare/do_jump_for_compare pairs.
20831         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
20832         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
20833         compare_from_rtx/do_jump_for_compare pairs.
20834         (do_jump_by_parts_equality): Likewise.
20835         (do_jump_by_parts_equality_rtx): Likewise.
20836         * expr.h (do_compare_rtx_and_jump): Declare.
20837         * optabs.c (prepare_cmp_insn): New function, contains most of the code
20838         that used to be in emit_cmp_insn.
20839         (cmp_available_p): New function.
20840         (prepare_operand): New function.
20841         (emit_cmp_and_jump_insn_1): New function, contains some code that used
20842         to be in emit_cmp_insn.
20843         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
20844         parameters to be pointers; don't emit final compare but modify some of
20845         the values pointed to by the args so the caller can perform the
20846         correct comparison.
20847         (expand_binop): Call emit_store_flag_force with signed forms of
20848         comparison code.
20849         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
20850         emit_jump_insn pair.
20851         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
20852         emit_cmp_and_jump_insn_1.  Call emit_queue.
20853         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
20854         arg.
20855         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
20856         jump sets cc0 before deleting it.
20857         * integrate.c (expand_inline_function): Likewise.
20858         * unroll.c (unroll_loop): Similar changes in several places.
20859         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
20860         before deleting it.
20861
20862 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20863
20864         * Makefile.in (insn-recog.o): Update dependencies.
20865         * genrecog.c (main): Make generated file include "function.h".
20866
20867 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
20868
20869         * cse.c (cse_insn): Call never_reached_warning when a jump is
20870         changed to be unconditional.
20871         * flags.h: Declare warn_notreached.
20872         * flow.c (delete_block): Call never_reached_warning when
20873         a block is deleted.
20874         * jump.c (delete_barrier_successors): Call never_reached_warning
20875         when we delete everything after a BARRIER.
20876         (never_reached_warning): New function.
20877         * rtl.h: Declare never_reached_warning.
20878         * toplev.c (warn_notreached): New variable.
20879         (lang_independent_options): Set warn_notreached
20880         when -Wunreachable-code.
20881         (compile_file): We need line numbers for -Wunreachable-code.
20882
20883 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
20884
20885         * haifa-sched.c (insn_unit): Fix typo on out of range test.
20886         * sched.c (insn_unit): Likewise.
20887
20888 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
20889
20890         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
20891
20892 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20893
20894         * flow.c (create_edge_list): Use xmalloc, not malloc.
20895
20896 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
20897
20898         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
20899         C-style comments.  Do not lose the character before double slash.
20900
20901 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20902
20903         * basic-block.h (struct edge_list): Stucture to maintain a vector
20904         of edges.
20905         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
20906          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
20907         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
20908         New function prototypes.
20909         * flow.c (create_edge_list): Function to create an edge list.
20910         (free_edge_list): Discards memory used by an edge list.
20911         (print_edge_list): Debug output showing an edge list.
20912         (verify_edge_list): Internal consistency check for an edge list.
20913         (find_edge_index): Function to find an edge index for a pred and succ.
20914
20915 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
20916
20917         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
20918         hashtable.
20919
20920 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
20921
20922         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
20923
20924 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
20925
20926         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
20927
20928 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
20929
20930         * toplev.c (rest_of_compilation): Allow machine dependent
20931         reorganisation pass to place information into the RTL dump
20932         file if it so wishes.
20933
20934 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
20935
20936         * explow.c (hard_function_value): Use VOIDmode instead of
20937         MAX_MACHINE_MODE.
20938         * stmt.c (expand_return): Likewise.
20939         * stor-layout.c (get_best_mode): Likewise.
20940
20941         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
20942         emit call instead of emit_insn call.
20943
20944 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
20945
20946         * configure.in: Handle --disable/enable-win32-registry.
20947         * install.texi: Document --disable/enable-win32-registry.
20948         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
20949         (WIN32_REGISTRY_KEY): New macro.
20950         * prefix.c: Use to enable/disable win32-specific code.
20951         (lookup_key): Use versioned key.
20952         * configure: Regenerate.
20953         * config.in: Likewise.
20954
20955 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
20956
20957         * cpplib.c (read_line_number): New fn, split out of...
20958         (do_line): Here.
20959
20960 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20961
20962         tree.c (lang_unsave_expr_now) : New.
20963         (unsave_expr_now): Call lang_unsave_expr_now.
20964         tree.h (lang_unsave_expr_now) : New.
20965
20966 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
20967
20968         * toplev.c (flag_new_exceptions): On by default.
20969
20970 1999-08-13  Michael Meissner  <meissner@cygnus.com>
20971
20972         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
20973
20974 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
20975
20976         * dwarfout.c (fundamental_type_code): Return FT_boolean for
20977         INTEGER_TYPE with precision==1, it's __java_boolean.
20978
20979 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20980
20981         * global.c (prune_preferences): Move some invariants out of the
20982         inner loop.
20983
20984 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
20985
20986         * configure.in (alpha*-dec-osf*): Add osf5.
20987
20988 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
20989
20990         * configure.in: Rework handling of ARM GNU/Linux slightly.
20991         (arm*-*-linux-gnuoldld): New target.
20992         * configure: Regenerate.
20993         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
20994         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
20995         * config/arm/linux-oldld.h: New file.
20996         * config/arm/linux-elf26.h: Don't include linux-elf.h.
20997         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
20998         Don't define.
20999         * config/arm/linux-elf.h (ASM_SPEC): Define.
21000         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
21001         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
21002         for 26-bit APCS and old linker.
21003         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
21004         `arm_elf'.
21005         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
21006         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
21007         don't define `arm' or `arm_elf'.
21008         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
21009         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
21010
21011 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
21012
21013         * rtl.texi: Fix typo.
21014
21015 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
21016
21017         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
21018
21019 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
21020
21021         * extend.texi (C++ Signatures): Remove node.
21022         * invoke.texi: Remove discussion of -fhandle-signatures,
21023         signature, sigof, __signature__, and __sigof__.
21024
21025 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
21026
21027         * Makefile.in (JAVAGC): Removed.
21028
21029 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21030
21031         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
21032
21033 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
21034
21035         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
21036
21037 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
21038
21039         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
21040         a register that is already known to be a pointer.
21041
21042 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
21043
21044         * fixinc/inclhack.tpl: Only install assert.h conditionally.
21045         * fixinc/inclhack.sh: Regenerated.
21046         * fixinc/fixincl.sh: Regenerated.
21047
21048 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
21049
21050         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
21051         Fix documentation of -ansi flag to describe its C++ behavior.
21052         Remove bogus reference to GCC 2.9.
21053
21054 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
21055
21056         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
21057         note if it is non-NULL.
21058
21059 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21060
21061         * except.h (eh_nesting_info): Add new structure defintion.
21062         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
21063         (reachable_handlers, update_rethrow_references): Add function
21064         prototypes.
21065         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
21066         a rethrow symbol instead of an integer exception region number.
21067         * flow.c (Make_edges): Use new exception nesting routines to determine
21068         which handlers are reachable from a CALL or asynchronous insn.
21069         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
21070         goto receivers.
21071         (delete_eh_regions): Update rethrow labels, and don't delete
21072         regions which are the target of a rethrow.
21073         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
21074         avoid overloading the SYMBOL_REF_USED flag.
21075         (rethrow_symbol_map): Use new rethrow_ref field.
21076         (rethrow_used): Use new rethrow_ref field.
21077         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
21078         of an integer.  Fix formatting.
21079         (output_exception_table_entry): Use new rethrow_ref field.
21080         (can_throw): Check for EH_REGION_NOTE before deciding
21081         whether a CALL can throw or not.
21082         (scan_region): Call rethrow_used() instead of accessing data structure.
21083         (update_rethrow_references): New function to make sure only regions
21084         which are still targets of a rethrow are flagged as such.
21085         (process_nestinfo): New static function to initialize a handler
21086         list for a specific region.
21087         (init_eh_nesting_info): New function to allocate and initialize
21088         the list of all EH handlers reachable from all regions.
21089         (reachable_handlers): New function to retrieve the list of handlers
21090         reachable from a specific region and insn.
21091         (free_eh_nesting_info): New function to dispose of a list of
21092         reachable handlers.
21093
21094 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21095
21096         * flow.c (split_edge): Set JUMP_LABEL field.
21097         (commit_one_edge_insertion): Set head correctly for insert_before.
21098         When inserting insns, update insn block numbers if allocated.
21099
21100 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21101
21102         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
21103         retry_incomplete_types): Add static prototype.
21104         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
21105         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
21106         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
21107         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
21108         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
21109         Constify a char*.
21110
21111         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
21112         dwarf2out_start_source_file, dwarf2out_line): Likewise.
21113
21114 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21115
21116         * output.h (assemble_name): Constify a char*.
21117
21118         * varasm.c (UNIQUE_SECTION, assemble_start_function,
21119         assemble_variable, assemble_name): Likewise.
21120
21121         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
21122
21123         * arm/pe.c (arm_pe_unique_section): Likewise.
21124
21125         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
21126
21127         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
21128
21129         * i386/interix.c (i386_pe_unique_section): Likewise.
21130
21131         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
21132
21133         * i386/winnt.c (i386_pe_unique_section): Likewise.
21134
21135         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
21136
21137         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
21138
21139         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
21140
21141         * pa/pa.c (output_call): Likewise.
21142
21143         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
21144
21145         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
21146
21147         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
21148         Likewise.
21149
21150         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
21151         Likewise.
21152
21153         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
21154
21155         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
21156         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
21157
21158         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
21159
21160 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21161
21162         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
21163
21164 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21165
21166         * tree.h (lang_identify): Constify a char*.
21167         (print_error_function): Add extern prototype.  Constify a char*.
21168
21169         * c-lang.c (lang_identify): Constify a char*.
21170
21171         * objc/objc-act.c (lang_identify): Constify a char*.
21172
21173 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21174
21175         * genpeep.c (main): Make generated file include "function.h".
21176         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
21177
21178 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21179
21180         * Makefile.in: Update dependencies.
21181         * alias.c: Include "function.h"
21182         * c-decl.c: Likewise.
21183         * caller-save.c: Likewise.
21184         * calls.c: Likewise.
21185         * combine.c: Likewise.
21186         * cse.c: Likewise.
21187         * explow.c: Likewise.
21188         * final.c: Likewise.
21189         * global.c: Likewise.
21190         * graph.c: Likewise.
21191         * local-alloc.c: Likewise.
21192         * loop.c: Likewise.
21193         * optabs.c: Likewise.
21194         * profile.c: Likewise.
21195         * recog.c: Likewise.
21196         * regclass.c: Likewise.
21197         * regmove.c: Likewise.
21198         * reload.c: Likewise.
21199         * reorg.c: Likewise.
21200         * resource.c: Likewise.
21201         * sched.c: Likewise.
21202         * stupid.c: Likewise.
21203         * config/1750a/1750a.c: Likewise.
21204         * config/a29k/a29k.c: Likewise.
21205         * config/arc/arc.c: Likewise.
21206         * config/arm/arm.c: Likewise.
21207         * config/arm/thumb.c: Likewise.
21208         * config/c4x/c4x.c: Likewise.
21209         * config/clipper/clipper.c: Likewise.
21210         * config/convex/convex.c: Likewise.
21211         * config/fx80/fx80.c: Likewise.
21212         * config/i860/i860.c: Likewise.
21213         * config/m68k/m68k.c: Likewise.
21214         * config/m88k/m88k.c: Likewise.
21215         * config/mips/mips.c: Likewise.
21216         * config/pdp11/pdp11.c: Likewise.
21217         * config/pyr/pyr.c: Likewise.
21218         * config/romp/romp.c: Likewise.
21219         * config/sh/sh.c: Likewise.
21220         * config/tahoe/tahoe.c: Likewise.
21221         * config/vax/vax.c: Likewise.
21222         * config/we32k/we32k.c: Likewise.
21223         * config/sparc/sparc.c: Include "function.h".
21224         (mem_min_alignment): Test current_function rather than
21225         regno_pointer_align.
21226         * config/pa/pa.c: Likewise.
21227         (compute_frame_size): Delete declaration of
21228         current_function_outgoing_args_size.
21229         * config/arc/arc.h (current_function_varargs): Delete declaration.
21230         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
21231         declaration.
21232         * config/i370/i370.h (current_function_outgoing_args_size): Delete
21233         declaration.
21234         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
21235         current_function_uses_pic_offset_table.
21236         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
21237         of current_function_returns_pointer.
21238         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21239         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21240         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21241         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21242         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21243         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21244         * config/m88k/m88k.c: Include "function.h"
21245         (call_used_regs, current_function_pretend_args_size,
21246         current_function_outgoing_args_size, frame_pointer_needed): Delete
21247         declarations.
21248         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
21249         declaration.
21250         * config/mips/mips.h (current_function_calls_alloca): Delete
21251         declaration.
21252         * config/mn10200/mn10200.h (current_function_needs_context,
21253         rtx_equal_function_value_matters): Delete declarations.
21254         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
21255         flag_pic): Delete declarations.
21256         * config/pa/pa.h (current_function_pretend_args_size,
21257         current_function_decl): Delete declarations.
21258         * config/pa/som.h (current_function_varargs): Delete declaration.
21259         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
21260         declaration.
21261         * config/pyr/pyr.h (current_function_pretend_args_size,
21262         current_function_args_size, current_function_calls_alloca): Delete
21263         declarations.
21264         * config/sh/sh.h (current_function_varargs): Delete declaration.
21265         * config/sparc/sparc.h (current_function_outgoing_args_size,
21266         current_function_calls_alloca, current_function_decl): Delete
21267         declarations.
21268         * config/spur/spur.h (current_function_pretend_args_size,
21269         current_function_calls_alloca): Delete declarations.
21270         * config/v850/v850.c (current_function_outgoing_args_size): Delete
21271         declaration.
21272         * config/vax/vms.h (current_function_name): Delete declaration.
21273         * gcse.c: Include "function.h".
21274         (current_function_name, current_function_calls_setjmp): Delete
21275         declarations.
21276         * haifa-sched.c: Include "function.h".
21277         (forced_labels): Delete declaration.
21278         * jump.c: Likewise.
21279         * reg-stack.c: Likewise.
21280         * reload1.c: Likewise.
21281         * genemit.c (main): Make generated file include function.h.
21282         * genoutput.c (output_prologue): Likewise.
21283
21284         * builtins.c (saveregs_value, apply_args_value): Delete variables.
21285         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
21286         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
21287         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
21288         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
21289         macros for some of them.
21290         (emit_filename, emit_lineno): Delete declarations.
21291         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
21292         regno_pointer_* variables through current_function.
21293         (gen_inline_header_rtx): Delete function.
21294         (save_emit_status): Delete function.
21295         (set_new_last_label_num): New function.
21296         (clear_emit_caches): New function.
21297         (restore_emit_status): Just clear last_labelnum and call
21298         clear_emit_caches.
21299         (get_last_insn_anywhere): Variable sequence_stack is now accessed
21300         through macro seq_stack.
21301         (add_insn_after): Likewise.
21302         (add_insn_before): Likewise.
21303         (remove_insn): Likewise.
21304         (pop_topmost_sequence): Likewise.
21305         (in_sequence_p): Likewise.
21306         (start_sequence_for_rtl_expr): Likewise.
21307         (start_sequence): Likewise, and likewise for
21308         sequence_rtl_expr/seq_rtl_expr.
21309         (push_topmost_sequence): Likewise.
21310         (end_sequence): Likewise.
21311         (init_virtual_regs): Now takes a "struct emit_status *" argument.
21312         All callers changed.  Store into that pointer instead of globals.
21313         (init_emit): Allocate emit elt of current_function.
21314         Changes for sequence_rtl_expr/sequence_stack renaming.
21315         Call clear_emit_caches instead of doing it in-line.
21316         Access regno_pointer_* variables through current_function.
21317         (init_emit_once) Don't clear sequence_stack.
21318
21319         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
21320         Delete variables.
21321         (arg_pointer_save_area): Delete declaration.
21322         (finish_expr_for_function): Renamed from init_queue; no longer static.
21323         (init_expr): Don't call init_queue.
21324         (save_expr_status, restore_expr_status): Delete functions.
21325         (expand_expr): Changes to reflect new layout of struct function.
21326         Don't access current_function_check_memory_usage when current_function
21327         is 0.
21328         * expr.h (forced_labels, save_expr_regs, saveregs_value,
21329         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
21330         current_function_outgoing_args_size, current_function_arg_offset_rtx,
21331         current_function_uses_const_pool, function_call_count,
21332         current_function_uses_pic_offset_table, nonlocal_labels,
21333         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
21334         current_function_check_memory_usage, nonlocal_goto_handler_slots,
21335         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
21336         declarations.
21337         (finish_expr_for_function): Declare.
21338         * flags.h (current_function_has_nonlocal_label,
21339         current_function_has_nonlocal_goto, current_function_is_thunk,
21340         current_function_has_computed_jump): Delete declarations.
21341         * flow.c (forced_labels): Delete declaration.
21342         * function.c (current_function_pops_args,
21343         current_function_returns_struct, current_function_returns_pcc_struct,
21344         current_function_needs_context, current_function_calls_setjmp,
21345         current_function_calls_longjmp, current_function_has_nonlocal_label,
21346         current_function_has_nonlocal_goto, current_function_is_thunk,
21347         current_function_has_computed_jump, current_function_calls_alloca,
21348         current_function_contains_functions, current_function_returns_pointer,
21349         current_function_epilogue_delay_list, current_function_args_size,
21350         current_function_pretend_args_size, current_function_arg_offset_rtx,
21351         current_function_outgoing_args_size, current_function_varargs,
21352         current_function_stdarg, current_function_args_info, cleanup_label,
21353         current_function_name, current_function_uses_const_pool,
21354         current_function_instrument_entry_exit, current_function_return_rtx,
21355         current_function_uses_pic_offset_table, nonlocal_labels,
21356         current_function_internal_arg_pointer, current_function_cannot_inline,
21357         current_function_check_memory_usage, function_call_count,
21358         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
21359         nonlocal_goto_stack_level, return_label, save_expr_regs,
21360         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
21361         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
21362         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
21363         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
21364         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
21365         Delete variables.
21366         (push_function_context_to): Don't save them.  Don't call
21367         save_storage_status, save_emit_status or save_expr_status.
21368         (pop_function_context_from): Don't restore them.  Don't call
21369         restore_storage_status or restore_expr_status.
21370         (get_func_frame_size): New function.
21371         (get_frame_size): Use it.
21372         (assign_outer_stack_local): Reflect some member name changes in struct
21373         function.
21374         (put_reg_into_stack): Likewise.
21375         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
21376         seq_rtl_expr.
21377         (fixup_var_refs): Likewise.
21378         (fix_lexical_addr): Likewise.
21379         (trampoline_address): Likewise.
21380         (prepare_function_start): Clear field inlinable of current_function.
21381         (init_function_for_compilation): New function.
21382         (expand_dummy_function_end): New function.
21383         (expand_function_end): Call finish_expr_for_function.
21384         * function.h (struct emit_status): New; fields moved here from struct
21385         function and from global variables.  Add accessor macros for some of
21386         the fields.
21387         (struct expr_status): Likewise.
21388         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
21389         (struct function): Add fields expr and emit, inlinable, inl_emit,
21390         original_arg_vector, original_decl_initial, inl_last_parm_insn,
21391         inl_max_label_num.  Add many comments.
21392         Add accessor macros for all elts of struct function that no longer
21393         have a global variable.
21394         (cleanup_label, return_label, frame_offset, tail_recursion_label,
21395         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
21396         stack_slot_list): Delete declarations.
21397         (get_func_frame_size): Declare.
21398         (save_expr_status, restore_expr_status, save_emit_status,
21399         save_storage_status, restore_storage_status): Delete declarations.
21400         (init_virtual_regs): Declare.
21401         * output.h (current_function_pops_args,
21402         current_function_returns_struct, current_function_returns_pcc_struct,
21403         current_function_needs_context, current_function_calls_setjmp,
21404         current_function_calls_longjmp, current_function_calls_alloca,
21405         current_function_has_nonlocal_label, current_function_varargs,
21406         current_function_has_computed_jump, current_function_returns_pointer,
21407         current_function_contains_functions, current_function_args_size,
21408         current_function_pretend_args_size, current_function_stdarg,
21409         current_function_outgoing_args_size, current_function_args_info,
21410         current_function_name, current_function_return_rtx,
21411         current_function_epilogue_delay_list,
21412         current_function_uses_const_pool, current_function_cannot_inline):
21413         Delete declarations.
21414         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
21415         regno_reg_rtx): Delete declaration.
21416         (REGNO_POINTER_FLAG): Delete macro.
21417         * stmt.c (expand_goto): Changes to reflect that some fields in struct
21418         function were renamed.
21419         * stor-layout.c (save_storage_status, restore_storage_status): Delete
21420         functions.
21421         * toplev.c: Include "function.h".
21422         (current_function_decl): Delete declaration.
21423         (compile_file): Call init_dummy_function_start and
21424         expand_dummy_function_end around some initializations that need to
21425         emit rtl.
21426         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
21427         Call init_function_for_compilation.
21428         * unroll.c: Include "function.h"
21429         (unroll_loop): Access regno_pointer_* variables through
21430         current_function.
21431
21432         * tree.h (struct tree_decl): Add elt f to saved_insns member.
21433         (DECL_SAVED_INSNS): use it.
21434         (expand_dummy_function_end): Declare.
21435         (init_function_for_compilation): Declare.
21436         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
21437         that it's no longer an INLINE_HEADER.
21438         (expand_call): Likewise.
21439         * integrate.c (finish_inline): Delete function.
21440         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
21441         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
21442         args.  Don't generate an INLINE_HEADER rtx, just return the arg
21443         vector.  All callers changed.
21444         (save_for_inline_copying):  Create a duplicate struct emit_status to
21445         hold the emit state for compiling the current function.  Use this and
21446         the other new fields in struct function that are for integration
21447         instead of an INLINE_HEADER.
21448         Use memcpy instead of bcopy.
21449         Store the current struct function in DECL_SAVED_INSNS of fndecl.
21450         (save_for_inline_nocopy): Similar changes, except no new emit_status
21451         is needed here.
21452         (expand_inline_function): Get information from function structure,
21453         not from an inline header rtx.
21454         (output_inline_function): Lose code to extract the necessary
21455         information from an inline header; simply put back the function
21456         structure into current_function.  Clear its inlinable elt.
21457         * rtl.def (INLINE_HEADER): Delete.
21458         * rtl.h: Delete all accessors for an INLINE_HEADER.
21459         (gen_inline_header_rtx): Delete declaration.
21460         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
21461         Delete declarations.
21462         (REGNO_POINTER_ALIGN): Delete.
21463         (clear_emit_caches): Declare.
21464         (set_new_last_label_num): Declare.
21465
21466 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
21467
21468         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
21469
21470         * except.c (expand_eh_region_start_for_decl): Always start a new block.
21471         * stmt.c (is_eh_region): Make sure current_function is present, too.
21472
21473 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
21474
21475         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
21476         for 64bit PA targets.
21477
21478         * pa.h (SELECT_SECTION): Define.
21479         * som.h (SELECT_SECTION): Delete.
21480
21481 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21482
21483         * alias.c (init_alias_analysis): Wrap call to
21484         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
21485
21486 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
21487
21488         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
21489         <sys/asm.h> contains an asm comment with an apostrophe
21490         * fixinc/inclhack.sh:  regen
21491         * fixinc/fixincl.x:  regen
21492
21493 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
21494
21495         * function.c (init_function_start): Clear prologue & epilogue.
21496         (prologue_epilogue_contains): New function.
21497         * alias.c (init_alias_analysis): Use it.
21498         * rtl.h (prologue_epilogue_contains): Declare it.
21499
21500 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
21501
21502         * jump.c (onlyjump_p): New function.
21503         * rtl.h: Declare it.
21504         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
21505         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
21506
21507 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
21508
21509         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
21510         to invert loops.  Simplify block scanning.
21511
21512 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
21513
21514         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
21515         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
21516
21517 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
21518
21519         * config/sparc/liteelf.h: New file to support sparclite-elf target
21520         * config/sparc/t-sp86x: New file to support sparc86x targets
21521         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
21522         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
21523         * configure.in: Support above target triplets
21524         * configure: Regenerated
21525
21526 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
21527
21528         * fixinc/server.c (server_setup): Do not prefix function used as
21529         parameter with `&'.
21530
21531 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
21532
21533         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
21534         Remove fp reg alternatives.
21535
21536 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
21537
21538         * Makefiin (TAROUTOPTS): Kill.
21539         (install-headers-tar): Use "xpf" for tar headerfile extraction
21540         * i370/x-oe (TAROUTOPTS): Delete.
21541         * m68k/x-apollo68 (TAROUTOPTS): Delete.
21542         * m68k/x-hp320 (TAROUTOPTS): Delete.
21543         * m68k/x-hp320g (TAROUTOPTS): Delete.
21544         * gcc.texi: Update bug reporting text.
21545
21546 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
21547
21548         * reg-stack.c (change_stack) Fixed problem with negative array index.
21549
21550 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
21551
21552         * extend.texi, install.texi: Fix spelling mistakes.
21553
21554         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
21555         (s-attrtab); No longer try to use pre-made insn-attrtab file.
21556         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
21557         PREMADE_ATTRTAB_MD.
21558         * mips/t-ecoff: Likewise.
21559         * mips/t-elf: Likewise.
21560         * mips/t-mips: Likewise.
21561         * mips/t-osfrose: Likewise.
21562         * mips/t-r3900: Likewise.
21563         * mips/t-svr3: Likewise.
21564         * mips/t-svr4: Likewise.
21565         * mips/t-ultrix: Likewise.
21566
21567         * gcc.texi: Document recommend means to provide software floating
21568         point libraries in libgcc.a
21569
21570 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
21571
21572         * c-lex.c (yylex): We can have a number with no digits.
21573
21574 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
21575
21576         * jump.c (delete_prior_computation): New function, broken
21577         out of delete_computation.  Check for side effects with
21578         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
21579         multi-word hard registers.
21580         (delete_computation): Use it.  Check for side effects with
21581         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
21582         missing REG_DEAD note for a register which is both set and
21583         used by an insn.
21584
21585 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
21586
21587         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
21588         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
21589         (ASM_FILE_START): Import _mcount with the right type.
21590         (ASM_DECLARE_FUNCTION_NAME): Define.
21591         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
21592         * pa.c (output_function_prologue): Always emit the function's label
21593         here.
21594         * pa.h (TEXT_SPACE_P): Define.
21595         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
21596         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
21597         * som.h (TEXT_SPACE_P): Delete.
21598         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
21599         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
21600
21601 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
21602
21603         * expr.c (emit_group_load): Allow src to be a CONCAT.
21604
21605 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21606
21607         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
21608         (___mulsi3): Use '!' comment character.
21609
21610 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21611
21612         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
21613
21614 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
21615
21616         * gcc.c: Update URLs and mail addresses.
21617         * gcc.texi: Likewise.
21618
21619 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
21620
21621         * rs6000.c (current_file_function_operand): Return zero for
21622         weak functions.
21623         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
21624         weak symbols.
21625         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
21626         for weak symbols.
21627
21628 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
21629
21630         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
21631         allocate space in the stack frame for the PIC register.
21632
21633 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
21634
21635         * m68k.md (xordi3, anddi3): These patterns are not available on
21636         the coldfire.
21637
21638 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
21639
21640         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
21641         (PUT_REAL): Likewise.
21642
21643 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21644
21645         * final.c (shorten_branches): Don't add an alignment for loops
21646         that have no label inside.
21647
21648 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21649
21650         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
21651         prototypes in macro HAVE_cmpstrsi.
21652
21653         * cpplib.c (cpp_get_token): Remove unused label `op3'.
21654
21655         * emit-rtl.c (operand_subword): Remove unused variable
21656         `bits_per_word'.
21657
21658         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
21659
21660         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
21661
21662 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
21663
21664         * cpphash.c (macroexpand): Delete leading whitespace when arg
21665         is concatenated before.
21666         (unsafe_chars): Correct test for whether + and - can extend a
21667         token.
21668
21669         * cppinit.c (cpp_start_read): Do dependencies for
21670         -include/-imacros files also.
21671
21672         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
21673         tokenizing non-directive lines.
21674         (cpp_expand_to_buffer): Temporarily disable no-output mode.
21675         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
21676         the input file.
21677
21678 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
21679
21680         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
21681
21682         * c-lex.c: Sync with C++ frontend.
21683         (linemode): New variable.
21684         (parse_float): imag, conversion_errno, and type are output only.
21685         (yylex): Adjust.  Move initial '.' case into main switch.
21686         Use linemode.
21687         (handle_generic_pragma): Just deal with tokens.
21688         (readescape): Use ISXDIGIT and ISGRAPH.
21689         * c-parse.in: Add END_OF_LINE token.
21690
21691         * c-lex.c (lang_init): Generalize.
21692         (nextchar): Remove.  Replace uses with UNGETC.
21693         (skip_white_space): Handle linemode here.  Optimize for cpplib.
21694         (skip_white_space_on_line): Remove.
21695         (extend_token_buffer_to): New fn.
21696         (extend_token_buffer): Use it.
21697         (read_line_number, check_newline): Just deal with tokens.
21698         (token_getch, token_put_back): New fns.
21699         (yylex): Use them.  More cpplib optimizations.  Simplify.
21700
21701 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
21702                           Jason Merrill  <jason@yorick.cygnus.com>
21703
21704         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
21705         (consume_string): Make this smart about USE_CPPLIB.
21706         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
21707         (yylex): Rewrite to be intelligent about USE_CPPLIB.
21708         Also, clean up cases where we redundantly set token_buffer[0].
21709         (read_line_number): New fn.
21710         (ignore_escape_flag): New variable.
21711
21712 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
21713
21714         * a29k/t-a29kbare: Fix some comments.
21715         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
21716         (FPBIT, DPBIT): Define.
21717         * a29k/t-vx29k: Likewise.
21718         * arc/t-arc: Likewise.
21719         * arm/t-arm-elf: Likewise.
21720         * arm/t-bare: Likewise.
21721         * arm/t-pe: Likewise.
21722         * arm/t-pe-thumb: Likewise.
21723         * arm/t-semi: Likewise.
21724         * arm/t-thumb: Likewise.
21725         * arm/t-thumb-elf: Likewise.
21726         * arm/t-thumb-linux: Likewise.
21727         * h8300/t-h8300: Likewise.
21728         * i960/t-i960: Likewise.
21729         * i960/t-vxworks960: Likewise.
21730         * m32r/t-m32r: Likewise.
21731         * mips/t-ecoff: Likewise.
21732         * mips/t-elf: Likewise.
21733         * mips/t-r3900: Likewise.
21734         * pa/t-pro: Likewise.
21735         * rs6000/t-aix43: Likewise.
21736         * rs6000/t-beos: Likewise.
21737         * rs6000/t-newas: Likewise.
21738         * rs6000/t-ppccomm: Likewise.
21739         * rs6000/t-rs6000: Likewise.
21740         * rs6000/t-winnt: Likewise.
21741         * rs6000/t-xnewas: Likewise.
21742         * rs6000/t-xrs6000: Likewise.
21743         * sh/t-sh: Likewise.
21744         * sparc/t-elf: Likewise.
21745         * sparc/t-sparcbare: Likewise.
21746         * sparc/t-sparclite: Likewise.
21747         * sparc/t-splet: Likewise.
21748         * v850/t-v850: Likewise.
21749         * mn10200/t-mn10200: Fix comments.
21750         * mn10300/t-mn10300: Likewise.
21751
21752         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
21753         dummy operand.  Allocate a new pseudo for the dummy operand.
21754         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
21755
21756         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
21757
21758 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
21759
21760         * configure: Rebuilt.
21761         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
21762
21763 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
21764
21765         * recog.c (preproces_constraints): Zero recog_op_alt before
21766         processing the constraints.
21767
21768         * arm.c (typedef minipool_node): Renamed from pool_node.
21769         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
21770         (add_minipool_constant): New function.
21771         (dump_minipool): New function.
21772         (find_barrier): Remove special case for getting the insn size of
21773         an insn that references the constant pool.
21774         (minipool_fixup): New structure.
21775         (push_minipool_barrier): New function.
21776         (push_minipool_fix): New function.
21777         (note_invalid_constants): New function.
21778         (add_pool_constant, dump_table, fixit, broken_move): Delete.
21779         (arm_reorg): Rewrite code to fix up the constant pool into a
21780         series of mini-pools embedded in the insn stream.
21781         (arm_output_epilogue): New function, made mainly from the body
21782         of output_func_epilogue.
21783         (output_func_epilogue): Move insn generation part of epilogue code
21784         to arm_output_epilogue.
21785         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
21786         * arm.md (pool_range): New attribute.
21787         (zero_extendqidi2): Add attribute pool_range.
21788         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
21789         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
21790         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
21791         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
21792         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
21793         (epilogue): New expand.
21794         (epilogue_insn): New insn.  Call arm_output_epilogue.
21795
21796         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
21797         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
21798
21799 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
21800
21801         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
21802
21803 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
21804
21805         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
21806
21807 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
21808
21809         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
21810
21811 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
21812
21813         * global.c: Fix comment.
21814
21815 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
21816
21817         * gcc.c (access_check): New static function.
21818         (find_a_file): Use it when searching a directory list.
21819         * collect2.c (find_a_file): Don't accept directories found when
21820         searching a directory list.
21821
21822 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
21823
21824         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
21825         function parameters with `&'.
21826         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
21827
21828 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
21829
21830         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
21831         or tidy_fallthru_edge if the last insn in the block is not
21832         an unconditional jump or a simple conditional jump.
21833
21834 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21835
21836         * Makefile.in (c-decl.o): Depends on defaults.h.
21837
21838 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
21839
21840         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
21841         PA1.1 and above.
21842         (CLASS_MAX_NREGS): Likewise.
21843
21844 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
21845
21846         * cse.c (cse_insn): Fix dumb thinko in last change.
21847
21848 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21849
21850         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
21851         "const char *".
21852
21853 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
21854
21855         * dwarf2out.c (add_location_or_const_value_attribute): Correct
21856         test for sizes of passed and declared parameter types.
21857
21858 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21859
21860         * fixincludes: Fix the return type of bsearch, char* -> void*.
21861
21862         * fixinc/inclhack.def: Likewise.
21863
21864 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
21865
21866         * invoke.texi (-fdump-translation-unit): New option.
21867
21868 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
21869
21870         * expr.h (PROMOTE_PROTOTYPES): Move ...
21871         * defaults.h: ... to here.
21872         * c-decl.c: Include defaults.h instead of expr.h.
21873         * c-typeck.c: Include defaults.h.
21874
21875 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
21876
21877         * toplev.h (errorcount): Declare.
21878         (warningcount): Likewise.
21879         (sorrycount): Likewise.
21880         * c-lex.c (errorcount): Don't declare.
21881         * dwarf2out.c (errorcount): Don't declare.
21882
21883 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
21884
21885         * config/libgloss.h: Add a note discouraging use with ELF.
21886         * configure.in: Don't use libgloss.h for ELF targets.
21887         Always use_collect2 on a.out targets.
21888
21889 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
21890
21891         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
21892         (force_to_mode, case ASHIFTRT): Add shiftrt label.
21893
21894 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21895
21896         * loop.c (strength_reduce): When doing biv->giv conversion, update
21897         reg note of NEXT->insn.
21898
21899 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
21900
21901         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
21902
21903 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
21904
21905         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
21906         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
21907         Ensure expr.h is included.
21908         * c-typecheck.c (convert_arguments): Ditto.
21909
21910         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
21911
21912         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
21913         * config/convex/convex.h: Ditto.
21914         * config/dsp16xx/dsp16xx.h: Ditto.
21915         * config/fx80/fx80.h: Ditto.
21916         * config/gmicro/gmicro.h: Ditto.
21917         * config/i370/i370.h: Ditto.
21918         * config/i386/i386.h: Ditto.
21919         * config/m32r/m32r.h: Ditto.
21920         * config/m68k/m68k.h: Ditto.
21921         * config/m88k/m88k.h: Ditto.
21922         * config/mips/mips.h: Ditto.
21923         * config/pa/pa.h: Ditto.
21924         * config/pyr/pyr.h: Ditto.
21925         * config/tahoe/tahoe.h: Ditto.
21926         * config/we32k/we32k.h: Ditto.
21927
21928         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
21929         based on arch size.
21930
21931         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
21932
21933         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
21934         from comment.
21935
21936         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
21937
21938 1999-08-02  Richard Henderson  <rth@cygnus.com>
21939
21940         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
21941         for the register spill block.
21942         (m32r_va_arg): New.
21943         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
21944         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
21945
21946         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
21947         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
21948         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
21949
21950 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
21951
21952         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
21953         MAX_WCHAR_TYPE defined in sparc.h.
21954         * config/sparc/linuxaout.h: Likewise.
21955         * config/sparc/linux64.h: Likewise.
21956         Also default to -mvis if CPU is UltraSPARC.
21957
21958 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
21959
21960         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
21961         (RTX_OK_FOR_OLO10): Likewise.
21962         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
21963         %lo(), allow it in addresses...
21964         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
21965         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
21966         does not make sense.
21967         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
21968         (sparc_output_scratch_registers): New function.
21969         (output_function_prologue, sparc_flat_output_function_prologue): Use
21970         it.
21971         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
21972         defined.
21973         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
21974         * configure.in: Add check for .register pseudo-op support in as and
21975         check for offsetable %lo().
21976         * acconfig.h: Add templates for the above checks.
21977         * configure: Regenerate.
21978
21979 1999-08-02  Richard Henderson  <rth@cygnus.com>
21980
21981         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
21982         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
21983         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
21984
21985 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21986
21987         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
21988         reg_biv_class.
21989
21990 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
21991
21992         * config/float-sparc.h: New file.
21993         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
21994         sparc-*-linux-gnu and sparc64-*-linux*.
21995
21996 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
21997
21998         * rs6000.c (rs6000_va_list): Type is an array.
21999         (rs6000_va_start): Don't doubly adjust for varargs.
22000         (rs6000_va_arg): Evaluate long long GPR adjustment.
22001
22002 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
22003
22004         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
22005         -maix64 and -maix32.
22006         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
22007         LINK_SPEC): Change appropriately.
22008         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
22009         (u_short_cint_operand): Likewise.
22010         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
22011         for 64-bit hosts.
22012         * rs6000/t-aix43 (MULTILIB): Change to -m64.
22013
22014         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
22015
22016 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
22017
22018         * rs6000/rs6000.c (num_insns_constant_wide): Correct
22019         for type promotion.
22020         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
22021         (non_add_cint_operand): Likewise.
22022         (logical_operand): Likewise.
22023         (non_logical_cint_operand): Likewise.
22024         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
22025         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
22026         (rs6000_select_rtx_section): Suppress warning.
22027         (small_data_operand): Suppress warning.
22028         (rs6000_got_register): Suppress warning.
22029         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
22030         type, so `J' is generally the wrong constraint for a SImode value;
22031         use `L' instead.
22032         (andsi3_internal2): Likewise.
22033         (andsi3_internal3): Likewise.
22034         (iorsi3_internal1): Likewise.
22035         (xorsi3_internal1): Likewise.
22036         (movsi): Likewise.
22037         (movsf_softfloat): Likewise.
22038         (scc insns): Likewise.
22039         (movsi+2): Preserve sign bits of SImode constant.
22040         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
22041         (movdf+1): Sign-extend properly.
22042         (movdi_32+1): Sign-extend properly.
22043         (scc insns): Sign-extend properly.
22044
22045         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
22046         K, L, and T.
22047
22048 1999-08-02  Richard Henderson  <rth@cygnus.com>
22049
22050         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
22051         -mcpu parsing code.
22052         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
22053         * alpha.md (all fp insns): Likewise.
22054
22055 1999-08-02  Nick Clifton  <nickc@cygnus.com>
22056
22057         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
22058         already defined.
22059
22060 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
22061
22062         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
22063         pic_load_label generator directly.
22064         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
22065         No longer a named pattern.
22066
22067 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
22068
22069         * explow.c (force_reg): Call force_operand if X does not
22070         satisfy general_operand.
22071
22072 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
22073
22074         * fix-header.c (main): When testing for CONTINUED, use string
22075         equality, not pointer equality.
22076
22077 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
22078
22079         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
22080
22081 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
22082
22083         * cse.c (cse_insn): Fix loop which deletes insns after a jump
22084         that has become an unconditional jump.
22085
22086         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
22087         (output_function_epilogue): Similarly.
22088
22089 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22090
22091         * tree.h (init_dummy_function_start): Declare.
22092
22093 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22094
22095         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
22096         last_expr_type, last_expr_value, block_start_count, block_stack,
22097         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
22098         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
22099         dynamically in stmt elt of struct function for each function.
22100         (struct nesting): Rename function_call_count elt to n_function_calls,
22101         target_temp_slot_level to block_target_temp_slot_level.  All users
22102         changed.
22103         (struct stmt_status): New structure definition.
22104         Add many accessor macros for stmt_status elements which previously
22105         were global variables.
22106         (init_stmt_for_function): Allocate stmt elt for current_function.
22107         Reflect that block_start_count was renamed to
22108         current_block_start_count.
22109         (save_stmt_status, restore_stmt_status): Delete functions.
22110         (preserve_subexpressions_p): Don't access loop_stack when outside
22111         a function.
22112         (expand_start_bindings): Reflect that block_start_count was renamed to
22113         current_block_start_count.
22114         (expand_fixup): Likewise.
22115         (expand_decl): Don't access block_stack when outside a function.
22116         (expand_decl_cleanup): Likewise.
22117         (expand_dcc_cleanup): Likewise.
22118         (expand_dhc_cleanup): Likewise.
22119         (expand_anon_union_decl): Likewise.
22120         (set_file_and_line_for_stmt): New function.
22121         (in_control_zone_p): New function.
22122
22123         * function.h (struct function): Add new elt stmt.
22124         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
22125         case_stack, nesting_stack, nesting_depth, block_start_count,
22126         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
22127         emit_lineno, goto_fixup_chain.
22128         (save_eh_status, restore_eh_status, save_stmt_status,
22129         restore_stmt_status): Delete declarations.
22130         * function.c (push_function_context_to): Don't call save_stmt_status.
22131         (pop_function_context_to): Don't call restore_stmt_status.
22132         * tree.h (in_control_zone_p): Declare.
22133         * rtl.h (set_file_and_line_for_stmt): Declare.
22134
22135         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
22136         call set_file_and_line_for_stmt.
22137
22138 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
22139
22140         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
22141         Also update copyright.
22142
22143 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22144
22145         * c-pragma.c: Don't include "except.h".
22146         * emit-rtl.c: Likewise.
22147         * stor-layout.c: Likewise.
22148         * tree.c: Likewise.
22149         * varasm.c: Likewise.
22150
22151         * flow.c: Include "function.h".
22152         * tree.h (init_dummy_function_start): Declare new function.
22153
22154         * except.h (struct eh_status): New structure.
22155         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
22156         been included.
22157         (eh_return_stub_label, ehstack, catchstack, ehqueue,
22158         catch_clauses, false_label_stack, caught_return_label_stack,
22159         protect_list, current_function_ehc): Add accessor macros for the
22160         corresponding fields in current_function->eh; delete declarations
22161         for all items that used to be declared here.
22162         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
22163         catch_clauses, false_label_stack, caught_return_label_stack,
22164         protect_list, current_function_ehc): Delete variables.
22165         (init_eh_for_function): Allocate current_function->eh.
22166         (save_eh_status, restore_eh_status): Delete functions.
22167
22168         * function.h (struct function): Add fields next_global and eh.
22169         Delete all exception handling related fields.
22170         * function.c (current_function): New variable.
22171         (all_functions): New variable.
22172         (push_function_context_to): Don't allocate a struct function,
22173         use current_function instead.  Call init_dummy_function_start when
22174         outside a function.  Clear current_function before returning.
22175         (pop_function_context_from): Restore current_function.
22176         Don't free the restored struct function.
22177         (prepare_function_start): New function.
22178         (init_dummy_function_start): New function.
22179         (init_function_start): Break out some code into prepare_function_start
22180         and call it here.
22181
22182         * stmt.c (save_stmt_status): Don't call save_eh_status.
22183         (restore_stmt_status): Don't call restore_eh_status.
22184
22185         * Makefile.in: Update dependencies.
22186
22187 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
22188
22189         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
22190         of depending on a magic constant value.  Update comments.
22191         (hppa_expand_prologue): Similarly.
22192
22193         * pa.md (reload_indi, reload_outdi): Allow any register for the
22194         original reload register.
22195
22196 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
22197
22198         * cccp.c (print_help): Change marcos to macros.
22199
22200 1999-07-30  Richard Henderson  <rth@cygnus.com>
22201
22202         * c-typeck.c (initializer_constant_valid_p): Move ...
22203         * c-common.c (initializer_constant_valid_p): ... here.  Use
22204         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
22205         of label addresses.
22206         * c-common.h (initializer_constant_valid_p): Declare.
22207         * c-tree.h (initializer_constant_valid_p): Remove.
22208
22209 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
22210
22211         * config/i386/sol2-c1.asm: Align the stack.
22212         * config/i386/sol2-gc1.asm: Likewise.
22213
22214 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
22215
22216         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
22217         -Asparclite for sparc86x.
22218         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
22219         sparc86x.
22220         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
22221
22222 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
22223
22224         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
22225         the user if using the non-default arch size in BI_ARCH configuration.
22226         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
22227
22228         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
22229         Fix patterns so that they actually match.
22230         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
22231         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
22232         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
22233         TARGET_HARD_MUL32.
22234         (mulsidi3): Reflect this in the expand.
22235         (smulsi3_highpart): Only on TARGET_ARCH32.
22236         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
22237         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
22238         (umulsidi3): Reflect this in the expand.
22239         (umulsi3_highpart): Only on TARGET_ARCH32.
22240         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
22241         don't require g0 to be zero.
22242         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
22243         ({,u}divsi3): New expands.
22244         ({,u}divsi3_sp64): New patterns.
22245         (after lshrdi3_v8plus): Four new patterns to help combiner
22246         optimizing nested mixed mode shifts.
22247
22248         * config/sparc/sparc.c (sparc_override_options): Use deprecated
22249         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
22250         speed things up. Don't use them by default on plain v9 in 64bit
22251         mode, according to what SPAMv9 sais.
22252
22253         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
22254         top 32 bits of %[og][0-7] in signal handlers.
22255         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
22256
22257 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
22258
22259         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
22260         (ashlsi3): Corresponding changes.
22261
22262         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
22263
22264 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
22265
22266         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
22267
22268 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22269
22270         * arm.h (Hint): Delete macro.
22271         Substitute HOST_WIDE_INT for Hint in some prototypes.
22272         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
22273
22274 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
22275
22276         * builtins.c (expand_builtin_setjmp): Use force_operand to
22277         make sure that the buffer address is in a suitable form to be
22278         passed to force_reg.
22279
22280 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
22281
22282         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
22283         them here.
22284
22285 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
22286
22287         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
22288         proper mode in the condition string.
22289         (icacheflush, dcacheflush): Remove modes from match_operands.
22290
22291         * pa.c (emit_move_sequence): Always convert scratch_reg to the
22292         proper mode before using it.
22293
22294         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
22295         pair.
22296
22297         * pa.c (store_reg): Do not call add_high_const generator directly.
22298         (load_reg, set_reg_plus_d): Likewise.
22299         * pa.md (add_high_const): No longer a named pattern.
22300
22301         * pa.c (legitimize_address): Consistently use Pmode rather than
22302         SImode.  Do not call gen_pic2_highpart directly anymore.
22303         * pa.md (pic2_highpart): No longer a named pattern.
22304         (pic2_lo_sum): Similarly.  Reformat to make more readable.
22305
22306         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
22307         needed.
22308
22309         * README: Update.
22310
22311 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22312
22313         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
22314
22315 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
22316
22317         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
22318         and tag the spill mems.
22319         (hppa_va_start): New.
22320         (hppa_va_arg): New.
22321         * pa.h (EXPAND_BUILTIN_VA_START): New.
22322         (EXPAND_BUILTIN_VA_ARG): New.
22323
22324 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
22325
22326         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
22327         and tag the spill mems.
22328         (mn10300_va_start): New.
22329         (mn10300_va_arg): New.
22330         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
22331         (EXPAND_BUILTIN_VA_ARG): New.
22332
22333 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
22334
22335         * mn10200.c (mn10200_va_arg): New.
22336         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
22337
22338 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
22339
22340         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
22341         rather than play with TREE_INT_CST_LOW.
22342
22343 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
22344
22345         * config/arm/telf.h: Include dbxelf.h.
22346         (CPP_PREDEFINES): Only define if not already defined.
22347         (ASM_IDENTIFY_GCC): Likewise.
22348         (SUBTARGET_EXTRA_SECTIONS): Likewise.
22349         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
22350         * config/arm/thumb.h (LINK_SPEC): Only define if not already
22351         defined.
22352         (DBX_DEBUGGING_INFO): Don't define.
22353         * config/arm/linux-telf.h: New file.
22354         * config/arm/linux-tgas.h: New file.
22355         * config/arm/t-thumb-linux: New file.
22356         * config/arm/uclinux-elf.h: New file.
22357         * config/arm/uclinux-telf.h: New file.
22358         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
22359         thumb-*-uclinux): New targets.
22360         * configure: Regenerate.
22361
22362 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
22363
22364         * pa.md (post_store, pre_load): New expanders.
22365         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
22366         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
22367         need to directly generate RTL for them.
22368         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
22369         changes.
22370
22371 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
22372
22373         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
22374         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
22375         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
22376         (secndary_reload_class): Make TARGET_ELF conditional compile.
22377         (print_operand_address): Similar.
22378         (output_toc): Print all values as hex.
22379         (get_issue_rate): Rearrange and add RS64A and PPC630.
22380         * rs6000.h (processor_type): Add RS64A and PPC630.
22381         (PROCESSOR_POWERPC64): New.
22382         (PROMOTE_MODE): Use word_mode.
22383         (RTX_COSTS): Add RS64A and PPC630.
22384         * rs6000.md (scheduling information): Add lmul and ldiv
22385         representing 64-bit integer multiply and divide.  Add rs64a and
22386         PPC630 information.
22387         (ashldi3): Add support for "rldic" instruction.
22388         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
22389
22390 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
22391
22392         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
22393         instead of V8 for sparclite86x in cpu_table.
22394
22395 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22396
22397         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
22398         output_file_directive.
22399
22400 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
22401
22402         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
22403         tree for op1, not the rtl.
22404
22405 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
22406
22407         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
22408         to m88k_va_start, leaving only the register spill.
22409         (m88k_build_va_list): New.
22410         (m88k_va_start): New.
22411         (m88k_va_arg): New.
22412         * m88k.h (BUILD_VA_LIST_TYPE): New.
22413         (EXPAND_BUILTIN_VA_START): New.
22414         (EXPAND_BUILTIN_VA_ARG): New.
22415
22416 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
22417
22418         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
22419         Rename from expand_builtin_saveregs.
22420         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
22421
22422 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
22423
22424         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
22425         for the register spill block.
22426         (i960_build_va_list): New.
22427         (i960_va_start): New.
22428         (i960_va_arg): New.
22429         * i960.h (BUILD_VA_LIST_TYPE): New.
22430         (EXPAND_BUILTIN_VA_START): New.
22431         (EXPAND_BUILTIN_VA_ARG): New.
22432         * i960.md (store_multiple): Use change_address on individul mems.
22433
22434 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
22435
22436         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
22437         an ARRAY_TYPE.
22438         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
22439         (expand_builtin_va_end): Evaluate arg for side effects.
22440         * c-common.c (c_common_nodes_and_builtins): Construct a
22441         va_list_arg_type_node to handle array decomposition to pointer.
22442
22443 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
22444
22445         * except.c (st_dynamic_cleanup): Use force_operand on the
22446         buffer's address.
22447
22448 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
22449
22450         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
22451         * c4x.c (c4x_va_arg): New.
22452
22453 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
22454
22455         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
22456         has manual_pop set.
22457
22458 1999-07-26  Nathan Sidwell  <nathan@acm.org>
22459
22460         * eh-common.h (__eh_matcher): Prototype correctly.
22461
22462 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
22463
22464         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
22465         (TARGET_SINGLE_PIC_BASE): Likewise.
22466         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
22467         definitions.
22468         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
22469         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
22470         (TARGET_OPTIONS): Add -mpic-register=N.
22471         (OUTPUT_INT_ADDR_CONST): New macro.
22472         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
22473         LEGITIMATE_PIC_OPERAND_P): Likewise.
22474         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
22475         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
22476         output_addr_const directly.
22477         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
22478         ARM port.
22479         (thumb_pic_register, thumb_pic_register_string): Declare.
22480
22481         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
22482         from arm.c.
22483         (label_mentioned_p): New function: Imported from arm.c.
22484         (legitimize_pic_address): New function: Imported from arm.c.
22485         (is_pic):New function: Imported from arm.c.
22486         (thumb_finalize_pic):New function: Imported from arm.c.
22487         (add_constant): Cope with PIC constants.
22488         (fixit): Cope with PIC constants.
22489         (output_return): Do not treat the PIC register as live if
22490         TARGET_SINGLE_PIC_BASE is true.
22491         (thumb_function_prologue): Do not treat the PIC register as live if
22492         TARGET_SINGLE_PIC_BASE is true.
22493         (thumb_expand_prologue): Do not treat the PIC register as live if
22494         TARGET_SINGLE_PIC_BASE is true.
22495         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
22496         TARGET_SINGLE_PIC_BASE is true.
22497         (thumb_print_operand): Accept '|'.
22498         (thumb_override_options): Process PIC options.
22499
22500         * config/arm/thumb.md (movsi): Support PIC.
22501         (call_insn): Change "i" constraint to "X".
22502         (call_value_insn): Likewise.
22503         (consttable_4, consttable_8, consttable_end): Set and clear
22504         "making_const_table" as appropriate.
22505         (pic_load_addr, pic_add_dot_plus_four): New insns.
22506
22507         * invoke.texi (Thumb Options): Fix spelling.  Document new
22508         options -msingle-pic-base and -mpic-register=.
22509
22510 1999-07-26  Andrew Haley  <aph@cygnus.com>
22511
22512         * config/m32r/initfini.c (__init): Use a full word immediate for
22513         __fini: this allows it to be placed in any memory region.
22514
22515         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
22516         -mmodel=medium.  This is OK for all memory models.
22517
22518 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
22519
22520         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
22521         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
22522
22523 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
22524
22525         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
22526         defined.
22527
22528         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
22529
22530 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
22531
22532         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
22533         (BUILD_VA_LIST_TYPE): New.
22534         (EXPAND_BUILTIN_VA_START): New.
22535         (EXPAND_BUILTIN_VA_ARG): New.
22536         * i860.c (output_delayed_branch): Disable.
22537         (output_delay_insn): Likewise.
22538         (i860_saveregs): New.
22539         (i860_build_va_list): New.
22540         (i860_va_start): New.
22541         (i860_va_arg): New.
22542         * i860.md: Disable all peepholes using output_delayed_branch.
22543         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
22544
22545 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
22546
22547         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
22548         (BUILD_VA_LIST_TYPE): New.
22549         (EXPAND_BUILTIN_VA_START): New.
22550         (EXPAND_BUILTIN_VA_ARG): New.
22551         * clipper.c (clipper_builtin_saveregs): Only dump registers.
22552         Return the address of the save area.
22553         (clipper_build_va_list): New.
22554         (clipper_va_start): New.
22555         (clipper_va_arg): New.
22556
22557 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
22558
22559         * arc.h (EXPAND_BUILTIN_VA_START): New.
22560         (EXPAND_BUILTIN_VA_ARG): New.
22561         * arc.c (arc_setup_incoming_varargs): Set alias set of
22562         varargs save area.
22563         (arc_va_start): New.
22564         (arc_va_arg): New.
22565
22566 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
22567
22568         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
22569         (BUILD_VA_LIST_TYPE): New.
22570         (EXPAND_BUILTIN_VA_START): New.
22571         (EXPAND_BUILTIN_VA_ARG): New.
22572         * alpha.c (alpha_builtin_saveregs): Delete.
22573         (alpha_build_va_list): New.
22574         (alpha_va_start): New.
22575         (alpha_va_arg): New.
22576
22577 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
22578
22579         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
22580         column zero.
22581         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
22582         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
22583
22584         * gcc.texi: More changes related to list conversion.
22585         * invoke.texi: Likewise.
22586
22587 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
22588
22589         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
22590         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
22591         (expand_builtin_next_arg): Accept ARGLIST not EXP.
22592         (stabilize_va_list): New function.
22593         (std_expand_builtin_va_start): New function.
22594         (expand_builtin_va_start): New function.
22595         (get_varargs_alias_set): New function.
22596         (std_expand_builtin_va_arg): New function.
22597         (expand_builtin_va_arg): New function.
22598         (expand_builtin_va_end): New function.
22599         (expand_builtin_va_copy): New function.
22600         (expand_builtin): Call them.
22601         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
22602         __builtin_{varargs_start,stdarg_start,end,copy}.
22603         (build_va_arg): New function.
22604         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
22605         (build_va_arg): Declare.
22606         * c-decl.c (ptr_type_node, va_list_type_node): New.
22607         * c-parse.gperf (__builtin_va_arg): New.
22608         * c-parse.in (VA_ARG): New token.
22609         (unary_expr): Recognize it.
22610         * expr.c (expand_expr): Expand VA_ARG_EXPR.
22611         * expr.h (std_expand_builtin_va_start): Declare.
22612         (std_expand_builtin_va_arg): Declare.
22613         (expand_builtin_va_arg): Declare.
22614         (get_varargs_alias_set): Declare.
22615         * tree.def (VA_ARG_EXPR): New.
22616         * tree.h (BUILT_IN_VARARGS_START): New.
22617         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
22618         (ptr_type_node, va_list_type_node): Declare.
22619         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
22620         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
22621         * m88k.h, m88k.c: Likewise.
22622         * mn10300.h, mn10300.c: Likewise.
22623         * pa.h, pa.c: Likewise.
22624         * rs6000.h, rs6000.c: Likewise.
22625         * sh.h, sh.c: Likewise.
22626         * sparc.h, sparc.c: Likewise.
22627
22628         * emit-rtl.c (operand_subword): Copy alias set.
22629         (change_address): Likewise.
22630
22631 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
22632
22633         * pa.c (compute_frame_size): Scan all the used callee saved registers,
22634         not just the first one.
22635
22636 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
22637
22638         * config/arm/arm.h (TARGET_SWITCHES): Add
22639         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
22640         (TARGET_OPTIONS): Add -mpic-register=.
22641         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
22642         (arm_pic_register_string): Declare.
22643         (NEED_PLT_GOT): Delete, replace with ...
22644         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
22645         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
22646         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
22647         * config/arm/arm.c (arm_override_options): Add new option
22648         -mpic-register=N.
22649         (arm_pic_register_string): New variable.
22650         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
22651         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
22652         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
22653         (output_return_instruction): Likewise.
22654         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
22655         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
22656         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
22657
22658         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
22659         mention of -msched-prolog.  Document new options -msingle-pic-base
22660         and -mpic-register=.
22661
22662 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
22663
22664         * haifa-sched.c (reemit_notes): Tidy.
22665         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
22666         haifa's routine.
22667
22668 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
22669
22670         * explow.c (trunc_int_for_mode): New function.
22671         (plus_constant_wide): Use it.
22672         * combine.c (simplify_and_const_int): Likewise.
22673         (merge_outer_ops): Likewise.
22674         (simplify_shift_const): Likewise.
22675         * cse.c (simplify_unary_operation): Likewise.
22676         (simplify_binary_operation): Likewise.
22677         * emit-rtl.c (operand_subword): Likewise.
22678         * rtl.h: Declare it.
22679
22680 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22681
22682         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
22683         (use NUM_REGS instead of NUM_INTS).
22684
22685 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22686
22687         * builtins.c: New file.
22688         * expr.c (saveregs_value, apply_args_value):  Delete definition,
22689         moved into builtins.c.
22690         (string_constant): No longer static.
22691         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
22692         apply_args_size, apply_result_size, result_vector,
22693         expand_builtin_apply_args, expand_builtin_apply,
22694         expand_builtin_return): Delete functions, moved into builtins.c.
22695         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
22696         * expr.h (saveregs_value, apply_args_value): Declare variables.
22697         (expand_builtin, string_constant): Declare functions.
22698         * Makefile.in: Update to build builtin.o.
22699
22700 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
22701
22702         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
22703         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
22704         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
22705         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
22706         false.
22707         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
22708         Define to zero.
22709
22710 1999-07-21  Michael Meissner  <meissner@cygnus.com>
22711
22712         * print-rtl.c (print_rtx): Print the names of the virtual
22713         registers.
22714
22715 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
22716
22717         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
22718         introduced in previous delta.
22719
22720 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22721
22722         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
22723         to avoid name clash.
22724
22725 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
22726
22727         * c-lex.c (yylex) : Correct the test for overflow when lexing
22728         integer literals.
22729
22730 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
22731
22732         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
22733         (adjust_priority): Always call ADJUST_PRIORITY.
22734         (schedule_insn): Only put insns into the ready at cost 0.
22735         (schedule_block): Remove redundant initial sort.  Give clock_var
22736         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
22737         is not 0.
22738         * tm.texi (MD_SCHED_REORDER): Update docs.
22739
22740         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
22741         * sparc.c (ultra_reorder_called_this_block): Delete.
22742         (ultrasparc_sched_init): Don't set it.
22743         (ultrasparc_sched_reorder): Don't check it.
22744
22745 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
22746
22747         * rs6000.h (struct rs6000_args): Add sysv_gregno.
22748         * rs6000.c (init_cumulative_args): Init sysv_gregno.
22749         (function_arg_boundary): Align DFmode.
22750         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
22751         to get fp reg and stack overflow correct.
22752         (function_arg): Likewise.
22753         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
22754         (setup_incoming_varargs): Restructure for ABI_V4; use
22755         function_arg_advance to skip final named argument.
22756         (expand_builtin_saveregs): Properly unskip the last integer arg
22757         when doing varargs.  Adjust overflow location calculation.
22758
22759         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
22760         explicitly unsigned.
22761         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
22762         (__VA_GP_REGSAVE): Similarly.
22763         (__va_longlong_p): Delete.
22764         (__va_arg_type_violation): New declaration.
22765         (va_arg): Restructure.  Flag promotion errors.  Align double.
22766         TFmode passed by reference.
22767
22768         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
22769         in the HOST_BITS_PER_WIDE_INT > 32 case.
22770
22771 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
22772
22773         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
22774
22775 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
22776
22777         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
22778         * toplev.c (documented_lang_options): Add -fpreprocessed.
22779         * cpplib.h (struct cpp_buffer): Add preprocessed.
22780         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
22781         (cpp_start_read): Don't expand macros or emit an initial #line
22782         directive if -fpreprocessed.
22783
22784 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
22785
22786         * cpplib.h (struct cpp_buffer): Added manual_pop for
22787         better C++ tokenization.
22788         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
22789         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
22790         * c-common.c (cpp_token): Make non-static.
22791
22792 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22793
22794         * c-common.h: New file.
22795         * c-common.c (permanent_obstack): Delete unused declaration.
22796         (c_global_trees): New array.
22797         (c_common_nodes_and_builtins): New function; split off common code
22798         from init_decl_processing in both c-decl.c and cp/decl.c.
22799         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
22800         c_global_trees and accessor macros defined in c-common.h.
22801         Include c-common.h.
22802         * c-decl.c: Delete definitions for tree nodes that were replaced by
22803         c_global_trees.
22804         (init_decl_processing): Build void_list_node.
22805         Call c_common_nodes_and_builtins; delete code to generate the common
22806         builtins here.
22807         * objc/objc-act.c (build_module_descriptor): Rename variable
22808         void_list_node to avoid clash with c-common.h.
22809
22810         * Makefile.in: Update dependencies.
22811         * objc/Make-lang.in: Likewise.
22812
22813 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
22814
22815         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
22816         (UNIQUE_SECTION_P): Likewise.
22817         (UNIQUE_SECTION): Likewise.
22818
22819 1999-07-19  Linas Vepstas  <linas@linas.org>
22820
22821         * config/i370/README: New file.
22822         * config/i370/linux.h: New file.
22823         * config/i370/mvs.h: New file.
22824         * config/i370/oe.h: New file.
22825         * config/i370/t-linux: New file.
22826         * config/i370/t-mvs: New file.
22827         * config/i370/t-oe: New file.
22828         * config/i370/x-oe: New file.
22829         * config/i370/xm-linux.h: New file.
22830         * config/i370/xm-mvs.h: New file.
22831         * config/i370/xm-oe.h: New file.
22832
22833         * i370.c (label_node_t): Add first_ref_page, label_addr,
22834         label_first_ref, label_last_ref members.
22835         (mvs_need_base_reload): Renamed from mvs_label_emitted.
22836         (MAX_MVS_LABEL_SIZE): Define.
22837         (MAX_LONG_LABEL_SIZE): Define.
22838         (alias_node_t, alias_anchor, alias_number): New.
22839         (mvs_function_table): Reorder for EBCDIC.
22840         (ascebc, ebcasc): Unconditionally define.
22841         (i370_branch_dest, i370_branch_length): New functions.
22842         (i370_short_branch, i370_label_scan): New functions.
22843         (mvs_get_label): Renamed from mvs_add_label.  Search for
22844         an existing label before creating a new one.
22845         (mvs_add_label): New function.
22846         (mvs_get_label_page): New function.
22847         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
22848         over the entire list.
22849         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
22850         (mvs_check_page) [TARGET_ELF_ABI]: New function.
22851         (mvs_add_alias, mvs_need_alias): New functions.
22852         (mvs_get_alias, mvs_check_alias): New functions.
22853         (handle_pragma): New function.
22854         (mvs_function_check): New function.
22855         (unsigned_jump_follows_p): Search harder.
22856         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
22857         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
22858         * i370.h (TARGET_VERSION): Delete.
22859         (CPP_SPEC, CPP_PREDEFINES): Delete.
22860         (mvs_label_emitted): Delete.
22861         (TARGET_EBCDIC): Delete.
22862         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
22863         (HANDLE_PRAGMA): Define.
22864         (HARD_REGNO_NREGS): Handle complex modes.
22865         (HARD_REGNO_MODE_OK): Likewise.
22866         (CLASS_MAX_NREGS): Likewise.
22867         (RET_REG): Likewise.
22868         (EXTRA_CONSTRAINT): Define.
22869         (RETURN_IN_MEMORY): True for DImode.
22870         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
22871         (FUNCTION_PROFILER): Delete.
22872         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
22873         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
22874         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
22875         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
22876         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
22877         (ASM_FILE_START): Add "RMODE ANY".
22878         (ASM_OUTPUT_EXTERNAL): Check for aliases.
22879         (ASM_GLOBALIZE_LABEL): Likewise.
22880         (ASM_OUTPUT_LABELREF): Likewise.
22881         (ASM_OUTPUT_COMMON): Likewise.
22882         (PRINT_OPERAND): Handle 'K', 'W', default.
22883         (PRINT_OPERAND_ADDRESS): New.
22884         (Lots of defines): Add support for TARGET_ELF_ABI.
22885         * i370.md (attr length): New.  Define for all patterns.
22886         (*): Lots of tweeks to assembly output and constraints.
22887
22888 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
22889
22890         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
22891         Disable patterns performing SImode comparisons with SImode values
22892         if TARGET_POWERPC64 and instruction does not sign-extend or does
22893         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
22894         differ for signed quantities.
22895         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
22896         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
22897         (decrement_and_branch_on_count): Add 64-bit variant.
22898
22899 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22900
22901         * final.c (output_asm_insn): When searching for the matching string
22902         for a given dialect, don't run past the end of the list of
22903         alternatives if there are fewer alternatives in the template than
22904         dialects.
22905
22906 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
22907
22908         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
22909         Removed paragraph about compression of files and size limitation,
22910         duplicated in the FAQ.  Use gcc-patches for posting patches.
22911         * gcc.c (main): Updated URL with bug reporting instructions to
22912         gcc.gnu.org.  Removed e-mail address.
22913         * system.h (abort): Likewise.
22914
22915 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22916
22917         * Makefile.in (stmp-multilib-sub): Make the files extracted
22918         from $(LIBGCC1) writable.
22919
22920 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
22921
22922         * config/arm/aout.h: Reformat for improved readability.
22923
22924         * config/arm/arm.h: Reformat for improved readability.
22925         Replace uses of fprintf with asm_fprintf where appropriate.
22926         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
22927         function declaration assembler actions.
22928         (NUM_INTS): New macro: Convert from bytes to words.
22929         (NUM_REGS): New macro: Compute number of registers required to
22930         hold a quanitity of tyep MODE.
22931         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
22932         types.
22933         (NUM_ARG_REGS): New macro: The number of argument registers
22934         available.
22935         (ARG_REGISTER): New macro: Compute the register number of the Nth
22936         argument register.
22937         (LAST_ARG_REGNUM): New macro: The number of the last argument
22938         register.
22939         (SP_REGNUM): New macro: Register number of the stack pointer.
22940         (FP_REGNUM): New macro: Register number of the frame pointer.
22941         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
22942         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
22943         CUMULATIVE_ARGS so that it counts registers not bytes.
22944
22945         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
22946         TARGET_INTERWORK.
22947         Replace uses of fprintf with asm_fprintf where appropriate.
22948         (output_ascii_pseudo_op): Replace with version from thumb.c
22949
22950         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
22951
22952         * config/arm/elf.h (CPP_PREDEFINES): Replace with
22953         SUBTARGET_CPP_SPEC.
22954         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
22955         (ASM_FILE_START): Emit ASM_APP_OFF.
22956
22957 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
22958
22959         * pa.c (compute_frame_size): Round frame according to
22960         STACK_BOUNDARY rather than a hardwired value.
22961
22962         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
22963
22964         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
22965         of "1".
22966         * configure: Rebuilt.
22967
22968         * configure.in (hppa*-*-linux*): New configuration.
22969         * configure: Rebuilt.
22970         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
22971         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
22972         * pa/pa-linux.h: New file.
22973         * pa/t-linux: New file.
22974         * pa/xm-linux.h: New file.
22975
22976         * pa.c (hppa_legitimize_address): Change references from SImode to
22977         either Pmode or word_mode as appropriate.
22978         (emit_move_sequence, store_reg, load_reg): Likewise.
22979         (set_reg_plus_d, hppa_expand_prologue): Likewise.
22980         (output_mul_insn): Likewise.
22981         * pa.h (PROMOTE_MODE): Likewise.
22982         (INITIALZE_TRAMPOLINE): Likewise.
22983         (Pmode): Define to word_mode.
22984
22985         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
22986         value of 4.  Allocate 8 bytes for each FP register save.
22987         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
22988         value of 4.
22989         (hppa_expand_prologue): Likewise.
22990         * pa.h (PROMOTE_MODE): Likewise.
22991         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
22992         (FUNCTION_ARG_BOUNDARY): Likewise.
22993
22994         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
22995
22996         * pa.c (out_of_line_prologue_epilogue): Delete.
22997         (override_options): Remove -mspace related code.
22998         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
22999         (compute_frame_size): Only allocate space for register that
23000         actually need to be saved.
23001         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
23002         (TARGET_SWITCHES): Remove -mspace, -mno-space
23003         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
23004         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
23005         * pa/ee.asm, pa/ee_fp.asm: Delete.
23006
23007         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
23008
23009         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
23010         directive in column zero.
23011
23012 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
23013
23014         * m68k.c (output_function_prologue): Fix computation of save mask
23015         when generating PIC code.
23016
23017 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
23018
23019         * tree.c (build_type_attribute_variant): Move current_obstack restore
23020         after build_qualified_type call.
23021
23022 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
23023
23024         * configure.in: Use t-iris6, even with GNU LD.
23025         * config/mips/iris6gld.h: Fix typo in linker spec.
23026         * config/mips/t-iris6gld: Remove.
23027
23028 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
23029
23030         * rs6000.md (insv, extzv): Remove SImode dependence in named
23031         patterns.  Explicitly generate DImode RTL if PowerPC64 and
23032         operand is DImode.
23033         (insvdi): Reverse start and size in instruction template.
23034
23035 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
23036
23037         * invoke.texi: Typo fixes.
23038
23039 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
23040
23041         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
23042         handle at this time instead of silently generating incorrect code.
23043         (gen_imagpart): Likewise.
23044
23045         * reload.c (find_reloads): Emit a USE for a pseudo register without
23046         a hard register if we could not create an optional reload for the
23047         pseudo.
23048
23049 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23050
23051         * c-typeck.c (output_init_element, process_init_element):
23052         When advancing constructor_unfilled_fields for a RECORD_TYPE,
23053         check for nameless bit fields.
23054
23055 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
23056
23057         * regclass.c (scan_one_insn): Notice subregs that change the
23058         size of their operand.
23059         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
23060
23061 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
23062
23063         * configure.in (alpha*-*-*): Include alpha/t-ieee.
23064         * configure: Rebuilt.
23065         * alpha/t-ieee: New file.
23066
23067 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
23068
23069         * rs6000.c (find_addr_reg): Do not select r0 as an address
23070         register.
23071
23072 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
23073
23074         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
23075
23076 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
23077
23078         * rs6000.md (movsf): Do not force easy FP constants into memory.
23079
23080         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
23081         immed_double_const to ensure they are properly truncated then
23082         sign extended.
23083
23084 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
23085
23086         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
23087         always unless NO_DEBUG is used.  Compile this code
23088         unconditionally.
23089         (replace_symbols_in_block): Compile it unconditionally.
23090
23091 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
23092
23093         * configure.in (i?86-*-elf*): New target.
23094         * configure: Rebuilt.
23095         * i386/i386elf.h, i386/t-i386elf: New files.
23096
23097 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
23098
23099         * toplev.c (main): Don't complain about saying -gdwarf.
23100         (rest_of_compilation): Remove redundant code.
23101
23102 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
23103
23104         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
23105
23106 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
23107
23108         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
23109         "Li960R:", to avoid name clash.
23110
23111 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23112
23113         * loop.c (check_dbra_loop): When reversing a loop, delete all
23114         REG_EQUAL notes referencing the reversed biv except those which are
23115         for a giv based on it.
23116
23117 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
23118
23119         * version.c: Drop "gcc-" prefix from version #.
23120
23121 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
23122
23123         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
23124         the label if we're being verbose.
23125
23126 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
23127
23128         * m68k.c (output_function_prologue): Add pic register to mask
23129         if live and flag_pic.
23130         (output_function_epilogue): Likewise.
23131
23132 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
23133
23134         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
23135         directives in column zero.
23136
23137         * pa/elf.h (ASM_FILE_START): Define.
23138         * pa/som.h (ASM_FILE_START): Include .level directives.
23139         * pa/hpux10.h (ASM_FILE_START): Delete.
23140         * pa/hpux11.h (ASM_FILE_START): Delete.
23141
23142         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
23143
23144 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23145
23146         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
23147         when reload_out equals reload_in.
23148
23149 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
23150
23151         * invoke.texi (Spec Files): New node: Describe the contents of
23152         spec files.
23153
23154 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
23155
23156         * invoke.texi (DEC Alpha Options): Put @end table at
23157         beginning of line, to avoid confusing texi2html.
23158
23159 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
23160
23161         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
23162         introduced in previous delta.
23163
23164 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23165
23166         * reload1.c (gen_reload): When synthesizing a 3 operand add
23167         sequence, improve test for when to reload OP1 into the reload
23168         register instead of OP0.
23169
23170 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
23171
23172         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
23173
23174 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
23175
23176         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
23177         string literal.
23178
23179 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
23180
23181         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
23182         (va_dcl): Use __builtin_va_alist_t.
23183
23184 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
23185
23186         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
23187         on the permanent_obstack.
23188         * dwarfout.c (output_type): Likewise.
23189
23190 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23191
23192         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
23193         Merged from c-typeck.c and cp/typeck.c.
23194         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
23195         Merged into c-common.
23196
23197 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
23198
23199         * c-lex.c (errorcount): Declare it.
23200         (finish_parse): Update errorcount when using CPPLIB.
23201
23202 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
23203
23204         * fixinc/inclhack.def(end_else_label): Double the backslash so
23205         sed gets a chance to see it.
23206         * fixinc/inclhack.sh: regen
23207         * fixinc/fixincl.x: regen
23208
23209 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
23210
23211         Add framework to support armv5 architecture when it becomes
23212         available:
23213
23214         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
23215         (arm_arch5): New variable.
23216         (all_architectures): Add armv5 line.
23217         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
23218         -march=armv5 is specified on the command line.
23219         (arm_arch5): Export this variable.
23220         * invoke.texi: Document new string accepted by -march= switch for
23221         ARM ports.
23222
23223         * config/arm/arm.h: Replace use of constant 12 as a register
23224         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
23225         * config/arm/arm.c: Replace use of constant 12 as a register
23226         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
23227
23228         * config/arm/elf.h: Tidy up.
23229         * config/arm/coff.h: Tidy up.
23230
23231 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
23232
23233         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
23234         * gcc/config/mips/t-iris6gld: New file.
23235         * gcc/config/mips/iris6gld.h: Likewise.
23236
23237 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23238
23239         * c-decl.c (widest_integer_literal_type_node,
23240         widest_unsigned_literal_type) : New.
23241         (init_decl_processing): Handle/use the two new types.
23242         * c-common.c (type_for_size,type_for_mode) : Same.
23243         * c-lex.c (yylex) : Same.
23244         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
23245         Same.
23246         * c-tree.h (widest_integer_literal_type_node,
23247         widest_unsigned_literal_type) : New.
23248
23249 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
23250
23251         * dwarfout.c (field_byte_offset): Correctly compute the object's
23252         byte offset for the first bit of a field which crosses an alignment
23253         boundary on a !BYTES_BIG_ENDIAN target.
23254
23255 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
23256
23257         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
23258         ntohs.
23259
23260 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
23261                           Jeff Law <law@cygnus.com>
23262
23263         * ginclude/varargs.h (va_dcl): Use word_mode for type of
23264         __builtin_va_list.
23265
23266         * except.c: Include intl.h.
23267         (expand_eh_return): Set current_function_cannot_inline.
23268         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
23269         * function.h (struct function): Add eh_return_stub_label.
23270         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
23271         * Makefile.in (except.o): Depend on intl.h.
23272
23273 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
23274
23275         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
23276         same as offsettable in cases 1 and 2.
23277
23278 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
23279
23280         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
23281         (extlh, extwh): Likewise.
23282
23283 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23284
23285         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
23286
23287 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
23288
23289         * configure.in: Add arm-pe and thumb-pe targets.
23290         * configure: Regenerate.
23291
23292         * thumb.c (arm_naked_function_p): New function: Determines if
23293         a function is naked (has no gcc generated prologue/epilogue).
23294         (is_called_in_ARM_mode): Return true if the func has the
23295         interfacearm attribute.
23296         (output_return): Do not generate a return for naked functions.
23297         (thumb_function_prologue): Do not generate a prologue for
23298         naked functions.
23299         (thumb_expand_prologue): Do not generate a prologue for naked
23300         functions.
23301         (thumb_expand_epilogue): Do not generate an epilogue for naked
23302         functions.
23303         (arm_valid_machine_decl_attribute): New function, copied from
23304         arm.c:  Permit naked and interfacearm attributes.
23305
23306         * config/arm/pe.c: New file: Support code for arm-pe target.
23307         * config/arm/pe.h: New file: Header file for arm-pe target.
23308         * config/arm/tpe.h: New file: Header file for thumb-pe target.
23309         * config/arm/t-thumb-pe: New file: Makefile fragment for
23310         thumb-pe target.
23311
23312 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
23313
23314         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
23315         -fPIC or -fpic is specified.
23316
23317 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
23318
23319         * expr.c (emit_block_move): Use copy_to_mode_reg for
23320         !TARGET_MEM_FUNCTIONS case too.
23321
23322         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
23323         appropriate.
23324         * configure: Rebuilt.
23325         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
23326         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
23327         definitions made redundant by dbxelf.h inclusion.  Delete
23328         lots of definitions related to assembly output that are
23329         specific to the SOM object format.
23330         * pa.c (output_function_prologue): Do not emit the function's
23331         name for OBJ_ELF.
23332         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
23333         * pa-pro.h: Deleted.
23334         * som.h: New file with SOM specific definitions.
23335         * elf.h: New file with ELF specific definitions.
23336
23337         * elfos.h (const_section): Output a tab before assembler directives.
23338         (ctors_section, dtors_section): Likewise.
23339         (ASM_OUTPUT_SECTION_NAME): Likewise.
23340
23341         * pa/pa1.h: Delete unused file.
23342
23343 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
23344
23345         * configure.in (hppa*-hp-hpux11*): New configuration.
23346         * configure: Rebuilt.
23347         * pa/pa-hpux11.h: New file.
23348         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
23349         command line.
23350
23351         * mips.md (leasi, leadi): New patterns.
23352
23353         * expr.c (emit_block_move): Properly handle case where one of the
23354         block move arguments has a queued increment or decrement.
23355         (clear_storage): Similarly.  Fix formatting goof.
23356
23357 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
23358
23359         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
23360         semicolon from the BSD VA_LIST replacement expression.
23361
23362         * fixinc/inclhack.sh: regen
23363         * fixinc/fixincl.x: regen
23364
23365         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
23366         now use the fixincl program.
23367
23368 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
23369
23370         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
23371         case.  Also make the PIC register call_used.
23372
23373         * m68k.h (FINALIZE_PIC): Delete.
23374         * m68k.c (finalize_pic): Delete.
23375
23376 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
23377
23378         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
23379         to memory.
23380
23381 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
23382
23383         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
23384
23385 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
23386
23387         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
23388
23389 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
23390
23391         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
23392
23393 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
23394
23395         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
23396
23397 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
23398
23399         * rs6000.c (output_toc): Always use hex values for floating-point
23400         constants.  Store single-precision values in upper-half of TOC
23401         entry in 64-bit mode.
23402         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
23403         to final constraints.
23404         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
23405         (fctiwz): Improve accuracy of RTL for pattern.
23406
23407 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23408
23409         * expr.c (expand_expr): Allow RTL_EXPR's through the
23410         MAX_INTEGER_COMPUTATION_MODE checks.
23411
23412 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
23413
23414         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
23415         such that MASK_SUPPORT_ARCH is not negative.
23416
23417 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
23418
23419         * loop.c (verify_dominator): Properly handle ADDR_VEC and
23420         ADDR_DIFF_VEC insns that appear inside loops.
23421
23422 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
23423                           Jeff Law <law@cygnus.com>
23424
23425         * rs6000.md (movdf_hardfloat32): Revert previous patch.
23426         Handle LO_SUM the same as offsettable in cases 1 and 2.
23427         * rs6000.c (find_addr_reg): Revert previous patch.
23428
23429 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
23430
23431         * system.h (strstr): New external function declaration.
23432         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
23433         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
23434         * config.in, configure: Rebuilt.
23435
23436 1999-06-24  Tom Tromey  <tromey@cygnus.com>
23437
23438         * gcc.c (main): Read user-specified specs files after computing
23439         additional startfile_prefixes.
23440
23441 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
23442
23443         Revert these two patches:
23444
23445         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23446         * loop.c (strength_reduce): When doing biv->giv conversion, update
23447         reg note of NEXT->insn.
23448
23449         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23450         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
23451         reg_biv_class.
23452         (recombine_givs): Set ix field after sorting.
23453
23454 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23455
23456         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
23457         for the parts of an UNSPEC / UNSPEC_VOLATILE.
23458
23459 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
23460
23461         *fixinc/inclhack.def:  Add fix development commentary
23462         (read_ret_type): reactivate and add selection clause
23463         (zzz_*): tweak output file name to match what is used in hackshell.tpl
23464         *fixinc/{fixincl.x|inclhack.sh}: regen
23465
23466 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
23467
23468         * expr.c (expand_expr): STRIP_NOPS before checking against
23469         MAX_INTEGER_COMPUTATION_MODE
23470         (check_max_integer_computation_mode): Likewise.
23471
23472 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
23473
23474         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
23475
23476 1999-06-22  Jim Wilson  <wilson@cygnus.com>
23477
23478         * expr.c (store_expr): When target is a promoted subreg, return a
23479         promoted subreg as a result.
23480
23481 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
23482
23483         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
23484         coding standards.
23485         (dwarf2out_define): Mark unused parameters appropriately.
23486         (gen_unspecified_parameters_die): Ditto.
23487         (gen_subprogram_die): Fix signed/unsigned warnings.
23488         (gen_variable_die): Ditto.
23489
23490 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
23491
23492         * fixinc/inclhack.def(end_else_label): combined else_label
23493         and endif_label and fixed the sed expression.
23494         *fixinc/{fixincl.x|inclhack.sh}: regen
23495
23496 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
23497
23498         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
23499         'x' when handling non-offsettable addresses
23500
23501 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
23502
23503         * final.c (shorten_branches): Don't try to split an insn that has
23504         been deleted.
23505
23506 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
23507
23508         * config/mips/mips.c (symbolic_expression_p): New function.
23509         (mips_select_rtx_section): Put symbolic expressions in the
23510         data section, not the read-only data section.
23511
23512 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
23513
23514         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
23515
23516 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
23517
23518         * collect2.c (main): Log frame table count.
23519         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
23520         (scan_prog_file) [COFF]: Handle frame tables.
23521
23522         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
23523         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
23524         * alpha/elf.h: Undef them again.
23525         * alpha/vms.h: Remove their definitions.
23526
23527 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23528
23529         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
23530         remove the clobber of r0 and change the REG_UNUSED note to
23531         REG_INC.
23532
23533 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
23534
23535         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
23536         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
23537         fits in HOST_WIDE_INT and one uses union to access a long constant
23538         as double.
23539
23540 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
23541
23542         * sparc.c (sparc_override_options): Don't allow profiling for
23543         code models other than medlow.
23544         (sparc_function_profiler): New function from old FUNCTION_PROFILER
23545         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
23546         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
23547         (sparc_block_profiler): Likewise.
23548         (sparc_function_block_profiler_exit): Likewise.
23549         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
23550         (FUNCTION_BLOCK_PROFILER): Likewise.
23551         (BLOCK_PROFILER): Likewise.
23552         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
23553         (MCOUNT_FUNCTION): New.
23554         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
23555         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
23556         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
23557         (MCOUNT_FUNCTION): New.
23558         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
23559         (BLOCK_PROFILER): Delete.
23560         (MCOUNT_FUNCTION): New.
23561
23562 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
23563
23564         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
23565
23566 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
23567
23568         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
23569         Add the macros.
23570
23571         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
23572         Ditto.
23573
23574         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
23575         Ditto.
23576
23577         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
23578         Ditto.
23579
23580 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
23581
23582         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
23583         types.
23584
23585 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
23586
23587         * i386/djgpp.h (LIB_SPEC): New.
23588         (STARTFILE_SPEC): New.
23589
23590         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
23591
23592 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
23593
23594         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
23595         compiler flags.
23596
23597         * system.h (WSTOPSIG): New macro.
23598
23599 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
23600
23601         * c-pragma.c (push_alignment): Don't ignore alignments greater than
23602         4 bytes.
23603         (insert_pack_attributes): Take into account member natural
23604         alignment.
23605
23606         * i386/winnt.c (exports_head): New static variable.
23607         (i386_pe_record_exported_symbol): New function.
23608         (i386_pe_asm_file_end): Use.
23609         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
23610         symbols to be emitted at end of assembly.
23611         (ASM_DECLARE_OBJECT_NAME): Likewise.
23612         (ASM_DECLARE_FUNCTION_NAME): Likewise.
23613
23614         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
23615         -iwithprefix.
23616
23617 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
23618
23619         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
23620         in last change.
23621
23622 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
23623
23624         * haifa-sched.c (sched_analyze_1): Use free_list instead of
23625         zapping reg_last_uses directly.
23626         (sched_analyze_2, sched_analyze_insn): Likewise.
23627         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
23628
23629 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
23630
23631         * rs6000.md (movdf_hardfloat32): Use worst case insn length
23632         attributes for cases 1 and 2.
23633
23634 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
23635
23636         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
23637         instead of set.
23638
23639 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
23640
23641         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
23642
23643 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
23644
23645         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
23646         PIC_OFFSET_TABLE_REGNUM for general alloaction.
23647         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
23648         must be stacked if it is used for PIC accesses.
23649         * arm.c (use_return_insn): Handle PIC register specially.
23650         (output_return_instruction): Likewise.
23651         (output_func_{prologue,epilogue}): Likewise.
23652         (output_expand_prologue): Likewise.
23653
23654         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
23655         (*strsi_predec): Renamed from *strqi_predec.
23656         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
23657         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
23658
23659         * arm.c (arm_override_options): Remove warning about PIC code
23660         not being supported.
23661
23662 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
23663
23664         * rs6000.c (find_addr_reg): New function.
23665         * rs6000.h (find_addr_reg): Declare.
23666         (offsettable_addr_operand): Delete.
23667         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
23668         from and stores to GPRs.
23669
23670 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
23671
23672         * alpha.c (alpha_expand_block_move): Use get_insns rather than
23673         gen_sequence as argument to emit_no_conflict_block.
23674
23675 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
23676
23677         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
23678         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
23679         *fixinc/fixincl.x: regen
23680         *fixinc/inclhack.sh: regen
23681
23682 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
23683
23684         * added support for -mpcrel (PC relative addressing for m68k)
23685         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
23686         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
23687         * m68k.c (print_operand_address): Handle 32-bit PIC case.
23688         (comments for general_src_operand): Add some explanation
23689         about EXTRA_CONSTRAINTS.
23690         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
23691         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
23692         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
23693         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
23694         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
23695         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
23696         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
23697         if not already set.
23698         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
23699         * m68k.h (TARGET_PCREL): New target flag.
23700         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
23701         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
23702         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
23703         contains a SYMBOL_REF.  Relax this constraint during reload, since
23704         we want to use the predicates, not reload's built-in concept of a
23705         valid memory address, to control what insns need reloading.
23706         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
23707         operands (essentially 'g', 'm', and 's' under normal circumstances).
23708         * m68k.c (print_operand): Cause printing of pc-relative addresses
23709         to include pc register.
23710         (print_operand_address): Ditto.
23711         (general_src_operand): Accept operands that are not only
23712         general_operands, but are also valid when used as a pc-relative
23713         source.
23714         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
23715         (memory_src_operand): Similar, for memory_operands.
23716         (pcrel_address): New predicate to accept the special case of a
23717         pc-relative address.
23718         * m68k.md (many patterns): Rewrite common SImode, HImode, and
23719         QImode insns to accept *_src_operand instead of *_operand where
23720         pc-relative operands can fit.  For example, a pc-relative operand
23721         can be used as a memory source operand for addsi3, but not as a
23722         memory destination.
23723         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
23724
23725 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
23726
23727         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
23728         .thumb_set pseudo op to mark aliases of thumb functions.
23729
23730 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
23731
23732         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
23733         preference to ASM_OUTPUT_DEF, if it is defined.
23734
23735         * tm.texi: Document new, optional target macro
23736         ASM_OUTPUT_DEF_FROM_DECLS.
23737
23738 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
23739
23740         * fixincludes: ISCNTL patch
23741         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
23742         (dgux_int_varargs): new for DG/UX
23743         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
23744
23745 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
23746
23747         * invoke.texi (ia32 options): Fix typo.
23748
23749 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23750
23751         * loop.c (strength_reduce): When doing biv->giv conversion, update
23752         reg note of NEXT->insn.
23753
23754 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
23755
23756         * loop.c (move_movables): Note issues with replacing REGs with
23757         SUBREGs.
23758         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
23759
23760 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
23761
23762         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
23763
23764         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
23765         the reference to `mcount' was not correct for the ELF on FreeBSD.
23766
23767 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23768
23769         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
23770         reg_biv_class.
23771
23772         (recombine_givs): Set ix field after sorting.
23773
23774 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
23775
23776         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
23777         to safe to extract a subword out of a REG.
23778
23779 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23780
23781         * sh.md (mulsi3): Don't add a no-op move at the end.
23782
23783 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23784
23785         * cse.c (cse_insn): Don't put hard register source into tables for
23786         the last insn of a libcall.
23787
23788 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23789
23790         * loop.c (strength_reduce): Insert sets of derived givs at every
23791         biv increment, even if it's the only one.
23792
23793 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
23794
23795         * dwarfout.c (add_incomplete_type): New fn.
23796         (output_type): Call it.
23797         (retry_incomplete_types): New fn.
23798         (dwarfout_finish): Call it.
23799
23800         From Eric Raskin <ehr@listworks.com>:
23801         (output_type): Output types for bases.
23802
23803 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
23804
23805         * mips.c (mips_output_conditional_branch): Add `break'
23806         between `default' label and `close braces'.
23807
23808 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
23809
23810         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
23811         specifications and make it realistic.
23812         (LIB_SPEC): Likewise.
23813
23814 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
23815
23816         * config/mips/mips.c (mips_secondary_reload_class): Check for
23817         (PLUS (SP) (REG)) and return appropriate register class.
23818         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
23819         Handle (PLUS (SP) (REG)).
23820         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
23821         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
23822         of emit_insn for tablejump.
23823
23824 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
23825
23826         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
23827         asm_fprintf format string by itself.
23828         (output_function_profiler): Likewise.
23829
23830 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
23831
23832         * combine.c (simplify_logical, case AND): Only call
23833         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
23834         or the constant is positive.
23835
23836 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
23837
23838         * configure.in: Fix typo in rs6000-ibm-aix4 case.
23839         * configure: Regenerate.
23840
23841 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
23842
23843         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
23844         require a sub-version #.
23845         * configure: Rebuilt.
23846
23847 1999-06-14  Robert Lipe  (robertlipe@usa.net)
23848
23849         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
23850
23851 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
23852
23853         * c-typeck.c (process_init_element): Detect excess elements in
23854         char array initializer.
23855
23856 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
23857
23858         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
23859
23860 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
23861
23862         * invoke.texi (Option Summary): Add -fpermissive flag.
23863
23864 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
23865
23866         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
23867         that require PIC code sequences.
23868
23869 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
23870
23871         * configure.in: Add new target: thumb-elf.
23872         * configure: Regenerate.
23873         * config/arm/t-thumb-elf: New file: Makefile fragment for
23874         thumb-elf build.
23875         * config/arm/telf.h: New file: Header file for thumb-elf
23876         build.
23877
23878 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
23879
23880         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
23881         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
23882         initializers is some circumstances.
23883
23884         * fixinc/inclhack.def (endif_label): Add additional selector for
23885         more bogus stuff after #endif statements.
23886         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
23887
23888 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
23889
23890         * i386/cygwin.h (SET_ASM_OP): Define.
23891
23892 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
23893
23894         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
23895
23896 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23897
23898         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
23899         latter.
23900
23901         * sh.md (ic_invalidate_line_i): Remove second alternative.
23902
23903 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
23904
23905         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
23906         test for the presence of valid prototypes.  Delete bypass expr.
23907         (ioctl_fix_ctrl): Correct the selection expression.
23908         (no_double_slash): Correct quoting rules
23909         *fixinc/fixincl.x: regen
23910         *fixinc/inclhack.sh: regen
23911
23912 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
23913
23914         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
23915
23916 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23917
23918         * rs6000.md (movsi_got_internal_mem): Delete.
23919         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
23920         (GOT_TOC_REGNUM): Delete.
23921         (PIC_OFFSET_TABLE_REGNUM): Define.
23922         (FINALIZE_PIC): Disable.
23923         * rs6000.c (rs6000_got_register): New code for fixed pic register.
23924         (rs6000_replace_regno): Delete.
23925         (rs6000_finalize_pic): Likewise.
23926         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
23927
23928 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23929
23930         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
23931         is a note; use <= for the compare; advance P while it is
23932         a NOTE.
23933
23934 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
23935
23936         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
23937         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
23938
23939         * varasm.c (remove_from_pending_weak_list): Verify t->name
23940         is non-NULL before passing it to strcmp.
23941
23942 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
23943
23944         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
23945         the typed arguments are not part of a comment
23946         (ioctl_fix_ctrl): Added a purpose comment
23947         *fixinc/fixincl.x: regenerate
23948         *fixinc/inclhack.sh: regenerate
23949
23950 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23951
23952         * invoke.texi: Add C4x invocation docs.
23953
23954 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23955
23956         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
23957         Define new macros.
23958         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
23959         TARGET_EXPOSE_LDP.
23960         (c4x_legitimize_reload_address): New function.
23961         * config/c4x/c4x.md: Update docs.
23962
23963 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
23964
23965         * fixincludes: Avoid removing '.'.
23966         * fixinc/fixinc.svr4: Likewise.
23967         * fixinc/fixinc.winnt: Likewise.
23968         * fixinc/inclhack.tpl: Likewise.
23969         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
23970
23971 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23972
23973         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
23974         pattern.
23975         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
23976
23977 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
23978
23979         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
23980         correctly.
23981
23982 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
23983
23984         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
23985         * configure: Regenerate.
23986
23987 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
23988
23989         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
23990         values.
23991
23992 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
23993
23994         * fixinc/inclhack.def (avoid_bool): Also catch
23995         "typedef [unsigned] int bool".
23996         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
23997
23998         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
23999         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
24000         * configure: Rebuilt.
24001
24002 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
24003
24004         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
24005         such that we can override its definitions if necessary.
24006         (CPP_SPEC): New define.  Support processor specific predefines via
24007         %(cpp_cpu).
24008         (CC1_SPEC): New define.  Support processor specific compiler
24009         options via %(cc1_cpu).
24010         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
24011         -static.
24012
24013 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24014
24015         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
24016         between sed's -e flag, and the open-quote following it.
24017         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
24018
24019 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
24020                           Jeffrey A Law  (law@cygnus.com)
24021
24022         * varasm.c (assemble_start_function): Remove the function
24023         from the pending weak decls list when we define a function.
24024         (assemble_variable): Similarly for variables.
24025         (weak_finish): Ignore items on the list with a NULL name.
24026         (remove_from_ending_weak_list); New function to "remove" an item
24027         from the pending weak declarations list.
24028
24029 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
24030
24031         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
24032
24033 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
24034
24035         * c-lex.c (GETC): Redefine to call getch.
24036         (UNGETC): Redefine to call put_back.
24037         (putback_buffer): New structure type.
24038         (putback): New static structure.
24039         (getch): New function.
24040         (put_back): New function.
24041         (yylex): Replace unused bytes from bad multibyte character.
24042
24043 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
24044
24045         * cpplib.c (do_define): Cast `alloca' return value.
24046         (do_include, do_undef, do_pragma): Likewise.
24047         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
24048         values.
24049         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
24050         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
24051
24052 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
24053
24054         * sparc.md (abstf2): This should be an expand.
24055         (split after abstf2_notv9): Fix mode.
24056         (abstf2_hq_v9): New pattern.
24057         (abstf2_v9): Only use when no hard quad.
24058         (absdf2_v9): Fix if target is not the same as source.
24059         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
24060         Add correct output constraints.
24061
24062 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
24063
24064         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
24065         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
24066
24067 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
24068
24069         * mips.h (mips_output_conditional_branch): New function.
24070         (mips_adjust_insn_length): Likewise.
24071         (ASSEMBLER_SCRATCH_REGNUM): New macro.
24072         (ADJUST_INSN_LENGTH): Likewise.
24073         * mips.c (print_operand): Add `F' and `W' for floating-point
24074         comparison opcodes.
24075         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
24076         are now in bytes.
24077         (mips_adjust_insn_length): New function.
24078         (mips_output_conditional_branch): New function.
24079         * mips.md (length): Adjust attribute definition to handle
24080         conditional branches.  Change lengths to bytes, rather than
24081         instructions throughout.  Remove length attribute from
24082         instructions whose length is four bytes, and rely on the default
24083         instead.
24084         (dslot): Fix typo in comment.
24085         Reword conditional branch patterns to use
24086         mips_output_conditional_branch.
24087
24088 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24089
24090         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
24091         (LIB_SPEC): Likewise.
24092         Link with -lprof1_r for -g/-pg.
24093
24094 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
24095
24096         * loop.c (check_dbra_loop): Fix change of Jan 19.
24097
24098 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
24099
24100         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
24101         (STARTFILE_SPEC):  Define, override the svr4.h version.
24102         (ENDFILE_SPEC):  Likewise.
24103
24104 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
24105
24106         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
24107         * fixinc/fixincl.x: Regenerated.
24108         * fixinc/inclhack.sh: Regenerated.
24109
24110 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24111
24112         * sh.c (barrier_align): Don't return early for normal branch/barrier
24113         when optimizing for SH2.
24114
24115 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
24116
24117         * i386/udk.h (LINK_SPEC): Correct linker search path for
24118         system libraries.
24119
24120 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24121
24122         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
24123         (braf_label_ref_operand): Delete.
24124         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
24125         * sh.md (casesi_jump_2): Operand1 is now the inside of a
24126         label_ref, and has no predicate.
24127         The patten has a predicate to guard against invalid substitutions.
24128         (dummy_jump): Delete.
24129         (casesi): Update use of casesi_jump_2.
24130
24131 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24132
24133         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
24134         *fixinc/fixincl.x: regenerate
24135         *fixinc/inclhack.sh: regenerate
24136
24137 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
24138
24139         * dwarf2out.c (add_incomplete_type): New fn.
24140         (gen_struct_or_union_type_die): Call it.
24141         (retry_incomplete_types): New fn.
24142         (dwarf2out_finish): Call it.
24143
24144 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
24145
24146         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
24147         current block starts with a CODE_LABEL and ends with a CALL and
24148         we can not find all the argument setup instructions for the CALL.
24149
24150 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
24151
24152         Revert this change:
24153         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
24154         something is a candidate for optimize_bit_field_compare.
24155
24156 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24157
24158         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
24159
24160 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
24161
24162         * alpha.c (override_options): Thinko in last patch.
24163
24164         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
24165         (LIB_SPEC): Recognize -pthread.
24166
24167 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
24168
24169         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
24170         definition in config/arm/coff.h
24171         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
24172
24173 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
24174
24175         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
24176         fixes that need "file=xxx\n" prepended before invocation
24177         (start_fixer - new): starting the fixer process is complex enough
24178         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
24179         (process): uses the new routine; omit usage of putenv()
24180         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
24181         * fixinc/fixincl.x: regenerate
24182
24183 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
24184
24185         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
24186         and version #s (1.1 -> 2.96) as needed.
24187         * README.g77: Kill way out of date file in the toplevel directory.
24188
24189 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
24190
24191         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
24192         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
24193         * configure: Rebuilt.
24194         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
24195         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
24196         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
24197         (SWITCH_TAKES_ARG): Likewise.
24198         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
24199         * config/t-freebsd: Moved from config/i386/ so it can used for all
24200         FreeBSD targets.
24201
24202 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
24203
24204         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
24205
24206 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
24207
24208         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
24209         * configure: Rebuilt.
24210
24211 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
24212
24213         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
24214         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
24215         * rs6000/rs6000.c (rs6000_file_start): Use putc.
24216         (rs6000_output_load_toc_table): Same.
24217         (output_prolog, output_mi_thunk): Same.
24218         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
24219         (ASM_GLOBALIZE_LABEL): Use putc.
24220
24221 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
24222
24223         * alpha.md (reload_*_help): New patterns and splitters.
24224         (reload_*): Use them.
24225         (mov[qh]i): Likewise.
24226
24227 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
24228
24229         * cccp.c (handle_directive): Handle backslash-newlines in quoted
24230         strings correctly.
24231
24232 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
24233
24234         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
24235
24236 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
24237
24238         * flow.c (mark_regs_live_at_end, insn_dead_p,
24239         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
24240         and HARD_FRAME_POINTER_REGNUM special treatment if reload
24241         hasn't run or the frame pointer is needed.
24242         * haifa-sched.c (attach_deaths): Likewise.
24243         * sched.c (attach_deaths): Likewise.
24244
24245 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
24246
24247         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
24248         calculate_can_reach_end returns nonzero.
24249
24250         * configure.in (native gas tests): Search for an assembler in the
24251         same manner that the installed compiler will.
24252         * configure: Rebuilt.
24253         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
24254
24255         * alias.c (find_base_term): Improve handling of addresses
24256         constructed from binary operations.
24257
24258 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
24259
24260         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
24261
24262 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
24263
24264         * function.h (cleanup_label, frame_offset): Declare.
24265         (tail_recursion_label, tail_recursion_reentry): Likewise.
24266         (arg_pointer_save_area, rtl_expr_chain): Likewise.
24267         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
24268         (tail_recursion_label, tail_recursion_reentry): Likewise.
24269         (arg_pointer_save_area, rtl_expr_chain): Likewise.
24270
24271 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
24272
24273         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
24274         defined.
24275         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
24276         (MAX_OFILE_ALIGNMENT): Define.
24277
24278 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
24279
24280         * fixincl.c: Replace local include scheme with #includes of
24281         gansidecl.h and system.h.
24282         * procopen.c:  Likewise.
24283         * server.c:  Likewise.
24284
24285 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
24286
24287         * i386/t-dgux (EXTRA_PARTS): Add crti.o
24288         (crti.o): Add build rule and dependencies.
24289         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
24290
24291 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24292
24293         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
24294         (LIB_LINUX_SPEC): Likewise.
24295         (LIB_LINUX_SPEC): Add support for -pthread
24296         (CPP_OS_LINUX_SPEC): Likewise.
24297         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
24298         specified.
24299
24300 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
24301
24302         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
24303         conditional move.
24304         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
24305         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
24306         for IEEE math and CC_FCOMI.
24307         (put_jump_code): No IEEE if CC_FCOMI is set.
24308
24309 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
24310
24311         * fold-const.c (fold_truthop): Make the field reference unsigned
24312         when converting a single bit compare.
24313
24314 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24315
24316         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
24317
24318 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
24319
24320         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
24321         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
24322         version did.
24323
24324         * reload.c (push_reload): Do not call remove_address_replacements
24325         when presented with identical optional reloads.
24326
24327 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
24328
24329         * alpha.h (MASK_FIX, TARGET_FIX): New.
24330         (MASK_*): Reorganize constants.
24331         (CPP_AM_FIX_SPEC): New.
24332         (TARGET_SWITCHES): Add FIX.
24333         (EXTRA_SPECS): Likewise.
24334         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
24335         (SECONDARY_MEMORY_NEEDED): Likewise.
24336         (REGISTER_MOVE_COST): Likewise.
24337         * alpha.c (override_options): Add FIX support.  Always use
24338         ALPHA_TP_PROG for ev6.
24339         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
24340         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
24341         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
24342
24343 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
24344
24345         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
24346         something is a candidate for optimize_bit_field_compare.
24347
24348 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
24349
24350         * gcc.texi (Passes): Document branch-shortening.
24351         * invoke.texi (Debugging Options): Document the fact that `-dp'
24352         outputs length information for instructions.
24353
24354 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
24355
24356         * flow.c: Revert previous delta.
24357
24358 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
24359
24360         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
24361         FRAME_POINTER_REGNUM.
24362         (mark_set_1): Ditto.
24363         (mark_used_regs): Ditto.
24364
24365 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
24366
24367         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
24368         (GOT_PCREL): New macro.  Define to 1 if not already defined.
24369         * arm/elf.h (GOT_PCREL): Define to 0.
24370         * arm.c (arm_finalize_pic): Take into account the setting of
24371         GOT_PCREL.
24372
24373 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
24374
24375         * output.h (STRIP_NAME_ENCODING): Provide default definition.
24376         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
24377
24378         * flow.c (mark_set_1): Do not record BLKmode stores as dead
24379         store elimination candidates.
24380
24381 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24382
24383         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
24384         TARGET_GAS.
24385
24386 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
24387
24388         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
24389         Add use of x-aix41-gld.
24390
24391 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
24392
24393         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
24394         (ASM_OUTPUT_DESTRUCTOR): Define.
24395
24396 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
24397
24398         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
24399         last CODE_LABEL in a loop if we have previously passed a jump
24400         to the top of the loop.
24401
24402 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
24403
24404         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
24405         applying Philip's patch.
24406
24407 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
24408
24409         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
24410         are not VAR_DECLs.
24411
24412 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
24413
24414         * loop.c (strength_reduce): Grow reg_single_usage as needed.
24415
24416 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
24417
24418         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
24419         Also remove a useless comment.
24420
24421 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
24422
24423         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
24424
24425 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
24426
24427         * collect2.c (main): Only generate import or export file and add
24428         to link arguments if non-empty.  Use xmalloc not alloca.
24429         (write_{export,import}_file): Delete.
24430         (write_aix_file): New function.
24431         (locatelib): Use xmalloc not malloc.
24432         (GCC_OK_SYMBOL): Do not check type if aix64.
24433
24434 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
24435
24436         Based on patch by Scott Bambrough and Pat Beirne:
24437         * config/arm/arm.c (making_const_table): New variable.
24438         * config/arm/arm.h (making_const_table): Declare.
24439         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
24440         appropriate.
24441         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
24442         Keep track of when we are building the constant table.
24443
24444 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
24445
24446         * config/arm/arm.c (arm_override_options): Fix erroneous warning
24447         message.
24448
24449 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
24450
24451         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
24452         defined.
24453
24454 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
24455
24456         * tm.texi (FUNCTION_ARG): Correct description of a stack element
24457         in a PARALLEL.
24458
24459 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
24460
24461         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
24462
24463 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24464
24465         * rs6000.c (output_mi_thunk): Enable full support again.
24466
24467 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24468
24469         * sh.h (BRANCH_COST): Define.
24470
24471 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
24472
24473         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
24474
24475 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
24476
24477         * function.c (assign_stack_local): Align stack slot propertly.
24478         (assign_outer_stack_local): Likewise.
24479
24480 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
24481
24482         * expr.h (lang_expand_constant): Declare.
24483         * toplev.c (lang_expand_constant): Define it.
24484         * varasm.c (output_constant): Use it.
24485
24486 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24487
24488         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
24489         Change function definitions to K&R style.
24490
24491 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24492
24493         * fixinc/fixincl.c: We must not ignore SIGCLD now.
24494
24495 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
24496
24497         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
24498         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
24499         (several places): omit static initialization
24500         (process): use single fd, since only the read fd is used
24501         * fixinc/gnu-regex.c: define 'const' away, if not supported
24502         * fixinc/procopen.c(several places): omit static initialization
24503         * fixinc/server.c: define 'volitile' away, if not supported
24504
24505 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
24506
24507         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
24508         asm_fprintf and %L to generate the label name.
24509         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
24510         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
24511
24512 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
24513
24514         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
24515         insn for a conditional jump can not be found.
24516
24517 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
24518
24519         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
24520         on variables in specific sections other than .sbss and .sdata.
24521
24522 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
24523
24524         * stmt.c (expand_return): Call start_cleanup_deferral and
24525         end_cleanup_deferral around conditional code.
24526
24527 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24528
24529         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
24530         filename lists.  Utilizes new "krstr" AutoGen function.
24531         * fixinc/fixincl.x: Rebuilt.
24532
24533 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
24534
24535         * i386.c (output_float_compare): Avoid GNU-C extensions.
24536
24537 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
24538
24539         * version.c: Bump to distinguish mainline tree from the
24540         gcc-2.95 branch.
24541
24542 See ChangeLog.1 for earlier changes.
24543
24544