OSDN Git Service

87c05226729b12d5f6caf30d51a27cb3e0205cbc
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
2
3         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
4         the token except for numbers and identifiers.
5
6 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
7
8         * i386.c (ix86_expand_binary_operator,
9         ix86_expand_unary_operator): Check no_new_pseudos
10         instead of reload_in_progress and reload_completed.
11         (ix86_split_ashldi, ix86_split_ashrdi,
12         ix86_split_lshrdi): Check no_new_pseudos instead
13         of reload_completed.
14
15 2000-04-12  Jeffrey A Law  (law@cygnus.com)
16
17         * function.c (purge_addressof): Unshare any shared rtl created by
18         purge_addressof and its children.
19
20 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
21
22         * function.c (aggregate_value_p): VOID_TYPE nodes are never
23         aggregates.
24
25 2000-04-05  Andreas Jaeger  <aj@suse.de>
26
27         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
28         not compiling PIC code, add flags for mabi=64.
29         (SUBTARGET_CPP_SIZE_SPEC): New.
30         (SUBTARGET_CPP_SPEC): New.
31         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
32         for MIPS/Linux and lots of code needs these defines.
33
34 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
35
36         * reorg.c (fill_slots_from_thread): Check side_effects_p when
37         trying the "opposite arithmetic" approach.
38
39 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
40
41         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
42         (struct sh_args): Add new field force_mem.
43         (INIT_CUMULATIVE_ARGS): Initialize it.
44         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
45
46 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
47
48         (expand_call): Do not reverse args in "equal from" field.
49         (emit_library_call_value_1): Emit_libcall_block for const and pure
50         function.
51
52 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
53
54         * reload1.c (reload_combine): Don't enable optimization for fixed
55         registers when encountering a BARRIER.
56
57 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
58
59         * builtins.c (expand_builtin_memcmp): Do expansion even with
60         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
61
62         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
63         stack is propertly aligned; add sanity checking for aligned
64         stack pointer.
65         (expand_library_call_value_1): Add sanity checking for aligned
66         stack pointer.
67
68 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
69  
70         * calls.c (emit_library_call_value_1): Change 3rd arg to
71         locate_and_pad_parm to disregard the setting of partial.
72
73 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
74
75         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
76
77         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
78         CALL_INSN from the normal case.
79
80 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
81
82         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
83         New global variables.
84         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
85         adjustment.
86         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
87         Declare,
88         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
89          TARGET_ADD_ESP_8): New macros.
90         * i386.md: Add peep2s to convert esp adjustments to push and pop
91         instructions.
92         (pushsi_prologue, popsi_epilogue): New patterns.
93
94 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
95
96         * real.c (toe64): Remove stale #endif from the last change.
97
98 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
99
100         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
101         * real.c (toe64): Revert previous change.
102
103 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
104
105         * objc/objc-act.c: Include ggc.h.
106         (objc_tree_index, objc_global_trees): Convert most of the
107         static tree variables into a static array with previous names
108         as defines.
109         (objc_ellipsis_node): New variable.
110         (lang_init): Call objc_act_parse_init and c_parse_init.
111         Create objc_ellipsis_node.
112         (build_selector_translation_table): Use objc_ellipsis_node instead
113         of (tree)1.
114         (hack_method_prototype): Likewise.
115         (get_arg_type_list): Likewise.
116         (start_method_def): Likewise.
117         (continue_method_def): Likewise.
118         (gen_method_decl): Likewise.
119         (ggc_mark_imp_list): New function.
120         (ggc_mark_hash_table): New function.
121         (objc_act_parse_init): New function.
122         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
123         * c-parse.in (c_parse_init): For objc add roots of objc specific
124         local tree variables.
125         * objc/objc-parse.y: Rebuilt.
126         * objc/objc-parse.c: Rebuilt.
127         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
128
129 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
130
131         * cse.c (delete_trivially_dead_insns): Also delete insns
132         that copy a register to itself where the destination is
133         a strict_low_part.
134
135 2000-04-11  Richard Henderson  <rth@cygnus.com>
136
137         * flow.c (struct propagate_block_info): Add new_dead, new_live.
138         (propagate_block): Initialize them.  Use them in parallel instead
139         of one tmp variable, ie revert much of the 0408 and 0407 functional
140         changes, but keep the structural changes.
141         (mark_set_regs): Take new_dead from propagate_block_info instead.
142         (mark_set_1, mark_set_reg): Likewise.
143         (mark_used_regs): Likewise with new_live.
144         (mark_used_reg): Likewise.  Revert 0408 change.
145
146 2000-04-11  Nick Clifton  <nickc@cygnus.com>
147
148         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
149         restriction.
150         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
151
152 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
153
154         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
155         const section to output a CONSTRUCTOR based on the same conditions
156         used for VAR_DECLs.
157
158 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
159
160         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
161         * pa/pa-protos.h (output_call): Add additional argument indicating
162         if the call is a sibling/tail call.
163         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
164         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
165         (function_arg, function_arg_partial_nregs): Likewise
166         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
167         (emit_move_sequence): Zero extend certain constants as needed
168         for TARGET_64BIT.
169         (compute_zdepdi_operands, output_64bit_and): New functions.
170         (output_64bit_ior, function_arg): Likewise.
171         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
172         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
173         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
174         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
175         (output_bvb): Likewise.
176         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
177         (output_call): New argument 'sibcall'.  Generate sibcall sequences
178         as needed.
179         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
180         (ouput_arg_descriptor): Do not emit argument descriptors for
181         TARGET_64BIT.
182         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
183         defined.
184         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
185         (FUNCTION_OK_FOR_SIBALL): Define.
186         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
187         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
188         (CPP_SPEC): Use new spec infrastructure.
189         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
190         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
191         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
192         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
193         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
194         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
195         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
196         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
197         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
198         (FUNCTION_ARG); Call out to C code.
199         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
200         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
201         (MIN_UNITS_PER_WORD): Likewise.
202         * pa/pa.md (cmpdi): New expander.
203         (scc patterns, movstrsi): Not available for TARGET_64BIT.
204         (64bit conditional arithmetic): New patterns.
205         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
206         (movsicc): Not available if modes on all the operands to not match.     
207         (movdicc): New expander and associated patterns.
208         (64bit branches): New patterns.
209         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
210         (pre_ldd, post_std): New patterns.
211         (64bit addil, load low part): New patterns.
212         (special movsf constant): Not available for TARGET_64BIT.
213         (movsf, movdf expanders): Force constants into memory.
214         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
215         (64bit movdf/movdi patterns): New patterns.
216         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
217         for TARGET_64BIT.
218         (extendqidi2, extendhidi2, extendsidi2): Similarly.
219         (adddi3 expander): Allow "arith_operand" for second input.
220         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
221         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
222         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
223         (muldi3): New expander for TARGET_64BIT.
224         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
225         for TARGET_64BIT.
226         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
227         patterns for TARGET_64BIT.
228         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
229         patterns for TARGET_64BIT.
230         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
231         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
232         (sibcall_epilogue): New expander.
233         (casesi): Tweak for TARGET_64BIT.
234         (call expanders): Set & use the outgoing argument pointer.  Use the
235         64bit call patterns as needed. Add additional arg to output_call.
236         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
237         (sibcall, sibcall_internal_symref): New expanders.
238         (sibcall_value, sibcall_value_internal_symref
239         (interspace_jump): Turn into an expander + matching patterns.
240         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
241         * pa/pa64-regs.h: Eliminate trigraph sequences.
242         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
243
244 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
245
246         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
247         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
248         cpp_token with cpp_ttype everywhere.
249         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
250         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
251         CPP_BUF_COL.  Line and column numbers are unsigned int, not
252         long.
253         * cpplex.c (cpp_buf_line_and_col): Delete.
254         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
255         'long lineno' to 'unsigned int lineno'.
256         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
257
258 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
259
260         * extend.texi: ISO C99 is not a draft anymore.
261         * invoke.texi: ISO C++ is not a draft anymore.
262         * cpp.texi: __cplusplus is required by the ISO standard.
263
264         * extend.texi (-fthis-is-variable): Undocument.
265         * flags.h (warn_template_debugging): Remove declaration.
266         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
267         -Wenum-clash, -Wtemplate-debugging): Undocument.
268
269 2000-04-10  Nick Clifton  <nickc@cygnus.com>
270
271         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
272         integer.
273         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
274         integer.
275         (ARM_SIGN_EXTEND): Use HOST_UINT.
276         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
277         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
278         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
279         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
280
281         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
282         (arm_gen_constant): Use HOST_UINT.
283         (arm_canonicalize_constant): Use HOST_UINT.
284         (arm_reload_in_hi): Use HOST_UINT.
285         (arm_reload_out_hi): Use HOST_UINT.
286         (output_multi_immediate): Use HOST_UINT.
287         (int_log2): Use HOST_UINT.
288         (arm_poke_function_name): Use HOST_UINT.
289         (arm_output_epilogue): Use arm_volatile_func().
290         (output_thumb_prologue): Use arm_strip_name_encoding().
291         
292 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
293
294         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
295         of sequence point problems.
296
297 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
298
299         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
300         Recomment.
301         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
302
303 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
304
305         * sbitmap.h: Whitespace changes and use upper-case macro args.
306         (struct simple_bitmap_def): All sizes now unsigned.
307         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
308         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
309         (sbitmap_vector_alloc): Parms and local vars now unsigned.
310         (sbitmap_zero): Cast bzero arg to PTR.
311         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
312         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
313         loop to make structure clearer.
314         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
315         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
316         (sbitmap_a_and_b_or_c): Likewise.
317         (sbitmap_intersection_of_succs): Minor cleanups.
318         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
319         (sbitmap_union_of_preds): Likewise.
320         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
321         (debug_sbitmap): New function.
322         
323         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
324         * c-typeck.c (convert_for_assignment): Likewise.
325
326         * expmed.c (init_expmed): Don't free objects we make.
327         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
328
329         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
330         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
331
332         * gcse.c (expr_hash_table_size): Now unsigned.
333         (compute_ae_gen): Local variable `i' now unsigned.
334         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
335         (compute_transout, hoist_code): Likewise.
336         (compute_local_properties): Likewise, also hash_table_size.
337         (alloc_expr_hash_table): N_INSNS now unsigned.
338         (delete_null_pointer_checks): Mark arg F as unused.
339
340         * regrename.c: Minor cleanups, including chang some variables
341         to unsigned int.
342
343 2000-04-10  Neil Booth  <NeilB@earthling.net>
344
345         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
346         than GETC ().
347         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
348
349 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
350
351         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
352         __classof__, and __headof__ from the list of gnu keywords.
353         (-ansi): Remove -foperator-names from list of implied options. 
354         Do not call it ANSI C++.
355         (-foperator-names): Document as -fno-operator-names.
356
357 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
358
359         * cpphash.c (timestamp): Delete.
360         (del_HASHNODE): If type is T_MCONST, free value.cpval.
361         (special_symbol): Remove unnecessary braces.  Remove
362         T_VERSION.  Treat T_STDC like T_CONST unless
363         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
364         when one is encountered, then convert them into T_MCONST
365         nodes.
366         * cppinit.c (builtin_array): version_string is T_MCONST.
367         __STDC__ has a "1" in its cpval.  Don't have a terminator
368         entry.  Clean up which entries are dumped.
369         (initialize_builtins): Only __STDC__ gets the special
370         -traditional treatment.  Count the length of builtin_array.
371         Render version_string here.
372         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
373         * cpplib.h (struct cpp_reader): Remove timebuf. 
374
375 2000-04-09  Richard Henderson  <rth@cygnus.com>
376
377         * genrecog.c (pred): Update comparison_operator for the unordered
378         operators.
379
380         * config/i386/i386.c (no_comparison_operator): Disallow unordered
381         operators.
382         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
383         (uno_comparison_operator): New.
384         (put_condition_code): Handle UNORDERED/ORDERED.
385         (unsigned_comparison): Likewise.
386         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
387         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
388         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
389         update all callers.  Handle all 8 unordered operators.
390         (ix86_expand_setcc): Lose the unordered argument, update all callers.
391         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
392         * config/i386/i386.h (PREDICATE_CODES): Update.
393         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
394         (ix86_expand_branch, ix86_expand_setcc): Update.
395         * config/i386/i386.md (sunordered, sordered): New.
396         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
397         (bunordered, bordered): New.
398         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
399         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
400         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
401
402 2000-04-09  Philip Blundell  <philb@gnu.org>
403
404         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
405         
406 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
407
408         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
409         fix_truncxfhi2): New patterns.
410         * i386.c (output_fix_trunc): Handle converting to HImode.
411
412 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
413
414         * ssa.c (convert_to_ssa): Eliminate dead code when calling
415         life_analysis.  
416         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
417         (for_each_successor_phi): Change parameter to basic_block.
418         (coalesce_regs_in_successor_phi_nodes): Likewise.
419         (coalesce_regs_in_copies): Likewise.
420         (compute_coalesced_reg_partition): Use basic_block instead of index.
421         * rtl.h (convert_to_ssa): Delete.
422         (convert_from_ssa): Likewise.
423         (successor_phi_fn): Likewise.
424         (for_each_successor_phi): Likewise.
425         (in_ssa_form): Likewise.
426         * basic-block.h (convert_to_ssa): Moved from rtl.h.
427         (convert_from_ssa): Likewise.
428         (successor_phi_fn): Likewise.
429         (in_ssa_form): Likewise.
430         (for_each_successor_phi): Likewise.  Change parameter to basic_block. 
431         * flow.c (calculate_global_regs_live): Pass a basic_block to
432         for_each_successor_phi.
433
434 2000-04-08  Richard Henderson  <rth@cygnus.com>
435
436         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
437         was modified in the current insn.
438
439 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
440
441         * arm/thumb.md: Delete.
442         * arm/thumb-protos.h: Delete.
443
444 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
445
446         Merge changes from merged-arm-thumb-backend-branch onto trunk.
447
448         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
449
450         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
451         into branch.
452
453         * arm.md (nop): Use the standard RTL expression.  Don't code as a
454         define_expand.
455         (*arm_nop, *thumb_nop): Delete.
456
457         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
458         constants.  Use casts instead.
459         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
460         output_multi_immediate, arm_poke_function_name): Likewise.
461         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
462         MASK_RETURN_ADDDR): Likewise.
463
464         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
465
466         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325 
467         into branch.
468         
469         * arm.md (eh_epilogue): New function.
470         * arm.h (struct machine_function): Move to here ...
471         * arm.c: ... from here.
472         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
473         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
474         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
475
476         2000-03-30  Nick Clifton  <nickc@cygnus.com>
477
478         * config/arm/semi.h (ASM_SPEC): Restore definition.
479         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
480
481         * config/arm/elf.h (ASM_SPEC): Restore definition.
482         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
483
484         * config/arm/arm.h (ASM_SPEC): Remove definition.
485         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
486
487         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
488
489         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
490
491         2000-03-24  Nick Clifton  <nickc@cygnus.com>
492
493         Various formating tidyups, elimination of compile time
494         warnings and synchronisation with internal sources:
495         
496         * config/arm/arm-protos.h (assemble_align): Add prototype.
497         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
498         (gen_comapre_reg): Rename to arm_gen_compare_reg.
499         (arm_return_addr_rtx): Rename to arm_return_addr.
500
501         * config/arm/arm.c: Include except.h.
502         Define shorter typenames for strict minipool_node and struct
503         minipool_fix.
504         (arm_return_in_memory): For WinCE return all structures <= 32 bits
505         in memory.
506         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
507         (gen_comapre_reg): Rename to arm_gen_compare_reg.
508
509         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
510         already defined.
511         (ASM_SPEC): Define if not already defined.
512         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
513
514         * config/arm/arm.md: Rename references to gen_rotated_half_load to
515         arm_gen_rotated_half_load, and references to gen_comapre_reg to
516         arm_gen_compare_reg.
517         (indirect_jump):  Only accept register operands.
518         (load_indirect_jump): Keep this pattern since combine can generate
519         it.
520
521         * config/arm/coff.h: Include aout.h.
522         (MULTILIB_DEFAULTS): Only define if not already defined.
523
524         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
525         into arm.h (so that COFF ports can support thumb based aliases).
526         (ASM_SPEC): Move definition into arm.h
527         
528         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
529         redundant apcs spec.
530         (ASM_SPEC): Move definition to arm.h
531
532         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
533
534         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
535         for entries in the .bss section
536
537         2000-03-23  Nick Clifton  <nickc@cygnus.com>
538
539         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
540         to thumb_far_jump_used_p.
541
542         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
543         single integer parameter.
544
545         * config/arm/arm.c (struct machine_function): Add two new
546         fields, 'far_jump_used' and 'arg_pointer_live'.
547         (thumb_far_jump_used_p): Once the decision has been made that
548         far jumps might be used, always return true.
549         If being called from the initial elimination offset macro then
550         do not bother to perform the test if the arg pointer is not
551         being used.
552         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
553         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
554
555         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
556
557         * arm.c (output_return_instruction): Handle more cases where we can
558         return from a function with an ldr instruction.
559         (arm_output_epilogue): Likewise.
560
561         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
562         if we need to push a large stack frame and there are no callee-saved
563         registers.
564
565         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
566         in ARM code if the frame pointer has been eliminated.
567
568         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
569         unspec_volatile arguments to avoid duplicates.
570         (consttable_1, consttable_2): Fixes for big-endian mode.
571
572         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
573         as appropriate.
574
575         Re-write constant pool code.
576         * arm.c (minipool_node, minipool_fix): New types.
577         (minifix): Delete type.
578         (arm_add_minipool_constant): Delete.
579         (arm_compute_minipool_offsets, arm_find_barrier, 
580         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
581         (get_jump_table_size): Now returns HOST_WIDE_INT.
582         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
583         functions.
584         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
585         (assign_minipool_offsets, arm_print_value): Likewise.
586         (dump_minipool): Rewrite.
587         (arm_barrier_cost): New function.
588         (create_fix_barrier): New function.
589         (push_minipool_barrier): New function.
590         (push_minipool_fix): Record additional information about the fixup 
591         required.
592         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
593         check the mode of what needs fixing.
594         (arm_reorg): Rewrite.
595
596         2000-03-08  Nick Clifton  <nickc@cygnus.com>
597
598         * config/arm/arm.md (indirect_jump): Force constant addresses into
599         a register. 
600
601         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
602
603         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
604
605         2000-02-24  Nick Clifton  <nickc@cygnus.com>
606
607         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
608         adjust is word aligned.
609         (thumb_expand_epilogue): Make sure that stack adjust is word
610         aligned.
611
612         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
613         
614         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
615
616         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
617         pointer relative addresses.
618
619         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
620
621         * arm.c (find_barrier): Find the last barrier within the allowed 
622         range.
623
624         2000-02-09  Nick Clifton  <nickc@cygnus.com>
625
626         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
627
628         2000-02-09  Nick Clifton  <nickc@cygnus.com>
629
630         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
631         ARM_FUNCTION_PROFILER. 
632
633         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
634         ARM_FUNCTION_PROFILER. 
635
636         * config/arm/linux-oldld.h: Imported from mainline sources.
637
638         2000-02-07  Nick Clifton  <nickc@cygnus.com>
639
640         * config/arm/lib1funcs.asm: Merge in thumb functions from
641         lib1thumb.asm.
642         
643         * config/arm/lib1thumb.asm: Delete.
644
645         2000-02-04  Nick Clifton  <nickc@cygnus.com>
646
647         * config/arm/arm.c: Sychronised with current Red hat local
648         sources. 
649         * config/arm/arm.h: Ditto.
650         * config/arm/arm-protos.h: Ditto.
651
652         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
653
654         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
655
656         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
657         byte stores.
658
659         2000-02-02  Nick Clifton  <nickc@cygnus.com>
660
661         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
662
663         * config/arm/arm.md (epilogue): Fix rtl checking abort because
664         (return) was emited using an emit_insn() call. 
665         
666         2000-01-31  Nick Clifton  <nickc@cygnus.com>
667
668         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
669         thumb stack frame.
670         (thumb_exit): Move frame pointer back into hard frame pointer
671         register if backtracing is being used.
672
673         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
674
675         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113 
676         into branch.
677
678         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
679
680         * config/arm/arm.md (neg_pool_offset): Provide default for new
681         attribute.
682         (arm_movsi_insn): Add neg_pool_offset attribute.
683         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
684         rtx for the insn that starts the scan and an unsigned long for its
685         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
686         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
687         instructions in *PINSERTED.
688         (struct minipool_fixup): Add MIN_ADDRESS elt.
689         (sort_fixups): Compute it.
690         (arm_reorg): Changes to support inserting pools before the insn to be
691         fixed up.
692
693         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
694
695         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
696         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
697         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
698
699         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
700
701         * config/arm/semi.h (TARGET_VERSION): Do not define if already
702         defined.
703         (TARGET_DEFAULT): Do not define if already defined.
704
705         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
706
707         * config/arm/arm.md (anddi3): Allow disjoint source operands.
708         (iordi3): Allow disjoint source operands.
709         (xordi3): Allow disjoint source operands.
710         (negdi2): Permit construction for ARM and Thumb.
711         (arm_negdi2): Renamed version of old negdi2 pattern.
712         (thumb_negdi2): New pattern: Only permit non-overlapping
713         source and destination.
714
715         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
716
717         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
718         scratch low register so that it will not be deleted.
719
720         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
721
722         * config/arm/pe.h (ARM_PE): Define.
723         
724         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
725         interfacearm attribute if this is a PE toolchain.
726         (output_return_instruction): Do not emit anything if the function
727         has the naked attribute set.
728         (is_called_in_ARM_mode): If the function has the interfacearm
729         attribute then return true.
730         (thumb_expand_prologue): Do not generate a prologue for naked
731         functions.
732         (thumb_expand_epilogue): Do not generate an epilogie for a naked
733         function.
734         (output_thumb_prologue): Do not bother if the function is naked.
735         Strip PE encoding from function name before emitting.
736
737         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
738
739         * arm.md (pic_load_addr): Fix constraints.
740
741         * arm.md (casesi_insn): Fix mis-applied patch.
742
743         * arm.md ("core" function unit): Add rules for single- and
744         multi-cycle insns.
745         (All TARGET_THUMB patterns): Add "type" attribute information
746         where needed.
747         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
748         the following insn is a CALL.
749
750         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
751         pointer.
752         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the 
753         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
754         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
755         
756         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
757
758         * config/arm/linux-gas.h: oops - this file was missed out when the
759         branch was created...
760
761         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
762
763         * thumb.c: Deleted.  Move contents to ...
764         * arm.c: ... here.
765         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
766         rule for thumb.o
767         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
768         * configure: Regen.
769
770         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
771         declare a prototype for asm_output_align();
772
773         * arm.c (thumb_condition_code): Delete.
774         (arm_print_operand): Always use arm_condition_code array.
775
776         * arm.c (thumb_return_addr_rtx): Delete.
777         (arm_save_machine_status, arm_restore_machine_status): Delete.
778         (arm_init_machine_status, arm_mark_machine_status): New functions.
779         (arm_init_expanders): Update accordingly.
780         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
781         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
782         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
783         
784         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
785
786         * configure.in : Fix arm-*-aout target to use new t-arm-aout
787         script. 
788         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
789         targets.
790
791         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
792
793         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
794         stack backtrace structure.
795
796         * config/arm/arm-protos.h: Add prototypes for functions defined in
797         arm/pe.h.
798         
799         * config/arm/arm.c (arm_override_options): Fix selection of 
800         attributes of default processor.
801         
802         * config/arm/coff.h: Delete needless #include.
803         
804         * config/arm/pe.c: Delete unused code.
805         
806         * config/arm/pe.h (CPP_DEFINES): Delete
807         (SUBTARGET_CPP_SPEC): Define.
808         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
809         
810         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
811
812         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
813
814         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
815         updated.
816         (CAN_DEBUG_WITHOUT_FP): Define.
817         (FIXED_REGISTERS): Make r11 call-saved.
818         (CALL_USED_REGISTERS): Likewise.
819         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
820         (FRAME_POINTER_REQUIRED): Correct logic for determining when a 
821         frame-pointer is required.
822         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
823         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
824         if the target normally needs a stack frame in non-leaf functions.
825         (use_return_insn): Correct logic for determining when a return
826         instruction can be used.
827         (output_return_instruction): Handle the frame-pointer register as
828         a normal register when not TARGET_APCS_FRAME.
829         (arm_output_prologue): Likewise.
830         (arm_output_epilogue): Likewise.
831         (output_func_epilogue): Likewise.
832         (arm_expand_prologue): Likewise.
833         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
834
835         * arm.c (use_return_insn): No need to check floating point regs if
836         TARGET_SOFT_FLOAT.
837         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
838         the code of value stored in the minipool array.
839         (arm_add_minipool_constant): Likewise.
840
841 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
842
843         * basic-block.h (conflict_graph_enum_fn): K&R fix.
844
845 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
846
847         * tree.c (tree_expr_nonnegative_p): New function.
848
849         * tree.h (tree_expr_nonnegative_p): Declare.
850
851         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
852         elide some sign_compare warnings.
853         (build_conditional_expr): Likewise.
854
855 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
856
857         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
858
859         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
860         * i386.c (print_operand): Use the proper suffix for a 387 HImode
861         operand.  Abort if a 387 operand has an unsupported size.
862
863 2000-04-08  Neil Booth  <NeilB@earthling.net>
864
865         * cppexp.c (parse_charconst): Null does not end character
866         constants.
867         * cppinit.c (ISTABLE): Null character handled as whitespace.
868         * cpplex.c (null_warning):  new function.
869         (skip_string): Emit warning if nulls encountered.
870         (_cpp_skip_hspace): Emit warning if nulls encountered.
871         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
872         them.
873         * cpp.texi: Update.
874
875 2000-04-07  Richard Henderson  <rth@cygnus.com>
876
877         * flow.c (loop_depth): Remove.
878         (reg_next_use, cc0_live, mem_set_list): Replace with ...
879         (struct propagate_block_info): New.
880         (life_analysis): Don't allocate reg_next_use.
881         (propagate_block_delete_insn): Break out of propagate_block.
882         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
883         (propagate_block_delete_libcall): Likewise.
884         (propagate_block): Create a propagate_block_info struct to pass
885         to subroutines.  Allocate one not two temporary regsets.  Don't
886         clobber memory for const calls.  Look for clobbers in
887         CALL_INSN_FUNCTION_USAGE.
888         (mark_set_regs): Recognize COND_EXEC.
889         (mark_set_reg): Break out of mark_set_1.
890         (mark_used_reg): Break out of mark_used_regs.
891         (mark_used_regs): Recognize COND_EXEC.
892         (insn_dead_p): Use propagate_block_info struct.
893         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
894         (find_auto_inc, try_pre_increment_1): Likewise.
895         (print_rtl_with_bb): Dump regs live at end too.
896         (count_reg_sets_1): Pass in loop_depth.
897         (count_reg_sets, count_reg_references): Likewise.
898         (recompute_reg_usage): Provide it.
899
900 2000-04-07  Richard Henderson  <rth@cygnus.com>
901
902         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
903         not the raw files.
904
905 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
906
907         * cpplib.c (do_elif): Skip the rest of the line if we're
908         not going to bother evaluating it.
909         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
910         to avoid pointless calls to the lexer.
911
912 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
913
914         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
915
916 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
917
918         * calls.c (expand_call): emit_queue if we're trying a sibcall.
919
920 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
921
922         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
923
924 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
925
926         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
927         crtend so they can be multilibbed.
928         (STAGESTUFF): Remove s-crt and s-crtS.
929
930 2000-04-07  Richard Henderson  <rth@cygnus.com>
931
932         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
933         if we discover we need a pseudo and no_new_pseudos is true.
934         * config/alpha/alpha.md (ne:DI insn): New.
935         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
936
937 2000-04-07  Richard Henderson  <rth@cygnus.com>
938
939         * rtl.def (COND_EXEC): New.
940         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
941         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
942
943         * genconfig.c (have_cond_arith_flag): Remove.
944         (have_cond_exec_flag): New.
945         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
946         (main): Print HAVE_conditional_execution.
947
948         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
949         (sched_analyze_insn, print_pattern): Likewise.
950         * reload.c (find_equiv_reg): Likewise.
951         * rtlanal.c (reg_referenced_p): Likewise.
952         (note_stores, dead_or_set_regno_p): Likewise.
953         (reg_overlap_mentioned_p): Rewrite to use a switch.
954
955         * ggc.h (struct rtx_def): Forward declare.
956
957         * print-rtl.c (debug_rtx_range): New.
958         * rtl.h (debug_rtx_range): Declare.
959
960         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
961
962         * gcse.c (gcse_main): Don't rebuild the CFG here.
963         (delete_null_pointer_checks): Likewise.
964         * ssa.c (convert_to_ssa): Likewise.
965         * toplev.c (rest_of_compilation): Do it here instead.  Combine
966         sequential calls to TIMEVAR.  Consistently use `insns' instead of
967         `get_insns()'.  Always split insns after reload when optimizing.
968
969         * basic-block.h (merge_blocks_nomove): Declare.
970         (tidy_fallthru_edge): Declare.
971         * flow.c (merge_blocks_nomove): Document as merging into previous
972         blocks.  Remove cruft from between blocks; remove all edges out of A.
973         (tidy_fallthru_edge): Export.
974
975 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
976
977         * ssa.c (compute_conservative_reg_partition): Declare with
978         void arguments.
979         * toplev.c (clean_dump_file): Remove previously-deleted function
980         inadvertantly merged back in.
981         * conflict.c (conflict_graph_add): Use a single call to
982         htab_find_slot to look up and insert.
983
984 2000-04-06  Richard Henderson  <rth@cygnus.com>
985
986         * genrecog.c (*): Rename _last_insn to last_insn.
987         (make_insn_sequence): Set the position of the peephole2 C test
988         to be at the last insn.
989
990 2000-04-06  Richard Henderson  <rth@cygnus.com>
991
992         * flow.c (compute_flow_dominators): Free worklist.
993
994 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
995
996         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
997
998 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
999
1000         * rtl.h (INSN_P): New macro.
1001         (successor_phi_fn): New typedef.
1002         (for_each_successor_phi): New prototype.
1003         (in_ssa_form): New variable.
1004         (PHI_NODE_P): Likewise.
1005         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
1006         phi nodes in successors.
1007         (mark_used_regs): Add PHI case.
1008         (set_phi_alternative_reg): New function.
1009         (life_analysis): Assert that dead code elimination is not selected
1010         when in SSA form.
1011         * toplev.c (to_ssa_time): New variable.
1012         (from_ssa_time): Likewise.
1013         (compile_file): Zero to_ssa_time and from_ssa_time.
1014         Print time to convert to and from SSA.
1015         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
1016         (print_time): Compute percent fraction as integer.
1017         * ssa.c (PHI_NODE_P): Moved to rtl.h.
1018         (convert_to_ssa): Check if we're already in SSA.  
1019         Don't eliminate dead code in life_analysis.
1020         Rerun flow and life analysis at bottom.
1021         (eliminate_phi): Use canonical regnos when adding nodes.
1022         (mark_reg_in_phi): New function.
1023         (mark_phi_and_copy_regs): Likewise.
1024         (convert_from_ssa): Rerun life analysis at top.  
1025         Use coalesced partition.
1026         Check for removing a phi node at the end of the block.
1027         (compute_coalesced_reg_partition): New function.
1028         (coalesce_regs_in_copies): Likewise.
1029         (coalesce_reg_in_phi): Likewise.
1030         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
1031         (for_each_successor_phi): Likewise.
1032         (rename_context): New struct.
1033         (rename_block): Use a rename_context with rename_insn_1.  When
1034         renaming sets of a subreg, emit a copy of the entire reg first.
1035         (rename_insn_1): Treat data as a rename_context *.  Save current
1036         insn in set_data.
1037         (rename_set_data): Add field set_insn.
1038         * Makefile.in (HASHTAB_H): Move up in file.
1039         (OBSTACK_H): New macro.
1040         (collect2.o): Use OBSTACK_H in dependencies.
1041         (sdbout.o): Likewise.
1042         (emit-rtl.o): Likewise.
1043         (simplify-rtx.o): Likewise.
1044         (fix-header.o): Likewise.
1045         (OBJS): Add conflict.o.
1046         (conflict.o): New rule.
1047         * basic-block.h: Include partition.h.
1048         (conflict_graph): New typedef.
1049         (conflict_graph_enum_fn): Likewise.
1050         (conflict_graph_new): New prototype.
1051         (conflict_graph_delete): Likewise.
1052         (conflict_graph_add): Likewise.
1053         (conflict_graph_conflict_p): Likewise.
1054         (conflict_graph_enum): Likewise.
1055         (conflict_graph_merge_regs): Likewise.
1056         (conflict_graph_print): Likewise.
1057         (conflict_graph_compute): Likewise.
1058         * conflict.c: New file.
1059
1060 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
1061
1062         * tlink.c (read_repo_files): Don't look for .rpo info for
1063         linker flags.
1064
1065 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1066
1067         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
1068
1069 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1070
1071         * config/sh/lib1funcs.asm (___udivsi3_i4):
1072         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
1073         only depends on FMOVD_WORKS.
1074
1075 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1076
1077         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
1078         make double constant 8-byte aligned.
1079
1080 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
1081
1082         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
1083         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
1084         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
1085         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
1086         Accept storing GENERAL_REGS into offsetable memory.
1087         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
1088         building a TFmode constant other than 0.0L into GENERAL_REGS.
1089
1090 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
1091
1092         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
1093         
1094 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
1095
1096         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
1097         (macro_cleanup): No need to cast pbuf->macro.
1098         (collect_expansion): Use _cpp_get_define_token.  Goto done if
1099         it returns VSPACE.  Remove check for trailing space after
1100         CPP_COMMENT.
1101         (_cpp_create_definition): Don't diddle flags here.  Return
1102         directly on error.
1103         (unsafe_chars): Handle c1 being EOF.
1104         (push_macro_expansion): Use unsafe_chars for both accidental-paste
1105         checks.  Don't push the buffer till after we're done with
1106         them.
1107         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
1108         (PEEKN, FORWARD, GETC, PEEKC): Use them.
1109         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
1110         appropriately.
1111         (_cpp_parse_assertion): Don't NUL terminate.
1112         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
1113         hspace before calling _cpp_parse_assertion.  Remove all sets
1114         of only_seen_white. Treat '\f' as hspace.  Don't do anything
1115         special with '\n' here.
1116         (maybe_macroexpand): Handle T_EMPTY hash entries without
1117         pushing a buffer at all.
1118         (cpp_get_token): Handle clearing only_seen_white here.  Handle
1119         incrementing the line number here.  Clear
1120         potential_control_macro as well as only_seen_white, if
1121         appropriate.
1122         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
1123         (_cpp_get_define_token): New function, basically like
1124         _cpp_get_directive_token was but doesn't eat horizontal space.
1125         Don't do anything with only_seen_white here.
1126         (_cpp_get_directive_token): Just call _cpp_get_define_token
1127         repeatedly till it returns non-hspace.
1128
1129         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
1130         (conditional_skip, skip_if_group): Return int.
1131         (DIRECTIVE_TABLE): Change origin of all conditional directives
1132         to "COND".
1133         (TRAD_DIRECT_P): New macro.
1134         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
1135         an error for a bogus directive, unless -lang-asm.  Use
1136         TRAD_DIRECT_P. Loop calling handler functions till one returns
1137         zero.
1138         (get_macro_name): Don't diddle flags here.
1139         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
1140         Create T_EMPTY nodes for #define macro /* nothing */.
1141         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
1142         Use hp->name when calling pass_thru_directive.
1143         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
1144         Return the result of conditional_skip and/or skip_if_group.
1145         Don't call _cpp_output_line_command.
1146         (consider_directive_while_skipping): Use _cpp_get_directive_token.
1147         Issue -Wtraditional warnings as appropriate.  Don't complain
1148         about unrecognized directives.  If we are to stop skipping,
1149         return the number of the directive that ended the skip.
1150         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
1151         expansion and line commands while skipping.  Return the result
1152         of consider_directive_while_skipping, if nonzero.
1153         (do_endif): Just set potential_control_macro here.
1154         (validate_else): Use _cpp_get_directive_token.
1155         (do_assert, do_unassert): Don't save pointers into the
1156         token_buffer across calls to the lexer.  Use
1157         _cpp_get_directive_token.  
1158
1159         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a 
1160         pointer, not an offset.  Replace 'data', which was a generic
1161         pointer, with 'macro', which points to a struct hashnode.
1162         (cpp_reader): Add 'potential_control_macro' pointer.
1163         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
1164         (CPP_BUF_GET, CPP_FORWARD): Delete.
1165         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
1166         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
1167         ACTIVE_MARK_P): Update.
1168         (_cpp_get_define_token): New internal function.
1169         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
1170
1171 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
1172
1173         * configure.in: And here.
1174         * configure: Regenerate.
1175         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
1176         --enable-libstdcxx-v3 is passed at configure time.
1177         * config.h.in: Regenerate.
1178
1179 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
1180
1181         * final.c (final): Use xcalloc to allocate line_note_exists.
1182         * function.c (free_after_compilation): Free the temp_slots.
1183         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
1184         (combine_temp_slot): Free temp_slots when they get combined.
1185         (purge_addressof): Fix typo in comment.
1186         * stmt.c (mark_goto_fixup): Mark the fixup itself.
1187         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
1188
1189         * ggc.h: Include varray.h.
1190         (ggc_pending_trees): Declare.
1191         (ggc_mark_tree_children): Remove declaration.
1192         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
1193         * ggc-common.c (ggc_pending_trees): New variable.
1194         (ggc_mark_roots): Call ggc_mark_trees.
1195         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
1196         the ggc_pending_trees.
1197         * Makefile.in (GGC_H): New variable.  Use it throughout in place
1198         of ggc.h.
1199         
1200 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1201
1202         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
1203         GET_MODE_SIZE.
1204
1205 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1206
1207         * sh.c (sh_insn_length_adjustment): New function.
1208         * sh-protos.h (sh_insn_length_adjustment): Declare.
1209         * sh.h (ADJUST_INSN_LENGTH): Use it.
1210
1211 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
1212
1213         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
1214         from the insn where REG_RETVAL is added.
1215         (emit_no_conflict_block): Ditto.
1216
1217         * md.texi (Standard Names): Clarify when movX is needed.
1218
1219         * combine.c (simplify_comparison) [MINUS]: Do not replace
1220         all (op (minus A B) 0) with (op A B).
1221
1222 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
1223                           J"orn Rennecke <amylaar@cygnus.co.uk>
1224
1225         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
1226         (block_lump_real): Likewise.
1227
1228 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
1229
1230         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
1231         remaining non-zero debugging masks.
1232
1233 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
1234
1235         * basic-block.h (verify_flow_info): Declare.
1236         (flow_loop_outside_edge_p): Declare.
1237         * flow.c (verify_flow_info): Remove declaration.
1238         (clear_log_links, flow_loop_outside_edge_p): Likewise.
1239
1240 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
1241
1242         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
1243         not C++ comments.
1244
1245 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
1246
1247         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
1248         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
1249         seqdi_zero_trunc+1): Allow splits only if registers are
1250         different.
1251
1252 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
1253
1254         * acconfig.h: Add HAVE_GAS_HIDDEN.
1255         * config.in: Regenerated.
1256         * configure.in: Add test for .hidden pseudo-op in gas.
1257         * configure: Regenerated.
1258         * crtstuff.c: Include auto-host.h.
1259         Emit additional .hidden pseudo-op for __dso_handle if the
1260         assembler knows about it.
1261
1262 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
1263
1264         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
1265         before freeing argnames.
1266         * cpplib.c (do_ifndef): Cast return value of xstrdup.
1267
1268 2000-04-05  Michael Meissner  <meissner@redhat.com>
1269
1270         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
1271         Walton <jonboy@gordian.com> to make memory references with update
1272         work wtih -mregnames.
1273
1274 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1275
1276         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
1277         (regrename_optimize): Rename variables `def_uses' and
1278         `ext_basic_blocks' to avoid conflicts with similarly named
1279         typedefs in traditional C.
1280
1281         * calls.c (initialize_argument_information): Fix typo in previous
1282         change.
1283
1284 2000-04-04  Richard Henderson  <rth@cygnus.com>
1285
1286         * regrename.c (consider_available): Test fixed_regs not
1287         PIC_OFFSET_TABLE_REGNUM.
1288
1289 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
1290
1291         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
1292         crtend.
1293         (CRTSTUFF_T_CFLAGS_S): Delete definition.
1294         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
1295         (ENDFILE_LINUX_SPEC): Always use crtend.
1296         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
1297         (powerpc-*-linux-gnu): Likewise.
1298         * configure: Regenerate.
1299
1300         * config/rs6000/eabi.h: Don't include sysv4.h.
1301         (MULTILIB_DEFAULTS): Don't define.
1302         * config/rs6000/eabiaix.h: Don't include eabi.h.
1303         * config/rs6000/eabile.h: Delete.
1304         * config/rs6000/eabilesim.h: Delete.
1305         * config/rs6000/eabisim.h: Don't include eabi.h.
1306         * config/rs6000/linux.h: Don't include sysv4.h.
1307         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
1308         (MULTILIB_DEFAULTS): Don't redefine.
1309         * config/rs6000/rtems.h: Don't include eabi.h.
1310         * config/rs6000/sol2.h: Don't include sysv4le.h.
1311         * config/rs6000/sysv4le.h: Don't include sysv4.h.
1312         * config/rs6000/t-ppc: Delete.
1313         * config/rs6000/t-ppcgas: Correct comment.
1314         * config/rs6000/t-ppcos: Correct comment.  Don't build 
1315         multilibs for -fPIC, rather use -fPIC -mstrict-align 
1316         as default.
1317         * config/rs6000/t-ppc: Delete.
1318         * config/rs6000/vxppc.h: Don't include sysv4.h.
1319         * config/rs6000/vxppcle.h: Delete.
1320         * configure.in: Use multiple header files for p2pc ELF targets
1321         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
1322         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
1323         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
1324         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
1325         always available for these platforms.
1326
1327 2000-04-04  Richard Henderson  <rth@cygnus.com>
1328
1329         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
1330
1331 2000-04-04  Stan Cox  <scox@cygnus.com> 
1332
1333         * Makefile.in: Add rules for regrename.o
1334         * regrename.c: New file.
1335         * rtl.h (regrename_optimize): Add prototype.
1336         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
1337         (compile_file, decode_d_option): Add support for -frename-registers.
1338         (rest_of_compilation): Call regrename_optimize.
1339         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
1340         New macros.     
1341         
1342 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1343
1344         * Makefile (gccbug): New target.
1345         (doc): Depend on it.
1346         * gcc.texi (Bugs): Link subnodes.
1347         (gccbug): New node.
1348         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
1349         Document severities, priorities, and classes in bug form.
1350
1351 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
1352
1353         * cpplex.c (trigraph_map, speccase): Combine into single
1354         table, chartab.
1355         (NORMAL, NONTRI): New macros.
1356         (_cpp_read_and_prescan): Change to use unified table.  Use
1357         is_hspace to test for whitespace.
1358
1359         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
1360         definition that doesn't provoke the "empty body in an
1361         if-statement" warning.
1362
1363 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
1364
1365         * builtins.c (expand_builtin_strlen): Force the source to
1366         be a memory address.
1367
1368 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1369
1370         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
1371
1372 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1373
1374         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
1375          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
1376         (ECF_IS_CONST): Rename to ECF_CONST.
1377         (special_function_p): Make static, change interface.
1378         (flags_from_decl_or_type, try_to_integrate): Break out from ...
1379         (expand_call) ... here; convert number of variables to flags.
1380         (emit_library_call_vlue_1): Likewise.
1381         (setjmp_call_p): New function.
1382         (initialize_argument_information): Accepts flags as argument;
1383         return flags.
1384         (precompute_arguments): Likewise.
1385         * tree.h (special_function_p): Remove.
1386         (setjmp_call_p): Add prototype.
1387
1388 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
1389
1390         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
1391         so that addresses are offsetable by up to 16 bytes.
1392         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
1393         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
1394         offsetable.
1395
1396         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
1397         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
1398         (movsf): Don't force any constant to memory if target is integer
1399         hard register.
1400         Move fp_zero_operand check below the const0_rtx check.
1401         (movtf): Likewise. Also allow fp_zero_operand for stores into
1402         memory.
1403         (movdf): Likewise. Also allow fp_zero_operand for stores into
1404         memory and into integer hard registers.
1405         (clear_df, clear_dfp, movdf_const_intreg_sp32,
1406         movdf_const_intreg_sp64): Remove.
1407         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
1408         conditions.
1409         (movdf_no_e_insn_v9_sp32): New pattern.
1410         (movdf_insn_v9only): Remove.
1411         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
1412         (movdf_insn_sp64): Remove.
1413         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
1414         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
1415         (following splits): Rewrite conditions. Add two new splits
1416         for storing 0.0 into memory and registers.
1417         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
1418         (movtf_insn_sp32): Redo constraints and conditions.
1419         (movtf_insn_vis_sp32): New pattern.
1420         (movtf_no_e_insn_sp32): Redo constraints and conditions.
1421         (movtf_insn_hq_sp64): Likewise.
1422         (movtf_insn_hq_vis_sp64): New pattern.
1423         (movtf_insn_sp64): Redo constraints and conditions.
1424         (movtf_insn_vis_sp64): New pattern.
1425         (movtf_no_e_insn_sp64): Redo constraints and conditions.
1426         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
1427         or memory.
1428         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
1429         -mvis or -m64 to take down the number of various reload patterns.
1430
1431 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
1432
1433         * pa/pa-64.h: New file.
1434         * pa/pa64-regs.h: New file.
1435         * pa/pa64-start.h: New file.
1436         * pa/t-pa64: New file.
1437         * pa/xm-pa64hpux.h: New file.
1438
1439 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1440
1441         * sparc.c (output_restore_regs): Prototype.
1442         (sparc_emit_float_lib_cmp): Constification.
1443
1444         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
1445
1446         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
1447         Prototype.
1448
1449         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
1450         (get_value_hash, hash_rtx): Likewise.
1451
1452         * ssa.c (compute_conservative_reg_partition): Prototype.
1453
1454         * tree.c (mark_hash_entry): Prototype.
1455
1456 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
1457
1458         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
1459         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
1460         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
1461
1462         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
1463         * objc/lang-specs.h: Likewise.
1464
1465 2000-04-03  Neil Booth  <NeilB@earthling.net>
1466
1467         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
1468         and SYNTAX_ERROR2. Replace `' in messages with ''.
1469         (op_to_str): Make re-entrant.
1470         (_cpp_parse_expr): Implement new error macros. Use | rather
1471         than || to logically or 2 boolean integers.  Simply expression
1472         checking we have a left operand iff needed.
1473
1474 2000-04-03  Nick Clifton  <nickc@cygnus.com>
1475
1476         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
1477
1478 2000-04-03  Philip Blundell  <philb@gnu.org>
1479
1480         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
1481
1482 2000-04-03  Felix Lee  <flee@cygnus.com>
1483
1484         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
1485         (run_shell): Use it. 
1486
1487 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
1488
1489         * Makefile.in (stmp-int-hdrs): Make include subdir here...
1490         (stmp-fixproto): ...rather than here.
1491
1492 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
1493
1494         * pa.c (print_operand): Compute 'base' only inside the code paths
1495         that use it.
1496
1497 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
1498
1499         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
1500         CEIL_DIV_EXPR.
1501
1502 2000-04-03  Philipp Thomas  <pthomas@suse.de>
1503
1504         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
1505
1506 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
1507
1508         * Makefile.in (alias.o): Depend on $(TREE_H).
1509
1510 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
1511
1512         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
1513         processing C++.
1514         * cpplib.c (_cpp_handle_directive): Improve warnings for
1515         traditional C and indented directives.
1516
1517         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
1518         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
1519         fixinc/inclhack.def: Indent the # of #include_next one space.
1520         * cp/rtti.c: Un-indent #if and #endif.
1521
1522         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
1523         syntax error, but an error has already been printed.
1524         * cpplex.c (_cpp_parse_assertion): Give a more specific error
1525         message when called with nothing remaining on the line.
1526         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
1527         OTHER token, not an ASSERTION.
1528         * cpplib.c (do_assert): When we create a 'base' node, clear
1529         its aschain pointer.
1530
1531 2000-04-02  Neil Booth <NeilB@earthling.net>
1532
1533         * cppexp.c:  New typedef op_t.  struct operation and struct 
1534         token updated to use it.
1535         (op_to_str): New function.
1536         (_cpp_parse_expr): Error messages modified to use op_to_str.
1537
1538 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1539
1540         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
1541         before checking MUST_PASS_IN_STACK.
1542
1543 2000-04-02  Neil Booth <NeilB@earthling.net>
1544
1545         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
1546         flags and initial priority into a single constant.  New
1547         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
1548         (_parse_cpp_expr): Implement new constants.  Take left operand
1549         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
1550         parse indicated by reducing FINISHED token.  Remove new lines
1551         from cpp_error messages.
1552
1553 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
1554
1555         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
1556         permanent obstack.
1557
1558 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
1559
1560         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
1561         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
1562         the strings and function names on the fly.  Take the #sccs
1563         entry out of the table if SCCS_DIRECTIVE is not defined.
1564         (_cpp_handle_directive): Decide if the # was at the beginning
1565         of the line here.  Issue -pedantic warnings for extended
1566         directives here.  Warn about K+R directives with the #
1567         indented, and C89/extended directives with the # not indented,
1568         here.
1569         (do_import, do_include_next, do_warning, do_ident, do_sccs,
1570         do_assert, do_unassert): Don't issue pedantic warning here.
1571
1572         * cpphash.h: Add CPP_WTRADITIONAL macro.
1573         * cpplib.h (struct cpp_options): Rename warn_stringify to
1574         warn_traditional; update comments.
1575         * cppinit.c (handle_option): Set warn_traditional not
1576         warn_stringify.
1577         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
1578         CPP_WTRADITIONAL (pfile).
1579         * cpplex.c (_cpp_lex_token): Don't decide if directives should
1580         be ignored in -traditional mode here.
1581
1582         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
1583         to initialize speccase[] and trigraph_map[].  Delete all
1584         references to pfile->input_speccase.  Always treat '?' as a
1585         special character.  Remove table-initialization code from
1586         _cpp_init_input_buffer.
1587
1588         * cpplib.h (struct cpp_reader): Remove input_speccase field.
1589         * cppinit.c (cpp_cleanup): Don't free input_speccase.
1590
1591 2000-04-01  Richard Henderson  <rth@cygnus.com>
1592
1593         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
1594         (mostlyclean): Likewise.
1595
1596         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
1597         (struct dump_file_info, enum dump_file_index, dump_file): New.
1598         (open_dump_file): Take a dump_file_index not a suffix, and a decl
1599         not a string.  Clean out file if we havn't yet done so.  Do nothing
1600         if the dump isn't enabled.
1601         (close_dump_file): Do nothing if the dump isn't open.  Dump 
1602         graph data if requested.
1603         (dump_rtl, clean_dump_file): Remove.
1604         (compile_file): Don't clean the dump files.  Only finalize .bp dump
1605         if flag_test_coverage or flag_branch_probabilities.  Only finalize
1606         .combine dump if optimizing.  Iterate over dump_file to finalize the
1607         graph dumps.
1608         (rest_of_compilation): Update for open_dump_file/close_dump_file.
1609         Convert all uses of dump_rtl.
1610         (decode_d_option): Iterate over dump_file to implement 'a' and to
1611         locate pass-specific dumps.
1612
1613 2000-04-01  Neil Booth <NeilB@earthling.net>
1614
1615         * cppexp.c: Redefine priority constants.
1616         (_cpp_parse_expr): Replace left and right priority scheme with
1617         single priority logic.  Move LOGICAL to same place as COMPARE.
1618         Remove bogus check for multiple unary +/- operators.
1619
1620 2000-04-01  Neil Booth <NeilB@earthling.net>
1621
1622         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
1623         within the switch statement.  Binary operations break out of
1624         the switch naturally.  '(' tokens handled by forcing
1625         immediate shift.  ')' handled by forcing immediate reduce to
1626         the previous '('.  New error messages.
1627         
1628 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
1629
1630         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
1631         part', it's already in use.  Use %K instead.  Add a return at the
1632         end of what is now %K.
1633         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. 
1634
1635 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1636
1637         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
1638         allocate_dynamic_stack_space.
1639         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
1640         update stack_pointer_delta; do not update arg_size_so_far.
1641         (compute_argument_block_size): Use stack_delta instead of
1642         stack_pointer_pending and arg_size_so_far.
1643         (expand_call): Add sanity checking for stack_pointer_delta;
1644         save and restore stack_pointer_delta for SIB, use
1645         stack_pointer_delta for alignment; do not update arg_space_so_far.
1646         (emit_library_call_value): Use stack_pointer_delta for alignment.
1647         (store_one_arg): Do not update arg_space_so_far.
1648         * explow.c (adjust_stack, anti_adjust_stack): Update
1649         stack_pointer_delta.
1650         (allocate_dynamic_stack_space): Add sanity checking for
1651         stack_pointer_delta.
1652         * expr.c (init_expr, clear_pending_stack_adjust): Clear
1653         stack_pointer_delta.
1654         (emit_push_insn): Update stack_pointer_delta.
1655         * function.h (struct expr_status): Add x_stack_pointer_delta;
1656         remove x_arg_space_so_far.
1657         (arg_space_so_far): Remove.
1658         (stack_pointer_delta): New macro.
1659
1660 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
1661
1662         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
1663         Reorder struct cpp_options and struct cpp_reader for better 
1664         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
1665         takes two args.  Change all 'char' flags to 'unsigned char'.
1666         Move show_column flag into struct cpp_options.  Don't
1667         prototype cpp_options_init.
1668         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
1669         cppinit.c, cpplex.c, cpplib.c:
1670         Replace CPP_OPTIONS (pfile)->whatever with
1671         CPP_OPTION (pfile, whatever), and likewise for
1672         opts = CPP_OPTIONS (pfile); ... opts->whatever;
1673
1674         * cppinit.c (merge_include_chains): Take a cpp_reader *.
1675         Extract CPP_OPTION (pfile, pending) and work with that
1676         directly.
1677         (cpp_options_init): Delete.
1678         (cpp_reader_init): Turn on on-by-default options here.
1679         Allocate the pending structure here.              
1680         (cl_options, enum opt_code): Define these from the same table,
1681         kept in a large macro.  Add -fshow-column and -fno-show-column
1682         options.
1683
1684         * cpperror.c (v_message): If show_column is off, don't print
1685         the column number.
1686
1687         * cppmain.c: Update for new interface.
1688         * fix-header.c: Likewise.
1689
1690 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
1691
1692         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
1693         definition.
1694         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
1695         are passed to any invocation of AR_FOR_TARGET.
1696         (AR_CREATE_FOR_TARGET): New macro.
1697         (AR_EXTRACT_FOR_TARGET): New macro.
1698         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
1699         AR_EXTRACT_FOR_TARGET.
1700         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
1701         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
1702         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
1703         AR_EXTRACT_FOR_TARGET to sub-makes.
1704
1705 2000-03-31  Neil Booth <NeilB@earthling.net>
1706
1707         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
1708         PAREN_INNER_PRIO.
1709         (_cpp_parse_expr): Check for multiple unary +/- operators.
1710         Correct priorities of ':' and '?'.  Treat ')' as having a
1711         value.  Ensure conditional expression is not void.
1712         
1713 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
1714
1715         * alias.c (canon_rtx): Make it global.
1716         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
1717         equality.
1718         * cse.c (struct table_elt): Add canon_exp.
1719         (insert): Clear it.
1720         (invalidate): Canonicalize expressions only once.
1721         * rtl.h (canon_rtx): Declare.
1722
1723 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
1724
1725         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
1726         * alias.c (reg_known_value): Add comments.
1727         (init_alias_analysis): Likewise.
1728         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
1729         address.
1730         (cse_basic_block): Fix typo in comment.
1731         * emit-rtl.c: Include hashtab.h.
1732         (const_int_htab): New variable.
1733         (const_int_htab_hash): New function.
1734         (const_int_htab_eq): Likewise.
1735         (rtx_htab_mark_1): Likewise.
1736         (rtx_htab_mark): Likewise.
1737         (gen_rtx_CONST_INT): Cache all CONST_INTs.
1738         (unshare_all_rtx): Fix formatting.
1739         (init_emit_once): Initialize const_int_htab.
1740         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
1741         address.
1742         * rtl.texi: Document the fact that all CONST_INTs with the same
1743         value are shared.
1744
1745 2000-03-30  Richard Henderson  <rth@cygnus.com>
1746
1747         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
1748
1749 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
1750
1751         * configure.in: Comment out --enable-c-cpplib stanza.
1752         * configure: Regenerate.
1753
1754 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1755
1756         * expr.c (store_constructor): Properly compute displacement and
1757         alignment when offset is variable.
1758
1759         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
1760         cases of alignment in bytes.
1761
1762 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
1763
1764         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
1765         since it is used to generate c-parse.y.
1766         * objc-parse.c, objc-parse.y: Regenerated.
1767
1768         * function.c (expand_function_end): Pass alignment argument to
1769         emit_block_move in bits, not bytes.
1770
1771 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1772
1773         * expr.c (move_by_pieces_ninsns): Fix one more missing align
1774         correction.
1775
1776         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
1777
1778         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
1779         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
1780         * function.c (assign_parms): Likewise.
1781         * integrate.c (expand_inline_function): Likewise.
1782         * stmt.c (expand_decl): Likewise.
1783         (copy_rtx_and_substitute): Likewise.
1784         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
1785         (clear_by_pieces): Fix error in last change.
1786         * emit-rtl.c (init_emit): Set known registers alignment in bits.
1787         * function.h (regno_pointer_align): Now unsigned.
1788         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
1789         is in bits.
1790         * config/i386/i386.c (aligned_operand): Likewise.
1791         * config/sparc/sparc.c (mem_min_alignment): Likewise.
1792         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
1793         (unaligned_memory_operand): Likewise.
1794         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
1795         Also make alignments and sizes unsigned and some whitespace cleanup.
1796         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
1797
1798         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
1799         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
1800         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
1801         (expand_builtin_memset): Likewise, but to clear_storage.
1802         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
1803         (restore_fixed_argument_area): Likewise.
1804         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
1805         (load_register_parameters): Likewise, to emit_group_load.
1806         (expand_call): Likewise, to emit_group_store and emit_block_move.
1807         (emit_library_call_value_1): Likewise, to emit_block_move.
1808         (store_one_arg): Likewise, and to emit_push_insn.
1809         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
1810         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
1811         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
1812         (emit_block_move, emit_group_load, emit_group_store): Likewise.
1813         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
1814         (expand_assigment, store_expr, store_constructor_field): Likewise.
1815         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
1816         (store_constructor, store_field, get_inner_reference): Likewise.
1817         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
1818         (expand_expr, case COMPONENT_REF): Likewise.
1819         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
1820         and positions; reindent code.
1821         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
1822         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
1823         (assign_parms): Likewise to emit_group_store.
1824         * optabs.c (prepare_cmp_insn): Alignment is in bits.
1825         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
1826         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
1827         (expand_return): Likewise to {extract,store}_bit_field.
1828         * stor-layout.c (get_mode_alignment): Minor cleanup.
1829         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
1830         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
1831         
1832 2000-03-29  Nick Clifton  <nickc@cygnus.com>
1833
1834         * config/arm/arm.h: Undo effects of previous delta:
1835         (ASM_SPEC): Do not define.
1836         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
1837
1838         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
1839         typo. 
1840
1841 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
1842
1843         * cppinit.c (cpp_start_read): Call initialize_dependency_output
1844         only after reading in the primary source file.
1845
1846 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
1847
1848         * c-common.c (c_common_nodes_and_builtins): The first parameter to
1849         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
1850         or a reference to a va_list.
1851         * builtins.c (stabilize_va_list): Simplify now we don't have to
1852         work around C array address decay.
1853         * c-typeck.c (convert_for_assignment): Handle assignment to
1854         a reference parameter by taking the address of the RHS.
1855         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
1856         (va_copy): Likewise.
1857         (__va_copy): Likewise.
1858         * ginclude/varargs.h (va_start): Likewise.
1859         (__va_copy): Likewise.
1860
1861 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
1862
1863         * i386/djgpp.h: Remove extraneous "+".
1864
1865         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
1866
1867         * calls.c (expand_call): Fix typo in last change.
1868
1869 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
1870
1871         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
1872         been expanded.
1873
1874 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1875
1876         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
1877         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
1878         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
1879         * tree.c (bit_position, byte_position): Likewise.
1880         * tree.h: Declare new functions.
1881
1882 2000-03-29  Nick Clifton  <nickc@cygnus.com>
1883
1884         * config/arm/arm.c: Minor formatting changes/
1885         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
1886         already defined.
1887         (ASM_SPEC): Define if not already defined.
1888
1889 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
1890
1891         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
1892         _cpp_calc_hash.
1893
1894 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
1895
1896         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
1897         value, don't output it as unsigned.
1898
1899 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
1900
1901         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
1902
1903 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1904
1905         * c-common.c (c_common_nodes_and_builtins): Don't special case
1906         cplus_mode when declaring builtin bzero/bcmp, always avoid
1907         prototype arguments.
1908
1909 2000-03-29  Bruce Korb  <bkorb@gnu.org>
1910
1911         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
1912         to a non-file
1913
1914 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1915
1916         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
1917         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
1918         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
1919         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
1920         (save_fixed_argument_area, restore_fixed_argument_area):
1921         conditionize by #ifdef REG_PARM_STACK_SPACE only.
1922         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
1923         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
1924         (precompute_register_parameters): Avoid #ifdefs on
1925         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
1926         (stire_one_args): Likewise.
1927         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
1928         (emit_library_call_value_1): Likewise.
1929         (compute_argument_block_size): Align to STACK_BOUNDARY only for
1930         ACCUMULATE_OUTGOING_ARGS.
1931         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
1932         value.
1933         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
1934         (use_crosses_set_p): Likewise.
1935         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
1936         #define ACCUMULATE_OUTGOING_ARGS 1.
1937         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
1938         frames.
1939         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
1940         constants.
1941         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
1942         (TARGET_SWITCHES): Add push-args, no-push-args,
1943         accumulate-outgoing-args and no-accumulate-outgoing-args.
1944         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
1945         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
1946         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
1947         and PUSH_ROUNDING.
1948         (emit_push_insn): Likewise.
1949         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
1950         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
1951         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
1952         (STACK_DYNAMIC_OFFSET): Define correctly for both
1953         ACCUMULATE_OUTGOING_ARGS and normal mode.
1954         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
1955         * tm.texi (PUSH_ARGS): Document.
1956         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
1957
1958 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1959
1960         * flags.h (flag_optimize_sibling_calls): Declare.
1961         * calls.c (expand_call): Fail sibcall when
1962         !flag_optimize_sibling_calls
1963         * invoke.texi (flag_optimize_sibling_calls): Document.
1964         * toplev.c (flag_optimize_sibling_calls): New global variable.
1965         (f_options): Add flag_optimize_sibling_calls.
1966         (rest_of_compilation): Conditionize
1967         optimize_sibling_and_tail_recursive_calls by
1968         flag_optimize_sibling_calls.
1969         (main): Set flag_optimize_sibling_calls for -O2.
1970         * stmt.c (expand_return): Conditionize tail recursion by
1971         flag_optimize_sibling_calls.
1972
1973 2000-03-29  Richard Henderson  <rth@cygnus.com>
1974
1975         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
1976         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
1977
1978 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
1979
1980         * except.c (add_eh_table_entry): Mark type_info's as referenced.        
1981
1982 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1983
1984         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
1985         is given.
1986         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
1987         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
1988         * config/rs6000/aix.h: then modified likewise.
1989
1990 2000-03-28  Richard Henderson  <rth@cygnus.com>
1991
1992         * rtl.h: Redistribute enum reg_note documentation. 
1993         Kill trailing whitespace.
1994         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
1995         Kill trailing whitespace.
1996
1997 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
1998
1999         * cppfiles.c (hash_IHASH): Just return i->hash.
2000         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
2001         htab_find_with_hash.
2002         (cpp_read_file): Likewise.
2003         (find_include_file): Likewise.  Properly initialize
2004         ih->nshort.  Share ih->name and ih->nshort if possible.
2005         * cpphash.c (_cpp_calc_hash): New function.
2006         (hash_HASHNODE): Just return h->hash.
2007         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
2008         htab_find_with_hash.
2009         * cpphash.h: Prototype _cpp_calc_hash.
2010         * cppinit.c (initialize_builtins): Provide a valid hash
2011         to _cpp_make_hashnode, using _cpp_calc_hash.
2012
2013         * cpphash.c (collect_expansion): # is not a special character
2014         in object-like macros.  In -traditional mode, /**/ is not
2015         token paste at the beginning or end of the line.
2016         * cpplib.c (do_include, do_import, do_include_next): If
2017         parse_include fails, return immediately.
2018
2019 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
2020
2021         * config/arm/arm.md (return peepholes): Update to reflect the new
2022         call insn patterns.
2023         * config/arm/arm.c (arm_volatile_func): Also check
2024         current_function_nothrow.
2025         (output_return_instruction, output_func_prologue): Use it.
2026         (arm_output_epilogue, arm_expand_prologue): Likewise.
2027
2028 2000-03-27  Tom Tromey  <tromey@cygnus.com>
2029
2030         * gcc.c (handle_braces): In {x*...} case, break out of loop if
2031         switch is found.
2032
2033 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2034
2035         * expr.c (store_constructor): SIZE now signed.
2036         For EXPR_SIZE, don't evaluate size; just needed if constant.
2037         * fold-const.c (fold): Fix a number of cases when folded tree is
2038         wrong type.
2039         * function.c (flush_addressof): Reenable.
2040         * tree.h (flush_addressof): Likewise.
2041         * toplev.c (independent_decode_option): Look at strings_processed.
2042         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
2043
2044 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
2045
2046         * sibcall.c (indentify_call_return_value): Find last call in the chain;
2047         Allow stack adjustment after function call.
2048
2049         * regmove.c (struct csa_memlist): Make mem field rtx *.
2050         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
2051         (try_apply_stack_adjustment): Replace whole MEM rtx.
2052         (combine_stack_adjustments_for_block): Update calls
2053         to record_one_stack_ref.
2054
2055 2000-03-28  Neil Booth  <NeilB@earthling.net>
2056
2057         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
2058         '\\' rather than a null character, so nulls are not special.  Fix
2059         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
2060         speed trigraph conversion.
2061         (_cpp_init_input_buffer): Initialize trigraph map.
2062
2063 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
2064
2065         * config/i386/i386.c (output_387_binary_op): Correct intel
2066         mode assembly output, and add spaces after commas in AT&T
2067         output.  Correct Unixware assembler comment.  Document input
2068         constraints.  Comment fp operations.  Reduce profligate buffer
2069         size.  Remove extraneous abort.  Localize temp var.
2070         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
2071         (output_fix_trunc): Add spaces after commas in assembly output.
2072
2073 2000-03-27  Richard Henderson  <rth@cygnus.com>
2074
2075         * i386-protos.h (ix86_match_ccmode): Declare.
2076         * i386.c (ix86_match_ccmode): New.
2077         (ix86_expand_fp_compare): Update for pattern renames.
2078         (ix86_expand_strlensi_unroll_1): Likewise.
2079         * i386.h (EXTRA_CC_MODES): Add CCZ.
2080         (SELECT_CC_MODE): Use it for EQ/NE zero.
2081         * i386.md (cmpsi_ccz_1): New.
2082         (cmpqi_ccz_1): New.
2083         (*testsi_ccz_1): New.
2084         (testqi_ccz_1): New.
2085         (cmpsi_ccno_1): Rename from cmpsi_0.
2086         (testsi_ccno_1): Rename from testsi_1.
2087         (testqi_ccno_1): Rename from testqi_1.
2088         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
2089         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
2090         (*cmphi_0): Use ix86_match_ccmode.
2091         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
2092         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
2093         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
2094         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
2095         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
2096         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
2097         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
2098         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
2099         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
2100         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
2101         (appropriate peepholes): Likewise.
2102         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
2103         (*subsi_3, *subhi_3, *subqi_3): Remove.
2104         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
2105         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
2106         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
2107         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
2108         (x86_shift_adj_1): Use CCZ.
2109         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
2110
2111 2000-03-27  Stan Cox  <scox@cygnus.com> 
2112
2113         * resource.h (mark_resource_type): New.
2114         * resource.c (find_dead_or_set_registers, mark_target_live_regs, 
2115         find_free_register): Use mark_resource_type.
2116         (mark_set_resources): Change include_delayed_effects
2117         to mark_resource_type.
2118         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, 
2119         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): 
2120         Use mark_resource_type.
2121         
2122 2000-03-27  Richard Henderson  <rth@cygnus.com>
2123
2124         * i386.md (call_pop_0, call_value_pop_0): New.
2125         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
2126         (call_value_pop_1): Likewise.
2127         (call_0, call_value_0): New.
2128         (call_1, call_value_1): Remove constraint from unused arg.
2129
2130 2000-03-27  Nick Clifton  <nickc@cygnus.com>
2131
2132         * invoke.texi (Spec Files): Document new spec % command created by
2133         Tom Tromey's recent patch.
2134
2135 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
2136
2137         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
2138         if not defined.
2139
2140 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2141
2142         * expr.c (expand_assignment): Fix typo in last change.
2143
2144         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
2145
2146 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2147
2148         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
2149         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
2150         and DECL_INLINE if FUNCTION_DECL.
2151         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
2152         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
2153         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
2154         (combine_parm_decls): Likewise.
2155         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
2156         * print-tree.c (print_node): Likewise.
2157         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
2158         DECL_TRANSPARENT_UNION on proper decl types.
2159         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
2160         * stor-layout.c (layout_decl): Only check DECL_PACKED and
2161         DECL_BIT_FIELD of FIELD_DECL.
2162         * tree.h (DECL_RESULT_FLD): New macro.
2163         
2164         * expr.c (expand_assignment): Add code to handle variable-sized
2165         BLKmode case.
2166
2167 2000-03-26  Richard Henderson  <rth@cygnus.com>
2168
2169         * calls.c (expand_call): Pass parms not original exp to
2170         optimize_tail_recursion.  Mind return value instead of looking
2171         for a barrier.
2172         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
2173         call_expr.  Move checks for call_expr and current_function_decl ...
2174         (expand_return): ... here.
2175
2176 2000-03-26  Tom Tromey  <tromey@cygnus.com>
2177
2178         * gcc.c (handle_braces): Recognize `%{<S}' construct.
2179         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
2180         defines.
2181         (process_command): Use them.
2182         (check_live_switch): Likewise.
2183         (give_switch): Skip ignored switches.
2184
2185 2000-03-26  Jan Hubicka  <jh@suse.cz>
2186
2187         * jump.c (jump_optimize_1): Fix typo in elide optimizations
2188         for minimal jump pass test.
2189
2190 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
2191
2192         * integrate.c (function_cannot_inline_p): Do inline functions that
2193         return `void'.
2194
2195 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2196
2197         * stor-layout.c (layout_type, set_sizetype): early_type_list is
2198         now a list of TREE_LIST entries, not types.
2199         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
2200
2201         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
2202         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
2203         int_bit_position.
2204         * config/mips/mips.c (function_arg): Likewise; also remove cast
2205         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
2206         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
2207         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
2208         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
2209         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
2210         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
2211         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
2212         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
2213         num_adjusts now unsigned.
2214         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
2215         * config/sparc/sparc.c (struct function_arg_record_value_parms):
2216         NREGS now unsigned.
2217         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
2218         as is BITPOS variable; use host_integerp and int_bit_position.
2219         (function_arg_record_value_2): Likewise.
2220         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
2221         Variable REGNO now unsigned.
2222         (function_arg_record_value): NREGS now unsigned.
2223
2224 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
2225
2226         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
2227
2228 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2229
2230         * Rework fields used to describe positions of bitfields and
2231         modify sizes to be unsigned and use HOST_WIDE_INT.
2232         * alias.c (reg_known_value_size): Now unsigned.
2233         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
2234         (really_start_incremental_init): Use bitsize_zero_node.
2235         (push_init_level, pop_init_level, output_init_element): Likewise.
2236         Use bitsize_unit_node and bitsize_one_node.
2237         (output_pending_init_elements, process_init_element): Likewise.
2238         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
2239         (make_extraction): Position and length HOST_WIDE_INT and unsigned
2240         HOST_WIDE_INT, respectively.
2241         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
2242         (num_sign_bit_copies): Returns unsigned.
2243         BITWIDTH now unsigned; rework arithmetic.
2244         Remove recursive call from arg to MAX.
2245         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
2246         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
2247         REGNO now unsigned.
2248         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
2249         (find_split_point, expand_compound_operation, make_extraction): LEN
2250         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
2251         (make_field_assignment): Likewise.
2252         (combine_simplify_rtx): Add cast.
2253         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
2254         (force_to_mode): WIDTH now unsigned; add cast.
2255         (if_then_else_cond): SIZE now unsigned.
2256         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
2257         (extended_count): Now returns unsigned.
2258         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
2259         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
2260         (simplify_comparison): MODE_WIDTH now unsigned.
2261         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
2262         (mark_used_regs_combine): Likewise; rework arithmetic.
2263         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
2264         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
2265         (record_promoted_value): REGNO now unsigned.
2266         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
2267         (get_last_value): REGNO now unsigned.
2268         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
2269         (reg_dead_regno, reg_dead_endregno): Now unsigned.
2270         (remove_death): Arg REGNO now unsigned.
2271         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
2272         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
2273         now unsigned.
2274         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
2275         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
2276         (struct cse_reg_info): REGNO now unsigned.
2277         (cached_regno): Now unsigned.
2278         (REGNO_QTY_VALID_P): Add cast.
2279         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
2280         (remove_invalid_regs): Likewise.
2281         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
2282         as are variables END and I.
2283         (get_cse_reg_info, insert): Likewise.
2284         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
2285         (canon_hash): Likewise.
2286         (insert_regs, lookup_for_remove): REGNO now unsigned.
2287         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
2288         New variable RN.
2289         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
2290         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
2291         * emit-rtl.c (subreg_realpart_p): Add cast.
2292         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
2293         (operand_subword_force): Arg I is now unsigned.
2294         * except.c (eh_regs): Variable I is now unsigned.
2295         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
2296         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
2297         length is unsigned HOST_WIDE_INT; likewise for internal variables.
2298         (store_split_bit_field, extract_fixed_bit_field): Likewise.
2299         (extract_split_bit_field, store_bit_field, extract_bit_field):
2300         Likewise.
2301         * expr.c (store_constructor_fields, store_constructor, store_field):
2302         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
2303         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
2304         (do_jump): Likewise.
2305         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
2306         MAX_SIZE is now unsigned.
2307         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
2308         (emit_group_store): Likewise.
2309         (emit_move_insn): I now unsigned.
2310         (store_constructor): Use host_integerp, tree_low_cst, and
2311         bitsize_unit_node.
2312         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
2313         Rework all calculations to use trees and new fields.
2314         * expr.h (promoted_input_arg): Regno now unsigned.
2315         (store_bit_field, extract_bit_field): Adjust types of pos and size.
2316         (mark_seen_cases): Arg is HOST_WIDE_INT.
2317         * flow.c (verify_wide_reg_1): REGNO now unsigned.
2318         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
2319         precisions and alignments are unsigned.
2320         (optimize_bit_field_compare, fold_truthop): Likewise.
2321         (int_const_binop): Adjust threshold for size_int_type_wide call.
2322         (fold_convert): Likewise.
2323         (size_int_type_wide): Make table larger and fix thinko that only
2324         had half of table used.
2325         (all_ones_mask_p, fold): Precisions are unsigned.
2326         * function.c (put_reg_info_stack): REGNO is unsigned.
2327         (instantiate_decl): Size is HOST_WIDE_INT.
2328         (instantiate_virtual_regs): I is unsigned.
2329         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
2330         (promoted_input_arg): REGNO is unsigned.
2331         * function.h (struct function): x_max_parm_reg is now unsigned.
2332         * gcse.c (max_gcse_regno): Now unsigned.
2333         (struct null_pointer_info): min_reg and max_reg now unsigned.
2334         (lookup_set, next_set): REGNO arg now unsigned.
2335         (compute_hash_table): REGNO and I now unsigned.
2336         (handle_avail_expr): regnum_for_replacing now unsigned.
2337         (cprop_insn): REGNO now unsigned.
2338         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
2339         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
2340         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
2341         * hard-reg-set.h (reg_class_size): Now unsigned.
2342         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
2343         * jump.c (mark_modified_reg): I now unsigned; add cast.
2344         (rtx_equal_for_thread_p): Add cast.
2345         * loop.c (max_reg_before_loop): Now unsigned.
2346         (struct_movable): REGNO now unsigned.
2347         (try_copy_prop): REGNO arg unsigned.
2348         (regs_match_p): XN and YN now unsigned.
2349         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
2350         (strength_reduce): Likewise; NREGS also unsigned.
2351         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
2352         * loop.h (struct iv_class): REGNO now unsigned.
2353         (max_reg_before_loop, first_increment_giv, last_increment_giv):
2354         Now unsigned.
2355         * machmode.h (mode_size, mode_unit_size): Now unsigned.
2356         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
2357         * optabs.c (expand_binop): I and NWORDS now unsigned.
2358         (expand_unop): I now unsigned.
2359         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
2360         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
2361         * real.c (significand_size): Now returns unsigned.
2362         * real.h (significand_size): Likewise.
2363         * regclass.c (reg_class_size): Now unsigned.
2364         (choose_hard_reg_mode): Both operands now unsigned.
2365         (record_reg_classes): REGNO and NR now unsigned.
2366         (reg_scan): NREGS now unsigned.
2367         (reg_scan_update): old_max_regno now unsigned.
2368         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
2369         * reload.c (find_valid_class): BEST_SIZE now unsigned.
2370         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
2371         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
2372         Likewise for variable R.
2373         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
2374         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
2375         (find_equiv_reg): Add casts.
2376         (regno_clobbered_p): Arg REGNO now unsigned.
2377         * reload.h (struct reload): NREGS now unsigned.
2378         (refers_to_regno_for_reload_p): Regno args are unsigned.
2379         (regno_clobbered_p): Likewise.
2380         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
2381         (compute_use_by_pseudos): REGNO now unsigned.
2382         (find_reg): I and J now unsigned, new variable K, and change loop
2383         variables accordingly; THIS_NREGS now unsigned.
2384         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
2385         (spill_hard_reg): REGNO arg now unsigned; add casts.
2386         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
2387         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
2388         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
2389         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
2390         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
2391         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
2392         (emit_reload_insns): REGNO now unsigned.
2393         (reload_cse_move2add): Add cast.
2394         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
2395         and rework loop.
2396         * resource.c (mark_referenced_resources, mark_set_resources): New
2397         variable R; REGNO and LAST_REGNO now unsigned.
2398         (mark_target_live_regs): J and REGNO now unsigned.
2399         * rtl.c (mode_size, mode_unit_size): Now unsigned.
2400         * rtl.h (union rtunion_def): New field rtuint.
2401         (XCUINT): New macro.
2402         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
2403         (operand_subword, operand_subword_force): Word number is unsigned.
2404         (choose_hard_reg_mode): Operands are unsigned.
2405         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
2406         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
2407         (regno_use_in, combine_instructions, remove_death): Likewise.
2408         (reg_scan, reg_scan_update): Likewise.
2409         (extended_count): Return is unsigned.
2410         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
2411         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
2412         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
2413         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
2414         (reg_reg_last_1): FIRS and LAST now unsigned.
2415         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
2416         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
2417         now unsigned.
2418         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
2419         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
2420         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
2421         (replace_regs): Arg NREGS now unsigned.
2422         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
2423         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
2424         (simplify_binary_operation): Likewise.
2425         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
2426         THIS_LAST now unsigned.
2427         (cselib_record_set): Add cast.
2428         * ssa.c (ssa_max_reg_num): Now unsigned.
2429         (rename_block): REGNO now unsigned.
2430         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
2431         sizes now unsigned.
2432         (all_cases_count): Just return -1 not -2.
2433         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
2434         Rework tests to use trees whenever possible.
2435         Use host_integerp and tree_low_cst.
2436         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
2437         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
2438         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
2439         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
2440         (smallest_mode_for_size): Likewise.
2441         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
2442         KNOWN_ALIGN is now an alignment, so simplify code.
2443         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
2444         (start_record_layout): Renamed from new_record_layout_info.
2445         Update to new fields.
2446         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
2447         New functions.
2448         (place_union_field): Renamed from layout_union_field.
2449         Update to use new fields in rli.
2450         (place_field): Renamed from layout_field.
2451         Major rewrite to use new fields in rli; pass alignment to layout_decl.
2452         (finalize_record_size): Rework to use new fields in rli and handle
2453         union.
2454         (compute_record_mode): Rework to simplify and to use new DECL fields.
2455         (finalize_type_size): Make rounding more consistent.
2456         (finish_union_layout): Deleted.
2457         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
2458         (layout_type, case RECORD_TYPE): Call new function names.
2459         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
2460         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
2461         (get_best_mode): UNIT is now unsigned; remove casts.
2462         * tree.c (bit_position): Compute from new fields.
2463         (byte_position, int_byte_position): New functions.
2464         (print_type_hash_statistics): Cast to remove warning.
2465         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
2466         (build_index_type): Likewise; make subtype of sizetype.
2467         (build_index_2_type): Pass sizetype to build_range_type.
2468         (build_common_tree_nodes): Use size_int and bitsize_int to
2469         initialize nodes; add bitsize_{zero,one,unit}_node.
2470         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
2471         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
2472         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
2473         (DECL_FIELD_BITPOS): Deleted.
2474         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
2475         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
2476         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
2477         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
2478         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
2479         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
2480         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
2481         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
2482         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
2483         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
2484         (DECL_ALIGN): Adjust to new field in union.
2485         (DECL_OFFSET_ALIGN): New field.
2486         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
2487         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
2488         (union tree_decl): Add struct for both aligns.
2489         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
2490         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
2491         (struct record_layout_info): Rework fields to have offset
2492         alignment and byte and bit position.
2493         (start_record_layout, place_field): Renamed from old names.
2494         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
2495         (byte_position, int_byte_position): Likewise.
2496         (get_inner_reference): Change types of position and length.
2497         * unroll.c (unroll_loop): New variable R; use for some loops.
2498         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
2499         (calculate_giv_inc): Arg REGNO now unsigned.
2500         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
2501         * varasm.c (assemble_variable): Clean up handling of size using
2502         host_integerp and tree_low_cst.
2503         (decode_addr_const): Use byte, not bit, position.
2504         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
2505         use tree_low_cst and int_bit_position.
2506         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
2507         
2508 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
2509
2510         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
2511         (reorder_block_def): New members eff_head and eff_end.
2512         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
2513         (verify_insn_chain): New function.
2514         (skip_insns_between_block): Add code to skip deleted insns.
2515         Check for note before using.
2516         (chain_reorder_blocks): Replace calls to skip_insns_between_block
2517         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
2518         Check for note before using.
2519         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
2520         (fixup_reorder_chain): Restructure, clean up, defect removal.
2521         (reorder_basic_blocks): Remove last_insn and references to it.
2522         Moved insn chain verification code into a new function (see above).
2523         Delete defective code that sets last insn.
2524         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
2525         all blocks.
2526
2527 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2528
2529         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
2530
2531 2000-03-24  Richard Henderson  <rth@cygnus.com>
2532
2533         * tree.c (lang_safe_for_unsave): Remove.
2534         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
2535         allowing for two levels of unsafeness.  Remove lang hook.
2536         * tree.h: Update declarations.
2537         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
2538         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
2539         Always fail sibcalls when there are pending cleanups.
2540
2541 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
2542
2543         * flow.c (propagate_block): When we delete an ADDR_VEC,
2544         also delete the BARRIER following it if there is one.
2545
2546 2000-03-24  Richard Henderson  <rth@cygnus.com>
2547
2548         * builtins.c (expand_builtin_bzero): Convert `length' argument
2549         to sizetype.
2550
2551 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
2552
2553         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
2554         comparison if regno's are equal.
2555         * calls.c (initialize_argument_informat): Add ecf_flags argument.
2556         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
2557         (expand_call): Update caller.
2558         Avoid making a sibling call if argument size of the callee is larger
2559         than argument size of the caller.
2560         Call hard_function_value with outgoing set if in sibcall pass.
2561         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
2562
2563         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
2564         Change LEAF_REGISTERS from an array initializer to actual array
2565         identifier. Move static global variable into the function.
2566         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
2567         sequences for leaf functions.
2568         * global.c (global_alloc): Likewise.
2569         * tm.texi (LEAF_REGISTERS): Update documentation.
2570
2571         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
2572         TARGET_FLAT leaf disabling hack.
2573         (LEAF_REGISTERS): Changed from an array initializer to actual array
2574         identifier to avoid duplication and remove the above hack.
2575         (FUNCTION_OK_FOR_SIBCALL): Define.
2576         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
2577         always like call attribute.
2578         (eligible_for_sibcall_delay): New attribute.
2579         (sibcall): New delay type.
2580         (sibcall, sibcall_value, sibcall_epilogue): New expands.
2581         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
2582         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
2583         * config/sparc/sparc.c (sparc_leaf_regs): New array.
2584         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
2585         New functions.
2586         (output_function_epilogue): Move part of the code into
2587         output_restore_regs.
2588         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
2589         TYPE_SIBCALL.
2590         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
2591         prototypes.
2592
2593         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
2594         until infrastructure is finished.
2595
2596 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
2597
2598         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
2599         (save_parm_insns): Not here.
2600
2601 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2602
2603         * builtins.c (expand_builtin_bzero): New function.
2604         (expand_builtin): Handle bzero.
2605
2606         * builtins.def: Add BUILT_IN_BZERO.
2607
2608         * c-common.c (c_common_nodes_and_builtins): Provide builtin
2609         prototype & function for bzero.
2610
2611 2000-03-23  Michael Meissner  <meissner@redhat.com>
2612
2613         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
2614         change adding TARGET_FP to the TF floating point insns, except for
2615         trunctfsf2, which generates direct calls to truncdfsf2.
2616
2617 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
2618
2619         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
2620         try to protect against middle-end changes that break binary
2621         compatibility.
2622         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
2623
2624 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2625
2626         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
2627
2628 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2629
2630         * calls.c (expand_call): If TARGET is passed by reference and
2631         is readonly, write a CLOBBER.
2632
2633 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2634
2635         * builtins.c (expand_builtin): Handle bcmp.
2636
2637         * builtins.def: Add BUILT_IN_BCMP.
2638
2639         * c-common.c (c_common_nodes_and_builtins): Provide builtin
2640         prototype & function for bcmp.
2641
2642 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
2643
2644         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
2645         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
2646         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
2647
2648 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
2649
2650         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
2651         alternative when using -fp64 -gp32.
2652
2653 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
2654
2655         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
2656         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
2657         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
2658
2659         * frame.h (frame_state): Revert last change.
2660         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
2661         * libgcc2.c (throw_helper): Revert last change.
2662         
2663 2000-03-22  Richard Henderson  <rth@cygnus.com>
2664
2665         * stmt.c (expand_asm_operands): Don't promote the temporary.
2666
2667 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2668
2669         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
2670         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
2671           c_get_alias_set): Likewise.
2672         * c-decl.c (duplicate_decls): Likewise.
2673         * c-typeck.c (default_conversion,build_unary_op): Likewise.
2674         * calls.c (initialize_argument_information): Likewise.
2675         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
2676         Likewise.
2677         * dwarfout.c (decl_class_context,output_type): Likewise.
2678         * expr.c (get_inner_reference): Likewise.
2679         * fold-const.c (simple_operand_p,fold): Likewise.
2680         * function.c (aggregate_value_p): Likewise.
2681         * stmt.c (expand_asm_operands): Likewise.
2682         * varasm.c (named_section): Likewise.
2683
2684 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
2685
2686         Implement dwarf2 exception handling for the ARM.
2687         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
2688         (DWARF_FRAME_RETURN_COLUMN): Define.
2689         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
2690         REG_FRAME_RELATED_EXPR note.
2691         (emit_sfm): Likewise.
2692         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
2693         * dwarf2out.c (reg_save): Handle saving a register to itself.
2694         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
2695         * except.c (eh_regs): Don't use the static chain reg if it's
2696         callee-saved.
2697         * frame.h (frame_state): Add cfa_saved field.
2698         * frame.c (execute_cfa_insn): Set it.
2699         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in 
2700         the epilogue.
2701         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
2702         Now takes a parm.
2703         (instantiate_virtual_regs): Adjust.
2704         * tm.texi: Adjust.
2705         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
2706         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
2707         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
2708
2709         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
2710         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
2711
2712 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2713
2714         * builtins.def: New file.
2715
2716         * Makefile.in (TREE_H): Depend on builtins.def.
2717
2718         * builtins.c (built_in_names): Use builtins.def.
2719
2720         * tree.h (built_in_function): Likewise.
2721
2722 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
2723
2724         * tree.c (size_in_bytes): Return size_zero_node, not
2725         integer_zero_node.
2726
2727 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
2728
2729         * config/fp-bit.c (pack_d): Correct the case when a denormal
2730         is rounded up and stops being denormal.
2731
2732 2000-03-21  Richard Henderson  <rth@cygnus.com>
2733
2734         * config/alpha/alpha.c (function_arg): Check for void_type_node
2735         before using MUST_PASS_IN_STACK.
2736
2737 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
2738
2739         * regmove.c (combine_stack_adjustments_for_block): Check that
2740         the stack pointer is a valid memory address.
2741
2742 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
2743
2744         * calls.c: re-install Mar 16 emit_library_call merge.
2745
2746 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
2747
2748         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
2749         we cannot be sure that if reload_completed base register will
2750         be properly aligned.
2751
2752 2000-03-21  Richard Henderson  <rth@cygnus.com>
2753
2754         * flow.c (delete_block): Fix typo last change.
2755
2756 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
2757
2758         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
2759         not COMPLETE_TYPE_P, to check the type of the expression.
2760
2761 2000-03-21  Michael Meissner  <meissner@redhat.com>
2762
2763         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
2764         all floating point insns that just tested the macro
2765         TARGET_HAS_XFLOATING_LIBS.
2766         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
2767         used to only use the gprs.
2768
2769 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
2770
2771         * tree.h (COMPLETE_TYPE_P): New macro.
2772         (COMPLETE_OR_VOID_TYPE_P): New macro.
2773         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
2774         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
2775         * c-aux-info.c (gen_type): Use them.
2776         * c-common.c (c_expand_expr_stmt): Likewise.
2777         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
2778         grokdeclarator, grokparms, finish_struct, start_function,
2779         store_parm_decls, combine_parm_decls): Likewise.
2780         * c-parse.y (cast_expr): Likewise.
2781         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
2782         c_size_in_bytes, c_alignof, build_component_ref,
2783         build_indirect_ref, build_array_ref, convert_arguments,
2784         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
2785         * calls.c (initialize_argument_information): Likewise.
2786         * convert.c (convert_to_integer): Likewise.
2787         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
2788         * dwarfout.c (location_or_const_value_attribute,
2789         output_enumeration_type_die, output_structure_type_die,
2790         output_union_type_die, output_type): Likewise.
2791         * expr.c (safe_from_p, expand_expr): Likewise.
2792         * function.c (assign_parms): Likewise.
2793         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
2794         * tree.c (build_array_type, build_function_type,
2795         build_method_type, build_offset_type, build_complex_type): Likewise.
2796         * c-parse.c, c-parse.h: Regenerated.
2797
2798 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2799
2800         * config/c4x/rtems.h: Include config/rtems.h.
2801
2802 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
2803
2804         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
2805         decl is a FUNCTION_DECL
2806
2807 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
2808
2809         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
2810         function uses output registers.  Don't save RP for leaf functions.
2811         Do save RP even if no epilogue.
2812         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
2813         (CALL_USED_REGISTERS): Unmark in registers.
2814         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
2815         to near the middle.
2816
2817 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
2818
2819         * config/rs6000/rs6000.md (bunordered): New expander.
2820         (bordered): New expander.
2821         (buneq): New expander.
2822         (bunge): New expander.
2823         (bungt): New expander.
2824         (bunle): New expander.
2825         (bunlt): New expander.
2826         (bltgt): New expander.
2827  
2828         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
2829         (ccr_bit_negated_p): New function.
2830         (print_operand): For %C, generate appropriate cror for UNEQ,
2831         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
2832
2833 2000-03-20  Andreas Jaeger  <aj@suse.de>
2834
2835         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
2836         warning.
2837
2838         * tree.h (safe_for_unsave): Prototype.
2839
2840 2000-03-20  Richard Henderson  <rth@cygnus.com>
2841
2842         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
2843         (combine_stack_adjustments_for_block): Don't allow sp references
2844         in the side of a set we're not fixing up.
2845         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
2846         after life_analysis.
2847
2848 2000-03-20  Richard Henderson  <rth@cygnus.com>
2849
2850         * calls.c (expand_call): Don't bother generating tail call
2851         sequences if there are pending cleanups.  Use
2852         expand_start_target_temps/expand_end_target_temps to elide
2853         cleanups created during sibcall expansion.
2854
2855 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
2856
2857         * configure.in: Set $IFS to a value if it doesn't already have one
2858         in the --enable-checking handling.
2859         * configure: Regenerate.
2860
2861 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2862
2863         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
2864         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
2865         Regenerated.
2866
2867 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
2868
2869         * jump.c (delete_noop_moves): Remove code attempting to
2870         combine stack adjustments.
2871
2872 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2873
2874         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
2875         * except.c (emit_cleanup_handler): Use them.
2876         (expand_end_all_catch): Likewise.
2877         * function.c (fixup_var_refs): Likewise.
2878         (expand_function_end): Clear catch_clauses_last.
2879         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
2880         * except.h (struct eh_status): New field x_catch_clauses_last.
2881         (catch_clauses_last): New define.
2882
2883         * Makefile.in (tree.o): Depend on HASHTAB_H.
2884         * tree.c: Include hashtab.h.
2885         (struct type_hash): Remove next field.
2886         (TYPE_HASH_SIZE): Remove.
2887         (TYPE_HASH_INITIAL_SIZE): New define.
2888         (type_hash_table): Change type to htab_t.
2889         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
2890         mark_hash_entry): New functions.
2891         (init_obstacks): Allocate type hash.
2892         (type_hash_lookup): Use htab functions.
2893         (type_hash_add, mark_type_hash): Likewise.
2894         (dump_tree_statistics): Call print_type_hash_statistics.
2895
2896 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2897
2898         * rs6000/t-aix41: New file.
2899
2900         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
2901
2902 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
2903
2904         * tm.texi (Driver): Fix typos and tweak entry for
2905         INCLUDE_DEFAULTS.
2906         Move misplaced STRUCT_FORCE_BLK entry ...
2907         (Storage Layout): ... to here.
2908         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
2909
2910 2000-03-19  Richard Henderson  <rth@cygnus.com>
2911
2912         * flow.c (delete_block): Delete the addr_vec along with the block.
2913         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
2914         reference labels.
2915
2916         * fold-const.c (extract_muldiv): Apply type check for defined
2917         overflow to multiply as well as divide.
2918
2919         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
2920
2921 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
2922
2923         * emit-rtl.c (remove_unncessary_notes): Check that all
2924         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
2925         associated NOTE_BLOCK.
2926         * function.h (identify_blocks): Update comments.
2927         (reorder_blocks): Declare.
2928         * function.c (identify_blocks): Don't take paramters.
2929         (reorder_blocks): Don't take parameters.
2930         * loop.h (find_loop_tree_blocks): Remove.
2931         (unroll_block_trees): Likewise.
2932         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
2933         reorder_blocks instead of unroll_block_trees.h
2934         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
2935         * stmt.c (find_loop_tree_blocks): Remove.
2936         (unroll_block_trees): Likewise.
2937         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
2938         in whole-function mode.
2939         * tree.h (reorder_blocks): Remove declaration.
2940
2941         * expr.c: Include intl.h.
2942         * Makefile.in (expr.o): Depend on intl.h.
2943         
2944 2000-03-18  Richard Henderson  <rth@cygnus.com>
2945
2946         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
2947
2948 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
2949
2950         * tree.h (tree_index): Remove enumerals for integer types.
2951         (integer_type_kind): New type.
2952         (integer_types): New variable.
2953         (char_type_node): Adjust.
2954         (signed_char_type_node): Likewise.
2955         (unsigned_char_type_node): Likewise.
2956         (short_integer_type_node): Likewise.
2957         (short_unsigned_type_node): Likewise.
2958         (integer_type_node): Likewise.
2959         (unsigned_type_node): Likewise.
2960         (long_integer_type_node): Likewise.
2961         (long_unsigned_type_node): Likewise.
2962         (long_long_integer_type_node): Likewise.
2963         (long_long_unsigned_type_node): Likewise.
2964         * tree.c (integer_types): New variable.
2965         (init_obstacks): Register it as a root.
2966
2967 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
2968
2969         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
2970         NEXT_INSN. Update last insn in chain.
2971
2972 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
2973
2974         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
2975         with TYPE_DECL_SUPPRESS_DEBUG set.
2976
2977 2000-03-18  Richard Henderson  <rth@cygnus.com>
2978
2979         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
2980
2981 2000-03-18  Richard Henderson  <rth@cygnus.com>
2982
2983         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
2984         care for HALF_PIC_P.
2985         (expander_call_insn_operand): Remove.
2986         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
2987         * i386.h (PREDICATE_CODES): Update.
2988         * i386.md (all call expanders): Remove predicates, remove special
2989         handling for half-pic.
2990         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
2991         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
2992         (sibcall_epilogue): New.
2993
2994 2000-03-17  Richard Henderson  <rth@cygnus.com>
2995
2996         * rtlanal.c (single_set): Reject if the parallel has anything
2997         except SET or USE or CLOBBER.
2998
2999 2000-03-17  Jeff Law  <law@cygnus.com>
3000             Richard Henderson  <rth@cygnus.com>
3001
3002         * Makefile.in (OBJS): Add sibcall.o.
3003         (sibcall.o): New.
3004         * sibcall.c: New file.
3005         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
3006         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
3007         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
3008         Emit sibcall patterns when requested.  Update all callers.
3009         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
3010         elimination seems feasable.
3011         * final.c (leaf_function_p): Sibling calls don't discount being
3012         a leaf function.
3013         * flow.c (HAVE_sibcall_epilogue): Provide default.
3014         (find_basic_blocks_1): Sibling calls don't throw.
3015         (make_edges): Make edge from sibling call to EXIT.
3016         (propagate_block): Don't remove sibcall_epilogue insns.
3017         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
3018         (sibcall_epilogue): New.
3019         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
3020         (identify_blocks_1): Likewise.  Break out from ...
3021         (identify_blocks): ... here.
3022         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
3023         (reorder_blocks): ... here.
3024         (init_function_for_compilation): Zap prologue/epilogue as varrays.
3025         (record_insns): Extend a varray instead of mallocing new memory.
3026         (contains): Read a varray not array of ints.
3027         (sibcall_epilogue_contains): New.
3028         (thread_prologue_and_epilogue_insns): Emit and record
3029         sibcall_epilogue patterns.
3030         (init_function_once): Allocate prologue/epilogue varrays.
3031         * genflags.c (gen_insn): Treat sibcall patterns as calls.
3032         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
3033         Broken out from ...
3034         (save_for_inline_nocopy): ... here.
3035         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. 
3036         Broken out from ...
3037         (expand_inline_function): ... here.
3038         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
3039         (subst_constants): Handle 'n' formats.
3040         * jump.c (jump_optimize_minimal): New.
3041         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
3042         optimizations if it's set.
3043         * rtl.c (copy_rtx): Do copy jump & call for insns.
3044         * rtl.h (struct rtx_def): Document use of jump and call for insns.
3045         (SIBLING_CALL_P): New.
3046         (sibcall_use_t): New.
3047         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
3048         Invoke optimize_sibling_and_tail_recursive_calls.
3049         * tree.c (lang_safe_for_unsave): New.
3050         (safe_for_unsave): New.
3051         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
3052
3053         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
3054         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
3055         (*sibcall_osf_1, *sibcall_value_osf_1): New.
3056
3057 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
3058
3059         * objc/objc-act.c (encode_method_prototype): Pass types, not
3060         PARM_DECLs, to int_size_in_bytes.
3061
3062 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
3063
3064         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
3065
3066         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
3067         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
3068
3069 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3070
3071         * Clean up usages of TREE_INT_CST_LOW.
3072         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
3073         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
3074         Regenerated.
3075         * c-tree.h (min_precision): Move declaration to here.
3076         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
3077         (build_unary_op, add_pending_init): Use bit_position.
3078         (pending_init_member, process_init_element): Likewise.
3079         (really_start_incremental_init, push_init_level, pop_init_level):
3080         Don't make copies of nodes or modify them in place, use consistent
3081         types when tracking positions, and use tree routines computations.
3082         (set_init_index, output_init_element): Likewise.
3083         (output_pending_init_elements, process_init_element): Likewise.
3084         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
3085         tree_low_cst and int_bit_position; also minor cleanup.
3086         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
3087         (print_cst_octal): Precision is unsigned.
3088         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
3089         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
3090         (simple_type_align_in_bits): Result is unsigned int.
3091         Use tree_int_low_cst and host_integerp.
3092         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
3093         (field_byte_offset): Result is HOST_WIDE_INT.
3094         Change types of internal variables so alignments are unsigned int,
3095         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
3096         Use host_integerp, tree_low_cst, and int_bit_position.
3097         (add_bit_offset_attribute): Likewise.
3098         (add_data_member_location_attribute): Use tree_cst_low.
3099         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
3100         (add_bit_size_attribute): Use tree_low_cst.
3101         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
3102         * dwarfout.c: Similar changes to dwarf2out.c.
3103         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
3104         * genoutput.c (n_occurences): Return -1 for null string.
3105         (strip_whitespace): Accept null string and make into function.
3106         (scan_operands): Reflect above changes.
3107         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
3108         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
3109         * ssa.c (rename_registers): Add missing cast of arg to bzero.
3110         * tree.c (int_size_in_bytes): Check for too big to represent.
3111         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
3112         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
3113         New declarations.
3114         (min_precision): Delete from here.
3115         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
3116         and int_bit_position.
3117         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
3118         (encode_method_def): Likewise.
3119         (build_ivar_list_initializer): Use int_bit_position.
3120         (generate_shared_structures): Convert size.
3121         (encode_type, encode_complete_bitfield): Use integer_zerop.
3122         (encode_bitfield): Use tree_low_cst and int_bit_position.
3123         
3124 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3125
3126         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
3127
3128 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3129
3130         * call.c (special_function_p): It is only malloc if it returns
3131         Pmode.
3132
3133 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3134
3135         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
3136         (C33_FLAG, TARGET_C3X): Add macros.
3137         (TARGET_SWITCHES): Add -m33 option.
3138         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
3139         
3140 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3141         
3142         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
3143         (PARALLEL_PACK_FLAG): Delete.
3144         (TARGET_SWITCHES): Update.
3145         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
3146
3147 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3148
3149         * fold-const.c (fold): Fix a few cases when the returned result
3150         is not of the same type as the input.
3151
3152 2000-03-16  Nick Clifton  <nickc@cygnus.com>
3153
3154         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
3155         warning.
3156
3157 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3158
3159         * libgcc2.h: Move prototypes above macros with the same name.
3160         Wrap some function prototypes in the conditional which indicates
3161         whether they are supported, i.e. "BITS_PER_UNIT == 8".
3162
3163 2000-03-16  Richard Henderson  <rth@cygnus.com>
3164
3165         * calls.c: Revert last two changes.
3166
3167 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
3168
3169         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
3170         has exponent 0 is a zero.
3171
3172         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
3173         HASH may already be nonzero.  Add code/mode into hash value
3174         immediately after repeat label.
3175         (cselib_lookup): Don't leave the hash table in an inconsistent
3176         state before a hash lookup operation.
3177
3178 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
3179
3180         * i386.md (all HI and QI mode non-move patterns):  Conditionize
3181         by TARGET_[HQ]IMODE_MATH.
3182         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
3183         x86_promote_qi_regs): Declare.
3184         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
3185         TARGET_PROMOTE_QI_REGS): New macros.
3186         (PROMOTE_MODE): New macro.
3187         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
3188         x86_promote_qi_regs): New global variables.
3189
3190 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
3191
3192         * calls.c (emit_library_call_value_1): Break out from ...; handle
3193         VOIDmode function calls too.
3194         (emit_library_call_value): ... here.
3195         (emit_library_call): Implement by calling emit_library_call_value_1.
3196
3197 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
3198
3199         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
3200         Update arg_space_so_far on stack adjustments.
3201         (emit_library_call, emit_library_call_value): Likewise; take into
3202         account arg_space_so_far and pending_stack_adjust when calculcating
3203         the boundary.
3204
3205 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
3206
3207         * flow.c: Move all basic block reordering code into its own file.
3208         (create_basic_block): Externalize.
3209         * bb-reorder.c: New file. Copy all basic block reordering code from
3210         flow.c to this file.
3211         (reorder_basic_blocks): Fix fencepost error in for-loop.
3212         (reorder_basic_blocks): Remove braces from single statement for-loops.
3213         * basic-block.h: Add declaration for create_basic_block.
3214         * Makefile.in: Add rules for bb-reorder.o.
3215
3216 2000-03-16  Neil Booth  <NeilB@earthling.net>
3217
3218         * cppinit.c (handle_option):  Implement #unassert directive
3219         as -A- command line option.
3220         (print_help):  Update.
3221         * cpptexi.c:  Update.
3222
3223 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
3224
3225         * md.texi (Standard Names): Document `jump'.
3226
3227 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
3228
3229         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
3230         gotos.
3231
3232 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
3233
3234         Merge changes from newppc-branch onto trunk.
3235
3236         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
3237
3238         * rs6000.c (toc_hash_table): Update for new hash table functions.
3239         (toc_hash_function): Likewise.
3240         (toc_hash_eq): Likewise.
3241         (toc_hash_mark_entry): Likewise.
3242         (toc_hash_mark_table): Likewise.
3243         (output_toc): Likewise.
3244         (rs6000_add_gc_roots): Likewise.
3245
3246         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3247
3248         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
3249         (AR_FLAGS_FOR_TARGET): here.  New macro.
3250
3251         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
3252
3253         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
3254         fpmem_operand) Delete.
3255         (xer_operand) New.
3256         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
3257         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
3258         (rs6000_save_machine_status, rs6000_restore_machine_status, 
3259         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove 
3260         references to above variables.
3261         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
3262         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
3263         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
3264         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
3265         (XER_REGNO_P, XER_REGNO): New.
3266         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
3267         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
3268         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to 
3269         XER_REGNO_P.
3270         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
3271         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
3272         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
3273         
3274         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3275
3276         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
3277         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
3278         * rs6000.h: from here.
3279
3280         * rs6000-protos.h (rs6000_select_section): Provide prototype.
3281         (rs6000_select_rtx_section): Likewise.
3282         (rs6000_encode_section_info): Likewise.
3283         (sdata_section): Likewise.
3284         (sdata2_section): Likewise.
3285         (sbss_section): Likewise.
3286         * sysv4.h (rs6000_select_section): Delete prototype.
3287         (rs6000_select_rtx_section): Likewise.
3288         (rs6000_encode_section_info): Likewise.
3289         (sdata_section): Likewise.
3290         (sdata2_section): Likewise.
3291         (sbss_section): Likewise.
3292         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
3293
3294         * sysv4.h: Delete various unnecessary #undef's and put a comment
3295         on the remaining ones.
3296         Change various comments according to coding standard.
3297
3298         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
3299
3300         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO, 
3301         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
3302         (CR0_REGNO_P) Remove.
3303         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand, 
3304         setup_incoming_varargs, mtcrf_operation, print_operand, 
3305         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): 
3306         Use the above macros.
3307
3308         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
3309
3310         * config/rs6000/rs6000.md: Added a new alternative for each
3311         pattern that had a 'x' alternative but no 'y' alternative.
3312         Added a new split for each of the above patterns.
3313
3314         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
3315
3316         * aix41.h (ASM_CPU_SPEC): Delete.
3317         (CPP_CPU_SPEC): Delete.
3318
3319         * aix.h (RS6000_OUTPUT_BASENAME): Define.
3320         (ASM_OUTPUT_LABEL): Define.
3321         (ASM_GLOBALIZE_LABEL): Define.
3322         (STRIP_NAME_ENCODING): Define.
3323         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
3324         (STRIP_NAME_ENCODING): Don't define.
3325         (ASM_OUTPUT_LABEL): Don't define.
3326         (ASM_GLOBALIZE_LABEL): Don't define.
3327         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
3328         names, and ASM_OUTPUT_LABEL to output labels, rather than
3329         asm_fprintf.
3330         (ASM_OUTPUT_LABEL): Define.
3331         (ASM_OUTPUT_INT): Use assemble_name.
3332         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
3333         (STRIP_NAME_ENCODING): Don't undefine first.
3334         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
3335         ELF.
3336         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
3337         specified with 'asm' even with -fleading-underscore.
3338         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
3339         (output_epilog): Likewise.
3340         (output_toc): Likewise. 
3341         * tramp.asm: Handle -fleading-underscore correctly.
3342
3343         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
3344         -mminimal-toc.
3345         (nonlocal_goto_receiver): Delete.
3346         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
3347
3348         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
3349         (SET_ASM_OP): Define.
3350         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
3351
3352         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
3353         (ASM_LONG): Define.
3354
3355         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
3356         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
3357
3358         * rs6000.h: Add 'u' to more constants.
3359
3360         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
3361
3362         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
3363
3364         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
3365
3366         * rs6000.c (reg_or_u_cint_operand): New function.
3367         (logical_operand): Handle 64-bit hosts.
3368         (logical_u_operand): New function.
3369         (non_logical_cint_operand): Handle 64-bit hosts.
3370         (non_logical_u_cint_operand): New function.
3371         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
3372         (PREDICATE_CODES): Define new functions.
3373         * rs6000-protos.h: Declare new functions.
3374         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
3375         (movdi_64): Bracket code intended for 64-bit hosts.  Create
3376         CONST_DOUBLE for 32-bit values.
3377         (scc insns): Generate DImode compares.
3378         (mfcr insns): Create DImode versions.
3379         (sge matchers): New patterns.
3380         
3381         2000-02-15  Gabriel Paubert  <paubert@iram.es>
3382
3383         * rs6000.md: Correct instructions length attributes and
3384         constraints on unsigned compare instructions.
3385         (*ne0): Disable for PowerPC64.
3386
3387         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
3388
3389         * rs6000.c (output_function_profiler): Use .long for a 32-bit
3390         quantity, fix profile1.C test failure under -fPIC.
3391
3392         * rs6000.c: Add 'u' to many constants to suppress warnings.
3393         (constant_pool_expr_1): Make static.
3394         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
3395         * rs6000.h: Add 'u' to many constants to suppress warnings.
3396
3397         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
3398         for the start of the TOC, instead of LCTOC..0.
3399         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
3400         of the TOC.
3401         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
3402         (load_toc_aix_di): Use LCTOC..1.
3403
3404         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
3405         * rs6000.c (rs6000_legitimize_address): New function from
3406         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
3407         symbols in the constant pool that really are TOC references.
3408         (print_operand_address): For ELF, write TOC offsets under
3409         -fPIC as subtractions in the insn.
3410         (output_toc): For ELF, define symbols in TOC as normal labels,
3411         to match RTL.
3412         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
3413         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
3414         (create_TOC_reference): Prototype only when RTX_CODE is defined.
3415         * rs6000.md (movsi): Only use create_TOC_reference on
3416         symbols in the constant pool that really are TOC references.
3417
3418         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
3419         * rs6000.c (rs6000_reorg): Delete.
3420         * rs6000-protos.h (rs6000_reorg): Delete.
3421
3422         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
3423
3424         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
3425
3426         * aix.h (SETUP_FRAME_ADDRESSES): Define.
3427         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
3428         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
3429         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
3430         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
3431         rs6000_aix_emit_builtin_unwind_init.
3432         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call 
3433         rs6000_emit_eh_toc_restore on AIX.
3434         (return_eh_si): Use r2.
3435         (return_eh_di): Use r2.
3436
3437         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
3438         since we're breaking binary compatibility anyway.
3439
3440         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
3441
3442         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
3443         constant_pool_expr_p): Declare them.
3444         (constant_pool_expr_p): Declare it.
3445         * config/rs6000/rs6000.c (toc_label_name): Define.
3446         (rs6000_override_options): Set toc_label_name.
3447         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
3448         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
3449         uses_TOC): New functions.
3450         (print_operand): Delete old '*' case.
3451         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
3452         and strip off rtl for TOC before calling output_addr_const.
3453         (rs6000_emit_load_toc_table): Use toc_label_name.
3454         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
3455         the default.
3456         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
3457         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
3458         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
3459         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
3460         into explicit TOC_REGISTER offsets.
3461         (TOC_REGISTER): New macro.
3462         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under 
3463         TARGET_TOC to reference TOC_REGISTER.
3464         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
3465         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call  
3466         uses_TOC before emitting label references.
3467
3468         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
3469
3470         * rs6000.md (stack_tie): Fix warning.
3471
3472         * eabi-ctors.c: Use 'asm' names for the start/end variables,
3473         to handle -fleading-underscore.
3474         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
3475         (USER_LABEL_PREFIX): New macro.
3476         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
3477         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
3478         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
3479         call-linux can use the same multilibs.
3480         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
3481         and call-linux multilibs.  Do multilib with -fleading-underscore.
3482         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
3483         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
3484         to call-aix.
3485
3486         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
3487         have MASK_SOFT_FLOAT set.
3488         (CPP_FLOAT_DEFAULT_SPEC): New macro.
3489         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
3490         CPP_FLOAT_DEFAULT_SPEC.
3491
3492         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
3493         * rs6000.md: Whitespace change.
3494         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
3495         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
3496
3497         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
3498
3499         * rs6000.md (eh_epilogue): New expander.
3500         (eh_reg_restore): New expand/split/insn combination.
3501         (return_eh_si): New insn.
3502         (return_eh_di): New insn.
3503
3504         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
3505         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
3506         * eabi-ctors.c (__do_global_ctors): Register this object's
3507         frame.  Clean up.  Call atexit() after the constructors.
3508         (__do_global_dtors): Deregister this object's frame.  Clean up.
3509         Allow for recursive calls to exit().
3510         * rs6000.c (fixuplabelno): New variable.
3511         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
3512         TARGET_RELOCATABLE, it slows down exec() under linux.
3513         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
3514
3515         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
3516         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
3517         (ASM_OUTPUT_DWARF_DELTA2): New macro.
3518         (ASM_OUTPUT_DWARF_DELTA4): New macro.
3519         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
3520         (ASM_OUTPUT_DWARF_ADDR): New macro.
3521         (ASM_OUTPUT_DWARF_DATA4): New macro.
3522         (ASM_OUTPUT_DWARF_DATA2): New macro.
3523         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
3524         (ASM_OUTPUT_DWARF_OFFSET): New macro.
3525         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
3526
3527         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
3528
3529         * rs6000.c (rs6000_sr_alias_set): New variable.
3530         (rs6000_override_options): Initialise rs6000_sr_alias_set.
3531         (rs6000_emit_stack_tie): New function.
3532         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
3533         in a way that dwarf2out can understand.
3534         (rs6000_frame_related): New function.
3535         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
3536         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
3537         Use rs6000_emit_stack_tie when needed.
3538         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
3539         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
3540         * rs6000.md (stack_tie): New insn.
3541         (return_internal_si): Allow return value to be in the count
3542         register.
3543         (return_internal_di): Likewise.
3544
3545         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
3546
3547         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
3548
3549         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
3550
3551         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
3552
3553         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
3554
3555         * rs6000.md (stmw): Use the right POWER opcode.
3556         (lmw): Likewise.
3557
3558         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3559
3560         * rs6000-protos.h: New file.
3561
3562         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
3563         
3564         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
3565         warnings.
3566         
3567         * sysv4.h: Likewise.
3568
3569         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
3570
3571         * ../../configure.in: Delete powerpcle-*-winnt*
3572         and powerpcle-*-pe|powerpcle-*-cygwin*.
3573         * ../../configure: Regenerated.
3574         * cygwin.h: Delete.
3575         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
3576         (TARGET_WINDOWS_NT): Delete.
3577         (ABI_NT): Delete.
3578         (CALL_NT_DLLIMPORT): Delete.
3579         Delete NT-specific code.
3580         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
3581         * win-nt.h: Delete.
3582         * t-winnt: Delete.
3583         * nt-ci.asm: Delete.
3584         * nt-cn.asm: Delete.
3585         * ntstack.asm: Delete.
3586
3587         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3588
3589         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
3590         (ASM_FILE_START): Likewise.
3591         (ASM_DECLARE_FUNCTION_NAME): Likewise.
3592         (ASM_OUTPUT_LABELREF): Likewise.
3593         (ASM_OUTPUT_SKIP): Likewise.
3594         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
3595         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
3596         (ASM_OUTPUT_CASE_LABEL): Likewise.
3597         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
3598         (ASM_OUTPUT_ASCII): Likewise.
3599
3600         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
3601
3602         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
3603         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
3604         increment rs6000_pic_labelno here.
3605         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
3606         and increment rs6000_pic_labelno here.
3607
3608         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
3609
3610         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
3611         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
3612         allocation knows (reg) is dead before the insn.
3613
3614         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
3615
3616         * rs6000.md (movsi_to_cr): Correct typo in output template.
3617
3618         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
3619
3620         * rs6000.c (rs6000_pic_labelno): Always define.
3621         (rs6000_pic_func_labelno): Delete.
3622         (lmw_operation): Check for a zero base register,
3623         which doesn't mean what we want.
3624         (stmw_operation): New function.
3625         (print_operand): Define new 'l' modifier.
3626         (rs6000_stack_info): We must save all 64 bits of the registers
3627         if TARGET_POWERPC64.
3628         (rs6000_output_load_toc_table): Delete.
3629         (rs6000_emit_load_toc_table): New function.
3630         (rs6000_allocate_stack_space): Delete.
3631         (rs6000_emit_allocate_stack): New function.
3632         (rs6000_emit_prologue): New function.
3633         (output_prolog): Use rs6000_emit_prologue.
3634         (rs6000_emit_epilogue): Change a few variable names to be
3635         more accurate.  Restore all 64 bits of the registers if
3636         TARGET_POWERPC64.  Only restore the FP registers which were used
3637         if they are being saved/restored one-at-a-time.
3638         (output_mi_thunk): Delete inefficient code generation.
3639         (output_function_profiler): Don't use rs6000_output_load_toc_table.
3640         * rs6000.h: Declare rs6000_emit_load_toc_table,
3641         rs6000_allocate_stack_space, stmw_operation.  Don't declare
3642         rs6000_output_load_toc_table.
3643         * rs6000.md (elf_high): Allow register 0, but discourage it
3644         heavily.
3645         (elf_low): Support loading into register 0.
3646         (load_toc_aix_si): New pattern.
3647         (load_toc_aix_di): New pattern.
3648         (load_toc_v4_pic_si): New pattern.
3649         (load_toc_v4_pic_di): New pattern.
3650         (load_toc_v4_PIC_1): New pattern.
3651         (load_toc_v4_PIC_1b): New pattern.
3652         (load_toc_v4_PIC_2): New pattern.
3653         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
3654         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
3655         (prologue): New expander.
3656         (movesi_from_cr): New pattern.
3657         (stmw): New pattern.
3658         (save_fpregs_si): New pattern.
3659         (save_fpregs_di): New pattern.
3660
3661         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
3662
3663         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
3664         (movdi): Likewise.
3665         (movhi): Likewise.
3666         (movqi): Likewise.
3667
3668         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
3669
3670         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
3671         at present.
3672         (movsi_got_internal): Likewise.
3673         (movsi_got_internal+1): Likewise.
3674         (set_sp): 'unspec 7' does a SImode clobber.
3675
3676         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
3677
3678         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
3679         allocate a stack temporary.
3680         (floatsidf2_internal): Likewise.
3681         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
3682         with unspec.
3683         (floatunssidf2): Don't use the fpmem "register", just
3684         allocate a stack temporary.
3685         (floatunssidf2_internal): Likewise.
3686         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
3687         with unspec.
3688         (floatsidf2_loadaddr): Delete.
3689         (floatsidf2_store1): Delete.
3690         (floatsidf2_store2): Delete.
3691         (floatsidf2_load): Delete.
3692         (fix_truncdfsi2): Don't use the fpmem "register", just
3693         allocate a stack temporary.
3694         (fix_truncdfsi2_internal_si): Delete.
3695         (fix_truncdfsi2_internal_di): Delete.
3696         (fix_truncdfsi2_internal): New insn.
3697         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
3698         (fix_truncdfsi2_store): Delete.
3699         (fix_truncdfsi2_load): Delete.
3700         (fctiwz): Produce gen_fctiwz.
3701
3702         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
3703
3704         * eabi.h (INVOKE__main): Define.
3705         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
3706         specially.
3707         (rs6000_emit_prologue): Likewise.
3708         * rs6000.h (struct rs6000_stack): Don't keep track of whether
3709         this is the main program.
3710
3711         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
3712
3713         * rs6000.c (rs6000_va_arg): Delete some unused variables.
3714
3715         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
3716
3717         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
3718         goes after the argument.
3719
3720         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
3721
3722         * rs6000.md: Document 'unspec' values used.
3723         (epilogue): New expander.
3724         (movesi_to_cr_one): New expander.
3725         (movesi_to_cr and following): New pattern.
3726         (lmw): New pattern.
3727         (return_internal_si): New pattern.
3728         (return_internal_di): New pattern.
3729         (return_and_restore_fpregs_si): New pattern.
3730         (return_and_restore_fpregs_di): New pattern.
3731         * rs6000.h: Declare new functions.
3732         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
3733         rather than rs6000_calls_p.
3734         (rs6000_makes_calls): Delete.
3735         (lmw_operation): New function.
3736         (mtcrf_operation): New function.
3737         (rs6000_emit_epilogue): New function.
3738         (output_epilog): Call rs6000_emit_epilogue and final if
3739         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
3740
3741         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
3742
3743         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
3744         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
3745         * aix.h (SUBTARGET_SWITCHES): Document switches.
3746         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
3747         sched-prolog and sched-epilog the same.  Document all the
3748         switches.
3749         (TARGET_OPTIONS): No longer allow -mdebug-.
3750
3751         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
3752
3753         * rs6000.h (ASM_FILE_END): Move to aix.h.
3754         (EXTRA_SECTIONS): Move to aix.h.
3755         (READONLY_DATA_SECTION): Move to aix.h.
3756         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
3757         (SELECT_SECTION): Move to aix.h.
3758         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
3759         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
3760         (LINK_REGISTER_REGNUM): New definition.
3761         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
3762         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
3763         AIX and SVR4.
3764         * sysv4.h: Delete the code between the inclusion of rs6000.h
3765         and svr4.h.
3766         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
3767         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
3768         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
3769         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
3770         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
3771         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
3772         (fix_truncdfsi2_internal_di): New pattern.
3773         (fix_truncdfsi2_store): The second arg here is Pmode too.
3774         (fix_truncdfsi2_load): The second arg here is Pmode too.
3775         (tablejumpdi): Now that switch tables hold only SImode values,
3776         gcc needs to know how to add them to the pc which is DImode.
3777         * rs6000.c (rs6000_stack_info): Use symbolic name for 
3778         LINK_REGISTER_REGNUM.
3779         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
3780         (output_toc): Delete unused variables s1 and s2.
3781         (output_ascii): Use fputs not fprintf on a variable string.
3782
3783         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
3784
3785         * rs6000.c (processor_target_table): Add power3 as alias for 630.
3786         * aix43.h: Revert Aug 2 change.
3787         (HAS_INIT_SECTION): Define, not visible yet.
3788         (LD_INIT_SWITCH): Define, not visible yet.
3789         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
3790
3791         2000-01-04  Joel Sherrill (joel@OARcorp.com>
3792
3793         * config/rs6000/rtems.h: Include config/rtems.h.
3794
3795         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
3796
3797         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
3798         (SLOW_UNALIGNED_ACCESS): Define.
3799         (CASE_VECTOR_MODE): Always use 32-bit offsets.
3800         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
3801         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
3802         (toc_section): Likewise and .toc pseudo-op.
3803         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
3804         64-bit mode.
3805         (TEXT_SECTION_ASM_OP): Likewise.
3806         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
3807         32-bit offsets.
3808
3809         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
3810
3811         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
3812         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
3813         compiling libgcc2.
3814         
3815         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3816
3817         * rs6000.h: Move more stuff from here...
3818         * aix.h: to here.
3819         * sysv4.h: Cleanup accordingly.
3820         * netware.h: Likewise
3821
3822         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3823
3824         * rs6000.h: Continue cleanup.
3825         * aix.h: Likewise.
3826         * lynx.h: Likewise.
3827         * netware.h: Likewise.
3828         * sol2.h: Likewise.
3829         * sysv4.h: Likewise.
3830         * win-nt.h: Likewise.
3831
3832         * rs6000.h (TARGET_SWITCHES): Add descriptions.
3833         (TARGET_OPTIONS): Likewise.
3834
3835         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
3836         (SUBTARGET_OPTIONS): Likewise.
3837
3838         * rs6000.md: Fix compile time warnings.
3839
3840         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
3841
3842         vxworks patches from the Cygnus tree originally by
3843         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
3844         <vmakarov@cygnus.com>.
3845         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
3846         (ENDFILE_SPEC): Likewise.
3847         (LIB_VXWORKS_SPEC): New macro.
3848         (STARTFILE_VXWORKS_SPEC): New macro.
3849         (ENDFILE_VXWORKS_SPEC): New macro.
3850         (LINK_START_VXWORKS_SPEC): New macro.
3851         (LINK_OS_VXWORKS_SPEC): New macro.
3852         (CPP_OS_VXWORKS_SPEC): New macro.
3853         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
3854         * vxppc.h: Rewrite to use proper configuration method.
3855         * vxppcle.h: New file.
3856         * ../../configure.in: Add powerpcle-wrs-vxworks*.
3857         * ../../configure: Rebuilt.
3858
3859         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
3860
3861         Lots of changes to rs6000.h, sysv4.h, aix.h,
3862         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
3863         with the aim that rs6000.h is the first header
3864         included and the others override it.
3865         * aix.h: New file.
3866
3867         * x-aix41-gld: Remove.  
3868         * x-aix43: Remove.
3869         * x-aix41: Remove target-specific switches, and don't specify
3870         -Wl,-bbigtoc as we don't need it any more.
3871         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
3872         Use t-aix43 for AIX 4.3 and above.
3873         * ../../configure: Regenerated.
3874
3875         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
3876         options, that don't do anything yet.
3877         (MASK_SCHED_PROLOG): New macro.
3878         (MASK_SCHED_EPILOG): New macro.
3879         (TARGET_SCHED_PROLOG): New macro.
3880         (TARGET_SCHED_EPILOG): New macro.
3881
3882         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
3883
3884         * rs6000.c: Correct comment, the `minimal' TOCs are actually
3885         one per translation unit, not one per function.
3886         (output_toc): Also do duplicate constant elimination
3887         for per-translation-unit TOCs.
3888
3889         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
3890         a comment explaining _exactly_ when this pattern gets used.
3891         (builtin_setjmp_receiver): New pattern for better clarity.
3892         (init_v4_pic): Move it into a section dealing with TOC registers.
3893
3894         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
3895
3896         * rs6000.c (toc_hash_table): New variable.
3897         (rs6000_hash_constant): New function.
3898         (toc_hash_function): New function.
3899         (toc_hash_eq): New function.
3900         (toc_hash_mark_entry): New function.
3901         (toc_hash_mark_table): New function.
3902         (output_toc): Don't output duplicate TOC entries in
3903         a single file.
3904         (rs6000_add_gc_roots): Add the hash table as a GC root.
3905         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
3906         where they clearly shouldn't be.  This may need to be fixed
3907         later when there is a GNU ar for AIX.
3908         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
3909         Don't define BOOT_LDFLAGS as it is now not necessary.
3910
3911         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
3912
3913         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
3914         for va_list on AIX.  Use unsigned_char_type_node rather than
3915         constructing our own version on svr4.
3916
3917         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
3918
3919         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
3920         since patently it's not.
3921
3922         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
3923
3924         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
3925         define_expand/define_insn pair, and handle restore of the
3926         SVR4 -fpic register.
3927
3928 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
3929
3930         * acconfig.h (HAVE_GAS_WEAK): New define.
3931         * configure.in (assembler weak support): Check for .weak support.
3932         * config.in, configure: Rebuilt.
3933         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
3934         HAVE_GAS_WEAK is defined.
3935
3936 2000-03-15  Nick Clifton  <nickc@cygnus.com>
3937
3938         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
3939         asm_fprintf().
3940
3941 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
3942
3943         * cppfiles.c (open_include_file): New function.
3944         (find_include_file, cpp_read_file): Use it.
3945
3946 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
3947
3948         * cpphash.c (dump_hash_helper): Take the slot, not the element.
3949
3950 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
3951
3952         * flow.c (verify_flow_info): Check for unconditional return.
3953
3954 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
3955
3956         * config/ia64/ia64.md (restore_stack_nonlocal): New.
3957         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
3958         (__ia64_restore_stack_nonlocal): New.
3959         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
3960
3961 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3962
3963         * cpphash.c (collect_formal_parameters): Do not complain about
3964         parameter names that just start with `__VA_ARGS__'.
3965
3966 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
3967
3968         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
3969         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
3970         * i386.c (pentiumpro_cost): Set mul cost to 4.
3971         (x86_use_movx): Set for PPro.
3972
3973 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
3974
3975         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
3976         STACK_BOUNDARY for empty frames now.
3977
3978 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
3979
3980         * stor-layout.c (layout_union): Remove.
3981         (layout_union_field): New function, split out from layout_union.
3982         (finish_union_layout): Likewise.
3983         (layout_field): Handle unions by calling layout_union_field.
3984         (finish_record_layout): Handle unions.
3985         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
3986         QUAL_UNION_TYPE handling.
3987
3988 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
3989
3990         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
3991         end of basic block is jump_insn, not barrier; use create_basic_block
3992         instead of creating basic block by hand.
3993
3994 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
3995
3996         * flow.c (reorder_basic_blocks): Account for barriers when writing
3997         over NEXT_INSN (last_bb->end).
3998         (verify_flow_info): Add check for missing barriers.
3999
4000 2000-03-14  Greg McGary  <gkm@gnu.org>
4001
4002         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
4003         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
4004         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
4005         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
4006         __unbounded, __unbounded__): New keywords.
4007         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
4008         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
4009         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
4010
4011 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
4012
4013         * cselib.h: New file.
4014         * alias.c: Include "cselib.h".
4015         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
4016         MEMs as two new arguments.
4017         (get_addr): New static function.
4018         (find_base_term): Handle VALUEs.
4019         (memrefs_conflict_p): Likewise.
4020         (true_dependence): Call get_addr on the addresses.
4021         Call fixed_scalar_and_varying_struct_p with addresses that have been
4022         passed through get_addr and canon_rtx.
4023         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
4024         with true_dependence.
4025         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
4026         * loop.c: Include "cselib.h".
4027         (load_mems): Process extended basic block that enters the loop with
4028         cselib.  Use that information to change initialization of the shadow
4029         register so that a constant equivalence is seen by later passes.
4030         * reload1.c: Include "cselib.h".
4031         (reload_cse_invalidate_regno): Delete function.
4032         (reload_cse_mem_conflict_p): Likewise.
4033         (reload_cse_invalidate_mem): Likewise.
4034         (reload_cse_invalidate_rtx): Likewise.
4035         (reload_cse_regno_equal_p): Likewise.
4036         (reload_cse_check_clobber): Likewise.
4037         (reload_cse_record_set): Likewise.
4038         (reg_values): Delete static variable.
4039         (invalidate_regno_rtx): Likewise.
4040         (reload_cse_delete_noop_set): New static function.
4041         (reload_cse_simplify): New static function, broken out of
4042         reload_cse_regs_1.
4043         (reload_cse_noop_set_p): Delete unused argument INSN.
4044         Just call rtx_equal_for_cselib_p on set source and destination.
4045         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
4046         reload_cse_delete_noop_set.  Delete code to keep track of values; use
4047         cselib functions instead.  Delete code to push/pop obstacks.
4048         (reload_cse_simplify_set): Use cselib to find equivalent values.
4049         Delete code to push/pop obstacks.
4050         (reload_cse_simplify_operands): Likewise.
4051         * rtl.def (VALUE): New rtx code.
4052         * rtl.h (union rtunion_def): New elt rt_cselib.
4053         (X0CSELIB, CSELIB_VAL_PTR): New macros.
4054         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
4055         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
4056         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
4057         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
4058         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
4059         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
4060         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
4061         cselib_record_set, cselib_record_sets): New static functions.
4062         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
4063         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
4064         references_value_p): New functions.
4065         (MAX_USELESS_VALUES, REG_VALUES): New macros.
4066         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
4067         n_useless_values, reg_values, callmem, cselib_obstack,
4068         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
4069         New static variables.
4070         * varray.h (union varray_data_tag): New elt te.
4071         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
4072         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
4073         dependencies.
4074
4075 2000-03-14  Nick Clifton  <nickc@cygnus.com>
4076
4077         * gcc.c (do_spec_1): Catch the case where %* is used in a
4078         substitution pattern, but it has not been initialised.
4079         Issue a meaningful error message if an unrecognised operator
4080         is encountered in a spec string.
4081
4082 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
4083
4084         * function.c (prepare_function_start): Correctly initialize
4085         cfun->stack_alignment_needed.
4086
4087 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
4088
4089         * cppfiles.c (find_include_file): Don't assume nshort is a
4090         substring of name.
4091
4092 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
4093
4094         * configure.in (hppa configurations): Add pa32-regs.h to the
4095         list of tm files as appropriate.
4096         * configure: Rebuilt.
4097         * pa.c (compute_frame_size): Remove explicit knowledge about FP
4098         register numbering.
4099         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
4100         (fmpyaddoperands, fmpysuboperands): Likewise.
4101         * pa.h: Remove various definitions which depend on knowing
4102         how registers are numbered.
4103         * pa32-regs.h: New file with PA32 register numbering specific
4104         definitions.
4105
4106 2000-03-14  Richard Henderson  <rth@cygnus.com>
4107
4108         * regmove.c (combine_stack_adjustments): New.
4109         (stack_memref_p, single_set_for_csa): New.
4110         (free_csa_memlist, record_one_stack_memref): New.
4111         (try_apply_stack_adjustment): New.
4112         (combine_stack_adjustments_for_block): New.
4113         * rtl.h (combine_stack_adjustments): Declare.
4114         * toplev.c (rest_of_compilation): Call it.
4115
4116         * i386.md: Revert 2000-01-16 change.
4117
4118 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4119
4120         * gccbug.in: Add web category, gcc specific classes.
4121
4122 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
4123
4124         * stor-layout.c (finalize_record_size): Fix typo.
4125
4126 2000-03-14  Stan Shebs  <shebs@apple.com>
4127
4128         * c-typeck.c (c_alignof): Error on incomplete types.
4129         * extend.texi (Alignment): Document this.
4130
4131 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
4132
4133         * cppfiles.c: Include mkdeps.h.
4134         (find_include_file, read_include_file): Remove _cpp_ prefix
4135         from name, make static.
4136         (_cpp_execute_include): New function, broken out of
4137         do_include.
4138
4139         * cpplib.c: Don't include mkdeps.h.
4140         (struct directive): Remove type field. Reorder entries.  The
4141         function takes only one argument.
4142         (struct if_stack): Make type field an int.
4143         (directive_table): Rename to dtable.  Generate it, the
4144         prototypes of the directive handlers, and the enum for the
4145         directive numbers, from a template macro.
4146         (do_ifndef, do_include_next, do_import): New functions.
4147         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
4148         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
4149         do_ident, do_assert, do_unassert, do_sccs): Take only one
4150         argument.
4151         (do_sccs): Define always, but alter behavior based on
4152         SCCS_DIRECTIVE.
4153         (_cpp_handle_directive, consider_directive_while_skipping):
4154         Restructure for new directive table layout.
4155
4156         (pass_thru_directive): Take a directive number, not a pointer
4157         to a struct directive.
4158         (parse_include): New function, broken out of do_include.
4159         (do_include, do_import, do_include_next): Use parse_include
4160         and _cpp_execute_include.
4161         (do_elif, do_else): Test for T_ELSE specifically when checking
4162         for #elif/#else after #else.
4163         (parse_ifdef): New function, broken out of do_ifdef.
4164         (validate_else): Expect a name arg without a leading #.
4165         (if_directive_name): Delete.
4166         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
4167         directive handlers with only one argument.
4168
4169         * cpphash.h: Update prototypes.
4170         (enum node_type): Remove entries for directives.
4171         * Makefile.in: Update dependencies.
4172
4173         * cpphash.c (dump_hash_helper): Only dump nodes of type
4174         T_MACRO.  Emit a newline after each definition.
4175
4176 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4177
4178         * gccbug.in: New file.
4179         * configure.in (all_outputs): Add gccbug.
4180         * Makefile.in (install-common): Install gccbug.
4181         (GCCBUG_INSTALL_NAME): New variable.
4182         * configure: Rebuilt.
4183         
4184 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
4185
4186         * function.c (put_var_into_stack): Use type_for_mode to calculate
4187         part_type.  Use MEM_SET_IN_STRUCT_P.
4188         * expr.c (store_field): Handle CONCAT.
4189         (store_constructor): Use fields_length.
4190         * tree.c (fields_length): New fn.
4191         * tree.h: Declare it.
4192
4193 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
4194
4195         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
4196         (cpplex.o): New target.
4197         * po/POTFILES.in: Add cpplex.c.
4198
4199         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
4200         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
4201         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
4202         skip_block_comment, skip_line_comment, skip_comment,
4203         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
4204         _cpp_parse_name, skip_string, parse_string,
4205         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
4206         _cpp_get_directive_token, find_position,
4207         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
4208         (maybe_macroexpand, _cpp_lex_token): New functions.
4209
4210         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
4211         parse_goto_mark): Delete.
4212         (_cpp_handle_eof): New function.
4213         (_cpp_handle_directive): Rename from handle_directive.
4214         (_cpp_output_line_command): Rename from output_line_command.
4215         (do_if, do_elif): Call _cpp_parse_expr directly.
4216         * cppfiles.c (_cpp_read_include_file): Don't call
4217         init_input_buffer here.
4218         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
4219         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
4220         here; pop the token_buffer and skip the rest of the line here.
4221         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
4222         here.
4223
4224         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
4225         Define here.
4226         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
4227         CPP_GOTO_MARK): New macros.
4228         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
4229         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
4230         _cpp_read_and_prescan, _cpp_init_input_buffer,
4231         _cpp_grow_token_buffer, _cpp_get_directive_token,
4232         _cpp_handle_directive, _cpp_handle_eof,
4233         _cpp_output_line_command): Prototype them here.
4234         * cpplib.h (enum cpp_token): Add CPP_MACRO.
4235         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
4236         quote_string, output_line_command): Remove.
4237
4238 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
4239
4240         * stmt.c (expand_end_case): RANGE may be signed, and when checking
4241         whether it is too large we must also verify that it isn't negative.
4242
4243 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
4244
4245         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
4246         (movsi_zero_liveg0): Remove.
4247         (movsf_insn_novis_liveg0): Remove.
4248         (negsi2): Remove.
4249         (negsi2_not_liveg0): Rename to negsi2.
4250         (one_cmplsi2): Remove.
4251         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
4252         (one_cmplsi2_liveg0): Remove.
4253         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
4254         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
4255         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
4256         (PREDICATE_CODES): Remove zero_operand.
4257         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
4258         TARGET_BROKEN_SAVERESTORE.
4259         (zero_operand): Remove.
4260         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
4261         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
4262         options.
4263         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
4264         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
4265         TARGET_BROKEN_SAVERESTORE): Remove.
4266         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
4267         Remove.
4268         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
4269         Remove.
4270         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
4271         Remove.
4272
4273         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
4274
4275 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
4276
4277         * cpplib.c (do_pragma_implementation): Fix off-by-one error
4278         truncating a string.  Don't assume tokens are nul terminated.
4279         Problem noted by Andreas Jaeger <aj@suse.de>
4280
4281 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
4282
4283         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
4284         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
4285         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
4286
4287 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
4288
4289         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
4290         STRUCTURE_SIZE_BOUNDARY.
4291
4292 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
4293
4294         * tree.h (record_layout_info_s): New structure.
4295         (record_layout_info): New type.
4296         (new_record_layout_info): New function.
4297         (layout_field): Likewise.
4298         (finish_record_layout): Likewise.
4299         * stor-layout.c (layout_record): Remove.
4300         (new_record_layout_info): New function.
4301         (layout_field): New function, broken out from layout_record.
4302         (finalize_record_size): Likewise.
4303         (compute_record_mode): Likewise.
4304         (finalize_type_size): New function, broken out from layout_type.
4305         (finish_record_layout): Likewise.
4306         (layout_type): Use them.
4307         
4308 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
4309
4310         * cpphash.c: Don't include version.h.
4311         (special_symbol) [case T_VERSION]: Look for the string in
4312         hp->value.cpval; don't use version_string.
4313         * cppinit.c (initialize_builtins): Set hp->value.cpval for
4314         __VERSION__ to version_string.
4315         * Makefile.in (cpphash.o): Update deps.
4316
4317 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
4318
4319         Convert cpplib to use libiberty/hashtab.c.
4320
4321         * cpplib.h (struct cpp_reader): Make hashtab and
4322         all_include_files of type 'struct htab *'.  Delete HASHSIZE
4323         and ALL_INCLUDE_HASHSIZE macros.
4324
4325         * cpphash.h: Update prototypes.
4326         (struct hashnode): Remove next, prev, and bucket_hdr members.
4327         Make length a size_t.  Add hash member.
4328         (struct ihash): Remove next member.  Add hash member.  Make
4329         name a flexible array member.
4330
4331         * cppfiles.c: Include hashtab.h.
4332         (include_hash): Delete.
4333         (IHASHSIZE): New macro.
4334         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
4335         (cpp_included): Do the hash lookup here.
4336         (_cpp_find_include_file): Rewrite.
4337         (cpp_read_file): Put the "fake" hash entry into the hash
4338         table.  Honor the control_macro, if it turns out we've seen
4339         the file before.  Don't push the buffer here.
4340         (_cpp_read_include_file): Push the buffer here.
4341         (OMODES): New macro.  Use it whenever we call open(2).
4342
4343         * cpphash.c: Include hashtab.h.
4344         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
4345         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
4346         _cpp_lookup_slot): New functions.
4347         (HASHSIZE): new macro.
4348         (hashf, _cpp_install, _cpp_delete_macro): Delete.
4349         (_cpp_lookup): Use hashtab.h routines.
4350
4351         * cppinit.c: Include hashtab.h.
4352         (cpp_reader_init): Call _cpp_init_macro_hash and
4353         _cpp_init_include_hash.  Don't allocate hashtab directly.
4354         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
4355         pfile->all_include_files.
4356         (initialize_builtins): Use _cpp_make_hashnode and
4357         htab_find_slot to add hash entries.
4358         (cpp_finish): Just call _cpp_dump_macro_hash.
4359         * cpplib.c: Include hashtab.h.
4360         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
4361         create hash entries.
4362         (do_pragma_poison, do_assert): Likewise.
4363         (do_include): Don't push the buffer here.  Don't increment
4364         system_include_depth unless _cpp_read_include_file succeeds.
4365         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
4366         or htab_remove_elt.
4367         (do_pragma_implementation): Use alloca to create copy.
4368
4369         * Makefile.in: Update dependencies.
4370
4371 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4372
4373         * cppinit.c (cl_directive_handler): More K&R fixing.
4374
4375 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
4376
4377         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
4378         STACK_BOUNDARY.
4379         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
4380
4381 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4382
4383         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
4384         Change from char[] to macros.
4385
4386 2000-03-12  Neil Booth  <NeilB@earthling.net>
4387
4388         * cppinit.c (cpp_start_read): Update indirect function
4389         call to K&R C.
4390
4391 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
4392
4393         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
4394         entry.
4395
4396         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
4397         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
4398
4399 2000-03-11  Neil Booth  <NeilB@earthling.net>
4400
4401         * cppinit.c (struct pending option): Replace undef with a 
4402         pointer to a directive handling routine.
4403         (struct cpp_pending): Replace separate assert_ and define_ 
4404         lists with one directive_ list.
4405         (new_pending_define): Rename new_pending_directive. Extra
4406         argument is the directive's handling routine.
4407         (handle_option): Update to use new_pending_directive.
4408
4409 2000-03-11  Neil Booth  <NeilB@earthling.net>
4410
4411         * cppfiles.c (file_cleanup, _cpp_find_include_file,
4412         remap_filename, _cpp_read_include_file, actual_directory,
4413         hack_vms_include_specification): Replace bcopy(), index() etc
4414         calls.  Add casts to some allocations.  Make some variables
4415         pointers to const [unsigned] char.
4416         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
4417         collect_formal_parameters): Similarly.
4418         * cppinit.c (struct pending_option, append_include_chain,
4419         cpp_options_init, cpp_reader_init, initialize_standard_includes,
4420         cpp_start_read, new_pending_define, handle_option): Similarly.
4421         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
4422         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
4423         do_pragma_implementation, detect_if_not_defined,
4424         do_ifdef, skip_if_group, cpp_get_token, parse_string,
4425         do_assert, do_unassert): Similarly.
4426         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
4427         function prototypes.
4428         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.   
4429
4430 2000-03-10  Richard Henderson  <rth@cygnus.com>
4431
4432         * builtins.c (expand_builtin_strlen): Revert last change.
4433         Use emit_insn_before if we're at the beginning of a sequence.
4434
4435 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
4436
4437         * builtins.c (expand_builtin_strlen): Make sure that we have something
4438         at the beginning of the sequence.
4439
4440         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
4441         deferred inlines.
4442
4443         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
4444
4445 2000-03-10  Richard Henderson  <rth@cygnus.com>
4446
4447         * except.c (can_throw): Use INTVAL on a CONST_INT.
4448         (reachable_handlers): Likewise.
4449         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
4450
4451 2000-03-10  Andreas Jaeger  <aj@suse.de>
4452
4453         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
4454         MD_STARTFILE_PREFIX since those are not needed on linux.
4455         (ASM_FILE_START): New, from mips/gnu.h.
4456
4457 2000-03-09  Richard Henderson  <rth@cygnus.com>
4458             Alex Samuel  <samuel@codesourcery.com> and others
4459         
4460         * Makefile.in (ssa.o): New rule.
4461         (OBJS): Add ssa.o.
4462         (STAGESTUFF): Add *.ssa and *.ussa.
4463         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
4464         * rtl.def (PHI): New RTL expression.
4465         * rtl.h (clear_log_links): New declaration.
4466         (convert_to_ssa): Likewise.
4467         (convert_from_ssa): Likewise.
4468         * flow.c (split_edge): If the entry node falls through to the
4469         split edge's source block, split the entry edge.
4470         (clear_log_links): New function.
4471         * toplev.c (ssa_dump): New variable.
4472         (flag_ssa): Likewise.
4473         (f_options): Add "ssa".
4474         (compile_file): Create SSA dump files.
4475         (rest_of_compilation): Go to and from SSA if enabled.
4476         (decide_d_option): Handle -de for SSA dump files.
4477         * ssa.c: New file.
4478         
4479 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
4480
4481         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
4482         same as VAR_DECL.
4483
4484 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
4485
4486         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
4487
4488 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
4489
4490         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
4491         (MD_STARTFILE_PREFIX_1): New macro.
4492
4493 2000-03-09  Robert Lipe  <robertl@sco.com>
4494
4495         * config/ia64/ia64.c: Include system.h.
4496
4497 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
4498
4499         * except.c (nothrow_function_p): If -fno-exceptions, just return.
4500         (init_eh_nesting_info): Likewise.
4501
4502         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
4503         (TREE_NOTHROW): Rename from TREE_RAISES.
4504         * toplev.c (rest_of_compilation): Set it.
4505         * print-tree.c (print_node): Adjust.
4506         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
4507         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
4508         * calls.c (emit_call_1): Add 'nothrow' parm.  Add 
4509         REG_EH_REGION note as appropriate.
4510         (libfunc_nothrow): New fn.
4511         (emit_library_call, emit_library_call_value): Use it.
4512         (expand_call): Check TREE_NOTHROW.
4513
4514         * varasm.c (make_decl_rtl): Skip initial '*' when setting
4515         DECL_ASSEMBLER_NAME.
4516
4517 2000-03-09  Andreas Jaeger  <aj@suse.de>
4518
4519         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
4520         (TARGET_MEM_FUNCTIONS): Define.
4521
4522 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
4523
4524         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
4525
4526         * except.c (can_throw): See through a SEQUENCE.
4527         (nothrow_function_p): New fn.
4528         * except.h: Declare it.
4529         * function.c (current_function_nothrow): New var.
4530         (prepare_function_start): Initialize it.
4531         * output.h: Declare it.
4532         * toplev.c (rest_of_compilation): Set it.
4533         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
4534
4535 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
4536
4537         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
4538         match.  (cpp_compare_defs): Count the nul separator when
4539         advancing over argument names.
4540
4541 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
4542
4543         * recog.c (preprocess_constraints): Matching constraints affect
4544         same alternative/different operand, not same operand/different
4545         alternative.
4546         
4547         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
4548         register and a constant specially.
4549
4550 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4551
4552         * libgcc2.h: New file.
4553         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
4554
4555 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
4556
4557         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
4558         * configure: Regenerate.
4559         * config/ia64: New.
4560
4561 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
4562
4563         * Makefile.in (LIBCPP_DEPS): New macro.
4564         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
4565         it to declare deps.
4566         * cpperror.c: Include cpphash.h.
4567         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
4568         dingleberry.
4569         (lex): Don't use CPP_WARN_UNDEF.
4570         (_cpp_parse_expr): Return an int, the truth value.
4571         * cppfiles.c: Include cpphash.h.
4572         (_cpp_merge_include_chains): Move to cppinit.c and make static.
4573         * cppinit.c (include_defaults_array): Disentangle.
4574         (cpp_cleanup): Don't free the if stack here.
4575         (cpp_finish): Pop off all buffers, not just one.
4576         * cpplib.c (eval_if_expr): Return int.
4577         (do_xifdef): Rename do_ifdef.
4578         (handle_directive): Don't use CPP_PREPROCESSED. 
4579         (cpp_get_token): Don't use CPP_C89.
4580         * fix-header.c: Don't use CPP_OPTIONS.
4581
4582         * cpplib.h: Move U_CHAR, enum node_type, struct
4583         file_name_list, struct ihash, is_idchar, is_idstart,
4584         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
4585         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
4586         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
4587         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
4588         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
4589         of _cpp_simplify_pathname, _cpp_find_include_file,
4590         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
4591         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
4592         cppinit.c.
4593         Change all uses of U_CHAR to be unsigned char instead.
4594         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
4595
4596 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
4597
4598         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
4599         (dwarf2out_begin_prologue): Set it.
4600         (output_call_frame_info): Don't emit EH unwind info for leaves.
4601
4602         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
4603         can occur outside of an EH region.
4604         * except.c: Correct comments about rethrow behavior.
4605         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
4606
4607 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
4608
4609         * flow.c (make_edges): Always call make_eh_edge for calls.
4610
4611 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
4612
4613         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
4614         (struct cpp_buffer): Remove fname and underflow fields.
4615         (struct cpp_reader): Remove get_token field.
4616         (struct include_hash): Rename to struct ihash.  Add typedef to
4617         IHASH.
4618         (struct if_stack): Remove fname field.
4619         (IF_STACK_FRAME): Rename to IF_STACK.
4620
4621         * cpperror.c (print_containing_files): Trust that there are no
4622         macro buffers below the top file buffer.
4623         * cppfiles.c: Replace all references to 'struct include_hash'
4624         with 'IHASH'.  Rename initialize_input_buffer to
4625         init_input_buffer.  Don't set or reference cpp_buffer->fname,
4626         use buffer->ihash->name instead.
4627         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
4628         not CPP_NULL_BUFFER.
4629         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
4630         IF_STACK_FRAME, IHASH not struct include_hash.
4631         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
4632         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
4633         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
4634         references to cpp_buffer->fname (delete entirely, or use
4635         ->ihash->name instead) and IF_STACK->fname.
4636         (cpp_push_buffer): Don't set new->underflow.
4637         (do_include): Use cpp_file_buffer.
4638
4639         * cpphash.c (collect_formal_parameters): Remove duplicate
4640         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
4641         used as a macro argument name.  Don't append "..." to namebuf
4642         for varargs macros.  After we're done scanning, go through
4643         namebuf and make it NUL separated, not comma separated.
4644         (_cpp_compare_defs): Remove register tag from variables.
4645         Expect defn->argnames to be NUL separated.
4646         (_cpp_dump_definition): Expect defn->argnames to be NUL
4647         separated and in forward order.
4648         * cpphash.h: Update documentation of argnames field.
4649
4650 2000-03-08  Richard Henderson  <rth@cygnus.com>
4651
4652         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
4653         to fail.  Don't pre-expand the source operand.
4654
4655         * i386.md (strlensi): Initialize eoschar and align before use.
4656
4657 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
4658
4659         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
4660         CONSTRUCTOR element.
4661
4662 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
4663
4664         * mips.c (mips_expand_prologue): If the last 
4665         named argument is the vararg marker "va_list", treat it as
4666         an unnamed argument.
4667
4668 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
4669
4670         * dbxout.c (dbxout_parms): When correcting for promoted 
4671         big-endian parameters, use the mode of the DECL_RTL rather 
4672         than UNITS_PER_WORD.
4673
4674 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
4675
4676         * c-common.h (make_fname_decl): Declare.
4677         * c-common.c (make_fname_decl): Define.
4678         (declare_hidden_char_array): Remove.
4679         (declare_function_name): Use make_fname_decl.
4680         * c-decl.c (c_make_fname_decl): New function.
4681         (init_decl_processing): Set make_fname_decl.
4682
4683 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
4684
4685         * cccp.c (handle_directive): Initialize backslash_newlines_p.
4686
4687 2000-03-07  Philipp Thomas  <pthomas@suse.de>
4688
4689         * po/POTFILES.in: Remove cppalloc.c from file list.
4690
4691 2000-03-07  Steve Chamberlain  <sac@pobox.com>
4692
4693         * pj.c (pj_expand_prologue): current_function->args_info is
4694         now current_function_args_info.  
4695
4696         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
4697         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
4698         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
4699
4700 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4701
4702         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
4703         output as hexadecimal rather than the default octal.
4704
4705 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
4706
4707         * cpphash.c (special_symbol): Fix thinko in previous commit.
4708
4709 2000-03-07  Neil Booth  <NeilB@earthling.net>
4710
4711         * cppexp.c (struct operation, left_shift, right_shift,
4712         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
4713         "int"s to "unsigned int"s.
4714         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
4715         Similarly.
4716         * cpplib.h: Update for above.
4717         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
4718         returned from allocations.
4719
4720         * cppinit.c (opt_comp, parse_options): New functions.
4721         (handle_option): Use parse_option to parse a single command
4722         line option, that possibly takes an argument.
4723         (cpp_handle_options): Sort the array of command line options on
4724         first invocation (non-ASCII hosts only).
4725         (print_help): Update.
4726
4727 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
4728
4729         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
4730         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
4731         
4732         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
4733         initialized.
4734         * cppinit.c (cpp_cleanup): Free imp->nshort also.
4735
4736         * cpperror.c (cpp_print_containing_files,
4737         cpp_print_file_and_line, v_cpp_message): Rename to
4738         print_containing_files, print_file_and_line, and v_message.
4739         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
4740         to _cpp_parse_expr, parse_escape, and lex.
4741         (parse_charconst): Remove broken multibyte support.
4742         * cppfiles.c (include_hash): Make static.
4743         (cpp_included): New function.
4744         (merge_include_chains, find_include_file, finclude,
4745         simplify_pathname): Rename to _cpp_merge_include_chains,
4746         _cpp_find_include_file, _cpp_read_include_file, and
4747         _cpp_simplify_pathname.
4748         * cpphash.c (cpp_lookup, free_definition, delete_macro,
4749         cpp_install, create_definition, macroexpand, compare_defs,
4750         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
4751         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
4752         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
4753         * cppinit.c (cpp_handle_option): Rename to handle_option, make
4754         static.
4755         * cpplib.c: Remove extern prototype of cpp_parse_expr.
4756
4757         * cpphash.h: Update prototypes.
4758         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
4759
4760 2000-03-07  Andrew Haley  <aph@cygnus.com>
4761
4762         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
4763         PTRDIFF_TYPE should be based solely on Pmode.
4764         (SIZE_TYPE): ditto.
4765
4766 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4767
4768         * rtl.h (rtunion_def): Constify member `rtstr'.
4769         (emit_line_note_after, emit_line_note, emit_line_note_force,
4770         emit_note, decode_asm_operands): Constify.
4771         
4772         * cse.c (canon_hash): Likewise.
4773
4774         * dbxout.c (dbxout_block): Likewise.
4775
4776         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
4777         v_warning_for_asm): Likewise.
4778
4779         * dwarfout.c (function_start_label): Likewise.
4780
4781         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
4782         emit_line_note_force): Likewise.
4783
4784         * final.c (last_filename, asm_insn_count, final_scan_insn,
4785         output_source_line): Likewise.
4786
4787         * function.h (struct emit_status): Likewise.
4788
4789         * gcse.c (hash_expr_1): Likewise.
4790
4791         * genattr.c (gen_attr, main): Likewise.
4792
4793         * genattrtab.c (struct function_unit, current_alternative_string,
4794         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
4795         attr_numeral, check_attr_test, check_attr_value,
4796         convert_set_attr_alternative, convert_set_attr,
4797         compute_alternative_mask, simplify_by_exploding, gen_attr,
4798         gen_unit): Likewise.
4799
4800         * genflags.c (gen_insn): Likewise.
4801
4802         * gengenrtl.c (type_from_format): Likewise.
4803
4804         * genopinit.c (gen_insn): Likewise.
4805
4806         * genoutput.c (n_occurrences, process_template, process_template):
4807         Likewise.
4808
4809         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
4810         Likewise.
4811
4812         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
4813         Likewise.
4814
4815         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
4816         ggc_set_mark, ggc_get_size): Likewise.
4817
4818         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
4819
4820         * optabs.c (init_one_libfunc): Likewise.
4821
4822         * output.h (assemble_start_function): Likewise.
4823
4824         * recog.c (decode_asm_operands): Likewise.
4825
4826         * toplev.c (rest_of_compilation): Likewise.
4827
4828         * tree.h (emit_line_note_after, emit_line_note,
4829         emit_line_note_force): Likewise.
4830
4831         * varasm.c (asm_output_bss, asm_output_aligned_bss,
4832         asm_emit_uninitialised, assemble_start_function,
4833         assemble_variable, const_hash, compare_constant_1,
4834         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
4835
4836         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
4837
4838         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
4839
4840         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
4841
4842         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
4843
4844         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
4845         arm_dllimport_name_p): Likewise.
4846
4847         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
4848         Likewise.
4849
4850         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
4851
4852         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4853
4854         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
4855         arm_mark_dllexport, arm_mark_dllimport,
4856         arm_pe_encode_section_info): Likewise.
4857
4858         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
4859         ASM_FINISH_DECLARE_OBJECT): Likewise.
4860
4861         * arm/thumb.c (thumb_function_prologue): Likewise.
4862
4863         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
4864
4865         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4866
4867         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
4868
4869         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
4870
4871         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
4872
4873         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4874
4875         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
4876         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
4877
4878         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
4879
4880         * i386/i386.c (asm_output_function_prefix): Likewise.
4881
4882         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
4883
4884         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4885
4886         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
4887
4888         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
4889         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
4890         ASM_OUTPUT_SECTION_NAME): Likewise.
4891
4892         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
4893
4894         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
4895
4896         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
4897
4898         * m32r/m32r.c (m32r_encode_section_info): Likewise.
4899
4900         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4901
4902         * mcore/mcore.c (mcore_encode_section_info): Likewise.
4903
4904         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4905
4906         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4907
4908         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4909
4910         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
4911
4912         * mips/mips.md (movdi, movsi): Likewise.
4913
4914         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4915
4916         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4917
4918         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
4919
4920         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
4921         ASM_OUTPUT_ASCII): Likewise.
4922
4923         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
4924         output_mi_thunk, output_toc): Likewise.
4925
4926         * rs6000/rs6000.md (movsi): Likewise.
4927
4928         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
4929
4930         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
4931
4932         * v850/v850.c (print_operand, print_operand_address,
4933         v850_encode_data_area): Likewise.
4934
4935 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
4936         
4937         * config/mips/mips.md (zero_extendsidi2): Always force operand
4938         one to memory for mips16.
4939
4940 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4941
4942         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
4943         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
4944         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
4945         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
4946         (min_precision): Result is unsigned.
4947         (add_double, neg_double, mul_double): Low word is unsigned.
4948         (lshift_double, rshift_double, lrotate_double): Likewise.
4949         (rrotate_double, div_and_round_double): Likewise.
4950         (tree_floor_log2, compare_tree_int): New functions.
4951         (preserve_rtl_expr_temps): New declaration.
4952         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
4953         (decl_attributes): Use tree_log2 to find alignment.
4954         Check for TREE_INT_CST_HIGH for format args.
4955         (min_precision): Now unsigned.
4956         Use tree_floor_log2.
4957         (truthvalue_conversion): Delete long-disabled code.
4958         * c-decl.c (finish_struct): Clean up tests on field width.
4959         (finish_function): Use compare_tree_int.
4960         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
4961         * c-typeck.c (comptypes): Use tree_int_cst_equal.
4962         (default_conversion, digest_init): Use compare_tree_int.
4963         (build_binary_op): Use integer_all_onesp and compare_tree_int.
4964         Fix type errors in forming masks.
4965         * calls.c (initialize_argument_information): Use compare_tree_int.
4966         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
4967         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
4968         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
4969         (store_field): Use compare_tree_int.
4970         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
4971         (expand_expr, case ARRAY_REF): Use compare_tree_int.
4972         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
4973         (do_store_flag): Use compare_tree_int.
4974         * fold-const.c (encode, decode): Low part is always unsigned.
4975         (force_fit_type, add_double, neg_double, mul_double): Likewise.
4976         (lshift_double, rshift_double, lrotate_double): Likewise.
4977         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
4978         (fold_convert): Use compare_tree_int.
4979         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
4980         (invert_truthvalue, case INTEGER_CST): Likewise.
4981         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
4982         * mkdeps.c (deps_dummy_targets): Make I unsigned.
4983         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
4984         (lshift_double, rshift_double, lrotate_double, rrotate_double):
4985         Likewise.
4986         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
4987         (expand_end_case): Use compare_tree_int.
4988         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
4989         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
4990         (layout_decl): Likewise.
4991         (layout_record, layout_union): Make sizes unsigned.
4992         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
4993         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
4994         * tree.c (struct type_hash): hashcode is unsigned.
4995         (build_type_attribute_variant, type_hash_list): Likewise.
4996         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
4997         (attribute_hash_list, build_array_type, build_method_type): Likewise.
4998         (build_complex_type): Likewise.
4999         (real_value_from_int_cst): Remove unneeded casts.
5000         (integer_all_onesp): Add casts.
5001         (tree_floor_log2, compare_tree_int): New functions.
5002         (build_index_type): Use tree_int_cst_sgn.
5003         * varasm.c (assemble_variable): Use compare_tree_int.
5004
5005 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
5006
5007         * cpphash.c (collect_expansion): Also catch ## at start of macro.
5008
5009         * varasm.c (make_decl_rtl): Don't add a number to members of
5010         local classes.
5011         (make_function_rtl): Likewise.
5012
5013 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5014
5015         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
5016         patch from 2000-01-28.
5017
5018 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
5019
5020         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
5021         filled with an insn from the jump target.
5022
5023 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5024
5025         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
5026         (c4x_external_ref): Likewise.
5027         * config/c4x/c4x.c (struct name_list): Likewise.
5028
5029 1999-12-16  Ben Collins  <bcollins@debian.org>
5030
5031         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
5032         argument to genmultilib.
5033         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
5034         the contents into the multilib.h header.
5035         * gcc.c: Declare multilib_exclusions for the specs file.
5036         (set_multilib_dir): Use it.
5037         (print_multilib_info): Likewise.
5038         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
5039         to pass to genmultilib.
5040
5041 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5042
5043         * builtins.c (built_in_class_names, built_in_names): Constify a
5044         char*.
5045
5046         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
5047         int.
5048         (_mcleanup): Ensure value matches format specifier in sprintf.
5049
5050         * cpphash.c (special_symbol): Don't needlessly cast away
5051         const-ness.
5052
5053         * cppinit.c (base_name): Delete unused prototype.
5054
5055         * mkdeps.c (deps_init): Make definition K&R safe.
5056
5057         * tree.h (built_in_class_names, built_in_names): Constify a
5058         char*.
5059
5060 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
5061
5062         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
5063         floating point instructions for epilogue delay.
5064
5065         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
5066         to gas if it supports .register pseudo.
5067
5068         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
5069         LONG_DOUBLE_TYPE_SIZE if not defined.
5070         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
5071         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
5072         * real.c: Likewise.
5073         * gengenrtl.c: Likewise.
5074         * print-rtl.c: Likewise.
5075         * rtl.c: Likewise.
5076         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
5077         MASK_LONG_DOUBLE_128.
5078         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
5079         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
5080         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
5081         (SUBTARGET_SWITCHES): Define.
5082         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
5083         with -mlong-double-128.
5084         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
5085         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
5086         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
5087         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
5088         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
5089         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
5090         with -mlong-double-128.
5091         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
5092         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
5093         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
5094         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
5095         TARGET_LONG_DOUBLE_128): Define.
5096         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
5097         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
5098         long double on TARGET_ARCH64.
5099
5100 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
5101
5102         * function.c (free_temps_for_rtl_expr): Don't free slots
5103         that have been pushed into a higher level.
5104         
5105         Revert this patch:
5106         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
5107
5108 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
5109
5110         * basic-block.h (ALLOCA_REG_SET): Remove.
5111         (INITIALIZE_REG_SET): New macro.
5112         * flow.c (update_life_info): Use it.
5113         (calculate_global_regs_live): Likewise.
5114         (propagate_block): Likewise.
5115         * global.c (build_insn_chain): Likewise.
5116         * haifa-sched.c (schedule_region): Likewise.
5117
5118 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
5119
5120         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
5121         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
5122         (DWARF_ARANGES_PAD_SIZE): New define.
5123         (output_aranges): Use it to pad the address range header.
5124         (DWARF_ROUND): Fix for non power of 2 rounding.
5125
5126 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
5127
5128         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
5129
5130 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
5131
5132         * tree.def (RTL_EXPR): Update documentation.
5133         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
5134         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
5135         * function.c (preserve_rtl_expr_temp): New function.
5136         (preserve_rtl_expr_temps): Likewise.
5137         (preserve_rtl_expr_result): Use it.
5138
5139         Revert this patch:
5140         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
5141
5142 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
5143
5144         * regmove.c (copy_src_to_dest)  Do not create src->dest move
5145         for unchanging destination.
5146
5147 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
5148
5149         * function.h (struct sequence_stack): Remove rtl_expr.
5150         (struct emit_staus): Likewise.
5151         (seq_rtl_expr): Remove.
5152         * tree.h (free_temps_for_rtl_expr): Don't declare.
5153         (start_sequence_for_rtl_expr): Likewise.
5154         * rtl.h (preserve_rtl_expr_result): Likewise.
5155         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
5156         (start_sequence_for_rtl_expr): Remove.
5157         (push_topmost_sequence): Don't save sequence_rtl_expr.
5158         (pop_topmost_sequence): Remove comment about not restoring it.
5159         (end_sequence): Don't set seq_rtl_expr.
5160         (init_emit): Don't initialize it.
5161         (mark_sequence_stack): Don't mark it.
5162         (mark_emit_status): Likewise.
5163         * except.c (protect_with_terminate): Use
5164         start_sequence_for_rtl_expr, not start_sequence.
5165         * expr.c (expand_expr, case RTL_EXPR): Don't call
5166         preserve_rtl_expr_result or free_temps_for_rtl_expr.
5167         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
5168         (preserve_rtl_expr_result): Remove.
5169         (free_temps_for_rtl_expr): Likewise.
5170         (pop_temp_slots): Likewise.
5171         (mark_temp_slot): Don't mark the rtl_expr.
5172         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
5173         start_sequence_for_rtl_expr.
5174         
5175 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
5176
5177         * mkdeps.c, mkdeps.h: New files.
5178         * po/POTFILES.in: Add them.
5179         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
5180         (cpplib.o, cppinit.o): Depend on mkdeps.h.
5181         (mkdeps.o): New target.
5182
5183         * cppfiles.c: Delete deps_output.
5184         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
5185         OBJECT_SUFFIX, and base_name.
5186         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
5187         the include hash.
5188         (initialize_dependency_output): Use deps_init,
5189         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
5190         all the unnecessary string bashing.
5191         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
5192         level.
5193         * cpplib.c (do_include): Use deps_add_dep.
5194         * cpplib.h (struct cpp_reader): Replace deps_buffer,
5195         deps_allocated_size, deps_size, deps_column members with
5196         single pointer to a struct deps.  Delete prototype of
5197         deps_output.
5198
5199         * cppinit.c: Fix thinko in previous patch.
5200
5201 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5202
5203         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
5204         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
5205         (mode_for_size_tree): New function.
5206         (layout_decl, layout_type): Call it and clean up BLKmode checks.
5207         * tree.h (mode_for_size_tree): New declaration.
5208         
5209         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
5210
5211 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
5212
5213         * stmt.c (is_body_block): Move...
5214         * dwarfout.c, dwarf2out.c: ...from here.
5215         * tree.h: Declare it.
5216         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
5217         * final.c (final_start_function): Do call remove_unnecessary_notes
5218         when scheduling.
5219
5220 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
5221
5222         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
5223         
5224         * cpplib.h (_dollar_ok): New macro.
5225         (is_idchar, is_idstart): Use it.
5226         (IStable): Rename to _cpp_IStable.  Declare it const if
5227         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
5228         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
5229         is_space): Update for renamed IStable.
5230
5231         * cppinit.c: Delete all references to FAKE_CONST and CAT
5232         macros. Define init_IStable as empty macro if gcc >=2.7 or
5233         C99. Change TABLE() to ISTABLE and hardcode name of table.
5234         (cpp_start_read): Don't change the IStable based on
5235         dollars_in_ident.
5236
5237         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
5238         changed.  Handle '$' for char1 correctly.
5239         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
5240
5241         * cppexp.c (tokentab2): Make const.
5242         (cpp_lex): Make toktab const.
5243         * cppinit.c (include_defaults_array): Make const.
5244         (initialize_standard_includes): Make default_include const.
5245
5246 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
5247
5248         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
5249         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
5250         (gen_decl_die): Likewise.
5251         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
5252         (output_decl): Likewise.
5253
5254         * varasm.c (make_function_rtl): If we change the name used in the
5255         rtl, update DECL_ASSEMBLER_NAME accordingly.
5256         (make_decl_rtl): Likewise.
5257
5258         * toplev.c (rest_of_compilation): Tweak formatting.
5259
5260         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
5261         remove_unnecessary_notes.
5262         (debug_ignore_block): New fn.
5263         * toplev.h: Declare it.
5264         * emit-rtl.c (remove_unncessary_notes): Call it.
5265         * dwarf2out.c (dwarf2out_ignore_block): New fn.
5266         * dwarf2out.h: Declare it.
5267         * final.c (final_start_function): Don't call remove_unnecessary_notes
5268         if we did insn scheduling.
5269
5270 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
5271
5272         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
5273         * cpplib.h: Delete SET_CPP_PEDANTIC.
5274
5275 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5276
5277         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
5278         result is a RECORD_TYPE.
5279
5280 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
5281
5282         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
5283
5284 2000-03-03  Richard Henderson  <rth@cygnus.com>
5285
5286         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
5287         addition over compliments over shifts.
5288
5289 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5290
5291         * reload1.c (reload_combine_note_use): Handle return register USEs.
5292         REG case: Handle multi-hard-register hard regs.
5293
5294 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5295
5296         * md.texi: Document use of '*' in insn pattern name.
5297
5298 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
5299
5300         * calls.c (special_function_p): operator new may not be malloc-like.
5301
5302         * gcse.c (dump_hash_table): Really fix error in last change.
5303
5304 2000-03-02  Denis Chertykov  <denisc@overta.ru>
5305
5306         * avr.c (print_operand): Use print_operand_address instead of
5307         output_addr_const.
5308         * avr/libgcc.S: Cleanup code.
5309
5310 2000-03-02  Richard Henderson  <rth@cygnus.com>
5311
5312         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
5313
5314 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
5315
5316         * tree.h (TYPE_ALIGN_UNIT): New macro.
5317
5318 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
5319
5320         * i386.c: (constant_call_address_operand): Reject CONST_INT.
5321
5322 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
5323
5324         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
5325         for the buffer.
5326         (SET_CPP_PEDANTIC): New macro.
5327         * cpplib.c (do_include): Don't bother checking system_header_p.
5328         (do_warning, do_ident, do_assert, do_unassert): Likewise.
5329         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
5330
5331         * function.h (struct expr_status): Add x_arg_space_so_far.
5332         (arg_space_so_far): New macro.
5333         * expr.c (init_expr): Initialize it.
5334         * calls.c (emit_call_1): Reset it.
5335         (compute_argument_block_size, expand_call): Use it.
5336         (expand_call, store_one_arg): Increment it.
5337
5338 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5339
5340         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
5341         a UNION_TYPE.
5342
5343 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
5344
5345         * cppfiles.c (cpp_read_file): New function.
5346
5347         * cpphash.c (collect_expansion): Make sure to reset last_token
5348         to NORM when we hit a string.  Handle trailing whitespace
5349         properly when the expansion is empty.
5350         (create_definition): Disable line commands while parsing the
5351         directive line.
5352         (dump_definition): If pfile->lineno == 0, output a line
5353         command ahead of the dump, and add a trailing newline.
5354
5355         * cppinit.c (append_include_chain): Add fifth argument, which
5356         indicates whether or not system headers are C++ aware.
5357         (initialize_standard_includes): New function,
5358         broken out of read_and_prescan.  Pass 'cxx_aware' value from
5359         the include_defaults_array on to append_include_chain.
5360         (dump_special_to_buffer): Const-ify char array.
5361         (builtin_array): Don't dump __BASE_FILE__.
5362         (cpp_start_read): Use cpp_read_file.  Reorder code for
5363         clarity.  Don't output line commands here for -D/-A/-U
5364         switches.  Don't call deps_output for files included with
5365         -include or -imacros.
5366
5367         * cpplib.c (do_define): Don't pay any attention to the second
5368         argument.
5369         (cpp_expand_to_buffer): Disable line commands while scanning.
5370         (output_line_command): Work in the file buffer.
5371         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
5372         Fix formatting of comments.  Prototype cpp_read_file.
5373
5374 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5375
5376         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
5377         reference the language-equivalent of sizetype.
5378         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
5379         * fold-const.c (size_binop, size_diffop): Put back checks.
5380         * gcse.c (dump_hash_table): Fix minor error in last change.
5381         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
5382         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
5383         all sizetypes.
5384
5385 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
5386
5387         * calls.c (expand_call)  Do not attempt to combine stack adjustments
5388         with inhibit_defer_pop set.
5389
5390 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
5391
5392         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
5393         the DECL_SIZE for a FIELD_DECL.
5394
5395 2000-03-01  Bruce Korb  <bkorb@gnu.org>
5396
5397         * fixinc/inclhack.tpl: remove unused symlinks
5398         * fixinc/README: GCC Maintainer info
5399         * fixinc/inclhack.sh: regen
5400         * fixinc/fixincl.sh: regen
5401
5402 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
5403
5404         * cpphash.c (collect_expansion): Trim trailing white space
5405         from macro definitions, but don't go past the last insertion
5406         point.
5407
5408 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
5409
5410         * i386.md (mulqi3): New pattern.
5411
5412 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
5413
5414         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
5415         token types.
5416         (struct cpp_reader): Add parsing_if_directive and
5417         parsing_define_directive flags.               
5418         (struct cpp_options): Remove output_conditionals flag.
5419         (check_macro_name): Delete prototype.
5420
5421         * cpphash.h (struct macrodef): Delete.
5422         (struct reflist): Separate from struct definition.
5423         (struct definition): Remove unused fields.  Add column number.
5424         (create_definition): Returns a DEFINITION *.  Takes a
5425         cpp_reader * and an int.
5426
5427         * cpphash.c (SKIP_WHITE_SPACE): Delete.
5428         (PEEKC): Copy defn from cpplib.c.
5429         (rest_extension, REST_EXTENSION_LENGTH): Delete.
5430         (struct arg): New.
5431         (struct arglist): Simplify.
5432         (collect_expansion): Rewrite.  Get tokens by calling
5433         cpp_get_token.  Add more error checking.
5434         (collect_formal_parameters): New function, broken out of
5435         create_definition and reworked to use get_directive_token.
5436         (create_definition): All real work is now in collect_expansion
5437         and collect_formal_parameters.  do_define handles finding the
5438         macro name.  Return a DEFINITION, not a MACRODEF.
5439         (macroexpand): Replace bcopy with memcpy throughout.  Replace
5440         character-at-a-time copy loop with memcpy and pointer increments.
5441         (compare-defs): d1->argnames / d2->argnames might be null.
5442
5443         * cpplib.c (copy_rest_of_line): Delete function.
5444         (skip_rest_of_line): Do all the work ourselves.
5445         (skip_string): New function.
5446         (parse_string): Use skip_string.
5447         (get_macro_name): New function.
5448         (check_macro_name): Delete.
5449         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
5450         (cpp_skip_hspace): Use CPP_BUMP_LINE.
5451         (handle_directive): ICE if we're called on a macro buffer.
5452         (do_define): Determine macro name and type (funlike/objlike)
5453         here.  Expunge all uses of MACRODEF.
5454         (cpp_push_buffer): Set line_base to NULL.
5455         (do_undef, read_line_number): Don't worry about getting a POP token.
5456         (eval_if_expression): Set/reset parsing_if_directive around
5457         cpp_parse_expr. Don't clear only_seen_white.
5458         (skip_if_group): Remove output_conditionals logic.  Use
5459         skip_rest_of_line.
5460         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
5461         tokens under appropriate conditions.
5462         (cpp_unassert): Call do_unassert not do_assert.  Oops.
5463
5464         * cppexp.c (parse_defined): New function, break out of
5465         cpp_lex.
5466         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
5467         ourselves, with cpp_defined.
5468         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
5469
5470         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
5471         * gcc.dg/strpaste-2.c: New.
5472
5473 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
5474
5475         * fold-const.c (size_binop): Don't asert inputs are the same and
5476         have TYPE_IS_SIZETYPE set.
5477         (size_diffop): Likewise.
5478
5479 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
5480
5481         * dwarfout.c (output_block): Output abstract blocks even if they
5482         don't have TREE_ASM_WRITTEN set.
5483
5484         * calls.c (emit_library_call): Check for null REG.
5485
5486 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
5487
5488         * c-decl.c (current_function_decl): Move to toplev.c.
5489         (init_decl_processing): Don't add current_function_decl as a ggc
5490         root here.
5491         * dbxout.c (dbxout_symbol): Change return type to int.
5492         (dbxout_symbol_location, dbxout_syms): Likewise.
5493         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
5494         any locals. Use current_function_func_begin_label if set.
5495         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
5496         * dwarf2out.c (dwarf2out_begin_prologue): Set
5497         current_function_func_begin_label.
5498         * final.c (final_start_function): Reset it.
5499         * toplev.c (current_function_decl): Define it here.
5500         (current_function_func_begin_label): New variable.
5501         (main): Add both as ggc roots.
5502         * tree.h (current_function_func_begin_label): Declare.
5503
5504 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5505
5506         * gcse.c: Cleanups throughout: mostly white-space, but also
5507         some minor rearrangement of code.
5508
5509 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
5510
5511         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
5512         returns a PARALLEL.  Use emit_group_load and use_group_regs
5513         as needed.  
5514         (emit_library_call_value): Similarly.
5515
5516         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
5517         * pa/quadlib.asm: Remove.
5518         * pa/quadlib.c: New file.
5519
5520         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
5521         * configure: Rebuilt.
5522
5523 2000-02-29  Philip Blundell  <pb@futuretv.com>
5524
5525         * config/arm/conix-elf.h: New file.
5526         * configure.in (arm*-*-conix*): New configuration.
5527         * configure: Regenerate.
5528
5529 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
5530
5531         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
5532         don't have TREE_ASM_WRITTEN set.
5533
5534 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5535
5536         * Eliminate DECL_FIELD_SIZE.
5537         * builtins.c (built_in_class_names, built_in_names): New variables.
5538         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
5539         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
5540         DECL_SIZE, not DECL_FIELD_SIZE.
5541         * print-tree.c (print_node): Remove code that prints extra blank
5542         lines in some cases.
5543         Properly handle inline and builtin function cases.
5544         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
5545         * tree.h (built_in_class_named, built_in_names): New declarations.
5546         (union tree_decl): Rename internal unions to u1 and u2 and change
5547         some of their components.
5548         Add new field built_in_class.
5549         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
5550         Reflect above changes.
5551         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
5552         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
5553         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
5554         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
5555
5556 2000-02-28  Dmitri Makarov  <dim@windriver.com>
5557
5558         * extend.texi: Document ARM's support for long/short calls.
5559
5560         * invoke.texi: Document ARM's -mlong-calls command line switch.
5561         
5562         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
5563         (arm_encode_call_attribute): Add prototype.
5564         (arm_set_default_type_attribute): Add prototype.
5565         (arm_strip_name_encoding): Add prototype.
5566
5567         * config/arm/arm.c (arm_init_cumulative_args): replace
5568         initialisation og 'long_calls' field with initialisation of
5569         'call_cookie' field.
5570         (enum arm_pragma_enum): New enum.
5571         (arm_pragma_long_calls): New static variable.
5572         (arm_process_pragma): Also process "#pragma long_calls_off".
5573         (arm_valid_type_attribute_p): Accept short_call attribute.
5574         (arm_comp_type_attributes): Check long/short call attributes.
5575         (arm_encode_call_attribute):  New function:  Encode long_call
5576         or short_call attribute in function name.
5577         (arm_set_default_type_attributes): New function: Assign
5578         default attributes to newly defined type.
5579         (current_file_function_operand): New function: Return true if
5580         the symbol is a function which has already been compiled.
5581         (arm_is_longcall_p): New function: Return true if the
5582         indicated function should be called via a long call.
5583         (arm_get_strip_length): New function.  Returns number of
5584         prefix characters to be stripped from a function's name.
5585         (arm_strip_name_encoding): New function.  Strip prefix characters
5586         from a function's name.
5587
5588         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
5589         with 'call_cookie'.
5590         (SHORT_CALL_FAG_CHAR): Define.
5591         (LONG_CALL_FAG_CHAR): Define.
5592         (ENCODED_SHORT_CALL_ATTR_P): Define.
5593         (ENCODED_LONG_CALL_ATTR_P): Define.
5594         (ARM_NAME_ENCODING_LENGTHS): Define.
5595         (STRIP_NAME_ENCODING): Define.
5596         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
5597         (ARM_ENCODE_CALL_TYPE): Define.
5598         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
5599         (ARM_DECLARE_FUNCTION_SIZE): Define.
5600         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
5601
5602         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
5603         if a long call is needed.
5604         (call_value): Ditto.
5605         (call_symbol): Ditto.
5606
5607         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
5608         ARM_DECLARE_FUNCTION_SIZE.
5609
5610         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
5611         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
5612         (ARM_STRIP_NAME_ENCODING): Undefine.
5613         (STRIP_NAME_ENCODING): Undefine.
5614         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
5615         (ASM_DECLARE_FUNCTION_NAME): Ditto.
5616         (ASM_OUTPUT_COMMON): Ditto.
5617         (ASM_DECLARE_OBJECT_NAME): Ditto.
5618
5619         * config/arm/pe.c (arm_dllexport_name_p): Check for
5620         ARM_PE_FLAG_CHAR.
5621         (arm_dllimport_name_p): Ditto.
5622         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
5623         (arm_mark_dllimport): Ditto.
5624         
5625 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5626
5627         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
5628
5629 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
5630
5631         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
5632
5633 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
5634
5635         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
5636         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
5637         NO_BUILTIN_WCHAR_TYPE is not defined.
5638         (CPP_WCHAR_TYPE): Delete.
5639         * cccp.c (main): Don't change wchar_type if cplusplus.
5640         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
5641
5642 2000-02-28  Nick Clifton  <nickc@cygnus.com>
5643
5644         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
5645
5646 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
5647
5648         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
5649         (ASM_WEAKEN_LABEL): Define.
5650  
5651 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
5652
5653         * expr.c (store_constructor): Do not emit USE.
5654         * rtl.h (stupid_life_analysis): Remove.
5655
5656 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5657
5658         * function.c (number_blocks): Reset next_block_index based on
5659         what debugging format is used, not what is defined.
5660         
5661         * lcm.c: Minor reformatting throughout.
5662         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
5663         
5664         * toplev.c (rest_of_compilation): Account for time in
5665         optimize_mode_switching.
5666
5667         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
5668         if only marking labels.
5669
5670 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
5671
5672         * calls.c (expand_call): Attempt to combine stack adjustments with
5673         pending stack adjustments.
5674
5675 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5676
5677         * loop.c (reg_in_basic_block_p): Don't abort when falling through
5678         to the end of the function.
5679
5680 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
5681
5682         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
5683         blocks.
5684         * final.c (next_block_index): Remove.
5685         (max_block_depth): Likewise.
5686         (pending_blocks): Likewise.
5687         (init_final): Don't initialize them.
5688         (final_start_function): Don't set next_block_index.  Set up
5689         BLOCK_NUMBER.
5690         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
5691         * function.h (number_blocks): New function.
5692         * function.c (get_block_vector): New function.
5693         (identify_blocks): Use it.
5694         (reorder_blocks): Set NOTE_BLOCK.
5695         (number_blocks): New function.
5696         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
5697         * tree.h (BLOCK_NUMBER): New macro.
5698         (tree_block): Add block_num field.
5699         * dbxout.c (next_block_number): Remove.
5700         (dbxout_init): Don't set it.
5701         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
5702         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
5703         block numbers.
5704         * toplev.c (rest_of_compilation): Always call
5705         find_loop_tree_blocks.  Fix indentation.
5706         * dwarf2out.c (next_block_number): Remove.
5707         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
5708         to determine block numbers.
5709         (gen_inlined_subroutine_die): Likewise.
5710         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
5711         (decls_for_scope): Don't increment next_block_number.
5712         * dwarfout.c (next_block_number): Remove.
5713         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
5714         to determine block numbers. 
5715         (output_inlined_subroutine_die): Likewise.
5716         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
5717         (output_decls_for_scope): Don't increment next_block_number.
5718         * sdbout.c (next_block_number): Remove.
5719         (sdbout_block): Use BLOCK_NUMBER.
5720         (sdbout_begin_block): Simplify.
5721         * xcoffout.c (next_block_number): Remove.
5722         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
5723         (xcoffout_begin_block): Don't set next_block_number.
5724         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
5725         next_block_number.
5726         
5727 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5728
5729         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
5730         (expand_builtin_strcpy): Pass correct type to size_binop.
5731         (expand_builtin_strcmp): Likewise.
5732         Clean up conditional structure.
5733         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
5734         (complete_array_type): Don't use size_binop for MAXINDEX.
5735         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
5736         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
5737         (c_alignof): Use size_one_node.
5738         (build_unary_op): Pass arg of proper type to size_binop.
5739         (really_start_incremental_init, push_init_level): Use sizetype for
5740         constructor{,_bit,_unfilled}_index.
5741         (pop_init_label, output_init_element): Likewise.
5742         (output_pending_init_elements, process_init_element): Likewise.
5743         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
5744         * expr.c (store_expr): Use size_int.
5745         (store_constructor): Use proper types for size_binop args.
5746         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
5747         (expand_expr_unaligned): Likewise.
5748         (string_contant): Return object of sizetype.
5749         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
5750         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
5751         (ARGS_SIZE_TREE): Pass proper types to size_binop.
5752         * fold-const.c (int_const_binop): Refine when size_int is called.
5753         (fold_convert): Likewise.
5754         (size_int_wide): Rework to take KIND as arg, only take low order
5755         bits, handle new sizetype_tab datatype, and chain entries in
5756         size_table.
5757         (size_int_type_wide): New function.
5758         (size_binop): Validate types of arguments.
5759         (ssize_binop): Deleted.
5760         (size_diffop): New function.
5761         (extract_muldiv): Only fold division into multiplication for sizetypes.
5762         * function.c (assign_parms): Use size_diffop and make sure
5763         VAR field is of ssizetype; also pass proper type to size_binop.
5764         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
5765         (round_down): Deleted from here.
5766         * store-layout.c (sizetype_tab): Now an array.
5767         (sizetype_set, early_root_list): New variables.
5768         (variable_size): Use size_one_node.
5769         (round_up): Pass proper type to size_binop.
5770         (round_down): Moved to here and corrected as above.
5771         (layout_record): Pass proper arg types to size_binop.
5772         (layout_type): Likewise.
5773         If sizetype_set is zero, record the type just laid out.
5774         (make_unsigned_type): Don't call set_sizetype;
5775         (make_signed_type): Likewise; also, call fixup_signed_type.
5776         (initialize_sizetypes): New function.
5777         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
5778         set name of bitsizetype to "bit_size_type".
5779         Fix up type of sizes of all types made before call.
5780         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
5781         * tree.c (fix_sizetype): Deleted.
5782         (build_common_tree_nodes): Call initialize_sizetypes.
5783         (build_common_tree_nodes_2): Don't call fix_sizetype.
5784         * tree.h (TYPE_IS_SIZETYPE): New macro.
5785         (initialize_sizetype): New declaration.
5786         (enum size_type_kind): New type.
5787         (struct sizetype_tab): Deleted.
5788         (sizetype_tab): Now array; adjust sizetype macros.
5789         (size_diffop, size_int_type_wide): New functions.
5790         (size_int_wide): Change number of args and type; access macros changed.
5791         (ssize_int, sbitsize_int): New macros.
5792         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
5793         (ROUND_TYPE_SIZE_UNIT): New macro.
5794
5795 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
5796
5797         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
5798
5799 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5800
5801         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
5802         Mark as possibly unused.
5803
5804         * cse.c (cse_insn): Delete dead code involving tablejump.
5805         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
5806
5807         * Makefile.in (libcpp.a): Start by deleting it.
5808
5809 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5810
5811         * cpplib.h (enum file_change_code): Added rename_file.
5812         * cpplib.c (do_line): If a filename is given, set file_change to
5813         rename_file.
5814         (output_line_command): If file_change is rename_file, always
5815         output a # directive with the file name.
5816
5817         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
5818
5819 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
5820
5821         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
5822         when copying a PARM_DECL or RESULT_DECL.
5823
5824 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5825
5826         * fix-header.c (recognized_function): Also fix prototypes for
5827         functions taking "void".
5828
5829 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
5830
5831         * reload1.c (do_output_reload): Check reg_reloaded_valid before
5832         looking at reg_reloaded_contents.
5833
5834 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
5835
5836         * Makefile.in (STMP_FIXINC): New toggle.
5837         (LIBGCC2_DEPS): Delete all references.
5838         (stmp-headers): Delete target.  All references either deleted
5839         or changed to stmp-int-headers.
5840         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
5841         (LIBCPP_OBJS): Take out cppalloc.o.
5842         (cppalloc.o): Delete target.
5843         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
5844         (gen-protos, fix-header): Link with libiberty.a.
5845         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
5846         to empty.
5847
5848         * configure.in: Remove refs to strerror.
5849         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
5850         * system.h: Take out strerror stanza.
5851
5852         * cpperror.c (my_strerror): Delete function.
5853         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
5854         * cppmain.c (main): Call xmalloc_set_program_name first thing.
5855         * cppalloc.c: Delete file.
5856         * gen-protos.c: Don't provide xrealloc.
5857
5858         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
5859         xstrerror throughout.
5860
5861 2000-02-26  Bruce Korb  <bkorb@gnu.org>
5862
5863         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
5864         match for DOS headers, too.
5865         * fixinc/inclhack.sh,fixincl.x: Regenerate.
5866
5867 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
5868
5869         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
5870         is right for most ELF targets.
5871         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
5872         Let the default file use %U properly.
5873         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
5874         default.
5875
5876         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
5877         numbers.
5878
5879 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5880
5881         * toplev.c (documented_lang_options): Correct spelling error.
5882         (decode_d_option, decode_f_option, main): Likewise.
5883
5884         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
5885
5886         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
5887         to tell assembler it is permitted to expand large constants.
5888
5889 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
5890
5891         * protoize.c: (AUX_INFO_SUFFIX): New macro.
5892         (aux_info_suffix): Use.
5893         (SAVE_SUFFIX): New macro.
5894         (save_suffix): Use.
5895         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
5896         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
5897         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
5898
5899         * invoke.texi (Running Protoize): Update documentation.
5900
5901 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
5902
5903         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
5904
5905 2000-02-25  John Wehle  (john@feith.com)
5906
5907         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
5908
5909 2000-02-25  Anthony Green  <green@cygnus.com>
5910
5911         * toplev.c (rest_of_compilation): Rebuild jump labels if
5912         combine_instructions has created a new direct jump.
5913         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
5914         when appropriate.
5915         (combine_instructions): Call try_combine with new argument.
5916         Return non-null value when new direct jump instruction is created.
5917         * rtl.h: combine_instructions returns an int.
5918
5919 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
5920
5921         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
5922         jump when changing a computed jump into a jump to a known
5923         target.
5924
5925 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
5926
5927         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
5928         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
5929
5930         * i386.md (define_expand "clrstrsi"): Fix typo.
5931
5932 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
5933
5934         * rtl.texi: Fix typo.
5935
5936 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5937
5938         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
5939         UNITS_PER_WORD.  Change caller initial_elimination_offset.
5940         (rounded_frame_size): Take into account that argument pushed has
5941         changed.  Fix TARGET_ALIGN_DOUBLE problem.
5942
5943 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
5944
5945         * haifa-sched.c (schedule_block): Explain the real reason
5946         we delete REG_SAVE_NOTEs on the first insn of a block.
5947         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
5948
5949 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
5950
5951         * input.h (push_srcloc): New function.
5952         (pop_srcloc): Likewise.
5953         * toplev.c (push_srcloc): Define it.
5954         (pop_srcloc): Likewise.
5955
5956 2000-02-24  Richard Henderson  <rth@cygnus.com>
5957
5958         * flow.c (life_analysis): When collecting reg info, clear
5959         regs_ever_live.
5960
5961 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5962
5963         Fix bug exposed by reload.c no longer rounding the frame
5964         size to BIGGEST_ALIGNMENT:
5965         * sh.c (rounded_frame_size): New function.
5966         (sh_expand_prologue, sh_expand_epilogue): Use it.
5967         (initial_elimination_offset): Likewise.
5968
5969 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5970
5971         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
5972         * sh-protos.h (sh_need_epilogue): Declare.
5973         * sh.c (sh_need_epilogue_known): New static variable.
5974         (sh_need_epilogue): New function.
5975         (function_epilogue): Clear need_epilogue_known.
5976         * sh.md (return): Split into expander / insn pattern.
5977         Make the expander conditional on ! sh_need_epilogue ().
5978
5979 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
5980
5981         * machmode.h (get_mode_alignment): Declare.
5982         (GET_MODE_ALIGNMENT): Call it.
5983         * stor-layout.c (get_mode_alignment): New function. Make
5984         sure alignment is always power of 2.
5985
5986 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
5987
5988         * i386.h: Remove useless definition of "I386" and misleading
5989         comment above it.
5990
5991 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
5992
5993         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
5994         under which TREE_PERMANENT will be set.
5995         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
5996         build1): Use TREE_SET_PERMANENT.
5997         * print-tree.c (print_node): Don't report value of
5998         TREE_PERMANENT if ggc_p is true.
5999
6000         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
6001         decide whether to give a type a new alias set.
6002         * objc/objc-act.c (build_objc_string_object): Never copy the string.
6003         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
6004         of value of 'obstack'.
6005
6006
6007 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6008
6009         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
6010
6011 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6012
6013         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
6014         * cpplib.c (cpp_get_token): Produce them.
6015         * cppexp.c (cpp_lex): Handle them.
6016
6017 2000-02-23  Nick Clifton  <nickc@cygnus.com>
6018
6019         * config/arm/arm.c (arm_comp_type_attributes): Simply and
6020         comment tests on type attributes.
6021
6022 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6023
6024         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
6025         conform to documentation.
6026         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
6027         to check for special cases.
6028         * sh-protos.h (sh_loop_align): Declare.
6029         * sh.c (sh_loop_align): Define.
6030
6031 2000-02-22  Andrew Haley  <aph@cygnus.com>
6032
6033         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
6034         (SIZE_TYPE): Is 32 bits when using -mgp32.
6035         (PTRDIFF_TYPE): Ditto.
6036
6037 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6038
6039         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
6040
6041 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
6042
6043         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
6044         BIGGEST_FIELD_ALIGNMENT a constant.
6045
6046 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
6047
6048         * dwarf2out.c (output_line_info): Put the marker for the end of
6049         the line number info at the actual end.
6050         (gen_struct_or_union_type_die): Use decl_function_context 
6051         to check for local classes.
6052         * dwarfout.c (output_type): Likewise.
6053
6054 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
6055
6056         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
6057         for arguments with a mode, but no type.
6058         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
6059         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
6060         * pa/long_double.h: New file.
6061         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
6062         both have 128bit wide long doubles.
6063         * configure: Rebuilt.
6064
6065 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6066
6067         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
6068
6069         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
6070         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
6071         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
6072
6073         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
6074
6075         * integrate.c (compare_blocks, find_block): Likewise.
6076
6077         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
6078
6079         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
6080
6081         * stmt.c (stmt_status, set_file_and_line_for_stmt,
6082         expand_asm_operands): Likewise.
6083
6084 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
6085
6086         * predict.c (estimate_probability): Added the pointer heuristic to
6087         the collection of static branch predictors.
6088
6089 2000-02-21  Catherine Moore  <clm@cygnus.com>
6090
6091         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
6092         * invoke.texi (-mfix7000): Document.
6093
6094 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
6095
6096         * diagnostic.c (init_output_buffer): Make it possible to output at
6097         least 32 characters if we're given a too long prefix.
6098
6099 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
6100
6101         * varasm.c (initializer_constant_valid_p): Call
6102         lang_expand_constant to simplify the constant.
6103
6104 2000-02-20  Bruce Korb  <bkorb@gnu.org>
6105
6106         * fixinc/inclhack.def(stdio_va_list):
6107         typedef needs to be disabled.
6108         * fixinc/inclhack.sh: regen
6109         * fixinc/fixincl.x: regen
6110
6111 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
6112
6113         * print-rtl.c (print_rtx): Don't print addresses when
6114         flag_dump_unnumbered.
6115
6116 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6117
6118         * sparc.c (sparc_output_scratch_registers): Mark parameter with
6119         ATTRIBUTE_UNUSED.
6120         (sparc_va_arg, sparc_flat_output_function_prologue,
6121         sparc_flat_output_function_epilogue): Cast value to unsigned in
6122         comparison.
6123         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
6124         
6125         * sparc.md: Add default case in switch.
6126
6127 2000-02-19  Richard Henderson  <rth@cygnus.com>
6128
6129         * c-typeck.c (add_pending_init): Don't abort for multiple
6130         fields at the same offset.
6131         (pending_init_member): Test the correct member.
6132
6133 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6134
6135         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
6136         instead of SImode.
6137         (start_catch_handler) : Same.
6138
6139 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
6140
6141         * Makefile.in: Have flow.o depend on $(EXPR_H)
6142
6143 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6144
6145         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
6146         * c-decl.c (duplicate_decls, finish_enum): Likewise.
6147         (finish_decl): Remove -Wlarger-than code from here.
6148         * flags.h (id_clash_len): Now int.
6149         (larger_than_size): Now HOST_WIDE_INT.
6150         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
6151         Clean up checking to see if in table.
6152         (make_bit_field_ref): Remove extra parm to bitsize_int.
6153         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
6154         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
6155         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
6156         and for computing size of decl.
6157         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
6158         Move -Wlarger-than code to here.
6159         (layout_record): Remove extra arg to bitsize_int.
6160         Set TYPE_BINFO_SIZE_UNIT.
6161         (layout_union): Remove extra arg to bitsize_int.
6162         Use proper type for size of QUAL_UNION.
6163         (layout_type): Remove extra arg to bitsize_int.
6164         * toplev.c (id_clash_len): Now int.
6165         (larger_than_size): Now HOST_WIDE_INT.
6166         (decode_W_option): Clean up id-clash and larger-than- cases.
6167         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
6168         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
6169         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
6170         (struct tree_decl): New field size_unit.
6171         (size_int_wide): No HIGH operand; NUMBER is now signed.
6172         (size_int_2): Deleted.
6173         (size_int, bitsize_int): Don't use it and rework args.
6174         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
6175
6176 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
6177
6178         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
6179
6180 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
6181
6182         * invoke.texi (Warning Options): Add an explanation of why
6183         you might want the -Wfloat-equal flag.
6184
6185 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6186
6187         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
6188         * cppinit.c (new_pending_define): Add cast to avoid warning.
6189         * expmed.c (extract_bit_field): Likewise.
6190         * flow.c (enum reorder_skip_type): New type.
6191         (skip_insns_between_blcok): New it.
6192         Rework to avoid warning about possibly undefined variable.
6193         * function.c (assign_parms): Make thisparm_boundary unsigned.
6194         * genrecog.c (write_switch): Cast XWINT result to int.
6195         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
6196         * mips-tfile.c (init_file): Make two versions of FDR intializer:
6197         one for MIPS and one for Alpha.
6198         (get_tag, copy_object): Add casts to avoid warnings.
6199         * optabs.c (init_one_libfunc): Cast NAME to (char *).
6200         * reload.c (find_reloads): Make TYPE enum reload_type.
6201         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
6202         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
6203         * varasm.c (compare_constant_1): Add cast to avoid warning.
6204         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
6205         to (char *).
6206         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
6207         Cast switch operand of size to int.
6208         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
6209         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
6210         in unhandled case.
6211
6212 2000-02-18  Nick Clifton  <nickc@cygnus.com>
6213
6214         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
6215         anything for an alignment of zero.
6216
6217         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
6218         anything for an alignment of zero.
6219
6220 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
6221
6222         * gcc.texi (Bug Reporting): Refer to bugs.html.
6223         (Bug Lists): Likewise.
6224         * system.h (GCCBUGURL): New preprocessor define.
6225         * rtl.c (fancy_abort): Use it.
6226         * gcc.c (main): Likewise.
6227
6228 2000-02-18  Richard Henderson  <rth@cygnus.com>
6229
6230         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
6231         (life_analysis_1): Subsume into ...
6232         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
6233         Use update_life_info for the relaxation.
6234         (update_life_info): Update REG_BASIC_BLOCK for registers live on
6235         entry and regs_live_at_setjmp.
6236         (set_noop_p): Simplify.
6237         (notice_stack_pointer_modification_1): Renamed from s/_1//.
6238         (record_volatile_insns): Split into ...
6239         (delete_noop_moves): ... here,
6240         (notice_stack_pointer_modification): ... here,
6241         (insn_dead_p): ... and here.
6242         (propagate_block): Don't query INSN_VOLATILE.
6243         (mark_used_regs): Mind !PROP_REG_INFO.
6244         * toplev.c (rest_of_compilation): Call mark_constant_function here,
6245         not in life_analysis.
6246
6247 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
6248
6249         * loop.c (canonicalize_condition): New function,
6250         broken out of get_condition.
6251         (get_condition): Use it.
6252         * expr.h (canonicalize_condition): Prototype it.
6253
6254         * tree.h (tree_int_cst_msb): Declare.
6255         * tree.c (tree_int_cst_msb): New function.
6256
6257 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
6258
6259         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
6260         isn't set.
6261
6262         * invoke.texi (-fmessage-length=n): Document.
6263
6264 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
6265
6266         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
6267
6268 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
6269
6270         * function.c (thread_prologue_and_epilogue_insns): Put a line note
6271         after the prologue.
6272
6273 2000-02-17  Nick Clifton  <nickc@cygnus.com>
6274
6275         * config/arm/thumb.c: Replace includes of system headers with
6276         #include "system.h".
6277
6278 2000-02-16  Richard Henderson  <rth@cygnus.com>
6279
6280         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
6281         Add crtbeginS.o and crtendS.o.
6282         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
6283         (ENDFILE_SPEC): Use crtendS.o.
6284         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
6285
6286         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
6287         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
6288         shared and present.
6289         (__dso_handle): New variable.
6290         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
6291         bias to __CTOR_END__.
6292         
6293 2000-02-16  Richard Henderson  <rth@cygnus.com>
6294
6295         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
6296
6297 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6298
6299         * longlong.h (__clz_tab): Declare as static to match definition.
6300
6301 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
6302         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
6303         (XREF_FILE_NAME): Define.
6304
6305         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
6306         (EH_FRAME_SECTION_ASM_OP): Define.
6307         (IDENT_ASM_OP): Define.
6308         (TEXT_SECTION_ASM_OP): Define.
6309         (CPP_SPEC): Define.
6310         (CTORS_SECTION_ASM_OP): Define.
6311         (CTOR_SECTION_FUNCTION): Use it.
6312         (DTORS_SECTION_ASM_OP): Define.
6313         (DTOR_SECTION_FUNCTION): Use it.
6314
6315 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
6316
6317         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
6318         NOTE_BASIC_BLOCK.
6319
6320         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
6321         debug_bb_n): New functions.
6322         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
6323         * basic-block.h: Prototype new functions.
6324
6325 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
6326
6327         * configure.in: Add support for avr target.
6328         * configure: Rebuilt.
6329
6330         * invoke.texi: Add AVR invocation docs.
6331         * install.texi: Add information about AVR.
6332         * md.texi: Add AVR constraint letters description.
6333         * extend.texi: Add description for AVR specific attributes.
6334
6335 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
6336
6337         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
6338
6339 2000-02-16  Nick Clifton  <nickc@cygnus.com>
6340
6341         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
6342         (make_insn_raw): Move RTL check here.
6343
6344 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6345
6346         * version.c: Include gansidecl.h and version.h.
6347
6348         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
6349         
6350         * configure.in (gcc_version): When setting, narrow search to
6351         lines containing `version_string'.
6352
6353         * Makefile.in (mainversion): Likewise. 
6354         (GCC_H): New variable.
6355         (gcc.h): Delete target.
6356         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
6357         (version.o): Depend on version.h.
6358         (dbxout.o): Don't depend on gcc.h.
6359
6360 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6361                           Michael Meissner  <meissner@cygnus.com>
6362
6363         * md.texi (Simple Constraints): Add item about whitespace.
6364         * genoutput.c (strip_whitespace): New.
6365         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
6366         strip_whitespace for constraints.
6367         Test pointer using NULL, not 0.
6368
6369 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6370
6371         * cpplib.c (do_line): Pedwarn for #line > 32767.
6372
6373         * c-lex.c (readescape): Warn about '\x', but do not reject it.
6374
6375 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
6376
6377         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
6378         to default cpp spec.
6379         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
6380         * cpp.texi: Document __GNUC_PATCHLEVEL__.
6381         * cpp.1: Likewise.
6382
6383         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
6384         default spec.
6385
6386 2000-02-15  Denis Chertykov  <denisc@overta.ru>
6387
6388         * configure.in: Add support for avr target.
6389
6390 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6391
6392         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
6393         (sh_addr_diff_vec_mode): Don't declare.
6394         * sh.c (sh_addr_diff_vec_mode): Delete.
6395
6396 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6397
6398         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
6399
6400 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6401
6402         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
6403         (smulsi3_highpart_i): Name.
6404         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
6405         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
6406         (smulsi3_highpart, umulsi3_highpart): Likewise.
6407
6408         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
6409         correctly independent of endianness.
6410         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
6411         confuse the optimizers.
6412         (mulsidi3+1, umulsidi3+1): New define_split.
6413
6414 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
6415
6416         * config/sh/sh.md: Guard insn splits against illegal registers.
6417         * config/sh/sh.h: Correct comment about macros.
6418
6419 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6420                           Andrew MacLeod  <amacleod@cygnus.com>
6421
6422         * Makefile.in (lcm.o): Depend on insn-attr.h.
6423         * basic-block.h (optimize_mode_switching): Declare.
6424         * lcm.c (tm_p.h, insn-attr.h): #include.
6425         (seginfo, bb_info): New structs.
6426         (antic, transp, comp, delete, insert) : New file-scope static variables.
6427         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
6428         (reg_becomes_live, optimize_mode_switching): Likewise.
6429         * tm.texi: Add description of mode switching macros.
6430         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
6431
6432         * sh-protos.h (remove_dead_before_cse): Remove prototype.
6433         (fldi_ok, fpscr_set_from_mem): New prototypes.
6434         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
6435         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
6436         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
6437         (sh_flag_remove_dead_before_cse): Remove declaration.
6438         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
6439         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
6440         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
6441         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
6442         (barrier_align): Allow for JUMP_INSNS containing a parallel.
6443         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
6444         (fldi_ok): New function.
6445         (get_fpscr_rtx): Add fpscr_rtx as GC root.
6446         (emit_sf_insn): Only generate fpu switches when optimize < 1.
6447         (emit_df_insn): Likewise.
6448         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
6449         (sh_flag_remove_dead_before_cse): Delete.
6450         (get_free_reg, fpscr_set_from_mem): New functions.
6451         * sh.md (movdf, movsf): Remove no_new_pseudos code.
6452         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
6453
6454 2000-02-15  Loren Rittle  <ljrittle@acm.org>
6455
6456         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
6457
6458 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6459
6460         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
6461         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
6462
6463         * cccp.c: Include version.h and/or don't declare `version_string'.
6464         * collect2.c: Likewise.
6465         * alpha.c: Likewise.
6466         * arm/aof.h: Likewise.
6467         * arm/coff.h: Likewise.
6468         * arm/elf.h: Likewise.
6469         * arm/pe.h: Likewise.
6470         * arm/tcoff.h: Likewise.
6471         * arm/telf.h: Likewise.
6472         * arm/tpe.h: Likewise.
6473         * arm/vxarm.h: Likewise.
6474         * convex/convex.c: Likewise.
6475         * i386/dgux.c: Likewise.
6476         * i386/sun386.h: Likewise.
6477         * m88k/m88k.c: Likewise.
6478         * mcore/mcore-pe.h: Likewise.
6479         * mips/mips.h: Likewise.
6480         * romp/romp.h: Likewise.
6481         * sh/sh.c: Likewise.
6482         * cpphash.c: Likewise.
6483         * cppinit.c: Likewise.
6484         * dwarf2out.c: Likewise.
6485         * dwarfout.c: Likewise.
6486         * gcc.c: Likewise.
6487         * gcc.h: Likewise.
6488         * mips-tfile.c: Likewise.
6489         * protoize.c: Likewise.
6490         * toplev.c: Likewise.
6491         * tree.h: Likewise.
6492         
6493         * version.c (version_string): Constify a char*.
6494
6495         * version.h: New file.
6496
6497 2000-02-14  Nick Clifton  <nickc@cygnus.com>
6498
6499         * configure.in: Add mcore-elf and mcore-pe targets.
6500         * configure: Regenerate.
6501
6502         * NEWS: Add note that MCore port has been contributed.
6503
6504         * invoke.texi: Document command line switches for MCore port.
6505         * install.texi: Add MCore to list of supported targets.
6506
6507 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
6508
6509         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
6510         then we will need to import the frame handling functions.
6511         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
6512         to import the frames themselves.
6513
6514 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
6515                           Jason Eckhardt  <jle@cygnus.com>
6516
6517         * basic_block.h: Added prototype for reorder_basic_blocks.
6518         * toplev.c: Changes to add -freorder-blocks and graph dump after
6519         block reordering is done.
6520         * flow.c (reorder_block_def): New structure for use during block
6521         reordering.
6522         (REORDER_BLOCK_*): New macros to access members of above structure.
6523         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
6524         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
6525         functions for block reordering.
6526
6527 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6528
6529         * gcc.texi (Passes): Fix typo.
6530         * md.texi (Standard Names): Ditto.
6531         * tm.texi (Storage Layout): Ditto.
6532
6533 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
6534
6535         * cpplib.c (do_define): Only free the old definition if it
6536         actually had one.
6537
6538 2000-02-13   Neil Booth  <NeilB@earthling.net>
6539
6540         * cppfiles.c (read_and_prescan): When emitting deferred
6541         newlines, test speccase[] again instead of checking each
6542         possible whitespace character in turn.  When we encounter \r,
6543         look behind for \n first, then ahead.
6544
6545 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
6546
6547         * cse.c (cse_altered): New internal flag.
6548         (cse_insn): Set it if we changed an insn.
6549         (cse_main): Clear cse_altered before each basic block.
6550         Only garbage collect if cse_altered is true afterward.
6551
6552 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6553
6554         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
6555
6556 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
6557
6558         * combine.c (simplify_comparison): Fix typo.
6559
6560 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
6561
6562         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
6563         consistently.
6564
6565 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6566
6567         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
6568         previously inserted node instead of root node.  Caller changed.
6569
6570 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6571
6572         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
6573
6574 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6575
6576         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
6577         __dereg_frame_dtor): Add prototype argument.
6578
6579         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
6580
6581         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
6582
6583         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
6584
6585         * gthr-vxworks.h (__gthread_once): Likewise.
6586
6587         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
6588
6589 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
6590
6591         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
6592         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
6593         stack pointer in functions w/o saved registers, output LEAVE more often
6594         on TARGET_USE_LEAVE machines.
6595
6596 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
6597
6598         * config/arm/arm.c (arm_init_cumulative_args); New function:
6599         Initlaise the CUMULATIE_ARGS strcuture for a function
6600         defintion. 
6601         (arm_function_arg): New function: Determine where to place a
6602         function's argument.  Also handles deciding the function's
6603         call cookie.
6604         (current_file_function_operand): New function: Return true if
6605         the symbol is a function which has already been compiled.
6606         (arm_is_long_call_p): New function: Return true if the
6607         indicated function should be called via a long call.
6608         (arm_valid_type_attribute_p): New function: Return true if the
6609         attribute is a valid, arm specific, attribute.
6610         (arm_comp_type_attribute): New function: Return true if the
6611         two types have compatable, arm specific, attributes.
6612
6613         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
6614         structure.
6615         (FUNCTION_ARG): Redefine to call arm_function_arg.
6616         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
6617         structure field.
6618         (INIT_CUMULATIVE_ARGS): Redefine to call
6619         arm_init_cumulative_args.
6620         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
6621         field. 
6622         (SETUP_INCOMING_VARARGS): Redefine to use correct structure 
6623         field. 
6624         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
6625         functions.
6626         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
6627         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
6628         (COMP_TYPE_ATTRIBUTES): Define.
6629
6630         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
6631         if a long call is needed.
6632         (call_value): Call arm_is_long_call_p to decide if a long call
6633         is needed.
6634         (call_symbol): Call arm_is_long_call_p to decide if a long call
6635         is needed.
6636
6637         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
6638
6639 2000-02-11  Denis Chertykov  <denisc@overta.ru>
6640
6641         * README.AVR: New file with information about the avr ports.
6642         * config/avr: New directory with avr port files.
6643
6644 2000-02-11  Andreas Jaeger  <aj@suse.de>
6645
6646         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
6647
6648 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
6649
6650         * cpphash.c: Fix formatting, update commentary.
6651         (dump_definition): Take three separate arguments instead of a
6652         MACRODEF structure argument.
6653         * cpphash.h: Update prototype of dump_definition.
6654         * cppinit.c (cpp_finish): Update call of dump_definition.
6655
6656         * cpplib.c (do_define): Always create new hash entry with
6657         T_MACRO type.  Remove redundant check for redefinition of
6658         poisoned identifier.  Update call of dump_definition.
6659         (do_undef): Don't call check_macro_name.  Rename sym_length to
6660         len.
6661         (do_error, do_warning): Don't use copy_rest_of_line or
6662         SKIP_WHITE_SPACE.
6663         (do_warning): Don't use pedwarn for the actual warning,
6664         only the notice about its not being in the standard.  (Fixes
6665         bug with #warning in system headers.)
6666         (do_ident): Stricter argument checking - accept only a single
6667         string after #ident.  Also, macro-expand the line.
6668         (do_xifdef): Use cpp_defined.  De-obfuscate.
6669
6670         (do_pragma): Split out specific pragma handling to separate
6671         functions.  Use get_directive_token.  Update commentary.  Do
6672         not pass on #pragma once or #pragma poison to the front end.
6673         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
6674         do_pragma_default): New.
6675
6676 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
6677
6678         * jump.c (jump_optimize_1): The first operand in a relational
6679         can be a CONST_INT.
6680         * optabs.c (emit_conditional_move): Handle relationals which
6681         have a known true/false result.
6682
6683 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
6684
6685         * function.c (thread_prologue_and_epilogue_insns): Don't insert
6686         a RETURN insn into a block which already ends with a jump.
6687
6688 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
6689
6690         * haifa-sched.c (BUF_LEN): Increase a lot.
6691
6692 2000-02-11  Nick Clifton  <nickc@cygnus.com>
6693
6694         * configure.in: Add tm_p_file specification for thumb targets.
6695         * configure: Regenerate.
6696
6697         * config/arm/thumb-protos.h: New file: Prototypes for exported
6698         functions defined in thumb.c.
6699
6700 2000-02-11  Robert Lipe  <robertl@sco.com>
6701
6702         * Makefile.in (bootstrap-lean): Remove additional files.
6703         (bootstrap2-lean): Likewise.
6704         (VOL_FILES): List of files for above.
6705
6706 2000-02-11  Nathan Sidwell  <nathan@acm.org>
6707
6708         * cpphash.c (special_symbol): Remove spurious argument to
6709         cpp_lookup.
6710
6711 2000-02-11  Joel Sherrill (joel@OARcorp.com>
6712
6713         * configure.in: (i*86-*-rtems*): Swapped elf and coff
6714         stanzas.
6715         * configure: Rebuilt.
6716
6717 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
6718         
6719         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
6720
6721 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
6722
6723         * pa.c, pa.h: Remove trigraph sequences within comments.
6724
6725 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
6726
6727         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
6728
6729 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
6730
6731         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
6732
6733 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6734         
6735         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
6736
6737 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6738
6739         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
6740         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
6741         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
6742         (ASM_FILE_END): Use c4x_file_end.
6743         * config/c4x/c4x.c (c4x_global_label): New function.
6744         (c4x_external_ref, c4x_file_end): Likewise.
6745
6746         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
6747         (c4x_external_ref, c4x_end_file): Likewise.
6748
6749 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
6750
6751         * cppexp.c: Don't include cpphash.h.
6752         (parse_charconst, cpp_lex): Use cpp_defined.
6753         (cpp_lex): Use get_directive_token throughout.  Remove
6754         unnecessary cases from switch.  Move assertion-handling code
6755         down to OTHER case.
6756         (cpp_parse_expr): If we see '+' or '-', check the context to
6757         determine if they are unary or binary operators.  Streamline
6758         the jumps a bit.  Do not call skip_rest_of_line.
6759
6760         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
6761         static.  Export get_directive_token.  Update commentary.
6762         (cpp_defined): New function.
6763         (do_define): Remove reference to T_PCSTRING.  Call
6764         free_definition to release memory for old definition, when
6765         redefining a macro.
6766         (eval_if_expression): Set only_seen_white to 0 before calling
6767         cpp_parse_expr.  Call skip_rest_of_line after it returns.
6768         (cpp_read_check_assertion): Don't preserve a pointer into the
6769         token buffer across a call to cpp_get_token.
6770
6771         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
6772         * cppfiles.c (redundant_include_p): Use cpp_defined.
6773         * cpphash.c (free_definition): New function.
6774         (delete_macro): Use it.  Update commentary.
6775         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
6776         free_definition.
6777         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
6778         from enum node_type.  Prototype cpp_defined and get_directive_token.
6779         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
6780
6781         * fix-header.c (check_macro_names): Use cpp_defined.
6782         (read_scan_file): Set inhibit_warnings and inhibit_errors in
6783         the options structure.
6784
6785 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6786
6787         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
6788
6789 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
6790
6791         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
6792         rather than die->die_tag.
6793
6794 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6795
6796         * combine.c (make_extraction, force_to_mode): Avoid warning on
6797         mixed-signedness conditionals.
6798         (make_field_assignment, nonzero_bits): Likewise.
6799         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
6800         (store_split_bit_field, extract_split_bit_field): Likewise.
6801         (extract_fixed_bit_field, store_bit_field, 
6802         * expr.c: Change alignment to be unsigned everywhere.
6803         (move_by_pieces, store_constructor_field, store_constructor): 
6804         Alignment parm is unsigned.
6805         (emit_block_move, emit_group_load, emit_group_store): Likewise.
6806         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
6807         (do_compare_rtx_and_jump): Likewise.
6808         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
6809         Compare align with GET_MODE_ALIGNMENT.
6810         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
6811         (get_inner_reference): Likewise.
6812         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
6813         (expand_assignment): Local vars for alignment now unsigned.
6814         (store_constructor, store_field, expand_expr, do_jump): Likewise.
6815         (do_compare_and_jump): Likewise.
6816         (store_field): Call new function expr_align.
6817         * expr.h (emit_block_move, emit_group_load, emit_group_store):
6818         Alignment arg now unsigned.
6819         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
6820         (do_compare_rtx_and_jump, store_bit_field): Likewise.
6821         (extract_bit_field): Likewise.
6822         * fold-const.c (add_double): Add cast to eliminate signedness warning.
6823         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
6824         (get_best_mode): Alignment arg is unsigned.
6825         * rtl.h (move_by_pieces): Likewise.
6826         * store-layout.c (maximum_field_alignment, set_alignment):
6827         Now unsigned.
6828         (layout_decl): Alignment arg is now unsigned.
6829         Remove unneeded casts.
6830         (layout_record, layout_union, layout_type): Remove unneeded casts.
6831         Local alignment variables now unsigned.
6832         (get_best_mode): Alignment arg now unsigned.
6833         * tree.c (expr_align): New function.
6834         * tree.h (expr_align): Likewise.
6835         (maximum_field_alignment, set_alignment): Now unsigned.
6836         (get_inner_reference): Alignment argument is now pointer to unsigned.
6837         * varasm.c (assemble_variable): Add cast to eliminate warning.
6838
6839 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
6840
6841         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
6842         then store directly into op0.
6843
6844         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
6845         the CALL_INSN, and emit the note immediately after it.
6846
6847 2000-02-10  Nick Clifton  <nickc@cygnus.com>
6848
6849         * config/arm/thumb.md (epilogue): Include a (return) in the
6850         generated insn, and emit it using emit_jump_insn not
6851         emit_insn. 
6852
6853 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
6854
6855         * function.c (assign_temp): Change zero-sized arrays to size 1.
6856         * integrate.c (expand_inline_function): Do not update
6857         stack_alignment_needed
6858         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
6859         add some sanity checking, remove optimization for function with
6860         zero frame size.
6861
6862 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6863
6864         * flow.c (mark_regs_live_at_end): Delete unused variables.
6865
6866         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
6867
6868         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
6869         in macro FRAME_GROWS_DOWNWARD.
6870
6871         * stmt.c (expand_end_bindings): Delete unused variable.
6872
6873         * unroll.c (iteration_info): Mark parameter `loop' with
6874         ATTRIBUTE_UNUSED.
6875
6876 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6877
6878         * fixinc/server.c (load_data): Return NULL if the marker line is
6879         not found.
6880         (run_shell): If load_data returns NULL, retry the command once, in
6881         a new shell.
6882
6883         * configure: Rebuilt.
6884
6885 2000-02-09  Bruce Korb  <bkorb@gnu.org>
6886
6887         * gcc/fixincludes:  ** DELETED **
6888         * gcc/fixcpp:  ** DELETED **
6889         * gcc/fixinc-nt.sed:  ** DELETED **
6890         * gcc/just-fixinc:  ** DELETED **
6891         * gcc/Makefile.in:  Removed out-dated commentary
6892         * gcc/configure.in: Removed fast-fixincludes disablement.
6893         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
6894
6895 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
6896         * function.c (thread_prologue_and_epilogue_insns): Uncomment
6897         last change.
6898
6899 2000-02-09  Richard Henderson  <rth@cygnus.com>
6900
6901         * jump.c (delete_insn): Don't delete user labels at -O0.
6902
6903 2000-02-09  Robert Lipe  <robertl@sco.com>
6904
6905         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
6906         Don't link with HOST_LIBS. 
6907
6908 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
6909
6910         * configure.in: Correct --help text for --with-dwarf2.
6911         Put tm-dwarf2.h after other tm files, if it's requested.
6912         * configure: Regenerate.
6913         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
6914         defining it.
6915
6916 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
6917
6918         * cpplib.h: Provide HASHNODE typedef and forward decl of
6919         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
6920         DEFINITION, struct hashnode, struct macrodef, struct
6921         definition, scan_decls prototype, default defn of
6922         INCLUDE_LEN_FUDGE moved elsewhere.
6923
6924         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
6925         definition, and struct hashnode moved here. Remove the unused
6926         'predefined' field from struct definition.  Replace the 'args'
6927         union with its sole member.  All users updated (cpphash.c).
6928         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
6929         multiple include guard.
6930
6931         * cpphash.c (hashf): Make static; use better algorithm; drop
6932         HASHSIZE parameter; return an unsigned int.
6933         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
6934         used. Calculate HASHSIZE modulus here.
6935         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
6936         here.
6937         (create_definition): Drop PREDEFINITION parameter.
6938         * cpplib.c (do_define): Don't calculate a hash value here.
6939         Don't pass (keyword == NULL) to create_definition.
6940
6941         * scan.h: Prototype scan_decls here.
6942         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
6943         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
6944         callers of cpp_lookup and cpp_install updated.
6945         
6946         * cpphash.c (macarg): Hoist all the flag diddling out of the
6947         function...
6948         (macroexpand): ... and out of the loop that calls macarg.
6949         Skip over the initial paren before macro arguments with
6950         cpp_get_non_space_token; point may be some distance before
6951         that paren.  Abort if it's not there.
6952
6953         * cpplib.c (parse_clear_mark): Delete function.
6954         (parse_set_mark, parse_goto_mark): Make static.
6955         (ACTIVE_MARK_P): New macro.
6956         (skip_block_comment, skip_line_comment): Do not bump the line
6957         if ACTIVE_MARK_P is true.
6958         (cpp_pop_buffer): The buffer to be popped may not have an
6959         active mark.
6960         (cpp_get_token): When looking for the initial paren before
6961         macro arguments, only set a mark in a file buffer, Always
6962         return to that mark before proceeding to call macroexpand or
6963         return a NAME token.
6964
6965         * cpplib.h: Remove prototypes of parse_set_mark,
6966         parse_clear_mark, parse_goto_mark.
6967         (struct cpp_options): Rename 'put_out_comments' to
6968         'discard_comments' and invert its sense.
6969         * cppinit.c, cpphash.c, cpplib.c: All users of
6970         put_out_comments changed to use discard_comments, with
6971         opposite sense.
6972
6973 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
6974
6975         * function.c (thread_prologue_and_epilogue_insns): Don't delete
6976         the edge from a block that both jumps and falls through to the
6977         fallthru block.
6978
6979 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
6980
6981         * config/arm/arm.md (movsi): In PIC mode, make sure that a
6982         constant source address is legitimate.
6983
6984 2000-02-09  Philip Blundell  <pb@futuretv.com>
6985
6986         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
6987         correctly.
6988
6989         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
6990         generating PIC.
6991         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
6992
6993 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
6994
6995         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
6996         ends with a newline and a NUL.  Don't be so clever manipulating
6997         strings.
6998
6999 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
7000
7001         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
7002         not to BIGGEST_ALIGNMENT.
7003
7004 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
7005
7006         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
7007         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
7008         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
7009         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
7010         * frame.c (execute_cfa_insn): Handle 
7011         DW_CFA_GNU_negative_offset_extended.
7012
7013 2000-02-08  Richard Henderson  <rth@cygnus.com>
7014
7015         * flow.c (tidy_fallthru_edges): Split out from ...
7016         (delete_unreachable_blocks): ... here.
7017         (find_basic_blocks): Use it.
7018
7019 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7020
7021         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
7022
7023 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
7024
7025         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
7026         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
7027         (fix-header.o): Don't depend on cpphash.h.
7028
7029         * scan.c (hashstr): New function. 
7030         * scan.h: Prototype it.
7031         * fix-header.c: Don't include cpphash.h.  Use hashstr.  
7032         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
7033         hashstr.  Report hash table statistics.  Add private     
7034         definition of xrealloc.
7035
7036 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7037
7038         * i386.h (TARGET_SWITCHES): Fix typo in option name.
7039
7040 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
7041
7042         * function.c (thread_prologue_and_epilogue_insns): Don't replace
7043         jumps with returns unless they are jumps to the fallthru block.
7044
7045 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
7046
7047         * i386.md (addqi3_cc): Fix contraints.
7048
7049 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7050
7051         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
7052
7053 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
7054
7055         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
7056         carriage return after a macro name.
7057
7058 2000-02-07  Fred Fish  <fnf@be.com>
7059
7060         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
7061         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
7062
7063 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
7064
7065         * cppfiles.c (deps_output): Count spacers in deps_column.
7066
7067 2000-02-07  Neil Booth  <NeilB@earthling.net>
7068
7069         * cppinit.c (initialize_dependency_output): If there is no
7070         suffix, don't try to look for known suffixes.  Use strrchr.
7071         (cpp_start_read): Remove duplicate initialization.
7072
7073 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
7074
7075         * calls.c (compute_argument_block_size): New argument
7076         preferred_stack_boundary.
7077         (expand_call): update cfun->preferred_stack_boundary, update call of
7078         compute_argument_block_size
7079         (emit_library_call): Increate cfun->preferred_stack_boundary
7080         to PREFERRED_STACK_BOUNDARY
7081         (emit_library_call_value): Likewise.
7082         * explow.c (allocate_dynamic_stack_spave): Likewise.
7083         * function.c (prepare_function_start): Set
7084         cfun->preferred_stack_boundary
7085         * function.h (struct function): Add preferred_stack_boundary field.
7086         * integrate.c (expand_inline_function): Update
7087         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
7088         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
7089         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
7090
7091 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
7092
7093         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
7094         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
7095         cpp_pedwarn, cpp_pedwarn_with_line,
7096         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
7097         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
7098         v_cpp_error_with_line, v_cpp_warning_with_line,
7099         cpp_message_from_errno, cpp_perror_with_name): Delete.
7100
7101         * cpperror.c (cpp_print_containing_files): Take starting
7102         buffer as argument.
7103         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
7104         (v_cpp_message): Now called directly by all entry points.
7105         Remove -1 case.
7106         (cpp_pfatal_with_name, cpp_message): Delete.
7107         (cpp_notice_from_errno, cpp_ice): New functions.
7108         (cpp_notice): Is now for reporting error conditions, just
7109         without an associated file.
7110         (cpp_error, cpp_error_with_line): Don't do anything if
7111         opts->inhibit_errors is on.
7112         (cpp_pedwarn_with_file_and_line): Take column argument also.
7113
7114         * cpplib.h: Update prototypes of exported functions.
7115         (struct cpp_options): Add inhibit_errors.
7116
7117         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
7118         non-error messages.  Include intl.h.
7119
7120         * cppinit.c, cppmain.c: Likewise.  Also, use
7121         cpp_notice_from_errno instead of cpp_perror_with_name or
7122         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
7123
7124         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
7125         report internal errors.
7126
7127         * cpplib.c (do_define): Switch bcopy to memcpy.
7128         Give cpp_pedwarn_with_file_and_line a dummy column argument.
7129
7130         * cpplib.c (copy_rest_of_line): Revert previous change: don't
7131         bail out early if we hit a line comment.
7132
7133 2000-02-06  Richard Henderson  <rth@cygnus.com>
7134
7135         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
7136         * basic-block.h: Declare them.
7137         * emit-rtl.h (active_insn_p): New.
7138         (next_active_insn, prev_active_insn): Use it.
7139         * rtl.h: Declare it.
7140         * function.c (emit_return_into_block): New.
7141         (thread_prologue_and_epilogue_insns): Insert return insns instead
7142         of epilogues when possible.
7143         * jump.c (jump_optimize_1): Remove code to insert a return insn
7144         on the fallthru to the exit block.
7145
7146         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
7147         and for non-empty stack frames.
7148         * i386.md (return): Expand to return-pop as needed.
7149
7150 2000-02-06  Richard Henderson  <rth@cygnus.com>
7151
7152         * simplify-rtx.c (simplify_relational_operation): Canonicalize
7153         constant to op1 for testing.
7154
7155 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7156
7157         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
7158         (fixuns_truncqfqi2): Use it.
7159
7160 2000-02-06  Richard Henderson  <rth@cygnus.com>
7161
7162         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
7163         as a TYPE_LEA insn.
7164
7165         * i386.md (widening and peepholes): Mask the constant instead of
7166         using gen_lowpart.
7167
7168 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
7169
7170         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
7171         input pointer before possibly branching off to the backslash
7172         code.
7173         * cpphash.c (macroexpand): Correctly delete \r escapes when
7174         stringifying parameters.
7175         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
7176         if we can; bail out early if we hit a line comment.
7177         (handle_directive): Treat '# 123' in an .S file just like
7178         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
7179         Return 1 for '# not_a_directive'.
7180         (get_directive_token): Pop macro buffers here, so that
7181         cpp_get_token can't sneakily move past a newline.
7182         Add sanity checks. 
7183         (cpp_get_token): goto randomchar if handle_directive returns 0.
7184
7185         * cppalloc.c: Update copyright.
7186         * cpplib.c: Merge all the static function prototypes into one
7187         block.
7188         * cpplib.h: Remove #if 0 block.
7189
7190         * cpperror.c: Remove #ifdef EMACS block.
7191         * cppmain.c: Likewise.
7192         * cpphash.c: Remove #if 0 blocks.
7193         * cppinit.c: Remove #if 0 blocks, and the -lint option.
7194         * cpplib.c: Remove #if 0 blocks and code referencing
7195         pcp_inside_if or for_lint.  Remove duplicate error message.
7196         Fix error messages for #else after #else or #elif.  Reformat.
7197         Remove archaic TODO list.
7198         * cpplib.h: Remove pcp_inside_if and for_lint flags.
7199
7200 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
7201
7202         * i386/osf1elf.h: Add missing backslash to multiline string.
7203
7204 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7205
7206         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
7207
7208 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7209
7210         * Makefile.in (c-common.o): Depend on $(EXPR_H).
7211
7212         * c-common.c: Include expr.h.
7213
7214         * c-pragma.c (mark_align_stack): Add prototype.
7215
7216         * caller-save.c (add_stored_regs): Likewise.
7217
7218         * combine.c (record_promoted_value): Likewise.
7219
7220         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
7221         Likewise.
7222
7223         * cppinit.c (new_pending_define): Likewise.
7224
7225         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
7226
7227         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
7228         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
7229         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
7230         class_scope_p): Likewise.
7231
7232         * dwarf2out.h (dwarf2out_set_demangle_name_func,
7233         dwarf2out_add_library_unit_info): Likewise.
7234
7235         * ggc.h (ggc_page_print_statistics): Likewise.
7236
7237         * haifa-sched.c (propagate_deps): Likewise.
7238
7239         * reg-stack.c (next_flags_user, record_label_references): Likewise.
7240
7241         * rtl.h (set_stack_check_libfunc): Likewise.
7242
7243         * toplev.h (set_fatal_function): Likewise.
7244
7245         * toplev.c (set_fatal_function): Delete prototype.
7246         
7247         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
7248         
7249 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
7250
7251         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
7252         (FUNC_END): Likewise.
7253
7254 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7255
7256         * caller-save.c: Include tm_p.h.
7257
7258 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7259
7260         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
7261
7262 2000-02-04  Neil Booth  <NeilB@earthling.net>
7263
7264         * cccp.c (main): Check 'dir' for a NULL pointer before passing
7265         it to strcmp.
7266
7267 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
7268
7269         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
7270         * genflags.c: Use the max_operand_1 logic from genemit.c to
7271         calculate how many arguments gen_insn prototypes have.  Remove
7272         NO_MD_PROTOTYPES ifdefs from the generated file.
7273         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
7274         file.  Cast gen_insn initializers to insn_gen_fn.
7275         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
7276         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
7277
7278 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7279
7280         * fixinc/Makefile.in (HDR): Add machname.h.
7281         (clean): Likewise.
7282
7283 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7284
7285         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
7286         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
7287         (c4x_cpu_version): Ditto.
7288         * config/c4x/c4x-protos.h: ... here.
7289
7290 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
7291
7292         * dwarf2out.c (add_abstract_origin_attribute): Don't call
7293         gen_abstract_function on our context if we're a nested function.
7294
7295 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7296
7297         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
7298         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
7299
7300 2000-02-04  Bruce Korb  <bkorb@gnu.org>
7301
7302         * fixinc/genfixes(machname.h):
7303         Move the functionality from gen-machine.h into this file.
7304         UNdef MN_NAME_PAT if there are no names to change.
7305         Also, be a little kinder when AutoGen is not present.
7306
7307         * fixinc/Makefile.in(machname.h):
7308         Change the generation rule to use genfixes.
7309
7310         * fixinc/fixfixes.c(machine_name):
7311         machine_name_fix's functionality now dependent upon whether
7312         MN_NAME_PAT is defined.
7313
7314         * fixinc/fixtests.c(machine_name):
7315         ditto.
7316
7317         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
7318         of MN_NAME_PAT.
7319
7320         * fixinc/fixlib.h(mn_get_regexps):
7321         ditto
7322
7323         * fixinc/gen-machine.h: DELETED
7324
7325 2000-02-04  Jan Hubicka  <jh@suse.cz>
7326             Richard Henderson  <rth@cygnus.com>
7327
7328         * i386.c (SAVE_REGS_FIRST): Remove.
7329         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
7330         (ix86_compute_frame_size): Likewise.
7331         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
7332         (ix86_emit_restore_regs): Remove.
7333         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
7334         when a frame pointer is in use.
7335         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
7336         instead of pop to restore a register when profitable; emit leave
7337         when profitable.
7338         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
7339         as a TYPE_LEA insn.
7340         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
7341         * i386.md (prologue_allocate_stack): Remove.
7342         (epilogue_deallocate_stack): Remove.
7343         (pro_epilogue_adjust_stack): New.
7344
7345 2000-02-04  Richard Henderson  <rth@cygnus.com>
7346
7347         * function.c (diddle_return_value): Rework to use a callback function.
7348         Use current_function_return_rtx if it's been set up.
7349         (do_clobber_return_reg, clobber_return_register): New.
7350         (do_use_return_reg, use_return_register): New.
7351         (expand_function_end): Use them.
7352         * stmt.c (expand_null_return): Likewise.
7353         * function.h: Declare them.
7354         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
7355         (mark_reg): Change arguments as appropriate for callback.
7356         * integrate.c (expand_inline_function): Revert 19 Jan change.
7357
7358 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7359
7360         * tm.texi (Values in Registers): Fix typo: "fo" "for".
7361         (Misc): Say the scheduler, not the Haifa scheduler.
7362
7363 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
7364
7365         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
7366         when in_mem is set.  Update all callers.
7367
7368 2000-02-04  Richard Henderson  <rth@cygnus.com>
7369
7370         * i386/openbsd.h (INT_ASM_OP): Define.
7371
7372 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7373
7374         * tm.texi: Fix various typos.
7375
7376 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
7377
7378         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
7379         (MD_STARTFILE_PREFIX_1): New macro.
7380
7381 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
7382
7383         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
7384         destination when needed.
7385         (strmovsi, strsetsi): New expander.
7386         (strmovsi_1, strsetsi_1): New pattern.
7387         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
7388         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
7389         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
7390         * invoke.texi (align-stringops, inline-all-stringops): Document.
7391
7392 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
7393
7394         * i386/netbsd.h (INT_ASM_OP): Define.
7395
7396 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
7397
7398         * cpplib.h (cpp_reader): Add new flag, no_directives.
7399         * cpphash.c (macarg): Set it.
7400         * cpplib.c (handle_directive): If no_directives is on and we
7401         find a directive, issue an error and discard the line.
7402
7403 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
7404
7405         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
7406         FP constants.  Add ! TARGET_FPU check for FP constants.
7407
7408 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
7409         
7410         * flow.c (find_basic_blocks): Don't kill label_value_list
7411         here.
7412         (cleanup_cfg): Kill it here.
7413
7414 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7415
7416         * expr.c (store_field): Ensure ALIGN is no stricter than the
7417         alignment of EXP.
7418
7419 2000-02-02  Richard Henderson  <rth@cygnus.com>
7420
7421         * jump.c (delete_insn): Partially revert 19 Jan change; 
7422         don't convert unused code labels to notes at -O0.
7423
7424 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7425
7426         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
7427         split_all_insns to recreate REG_LABEL notes for flow2 pass.
7428
7429 2000-02-01  Richard Henderson  <rth@cygnus.com>
7430
7431         * i386.c (general_no_elim_operand): New.
7432         (nonmemory_no_elim_operand): New.
7433         (ix86_expand_move): Copy eliminable operands before a push.
7434         * i386-protos.h: Declare new functions.
7435         * i386.h (CAN_ELIMINATE): Simplify.
7436         (PREDICATE_CODES): Update.
7437         * i386.md (push insns): Don't allow eliminable register operands.
7438
7439 2000-02-01  Richard Henderson  <rth@cygnus.com>
7440
7441         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
7442         replace BLKmode with DECL_RTL's mode.
7443
7444 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
7445
7446         * frame.c (find_fde): Convert for loop to do-while so compiler
7447         sees it's always executed at least once.
7448         * libgcc2.c (BBINBUFSIZE): Kill.
7449         (__bb_init_prg): Use fgets.
7450         (__bb_exit_trace_func): Don't paste strings.
7451         * unroll.c (unroll_loop): Initialize unroll_type, not
7452         unroll_number, and tweak logic to match.
7453
7454         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
7455         all failure paths.
7456         (ix86_flags_dependant): Likewise.  Disentangle control flow.
7457         (ix86_sched_reorder): Break guts out to
7458         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
7459         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
7460         any possible use.
7461
7462         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
7463         use string concatenation.  Don't save and restore esi.
7464
7465         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
7466         (machname.h): Remove script to separate file.  Use two-step
7467         sequence so target is not created if script fails.
7468         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
7469         identifiers are defined.
7470         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
7471         an empty string, machine_name doesn't need to do anything at
7472         all.
7473         (is_cxx_header): Add more cases to regexp.
7474         * fixinc/fixlib.h: Update prototype.
7475         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
7476         mn_get_regexps.
7477         * fixinc/fixincl.c: Define NO_BOGOSITY.
7478
7479         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
7480         (hp_sysfile): Add missing comma.
7481         (math_exception): Put the wrapper ifdefs at the beginning and
7482         the end of the file.
7483         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
7484
7485 2000-02-01  Richard Henderson  <rth@cygnus.com>
7486
7487         * sparc.c (fp_zero_operand): Turn into a normal predicate.
7488         Use CONST0_RTX.  Update all callers.
7489         * sparc.h, sparc-protos.h: Update accordingly.
7490         * sparc.md (fp mov insns): Use fp_zero_operand directly
7491         where applicable.
7492
7493 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7494
7495         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
7496         example.
7497
7498 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7499
7500         * Makefile.in (specs.ready): New target.
7501         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
7502
7503 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7504
7505         * fixinc.irix: Use unique filenames for writing into /tmp,
7506         * fixinc.ptx: Likewise.
7507         * fixinc.sco: Likewise.
7508         * fixinc.svr4: Likewise.
7509         * fixinc.winnt: Likewise.
7510
7511 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7512
7513         * tsystem.h: New file.
7514
7515         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
7516         s-crtS): Depend on tsystem.h.
7517
7518         * crtstuff.c: Include tsystem.h.
7519         * frame.c: Likewise.
7520         * libgcc2.c: Likewise.
7521
7522 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
7523
7524         * builtins.c (expand_builtin_memset): Expand for variable sized
7525         lengths too.
7526
7527 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au> 
7528
7529         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
7530         on ABI.
7531
7532 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7533
7534         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
7535
7536         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
7537
7538 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
7539
7540         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
7541         case 3->2 combining (combining with splitting) in which 2 is CC0
7542         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are 
7543         checked at the begining of the function with the aid of calling 
7544         function 'can_combine_p'. 
7545
7546 2000-01-31  Dave Brolley  <brolley@redhat.com>
7547
7548         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
7549
7550 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
7551
7552         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
7553         new label.
7554
7555 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7556
7557         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
7558         
7559         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
7560         PROTO -> PARAMS.
7561
7562 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
7563
7564         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
7565         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
7566         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
7567         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
7568         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
7569         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
7570         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
7571         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
7572         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
7573         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
7574         
7575         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
7576         Add %(cpp_cpu) to CPP_SPEC.
7577
7578         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
7579         Add %(cc1_cpu) to CC1_SPEC.
7580
7581 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
7582
7583         * c-decl.c (c_decode_option): Accept optional numeric argument to
7584         -Wformat and set warn_format.
7585         * c-common.c: Don't emit warning about non-constant printf format
7586         string unless warn_format > 1.
7587
7588 2000-01-30  Richard Henderson  <rth@cygnus.com>
7589
7590         * alpha.md (return_internal): Allow after reload only.
7591
7592 2000-01-30  Richard Henderson  <rth@cygnus.com>
7593
7594         * i386.c (ix86_compute_frame_size): Omit padding1 if the
7595         local frame size is zero.
7596
7597 2000-01-30  Richard Henderson  <rth@cygnus.com>
7598
7599         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
7600         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
7601         * alpha.md (return): Turn into an expander.
7602         (return_internal): Don't use $26.
7603         (epilogue): Emit the return insn.
7604
7605 2000-01-30  Richard Henderson  <rth@cygnus.com>
7606
7607         * alpha.md (negtf2, abstf2): Fix word order thinko.
7608         (extendsftf2): New.
7609         (trunctfsf2): Avoid intermediate rounding errors.
7610
7611 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
7612
7613         * cppfiles.c (find_position): Drop 'colp' argument, return the
7614         new line base.
7615         (read_and_prescan): Adjust to match.  Don't ever manipulate
7616         line or line_base except via find_position.
7617
7618 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
7619
7620         * c-parse.in: Apply Ulrich's changes from c-parse.y.
7621         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
7622         Regenerate.
7623
7624 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
7625
7626         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
7627         just print "<command line>".  If 'filename' is null or an
7628         empty string, print "<stdin>" for the filename.
7629         * cpplib.c (do_define): Don't print the 'location of the
7630         previous definition' message if we're still parsing the
7631         command line.
7632         (cpp_pedwarn_with_file_and_line): Always call
7633         cpp_file_line_for_message.
7634
7635 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
7636
7637         * flow.c (mark_regs_live_at_end): Fix typo.
7638
7639 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
7640
7641         * c-common.c: Adjust variable names, comments, help strings to c99.
7642         * c-lex.c: Likewise.
7643         * c-parse.y: Likewise.
7644         * c-tree.h: Likewise.
7645         * cccp.c: Likewise.
7646         * cpplib.h: Likewise.
7647         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
7648         * cppinit.c: Likewise.
7649
7650 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7651
7652         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
7653         * c4x.c: Define the optab rtx values.
7654         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
7655         (c4x_emit_libcall): Use new optab rtx values.
7656         (c4x_emit_libcall3): Likewise.
7657         (c4x_emit_libcall_mulhi): Likewise.
7658         * c4x-protos.h: Add prototypes for optab rtx values and change
7659         prototypes for above c4x_emit_libcall functions.
7660
7661 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7662
7663         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
7664         syntax is used.
7665         (c4x_function_prologue): Use regnames intead of float_reg_names when
7666         TI syntax is used.
7667         (c4x_function_epilogue): Likewise.
7668         (c4x_print_operand): Likewise.
7669         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
7670         * c4x.md (set_high): Disable for TARGET_TI.
7671
7672 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7673
7674         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
7675         of framepointer + constant to ADDR_REGS class.
7676         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
7677         * c4x.c (std_or_reg_operand): New function.
7678         * c4x-protos.h (std_or_reg_operand): Prototype it.
7679
7680 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7681
7682         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
7683                 object names as libgcc2.c.
7684         * libgcc.S: Use newly defined names.
7685
7686 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
7687         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
7688         function.
7689         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
7690         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
7691         (FLOW_LOOP_LAST_BLOCK): Likewise.
7692
7693 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7694
7695         * basic-block.h (struct loop): New fields 'first' and 'last'.
7696         * flow.c (flow_loops_find): Compute loop->first and loop->last.
7697         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
7698         and loop->last to check for NOTE_INSN_LOOP_END.
7699
7700 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
7701
7702         * predict.c (estimate_probability): Use the new FIRST and LAST fields
7703         of the loop descriptor rather than HEADER and LATCH. Also added
7704         missing break statements as well making some coding style modifications
7705         as suggested by Michael Hayes.
7706
7707 2000-01-28  Richard Henderson  <rth@cygnus.com>
7708
7709         * flow.c (find_basic_blocks): Remove do_cleanup argument.
7710         Break out that code ...
7711         (cleanup_cfg): ... here.
7712         (commit_one_edge_insertion): Detect a return instruction being
7713         emitted to an edge.  Emit a barrier following; clear fallthru.
7714         (commit_edge_insertions): Verify CFG consistency.
7715         * function.c (expand_function_start): Kill unused variable.
7716         (expand_function_end): Likewise.
7717         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
7718         to insert the epilogue.
7719
7720         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
7721         (delete_null_pointer_checks): Likewise.
7722         * output.h: Likewise.
7723         * reg-stack.c (reg_to_stack): Likewise.
7724         * toplev.c (rest_of_compilation): Likewise.  Run
7725         thread_prologue_and_epilogue_insns after rebuilding the CFG.
7726
7727 2000-01-28  Richard Henderson  <rth@cygnus.com>
7728
7729         * Makefile.in (flow.o): Revert 24 Jan change.
7730         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
7731         FUNCTION_VALUE result to DECL_RESULT's mode.
7732
7733         * haifa-sched.c (schedule_insns): Don't recompute reg info
7734         after reload.
7735
7736 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
7737
7738         * configure.in: Make --enable-cpplib the default.
7739         * configure: Regenerate.
7740         * gcc.dg/990119-1.c: No longer expected to fail.
7741
7742 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
7743
7744         * jump.c (jump_optimize_1): Delete an optimization that is also done
7745         by merge_blocks in flow.
7746
7747 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7748
7749         * diagnostic.c (build_message_string, output_printf,
7750         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
7751         (build_location_prefix): Fix non-literal format string.
7752
7753 2000-01-27  Richard Henderson  <rth@cygnus.com>
7754
7755         * alpha.md (trunctfsf2): New.
7756
7757 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
7758
7759         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
7760
7761 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
7762
7763         * cppinit.c (cpp_handle_option): Recognize C++ comments under
7764         -std=gnu89.
7765         * cpplib.c (skip_block_comment, skip_line_comment): Split code
7766         out of...
7767         (skip_comment) ... here.  Permit C++ comments in system
7768         headers always.  Warn about C++ comments in user code under
7769         -std=gnu89 -pedantic.
7770         (copy_comment): Use skip_comment.
7771         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
7772         return EOF.
7773         (consider_directive_while_skipping, do_else, do_endif): Call
7774         validate_else unconditionally.
7775         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
7776         text after the conditional in a system header.
7777         * cpplib.h (struct cpp_buffer): Add flag
7778         warned_cplusplus_comments.
7779
7780 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
7781
7782         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
7783         Use unshare_all_rtl_1.
7784         (unshare_all_rtl_again): New function.
7785         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
7786
7787         * function.c (purge_addressof_1): Use unshare_all_rtl_again
7788         rather than resetting the 'used' flags ourself.
7789
7790         * toplev.c (rest_of_compilation): Add current_function_decl
7791         to the unshare_all_rtl call.
7792         * tree.h: Prototype unshare_all_rtl.
7793         * rtl.h: Prototype unshare_all_rtl_again here.
7794
7795 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
7796
7797         * genoutput.c (output_prologue): Include ggc.h in generated
7798         files.
7799         * Makefile.in (insn-output.o): Depends on ggc.h.
7800
7801 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
7802             Hans-Peter Nilsson  <hp@bitrange.com>
7803
7804         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
7805         Remove redundant include of xm-ns32k.h.
7806         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
7807         Remove redundant include of xm-ns32k.h.
7808         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
7809         Remove redundant include of xm-ns32k.h.
7810         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
7811
7812         * ns32k/ns32k.h: Update comment on multiply-add instructions.
7813         (TARGET_SWITCHES): Add documentation strings.
7814         (DWARF_FRAME_REGNUM): Override default definition.
7815         (REG_CLASS_CONTENTS): Add comments.
7816         (SUBSET_P): Format to reduce line length.
7817         (SMALL_REGISTER_CLASSES): Make a run time option.
7818         (GO_IF_NONINDEXED_ADDRESS): Reformat.
7819         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
7820         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
7821         (regclass_map): fix typo in comment.
7822         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
7823         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
7824         (trace, reg_or_mem_operand): Delete, unused function.
7825         (calc_address_cost): Small offsets are cheaper than large ones.
7826         (expand_block_move): Generate more efficient code when bytes is a
7827         known at compile time.
7828         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
7829         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
7830         instead of reg_or_mem_operand.
7831
7832         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
7833         not general_operand.  Similarly use "=rm" or stricter, not "=g".
7834         For input operands, use stricter constraints than "g" if not
7835         general_operand.  Similarly use stricter predicate than
7836         "general_operand" when stricter constraints than "g" are present,
7837         except for matching constraints.
7838         (movstrsi): Use "memory_operand" for operands 0 and 1.
7839         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
7840         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
7841         not reg_or_mem_operand.
7842         (udivmoddisi4): Ditto.
7843         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
7844         Use nonimmediate_operand for operand 3, not register_operand.
7845         (udivmoddiqi4_internal): Use register_operand for operand 1, not
7846         reg_or_mem_operand.
7847
7848 2000-01-27  Fred Fish  <fnf@be.com>
7849
7850         * gthr-posix.h: Fix typo; compatibily -> compatibility.
7851         * gthr-single.h: Likewise.
7852         * gthr-solaris.h: Likewise.
7853         * gthr-vxworks.h: Likewise.
7854         * gthr-win32.h: Likewise.
7855         * gthr.h: Likewise.
7856
7857 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
7858
7859         * cppinit.c: Add " (cpplib)" to end of string printed by
7860         -v / --version.
7861
7862 2000-01-27  Richard Henderson  <rth@cygnus.com>
7863
7864         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
7865         testing for a signed comparison.
7866         (alpha_emit_floatuns): New.
7867         * alpha-protos.h: Declare it.
7868         * alpha.md (floatunsdisf2, floatunsdidf2): New.
7869         (extendsfdf2): Tidy.
7870
7871 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
7872
7873         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
7874         no -g option specifying debugging format, default to -gstabs+.
7875
7876 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
7877
7878         * calls.c (special_function_p): New argument fork_or_exec.
7879         (expand_call): When profile_arc_flag is set and the function
7880         is in the fork_or_exec group, call __bb_fork_func first.
7881         * libgcc2.c, _bb module (__bb_fork_func): New function.
7882         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
7883         output file.
7884         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
7885         * tree.h (special_function_p): Update prototype.
7886
7887 2000-01-26  Richard Henderson  <rth@cygnus.com>
7888
7889         * alpha.c (alpha_split_tfmode_pair): New.
7890         * alpha-protos.h: Declare it.
7891         * alpha.md (abstf2, negtf2): New.
7892         (movtf insn): Add input G constraint.
7893         (movtf splitter): Use alpha_split_tfmode_pair.
7894
7895 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7896
7897         * i386/cygwin.h: PROTO -> PARAMS.
7898
7899 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
7900
7901         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
7902         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
7903         using _Qp_cmp/_Q_cmp and testing the return value.
7904         (print_operand): Call reverse_condition_maybe_unordered if
7905         we are handling CCFPmode or CCFPEmode.
7906         Handle ORDERED, UN* and LTGT comparisons.
7907         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
7908         if not TARGET_HARD_QUAD.
7909         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
7910         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
7911         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
7912         Adjust gen_b* calls so that they reflect return comparison of
7913         sparc_emit_float_lib_cmp.
7914
7915 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7916
7917         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
7918         incoming operands array is large enough for one more operand.
7919         (alpha_emit_xfloating_arith): Likewise.
7920
7921 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
7922
7923         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
7924         file with one line and no trailing newline.
7925         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
7926         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
7927         checking if the match is on the line.
7928         * fixinc/gnu-regex.c: Provide regerror not __regerror.
7929
7930 2000-01-25  Richard Henderson  <rth@cygnus.com>
7931
7932         * sparc.c (output_cbranch): Fix accidental squashing of the
7933         fp branch pre-delay nop.
7934
7935 2000-01-25  Richard Henderson  <rth@cygnus.com>
7936
7937         * tree.def (UNNE_EXPR): Remove.
7938         * c-typeck.c (build_binary_op): Don't handle it.
7939         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
7940
7941         * rtl.def (UNNE): Remove.
7942         (LTGT): Add.
7943         * jump.c (reverse_condition): Update accordingly.
7944         (swap_condition): Likewise.
7945         (comparison_dominates_p): Handle unordered comparisons.
7946         (reverse_condition_maybe_unordered): New.
7947         * rtl.h (reverse_condition_maybe_unordered): Declare.
7948
7949         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
7950         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
7951         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
7952         * sparc.md (bltgt): New.
7953
7954 2000-01-25  Nick Clifton  <nickc@redhat.com>
7955
7956         * emit-rtl.c (emit_insn): Only check machine class insns for
7957         improper emission of a RETURN.
7958
7959 2000-01-25  Richard Henderson  <rth@cygnus.com>
7960
7961         * Makefile.in (flow.o): Depend on $(EXPR_H).
7962         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
7963         duplicate the structure of diddle_return_value for keeping regs live.
7964
7965 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7966
7967         * loop.c (current_loop_info): Delete.
7968         (consec_sets_invariant_p): Add loop argument, update callers.
7969         (get_condition_for_loop): Likewise.
7970         (count_nonfixed_reads, update_giv_derive): Likewise.
7971         (simplify_giv_expr, general_induction_var): Likewise.
7972         (consec_sets_giv, recombine_givs): Likewise.
7973         (move_movables): Delete loop_start and loop_end arguments,
7974         add loop argument, and update callers.
7975         (find_mem_givs, check_final_value): Likewise.
7976         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
7977         (loop_invariant_p): Rename from invariant_p, add loop argument, and
7978         update callers.
7979         (basic_induction_var): Add loop argument, delete loop_level argument,
7980         and update callers.
7981         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
7982         add loop argument, and update callers.
7983         (find_splittable_regs, find_splittable_givs): Likewise.
7984         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
7985         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
7986         (biv_total_increment): Delete loop_start and loop_end arguments;
7987         update callers.
7988         (precondition_loop_p): Delete loop_start and loop_info arguments;
7989         update callers.
7990         * loop.h (get_condition_for_loop): Add loop argument.
7991         (biv_total_increment): Delete loop_start and loop_end arguments.
7992         (precondition_loop_p): Delete loop_start and loop_info arguments;
7993         add loop argument.
7994         (final_biv_value): Delete loop_start and loop_end arguments;
7995         add loop argument.
7996         (final_giv_value, back_branch_in_range_p): Likewise.
7997
7998 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
7999
8000         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
8001
8002 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
8003
8004         * Makefile.in (c-gperf.h) : Change the "See" pointer to
8005         point to the new "generated_files" doc.
8006
8007 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
8008
8009         * config/fp-bit.c (_unord_f2): Fix typo.
8010
8011 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
8012
8013         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
8014         c-typeck.c, objc/objc-act.c: Remove all references to obstack
8015         functions obsoleted by GC, such as push_obstacks_nochange,
8016         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
8017         and code which existed only to decide whether or not to call
8018         them.  Remove now-unused NESTED argument from start_function;
8019         all callers changed.  Do not change behavior based on ggc_p.
8020         The use of the ixp_obstack in c-iterate.c and the util_obstack
8021         in objc/objc-act.c remain; these are not obsoleted by garbage
8022         collection.
8023         * c-tree.h: Update prototype for start_function.
8024
8025         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
8026
8027 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
8028
8029         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
8030         mips16.
8031
8032 2000-01-25  Richard Henderson  <rth@cygnus.com>
8033
8034         * sparc-protos.h (select_cc_mode): Declare.
8035         * sparc.c (select_cc_mode): New.  Handle unordered compares.
8036         (output_cbranch): Always reverse via code change.  Handle
8037         unordered compares.  Factor tests and string updates.
8038         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
8039         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
8040         * sparc.md (bunordered, bordered): New.
8041         (bungt, bunlt, buneq, bunge, bunle): New.
8042
8043 2000-01-25  Richard Henderson  <rth@cygnus.com>
8044
8045         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
8046         * ggc-common.c (ggc_add_rtx_varray_root): New.
8047         (ggc_mark_rtx_varray): New.
8048         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
8049         functions down below ggc_mark_foo.
8050         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
8051
8052 2000-01-25  Richard Henderson  <rth@cygnus.com>
8053
8054         * alpha.c (secondary_reload_class): Don't allocate a secondary
8055         for integral mode memories into FLOAT_REGS.  Rearrange the more
8056         complicated memory expression inward.
8057
8058 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
8059
8060         * inclhack.def: Fixes to play nicer with FreeBSD, and
8061         corrections to comments.
8062         (cxx_unready): Add select expression.
8063         (irix_sockaddr): Add bypass expression.
8064         (machine_ansi_h_va_list): New fix.
8065         (stdio_va_list): No need to edit _BSD_VA_LIST_.
8066         Split out addition of "#include <stdarg.h>" to...
8067         (stdio_stdarg_h): ... here.
8068         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
8069         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
8070         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
8071         size_t.
8072         (ultrix_ifdef): Tighten up select expression.
8073
8074         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
8075         re_ct and max_mach to avoid use of shell.  Make printed names
8076         match names in inclhack.def.  Use static copyright date.
8077         Don't count c_test and test expressions as requiring regex_t
8078         slots.  Add some commentary.
8079         * inclhack.tpl: Do not include the 'This script contains N
8080         fixup scripts' line if PROGRAM is defined.  Use static
8081         copyright date.
8082
8083 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
8084
8085         * dwarf2out.c: include "varray.h", not dyn-string.h.
8086         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
8087         (addr_const_to_string, addr_to_string): Lose.
8088         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
8089         (struct dw_val_struct): val_addr is now an rtx.
8090         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
8091         (used_rtx_varray): New varray.
8092         (dwarf2out_init): Initialize it.
8093         (save_rtx): New fn.
8094         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
8095         addr_to_string.
8096         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
8097         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
8098         * Makefile.in (dwarf2out.o): Update dependencies.
8099
8100 2000-01-24  Richard Henderson  <rth@cygnus.com>
8101
8102         * i386.c (i386_dwarf_output_addr_const): New.
8103         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
8104
8105         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
8106         if defined.
8107         * dwarfout.c (output_mem_loc_descriptor): Likewise.
8108         * i386.c (i386_simplify_dwarf_addr): New.
8109         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
8110
8111 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
8112
8113         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
8114         TYPE_STUB_DECL is NULL.
8115
8116 2000-01-24  Richard Henderson  <rth@cygnus.com>
8117
8118         * builtins.c (expand_tree_builtin): Move ...
8119         * c-common.c (expand_tree_builtin): ... here.
8120
8121 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8122
8123         * loop.h (LOOP_INFO): New accessor macro.
8124         * basic-block.h (struct loop): Rename field `info' to `aux'.
8125         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
8126         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
8127         * unroll.c (loop_iterations, unroll_loop): Likewise.
8128
8129 2000-01-24  Christopher Faylor <cgf@cygnus.com>
8130
8131         * config/i386/t-cygwin: Accomodate new winsup directory layout
8132         when searching for include files.
8133
8134 2000-01-24  Richard Henderson  <rth@cygnus.com>
8135
8136         * rtl.def: Add unordered fp comparisions.
8137         * tree.def: Likewise.
8138         * tree.h: Add ISO C 9x unordered fp comparision builtins.
8139
8140         * builtins.c (expand_tree_builtin): New function.
8141         * c-typeck.c (build_function_call): Use it.
8142         (build_binary_op): Support unordered compares.
8143         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
8144
8145         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
8146         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
8147         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
8148         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
8149         * jump.c (reverse_condition): Don't abort for UNLE etc, but
8150         return UNKNOWN.
8151         (swap_condition): Handle unordered compares.
8152         (thread_jumps): Check can_reverse before reversing.
8153         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
8154         reversed for FP.
8155
8156         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
8157         setcc is present before acking for cmp_optab.  Update all callers.
8158         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
8159         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
8160         * expr.c (expand_expr): Likewise.  Support unordered compares.
8161         (do_jump, do_store_flag): Likewise.
8162         * expr.h (enum libfunc_index): Add unordered compares.
8163
8164         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
8165         (DPBIT_FUNCS): Add _unord_df.
8166         * config/fp-bit.c (_unord_f2): New.
8167         * fp-test.c (main): Try unordered compare builtins.
8168
8169         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
8170         * alpha.c (alpha_comparison_operator): Check mode properly.
8171         (alpha_swapped_comparison_operator): Likewise.
8172         (signed_comparison_operator): Likewise.
8173         (alpha_fp_comparison_operator): New.
8174         (alpha_emit_conditional_branch): Handle unordered compares.
8175         * alpha.h (PREDICATE_CODES): Update.
8176         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
8177         (bunordered, bordered): New.
8178
8179 2000-01-24  Richard Henderson  <rth@cygnus.com>
8180
8181         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
8182         * alpha.md (movtf): New expander, insn, and splitter.
8183
8184 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
8185
8186         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
8187         dead registers.
8188
8189 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
8190
8191         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
8192         (FIXED_REGISTERS, CALL_USED_REGISTERS,
8193          REG_ALLOC_ORDER): Add frame pointer
8194         (FRAME_POINTER_REGNUM): Set to 20
8195         (HARD_FRAME_POINTER_REGNUM): New macro.
8196         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
8197         to HARD_FRAME_POINTER.
8198         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
8199         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
8200         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
8201         (HI_REGISTER_NAMES): Add "frame".
8202         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
8203         (debug_reg): Handle FRAME_POINTER_REGNUM.
8204         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
8205         GENERAL_REGS and INDEX_REGS.
8206         * i386.c (SAVED_REGS_FIRST): new macro.
8207         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
8208         (ix86_decompose_address, memory_address_length): Likewise.
8209         (regclass_map): Add frame pointer.
8210         (call_insn_operand): Handle frame_pointer_rtx.
8211         (reg_no_sp_operand): Likewise.
8212         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
8213         (print_operand, legitimize_pic_address): Fix formating.
8214         (ix86_compute_frame_size): Make static, update prototype, new
8215         parameters padding1, padding2, use ix86_nsaved_regs, use
8216         stack_alignment_needed.
8217         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
8218         to HARD_FRAME_POINTER_REGNUM conversions.
8219         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
8220         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
8221         (print_reg): Abort on FRAME_POINTER_REGNUM
8222
8223 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
8224
8225         * i386.h (PREDICATE_CODES): Add aligned_operand.
8226         * i386.c (aligned_operand): New function.
8227         (ix86_aligned_p): Kill.
8228         * i386.md (movhi_1): Emit mov for aligned operands.
8229         (promoting peep2s): Use aligned_operand.
8230
8231 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
8232
8233         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
8234         expression to allow underscores in macro names.
8235         (fix_char_macro_defines): Increment scanning pointer.
8236
8237 2000-01-23  Richard Henderson  <rth@cygnus.com>
8238
8239         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
8240         * alpha/osf5.h: New file.
8241         * configure.in (alpha-*-osf5): Add it to tm_file.
8242
8243         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
8244
8245         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
8246         (alpha_emit_xfloating_cvt, function_arg): Declare.
8247         * alpha.c (alpha_emit_conditional_branch): Call
8248         alpha_emit_xfloating_compare for TFmode compares.
8249         (alpha_lookup_xfloating_lib_func): New.
8250         (alpha_compute_xfloating_mode_arg): New.
8251         (alpha_emit_xfloating_libcall): New.
8252         (alpha_emit_xfloating_arith): New.
8253         (alpha_emit_xfloating_compare): New.
8254         (alpha_emit_xfloating_cvt): New.
8255         (print_operand): Add default abort case.
8256         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
8257         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
8258         (BIGGEST_ALIGNMENT): Increase to 128 bits.
8259         (RETURN_IN_MEMORY): True for TF/TCmode.
8260         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
8261         (FUNCTION_ARG): Move to function_arg.
8262         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
8263         (ASM_OUTPUT_LONG_DOUBLE): New.
8264         (ASM_OUTPUT_DOUBLE): Always output bits.
8265         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
8266         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
8267         (extenddftf2, trunctfdf2): New.
8268
8269 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8270
8271         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
8272         * config/sparc/sol2.h: ... here.
8273
8274 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8275
8276         * basic-block.h (struct loops): New field `levels'.
8277         * flow.c (flow_loops_level_compute): Traverse all outer loops.
8278         (flow_loop_level_compute): Initialise level to 1.
8279         (flow_loops_find): Set loops->levels.
8280         (flow_loops_dump): Print loops->levels.
8281
8282 2000-01-23  Richard Henderson  <rth@cygnus.com>
8283
8284         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
8285         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
8286
8287 2000-01-23  Richard Henderson  <rth@cygnus.com>
8288
8289         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
8290         * i386.h (DBX_REGISTER_NUMBER): Use them.
8291         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
8292         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
8293         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
8294         * i386/sequent.h: Kill incorrect comment.
8295
8296 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
8297
8298         * ggc-page.c (struct page_entry): Make `context_depth' an
8299         `unsigned short'.
8300         (struct globals): Likewise.
8301
8302 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
8303
8304         * loop.c (check_dbra_loop): When checking a loop for
8305         reversability, check the source of any stores to ensure
8306         they don't depend on an initial value.
8307
8308 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8309
8310         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
8311
8312 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
8313
8314         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
8315         'pz_scan' into scope of entire function.  Only affects
8316         compiles with -DDEBUG.
8317
8318 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
8319
8320         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
8321         section naming to that prior to 2000-01-07 patch.
8322         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
8323         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
8324         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
8325         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
8326         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
8327
8328 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
8329
8330         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
8331         constant.
8332
8333 2000-01-21  Jim Wilson  <wilson@cygnus.com>
8334
8335         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
8336         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
8337
8338 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
8339
8340         * cpphash.c (change_newlines): Delete function.
8341         (struct argdata): Delete 'newlines' and 'use_count' fields.
8342         (macroexpand): Remove code referencing those fields.
8343
8344 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8345
8346         * loop.c (loops_info): New variable.
8347         (loop_optimize): Allocate loops->array and free it on exit.
8348         Allocate memory for loops_info and assign to each loop,
8349         replacing alloca.
8350         (find_and_verify_loops): Do not allocate loops->array.
8351
8352 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
8353
8354         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
8355
8356 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
8357
8358         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
8359         pseudos if expanded after first flow.
8360         (movdi_pic_label_ref): Likewise.
8361
8362 2000-01-20  Richard Henderson  <rth@cygnus.com>
8363
8364         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
8365
8366 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
8367
8368         * Makefile.in (fixinc.sh): Depend on specs.
8369         * fixinc/Makefile.in: Add rule to create machname.h.
8370         (fixlib.o): Depend on machname.h.
8371         * fixinc/fixtests.c (machine_name): New test.
8372         * fixinc/fixfixes.c (machine_name): New fix.
8373         * fixinc/fixlib.c (mn_get_regexps): New helper function for
8374         the machine_name test and fix.
8375         * fixinc/fixlib.h: Prototype it.
8376         * fixinc/inclhack.def (machine_name): Use the C test and fix.
8377         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
8378
8379         * gcc.c (do_spec_1) [case P]: Take care not to create
8380         identifiers with three leading or trailing underscores.
8381
8382         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
8383         (fixincl): Don't specify libraries twice on link line.
8384         (gnu-regex.o): Remove special rule.
8385         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
8386         defined by config.h.  Do not define _REGEX_RE_COMP.
8387         (regcomp): Allocate and initialize a fastmap.
8388         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
8389
8390 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
8391
8392         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
8393
8394 2000-01-19  Richard Henderson  <rth@cygnus.com>
8395
8396         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
8397         arguments with BB.  Update all callers.  Tidy line wrapping.
8398
8399 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
8400
8401         * emit-rtl.c (try_split): Return last_insn if we split the
8402         last_insn.
8403
8404 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
8405
8406         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
8407         (ix86_initial_elimination_offset): Declare.
8408         * i386.c (ix86_nsaved_regs): Break out from ...
8409         (ix86_can_use_return_insn_p): ... here.
8410         (ix86_emit_save_regs): Break out from ...
8411         (ix86_expand_prologue): ... here.
8412         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
8413         out from ...
8414         (ix86_expand_epilogue): ... here.
8415         (ix86_compute_frame_size): Make static, add prototype.
8416         (ix86_initial_elimination_offset): Break out from ...
8417         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
8418
8419 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8420
8421         * recog.h (OUT_FCN): Delete.
8422
8423         * vax.md: Call `get_insn_template' instead of OUT_FCN.
8424
8425 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8426
8427         * cppalloc.c: PROTO -> PARAMS.
8428         * cpperror.c: Likewise.
8429         * cppfiles.c: Likewise.
8430         * cpplib.c: Likewise.
8431         * cpplib.h: Likewise.
8432
8433         * config/arm/arm-protos.h: PROTO -> PARAMS.
8434         * config/arm/arm.c: Likewise.
8435         * config/c4x/c4x.c: Likewise.
8436         * config/fr30/fr30-protos.h: Likewise.
8437         * config/nextstep.c: Likewise.
8438         * config/pa/pa.c: Likewise.
8439         * config/pj/pj.c: Likewise.
8440         * config/rs6000/rs6000.c: Likewise.
8441         * config/v850/v850-protos.h: Likewise.
8442         * config/v850/v850.c: Likewise.
8443
8444 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8445
8446         * i370-protos.h: New file.
8447
8448         * i370.c: Include tm_p.h.  Fix compile time warnings.
8449
8450         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
8451         warnings.
8452
8453         * i370.md: Likewise.
8454
8455 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8456
8457         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
8458         (target_isinf, target_isnan, eisnan): Mark parameter with
8459         ATTRIBUTE_UNUSED.
8460         (eiisinf): Wrap in INFINITY.
8461         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
8462         (ibmtoe): Remove unused variable `rndsav'.
8463
8464 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8465
8466         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
8467         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
8468
8469 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
8470
8471         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
8472         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
8473         (fix_char_macro_defines, fix_char_macro_uses): New functions.
8474
8475         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
8476         Recognize Emacs mode markers also.
8477         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
8478         C++ comments in C++ headers.  Call is_cxx_header only if
8479         necessary.
8480
8481         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
8482         bypass for ncurses.
8483         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
8484         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
8485         ... these, which use the new C fixes.
8486         (math_exception): Escape literal '+' in bypass expression.
8487
8488         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
8489         Regenerate.
8490
8491 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8492
8493         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
8494         inside the MEM.
8495
8496 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8497
8498         * loop.c (loop_optimize): Allocate loop_info structure for each loop
8499         prior to calling scan_loop.
8500
8501 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8502
8503         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
8504         (split_branches, calc_live_regs): Likewise.
8505
8506 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8507
8508         * sh.md (fpu_single, fp_mode): New attributes.
8509
8510 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8511
8512         * loop.c (current_loop_info): Renamed from loop_info_data
8513         and changed to a pointer.
8514         (loop_optimize): Allocate loop_info structure for each loop
8515         and initialise to zero.
8516         (scan_loop): Set current_loop_info.
8517
8518         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
8519         on iteration_var.
8520
8521 2000-01-19  Richard Henderson  <rth@cygnus.com>
8522
8523         * stupid.c: Die die die.
8524         * Makefile.in (OBJS): Remove stupid.o.
8525         (stupid.o): Likewise.
8526
8527         * except.c (emit_eh_context): Don't emit USEs for stupid.
8528         * explow.c (probe_stack_range): Likewise.
8529         * flags.h (obey_regdecls): Remove.
8530         * flow.c (find_basic_blocks): Don't run try_merge_blocks
8531         when not optimizing.
8532         (life_analysis): Limit data collection when not optimizing.
8533         (mark_regs_live_at_end): Always mark the return value registers.
8534         (mark_used_regs): Remove dummy RETURN case.
8535         (print_rtl_with_bb): Don't consult obey_regdecls.
8536         * function.c (use_variable, use_variable_after): Remove.
8537         (assign_parms): Consult optimize not obey_regdecls.
8538         (expand_function_start): Don't emit USEs for stupid.
8539         (expand_function_end): Likewise.
8540         * global.c (build_insn_chain): Export.
8541         * integrate.c (expand_inline_function): Kill return-value USE
8542         handling code.
8543         * jump.c (jump_optimize_1): Do simple jump optimizations and
8544         dead code elimination.
8545         (calculate_can_reach_end): Remove check_deleted argument.
8546         (delete_insn): Patch out insns even when not optimizing.
8547         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
8548         * rtl.h (use_variable, use_variable_after): Remove declarations.
8549         (build_insn_chain): Declare.
8550         * stmt.c (expand_value_return): Don't emit USEs for stupid.
8551         (expand_end_bindings): Likewise.
8552         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
8553         * toplev.c (obey_regdecls): Remove.
8554         (rest_of_compilation): Don't set it.  Kill stupid in favour of
8555         flow1, local-alloc, and reload.
8556         (main): Don't set obey_regdecls.
8557
8558         * config/nextstep.c (handle_pragma): Likewise.
8559
8560         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
8561
8562         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
8563
8564 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8565
8566         * alpha-protos.h: PROTO -> PARAMS.
8567         * alpha.c: Likewise.
8568         * elf.h: Likewise.
8569         * h8300.c: Likewise.
8570         * i386-protos.h: Likewise.
8571         * i386.c: Likewise.
8572         * m32r-protos.h: Likewise.
8573         * m32r.c: Likewise.
8574         * mips.c: Likewise.
8575         * mips.md: Likewise.
8576         * gmon-sol2.c: Likewise.
8577         * sparc.c: Likewise.
8578
8579 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8580
8581         * ns32k-protos.h: New file.
8582
8583         * ns32k.c: Fix compile time warnings.
8584
8585         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
8586         warnings.
8587
8588         * ns32k.md: Likewise.
8589
8590 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8591
8592         * vax-protos.h: New file.
8593
8594         * vax.c: Fix compile time warnings.
8595
8596         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
8597         warnings.
8598
8599         * vax.md: Likewise.
8600
8601         * vaxv.md: Likewise.
8602
8603 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8604
8605         * romp-protos.h: New file.
8606
8607         * romp.c: Fix compile time warnings.
8608
8609         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
8610         warnings.
8611
8612         * romp.md: Likewise.
8613
8614 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8615
8616         * we32k-protos.h: New file.
8617
8618         * we32k.c: Fix compile time warnings.
8619
8620         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
8621         warnings.
8622
8623 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8624
8625         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
8626
8627         * except.c (eh_regs): Likewise.
8628
8629         * final.c (output_operand): Likewise.
8630
8631         * fold-const.c (target_isinf, target_isnan): Likewise.
8632
8633 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
8634
8635         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
8636         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
8637
8638         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
8639         when optimize_size.
8640         (clrstrsi): Rewrite.
8641         (strsethi, strsetqi): New expanders.
8642         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
8643         (cmpstrsi): Emit compare insn before cmpstrsi_1
8644         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
8645         (strlensi_1): Likewise.
8646         (cmpstrsi_1): Likewise; do not output compare.
8647         (strlen expander): Do not unroll when optimizing for size.
8648         (*subsi3_carry): Rename to subsi3_carry
8649         (addqi3_cc): New pattern.
8650         * i386.h (processor_costs): Add move_ratio field.
8651         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
8652         * i386.c (*_cost): Set move_ratio.
8653         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
8654         (x86_expand_strlensi_1): Rewrite the main loop.
8655
8656 2000-01-17  Richard Henderson  <rth@cygnus.com>
8657
8658         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
8659         * cse.c (find_comparison_args, fold_rtx): Likewise.
8660         * integrate.c (subst_constants): Likewise.
8661         * loop.c (get_condition): Likewise.
8662
8663         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
8664
8665         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
8666
8667 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8668
8669         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
8670         (RESTORE_WARN_FLAGS): Unpack it.
8671         Change semantic type of extension to ttype.
8672         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
8673         * c-parse.y, c-parse.c, objc/objc-parse.y,
8674         objc/objc-parse.c: Regenerate.
8675
8676 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
8677
8678         * fixinc/fixlib.c: Add copyright notice.
8679         (compile_re): New function.
8680         * fixinc/fixlib.h: Prototype compile_re.
8681
8682         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
8683         Use compile_re to compile regular expressions.
8684
8685         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
8686         where the pattern matched.
8687
8688         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
8689         use 'replace'.
8690         (ultrix_ansi_compat): Likewise.
8691         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
8692         add egrep test.
8693         (interactv_add2, interactv_add3): Delete.
8694         (x11_sprintf): Don't use filename glob.
8695         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
8696         Regenerate.
8697
8698 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8699
8700         * print-rtl.c: PROTO -> PARAMS.
8701         * real.c: Likewise.
8702         * reg-stack.c: Likewise.
8703         * resource.c: Likewise.
8704         * sdbout.h: Likewise.
8705         * simplify-rtx.c: Likewise.
8706         * stor-layout.c: Likewise.
8707         * stupid.c: Likewise.
8708         * xcoffout.c: Likewise.
8709         * xcoffout.h: Likewise.
8710
8711 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8712
8713         * toplev.c: PROTO -> PARAMS.
8714         * toplev.h: Likewise.
8715         * tree.c: Likewise.
8716         * tree.h: Likewise.
8717         * unroll.c: Likewise.
8718         * varasm.c: Likewise.
8719         * varray.c: Likewise.
8720         * varray.h: Likewise.
8721
8722 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8723
8724         * reload.c: PROTO -> PARAMS.
8725         * reload.h: Likewise.
8726         * reload1.c: Likewise.
8727         * reorg.c: Likewise.
8728         * resource.h: Likewise.
8729         * rtl.c: Likewise.
8730         * rtl.h: Likewise.
8731         * rtlanal.c: Likewise.
8732         * sbitmap.h: Likewise.
8733         * sdbout.c: Likewise.
8734         * stack.h: Likewise.
8735         * stmt.c: Likewise.
8736         * system.h: Likewise.
8737
8738 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8739
8740         * machmode.h: PROTO -> PARAMS.
8741         * mbchar.h: Likewise.
8742         * mips-tdump.c: Likewise.
8743         * mips-tfile.c: Likewise.
8744         * optabs.c: Likewise.
8745         * output.h: Likewise.
8746         * prefix.c: Likewise.
8747         * profile.c: Likewise.
8748         * protoize.c: Likewise.
8749         * real.h: Likewise.
8750         * recog.c: Likewise.
8751         * recog.h: Likewise.
8752         * regclass.c: Likewise.
8753         * regmove.c: Likewise.
8754         * regs.h: Likewise.
8755
8756 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8757
8758         * ggc-common.c: PROTO -> PARAMS.
8759         * ggc-page.c: Likewise.
8760         * ggc-simple.c: Likewise.
8761         * ggc.h: Likewise.
8762         * global.c: Likewise.
8763         * graph.c: Likewise.
8764         * gthr-win32.h: Likewise.
8765         * haifa-sched.c: Likewise.
8766         * halfpic.h: Likewise.
8767         * integrate.c: Likewise.
8768         * integrate.h: Likewise.
8769         * jump.c: Likewise.
8770         * lcm.c: Likewise.
8771         * local-alloc.c: Likewise.
8772         * loop.c: Likewise.
8773         * loop.h: Likewise.
8774
8775 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8776
8777         * genattr.c: PROTO -> PARAMS.
8778         * genattrtab.c: Likewise.
8779         * gencheck.c: Likewise.
8780         * gencodes.c: Likewise.
8781         * genconfig.c: Likewise.
8782         * genemit.c: Likewise.
8783         * genextract.c: Likewise.
8784         * genflags.c: Likewise.
8785         * gengenrtl.c: Likewise.
8786         * genopinit.c: Likewise.
8787         * genoutput.c: Likewise.
8788         * genpeep.c: Likewise.
8789         * genrecog.c: Likewise.
8790
8791 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
8792
8793         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
8794
8795 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8796
8797         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
8798         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
8799         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
8800         * configure, config.in: Rebuilt.
8801
8802 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
8803
8804         * config/i386/i386.md: Add peephole to merge successive stack
8805         adjusts.
8806
8807 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
8808
8809         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
8810         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
8811         when walking backwards to find all the parameter loads when
8812         the basic block ends in a call.
8813
8814 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8815
8816         * loop.c (this_loop_info): Delete.
8817         (uid_loop): Add in place of uid_loop_num.  All uses updated.
8818         (loop_number_exit_count): Delete and replace with entry in loop
8819         structure.  All uses updated.
8820         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
8821         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
8822         (loop_outer_loop): Likewise.
8823         (loop_invalid, loop_number_exit_labels): Likewise.
8824         (loop_used_count_register): Delete and replace with entry in
8825         loop_info structure.
8826         (find_and_verify_loops): Add loops argument.
8827         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
8828         loop_end, etc. arguments with loop structure pointer.  All callers
8829         changed.
8830         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
8831         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
8832         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
8833         (insert_bct): Likewise.
8834         (basic_induction_var): New argument level.
8835         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
8836         vtop, and cont.  Add used_count_register.
8837         (uid_loop): Delete declaration.
8838         (loop_number_exit_count): Likewise.
8839         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
8840         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
8841         (loop_outer_loop, loop_used_count_register): Likewise.
8842         (loop_invalid, loop_number_exit_labels): Likewise.
8843         (unroll_loop): Replace loop_start and loop_end arguments
8844         with loop structure pointer.
8845         (loop_precondition_p, loop_iterations): Likewise.
8846         Include basic-block.h.
8847         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
8848         with loop structure pointer.
8849         (loop_precondition_p, loop_iterations): Likewise.
8850         * basic-block.h (struct loop): New entries vtop, cont,
8851         cont_dominator, start, end, top, scan_start, exit_labels,
8852         exit_count.
8853         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
8854
8855 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8856
8857         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
8858
8859 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
8860
8861         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
8862
8863 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8864
8865         * pdp11-protos.h: New file.
8866
8867         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
8868         time warnings.
8869
8870         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
8871         warnings.
8872
8873         * pdp11.md: Likewise.
8874
8875         * 2bsd.h: Likewise.
8876
8877 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8878
8879         * mn10300-protos.h: New file.
8880
8881         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
8882         time warnings.
8883
8884         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
8885         warnings.
8886
8887         * mn10300.md: Likewise.
8888
8889 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8890
8891         * mn10200-protos.h: New file.
8892
8893         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
8894         time warnings.
8895
8896         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
8897         warnings.
8898
8899         * mn10200.md: Likewise.
8900
8901 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8902
8903         * h8300-protos.h: New file.
8904
8905         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
8906         time warnings.
8907
8908         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
8909         warnings.
8910
8911         * h8300.md: Likewise.
8912
8913 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8914
8915         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
8916         (asm_emit_uninitialised): Likewise.
8917
8918 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
8919
8920         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
8921         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
8922
8923 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
8924
8925         * config/mips/mips.c (override_options): Don't turn on extra
8926         alignment for mips16.
8927
8928 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
8929
8930         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
8931         eabi, and make sure queued POSTINCREMENT rtl is emitted at
8932         the right point.
8933
8934 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
8935
8936         * builtins.c (PAD_VARARGS_DOWN): Define.
8937         (std_expand_builtin_va_arg): Use the above macro.
8938         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
8939         * tm.texi (Register Arguments): Document the above macro.
8940
8941 2000-01-14  Nick Clifton  <nickc@cygnus.com>
8942
8943         * emit-rtl.c (emit_insn): If checking is enabled, make sure
8944         that this function has not been used to emit a jump
8945         instruction.
8946
8947         * jump.c (return_jump_1): Cope with being passed a null rtx.
8948
8949 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8950
8951         * eh-common.h: PROTO -> PARAMS.
8952         * emit-rtl.c: Likewise.
8953         * errors.c: Likewise.
8954         * errors.h: Likewise.
8955         * except.c: Likewise.
8956         * except.h: Likewise.
8957         * explow.c: Likewise.
8958         * expmed.c: Likewise.
8959         * expr.c: Likewise.
8960         * expr.h: Likewise.
8961         * final.c: Likewise.
8962         * fix-header.c: Likewise.
8963         * flow.c: Likewise.
8964         * fold-const.c: Likewise.
8965         * function.c: Likewise.
8966         * function.h: Likewise.
8967         * gcc.c: Likewise.
8968         * gcov-io.h: Likewise.
8969         * gcov.c: Likewise.
8970         * gcse.c: Likewise.
8971
8972 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8973
8974         * sh-protos.h: New file.
8975
8976         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
8977         Add static prototypes.  Fix compile time warnings.
8978
8979         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
8980         * sh.md: Likewise.
8981         * elf.h: Likewise.
8982
8983 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8984
8985         * arc-protos.h: New file.
8986
8987         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
8988         time warnings.
8989
8990         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
8991         warnings.
8992
8993         * arc.md: Likewise.
8994
8995 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8996
8997         * dsp16xx-protos.h: New file.
8998
8999         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
9000         time warnings.
9001
9002         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
9003         warnings.
9004
9005         * dsp16xx.md: Likewise.
9006
9007 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9008
9009         * convex-protos.h: New file.
9010
9011         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
9012         time warnings.
9013
9014         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
9015         warnings.
9016
9017 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9018
9019         * elxsi-protos.h: New file.
9020
9021         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
9022         time warnings.
9023
9024         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
9025         warnings.
9026
9027         * elxsi.md: Likewise.
9028
9029 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
9030
9031         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
9032         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
9033         match the comment for MIPS16.
9034
9035 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
9036
9037         * flow.c (split_edge): Do not call set_block_for_insn if we
9038         do not have a basic_block_for_insn structure.
9039
9040         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
9041         and destination functions are 32bit aligned within the trampoline.
9042         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
9043         (TRAMPOLINE_ALIGNMENT): Define.
9044
9045         * cse.c (cse_insn): When changing (set (pc) (reg)) to
9046         (set (pc) (label_ref)), verify the change creates a valid insn.
9047
9048         * fr30.c (call_operand): Tighten and rework to match rules for
9049         call RTL expressions.
9050         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
9051         * fr30.md (call patterns): Improve constraints.
9052
9053 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
9054
9055         * fr30.c (fr30_expand_epilogue): Revert last change.
9056         Use emit_jump_insn for the return insn.
9057
9058 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
9059                           Stan Cox  <scox@cygnus.com>
9060
9061         * predict.c: New file. Preliminary infrastructure work for static
9062         branch prediction and basic block reordering.
9063         * basic-block.h: Add prototype for estimate_probability.
9064         * Makefile.in: Add rules for predict.o.
9065
9066 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
9067
9068         * fixincludes (va_list): Use __not_va_list__ for the dummy.
9069         * fixinc/*: Likewise.
9070
9071 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9072
9073         * cccp.c: PROTO -> PARAMS.
9074         * cexp.y: Likewise.
9075         * collect2.c: Likewise.
9076         * combine.c: Likewise.
9077         * convert.h: Likewise.
9078         * cse.c: Likewise.
9079         * dbxout.c: Likewise.
9080         * dbxout.h: Likewise.
9081         * diagnostic.c: Likewise.
9082         * doprint.c: Likewise.
9083         * dwarf2out.c: Likewise.
9084         * dwarf2out.h: Likewise.
9085         * dwarfout.c: Likewise.
9086         * dwarfout.h: Likewise.
9087         * dyn-string.h: Likewise.
9088
9089 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9090
9091         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
9092         macro conditionals guarding use.
9093
9094         * dwarf2out.c: Include "tm_p.h".
9095
9096         * function.c (locate_and_pad_parm): Mark parameter with
9097         ATTRIBUTE_UNUSED.
9098         (expand_function_end): Likewise for variable `context'.
9099
9100         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
9101
9102 2000-01-13  Nick Clifton  <nickc@cygnus.com>
9103
9104         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
9105         register to prevent compile time warnings.
9106
9107 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
9108
9109         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
9110         to avoid -Wtraditional warning.
9111
9112 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9113
9114         * 1750a-protos.h: New file.
9115
9116         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
9117         time warnings.
9118
9119         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
9120         warnings.
9121
9122         * 1750a.md: Likewise.
9123
9124 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9125
9126         * a29k-protos.h: New file.
9127
9128         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
9129         time warnings.
9130
9131         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
9132         warnings.
9133
9134 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9135
9136         * clipper-protos.h: New file.
9137
9138         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
9139         time warnings.
9140
9141         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
9142         warnings.
9143
9144 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9145
9146         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
9147
9148 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
9149
9150         * configure.in (--enable-new-gxx-abi): New option.
9151         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
9152         * Makefile.in (GXX_ABI_FLAG): New variable.
9153         * configure: Regenerate.
9154
9155 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9156
9157         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
9158         * tm.texi (FORCE_STRUCT_BLK): Document.
9159         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
9160
9161 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
9162
9163         * config/ns32k/ns32k.md: Revert Jan 9 change.
9164
9165         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
9166         to a mode-test, if the predicate is address_operand.
9167
9168 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
9169
9170         * combine.c (if_then_else_cond): Be careful about what kinds
9171         of RTL expressions are passed to operand_subword.
9172
9173         * flow.c (split_edge): If we have to insert a new jump, make
9174         sure to associate it with a basic block.
9175
9176         * flow.c (commit_one_edge_insertion): A block with one successor
9177         can end in a JUMP_INSN that is not a simplejump.
9178
9179 2000-01-12  Robert Lipe  <robertl@sco.com>
9180
9181         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
9182         (BUILD_VA_LIST_TYPE): Define.
9183         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
9184         with crtstuff.c.
9185
9186 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
9187
9188         * cccp.c (do_pragma): Add cast to (char *).
9189
9190 2000-01-12  Richard Henderson  <rth@cygnus.com>
9191             Fred Fish  <fnf@be.com>
9192             Jason Merrill  <jason@cygnus.com>
9193
9194         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
9195         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
9196         * i386/beos-elf.h, i386/beos-pe.h: New files.
9197
9198         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
9199         * cross-make (SYSTEM_HEADER_DIR): Define using
9200         CROSS_SYSTEM_HEADER_DIR.
9201
9202         * gcc.c (LIBRARY_PATH_ENV): Provide default.
9203         (process_command): Use it.
9204         (main): Likewise.  Kill trailing = from env vars.
9205         (build_search_list): Put it back.
9206         * collect2.c (main): Use LIBRARY_PATH_ENV.
9207
9208         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
9209         * toplev.c: Use NEED_DECLARATION_ENVIRON.
9210
9211         * tm.texi (Frame Layout): Document SMALL_STACK.
9212         * c-common.c (c_common_nodes_and_builtins): Check it.
9213
9214         * system.h: Undef alloca after including glibc's <stdlib.h>,
9215         if USE_C_ALLOCA is defined.
9216
9217         * gcc.c (set_input): New fn.
9218         (main): After all input files are compiled, reset the input file
9219         info to the first.
9220
9221         * aclocal.m4 (rindex, index): If already defined, don't attempt
9222         to redefine.
9223
9224         * ginclude/varargs.h: (__va_list__): Define ifndef.
9225         * ginclude/stdarg.h: Likewise.
9226
9227         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
9228         instead of unsigned char.
9229
9230         * hash.h (true, false, boolean): Undef before enum.
9231
9232         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
9233         proper type of "HOST_WIDE_INT *", rather than their natural type of
9234         "unsigned HOST_WIDE_INT *".
9235
9236 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9237
9238         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
9239
9240         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
9241
9242         * regclass.c (choose_hard_reg_mode): Likewise.
9243
9244         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
9245
9246         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
9247
9248 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9249
9250         * c-common.c: PROTO -> PARAMS.
9251         * c-common.h: Likewise.
9252         * c-decl.c: Likewise.
9253         * c-iterate.c: Likewise.
9254         * c-lang.c: Likewise.
9255         * c-lex.c: Likewise.
9256         * c-lex.h: Likewise.
9257         * c-parse.in: Likewise.
9258         * c-pragma.c: Likewise.
9259         * c-pragma.h: Likewise.
9260         * c-tree.h: Likewise.
9261         * c-typeck.c: Likewise.
9262         * objc/objc-act.c: Likewise.
9263         * objc/objc-act.h: Likewise.
9264
9265 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9266
9267         * m88k-protos.h: New file.
9268
9269         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
9270         time warnings.
9271
9272         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
9273
9274         * m88k.md: Likewise.
9275
9276         * tekXD88.h: Likewise.
9277
9278 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9279
9280         * m68k-protos.h: New file.
9281
9282         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
9283         time warnings.
9284
9285         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
9286
9287         * mot3300.h: Likewise.
9288
9289 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
9290
9291         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
9292         extract_bitlst.
9293         (extract_bitlist): Declare bitlen.
9294
9295 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
9296
9297         * cccp.c: Accept and ignore -lang-fortran.
9298
9299         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
9300         qualifiers don't match at any level of pointerness.
9301
9302 2000-01-12  Robert Lipe  <robertl@sco.com>
9303
9304         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
9305
9306 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
9307
9308         * reload1.c (reload_reg_unavailable): New static variable.
9309         (reload_reg_free_p): Test it.
9310         (reload_reg_free_for_value_p): Test it instead of
9311         reload_reg_used.
9312         (choose_reload_regs_init): Compute it.
9313
9314 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
9315
9316         * reorg.c (fill_slots_from_thread): Check modified_in_p
9317         before replacing.
9318
9319 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
9320
9321         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
9322         these nodes even if INTERNALS is not set.
9323
9324 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
9325
9326         * gcse.c (delete_null_pointer_checks_1): Cope when
9327         get_condition cannot determine the condition.
9328
9329 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9330
9331         * toplev.h (set_message_length): Declare.
9332
9333         * diagnostic.c (obstack_chunk_alloc): Define macro.
9334         (obstack_chunk_free): Likewise.
9335         (struct output_buffer): New data structure.
9336         (vmessage): Remove.
9337         (output_maximum_width): New variable.
9338         (doing_line_wrapping, set_message_length, init_output_buffer,
9339         get_output_prefix, output_space_left, emit_output_prefix,
9340         output_newline, output_append, output_puts, dump_output,
9341         vbuild_message_string, build_message_string, build_location_prefix,
9342         voutput_notice, output_printf, line_wrapper_printf,
9343         vline_wrapper_message_with_location):  New functions. Implement
9344         automatic line wrapping.
9345         (v_message_with_decl): Make it handle automatic line wrapping.
9346         (v_error_with_file_and_line): Likewise.
9347         (v_warning_with_file_and_line): Likewise.
9348         (announce_function): Likewise.
9349         (default_print_error_function): Likewise.
9350
9351 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
9352
9353         * cpplib.h (struct cpp_options): Change lang_asm to char.
9354         Add lang_fortran.
9355         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
9356         done in cpp_handle_option now.
9357         (initialize_builtins): Take out special case code used only by
9358         __STDC_VERSION__.
9359         (cpp_handle_option): Turn off trigraphs and trigraph warnings
9360         if -traditional.  Recognize -lang-fortran and set
9361         lang_fortran, also turn off cplusplus_comments.
9362         (print_help): Document -lang-fortran.
9363         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
9364         lang_asm. Ignore all directives other than `# 123 "file"' if
9365         CPP_PREPROCESSED.
9366         (cpp_get_token): If -traditional, don't recognize directives
9367         unless the # is in column 1.
9368         (parse_string): If lang_fortran or lang_asm, silently
9369         terminate strings ('' or "") at end of line.
9370         Remove unnecessary braces.
9371
9372 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9373             Richard Henderson  <rth@cygnus.com>
9374
9375         * resource.c (mark_referenced_resources): Mark a set strict_low_part
9376         as used.
9377         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
9378         strict_low_part when possible.
9379
9380 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9381
9382         * alias.c: PROTO -> PARAMS.
9383         * basic-block.h: Likewise.
9384         * bitmap.c: Likewise.
9385         * bitmap.h: Likewise.
9386         * builtins.c: Likewise.
9387         * c-aux-info.c: Likewise.
9388         * caller-save.c: Likewise.
9389         * calls.c: Likewise.
9390
9391 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9392
9393         * Makefile.in (toplev.o): Depend on regs.h.
9394
9395         * output.h (tdesc_section): Prototype.
9396
9397         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
9398
9399         * sdbout.c: Include "tm_p.h".
9400
9401         * toplev.c: Include "regs.h".
9402
9403 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
9404
9405         * unroll.c (unroll_loop): Add EH support.
9406
9407 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9408
9409         * pa-protos.h: New file.
9410
9411         * pa.c: Include recog.h and tm_p.h.
9412         (compute_zdepwi_operands, compute_movstrsi_length,
9413         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
9414         find_addr_reg, import_milli): Add static prototypes.
9415         (pa_cpu_string, pa_arch_string): Constify a char*.
9416         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
9417         (read_only_operand): Add argument `mode'.
9418         (singlemove_string, output_move_double, output_fp_move_double,
9419         output_block_move, output_and, output_ior, output_ascii,
9420         remove_useless_addtr_insns, milli_names, output_mul_insn,
9421         output_div_insn, output_mod_insn, output_arg_descriptor,
9422         output_cbranch, output_bb, output_bvb, output_dbra, ,
9423         output_millicode_call, output_call, hppa_encode_label,
9424         output_parallel_movb, output_parallel_addb): Constify a char*.
9425         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
9426         (output_parallel_addb): Remove extra arg to `constrain_operands'
9427
9428         * pa.h:  Move all prototypes to pa-protos.h.
9429         (pa_cpu_string, pa_arch_string): Constify a char*.
9430         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
9431
9432         * pa.md: Call `function_label_operand' with mode argument.
9433         Likewise for `read_only_operand'.
9434         Fix nesting of parens in call to `symbolic_operand'.
9435
9436 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9437
9438         * i860-protos.h: New file.
9439
9440         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
9441         time warnings.
9442
9443         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
9444
9445         * i860.md: Likewise.
9446
9447 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
9448
9449         * i386.md (movstrsi expander): Rewrite.
9450         (movstrsi_1 insn): Deleted.
9451         (strmovhi, strmovqi expander): New expanders.
9452         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
9453         * i386.c (x86_single_stringop): New global variable.
9454         * i386.h (x86_single_stringop): Declare.
9455         (TARGET_SINGLE_STRINGOP): New macro.
9456
9457 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
9458
9459         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
9460         integer vararg POSTINCREMENT before the destination of the jump
9461         for the hard fp case.
9462         (function_arg_pass_by_reference): Pass a copy of CUM to
9463         FUNCTION_ARG.
9464
9465         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
9466         for CONSTANT_ADDRESS_P above while loop for subreg.
9467
9468 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
9469
9470         * flow.c (propagate_block): When a prologue/epilogue insn
9471         is marked dead, unconditionally clear libcall_is_dead and
9472         insn_is_dead, and only dump rtl if warnings aren't being
9473         suppressed.
9474
9475 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
9476
9477         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
9478         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
9479         (FIXED_REGISTERS): Set dirflag as fixed.
9480         (CALL_USED_REGISTERS): Set dirflag as used.
9481         (REG_ALLOC_ORDER): Set dirflag as last one.
9482         (DIRFLAG_REG): New macro.
9483         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
9484         (HI_REGISTER_NAMES): Add dirflag.
9485         (DEBUF_PRINT_REG): Handle dirflag.
9486         * i386.md (type attribute): New cld and str types.
9487         (length_opcode attribute): Set cld and str to 1.
9488         (memory attribute): Set str to unknown - it is not clear from the
9489         patterns.
9490         (pent_np function unit): Prefixed string operations takes 12 cycles
9491         minimally; cld takes 2 cycles.
9492         (ppro_uops attribute): Str is "many" and cld is "few".
9493         (ppro_p0 unit): Handle cld here.
9494         (k6_alux unit): Handle cld and str types.
9495         (k6_load unit): It is ocupied by str opcodes.
9496         (k6_store unit): It is ocupied by str opcodes.
9497         (athlon_decode): Str is vector decoded.
9498         (athlon_ieu): Handle str and cld.
9499         (cld pattern): New.
9500         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
9501         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
9502         cmpstrsi_nz_1 insn): Do not output cld instruction
9503
9504 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
9505
9506         * gcc.texi (G++ and GCC): Add Java and Chill.
9507         (Bug Critera): Don't list languages.
9508
9509         * gcc.texi (Incompatibilities): No longer claim most C compilers
9510         are K&R.
9511
9512         * gcc.texi (G++ and GCC): Update other front-ends list.
9513
9514 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
9515
9516         * i386.c (ix86_expand_setcc): Fix typo.
9517         (ix86_expand_movcc): Similarly.
9518
9519         * Band-aid until haifa's bitset implementation is nuked.
9520         * haifa-sched.c (extract_bitlst): New parameter for size of the
9521         bitset in bits.  All callers changed.  Avoid looking at undefined
9522         bits in the bitset.
9523         (edgeset_bitsize): New variable.
9524         (schedule_region): Initialize edgeset_bitsize.
9525
9526 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9527
9528         * Makefile.in (optabs.o): Depend on real.h
9529         (resource.o): Depend on insn-attr.h
9530
9531         * builtins.c (result_vector): Wrap prototype in macro conditions
9532         governing definition and use.
9533
9534         * c-common.c: Include tm_p.h.
9535
9536         * c-lex.c: Likewise.
9537
9538         * elfos.h: Constify a char*.
9539
9540         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
9541         (get_attr_length, shorten_branches, profile_after_prologue): Mark
9542         parameter with ATTRIBUTE_UNUSED.
9543
9544         * fold-const.c (exact_real_inverse): Wrap variable `i' in
9545         CHECK_FLOAT_VALUE.
9546
9547         * haifa-sched.c (schedule_insns): Mark parameter with
9548         ATTRIBUTE_UNUSED.
9549
9550         * optabs.c: Include real.h.
9551
9552         * real.h (ereal_atof): Add prototype arguments.
9553
9554         * resource.c: Include insn-attr.h.
9555
9556         * sdbout.c (sdbout_queue_anonymous_type,
9557         sdbout_dequeue_anonymous_types): Wrap in macro
9558         SDB_ALLOW_FORWARD_REFERENCES.
9559         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
9560         ATTRIBUTE_UNUSED.
9561
9562         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
9563
9564         * stupid.c: Include tm_p.h.
9565
9566         * tree.c (real_value_from_int_cst): Mark parameter with
9567         ATTRIBUTE_UNUSED.
9568
9569 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9570
9571         * i960-protos.h: New file.
9572
9573         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
9574         time warnings.
9575
9576         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
9577
9578 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9579
9580         * combine.c (expand_field_assignment): Do not discard SUBREGs
9581         while computing nonzero_bits.
9582
9583 2000-01-09  Nick Clifton  <nickc@cygnus.com>
9584
9585         * config/arm/arm.c: Fix compile time warnings about signed vs
9586         unsigned constants.
9587         * config/arm/arm.h: Fix compile time warnings about signed vs
9588         unsigned constants.
9589
9590 2000-01-09  Philip Blundell  <philb@gnu.org>
9591
9592         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
9593         than `ldm' with only one register.
9594         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
9595         only one register.
9596
9597         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
9598         clobbered.
9599
9600 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
9601
9602         * config/ns32k/ns32k.md (load or push effective address): Operand 1
9603         must have SImode.
9604
9605 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9606
9607         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
9608         assignment used as truth value.
9609
9610         * function.c (assign_temp): Mark parameter `dont_promote' with
9611         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
9612         PROMOTE_FOR_CALL_ONLY.
9613
9614         * genrecog.c (write_subroutine): Mark variable `operands' with
9615         ATTRIBUTE_UNUSED.
9616
9617         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
9618         ATTRIBUTE_UNUSED.
9619
9620         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
9621         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
9622
9623         * toplev.c (note_deferral_of_defined_inline_function): Likewise
9624         for `decl'.
9625
9626 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9627
9628         * config/c4x.h: Tidy up comments.
9629         * config/c4x.c: Likewise.
9630
9631 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
9632
9633         * fold-const.c (lshift_double, rshift_double): Handle
9634         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
9635
9636 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9637
9638         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
9639         in prepare_function_start().
9640
9641 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
9642
9643         * config/v850/v850.c (expand_epilogue): Interrupt functions no
9644         longer allocate extra stack for function calls.
9645
9646 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9647
9648         * config/c4x/c4x.md (*subqf3_set): Fix typo.
9649
9650 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9651
9652         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
9653
9654 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
9655
9656         * rs6000.c (processor_target_table): Add power3 as alias for 630.
9657         * aix43.h: Revert Aug 2 change.
9658         (HAS_INIT_SECTION): Define, not visible yet.
9659         (LD_INIT_SWITCH): Define, not visible yet.
9660         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
9661
9662         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
9663
9664         * collect2.c (main): Expand ld2 size further.
9665         (export_object_lst): Cast assignment to avoid warning.
9666         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
9667         (scan_prog_file, COFF): Do not collect initialization or
9668         finalization functions generated for entire shared object if
9669         init/fini support present.
9670
9671 2000-01-07  Nick Clifton  <nickc@cygnus.com>
9672
9673         * config/elfos.h: Tidy up formatting of marcos.  Make sure
9674         that .section directives are always prefixed by a tab.
9675
9676         * config/svr4.h: Add #include "elfos.h" and remove duplicate
9677         definitions.
9678
9679 2000-01-07  Matt Austern  <austern@sgi.com>
9680
9681         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
9682         expon.
9683
9684 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
9685
9686         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
9687         crtstuff.c.
9688         (crtbegin.o, s-crtS): Likewise.
9689
9690 2000-01-06  Richard Henderson  <rth@cygnus.com>
9691
9692         * alpha.md (adddi_2+1): Limit offset such that it will be
9693         loadable with a single ldah+lda pair.
9694         (adddi_2+2): Explicitly fail split if we can't make it work.
9695
9696 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
9697
9698         * protoize.c: Conditionally include unistd.h.
9699         (IS_SAME_PATH_CHAR): New macro.
9700         (IS_SAME_PATH): New macro.
9701         (CPLUS_FILE_SUFFIX): New macro.
9702         (cplus_suffix): New static variable.
9703         (is_abspath): New static function.
9704         (in_system_include_dir): Handle DOS style pathnames.
9705         (file_could_be_converted): Likewise.
9706         (file_normally_convertible): Likewise.
9707         (directory_specified_p): Likewise.
9708         (file_excluded_p): Likewise.
9709         (abspath): Likewise.
9710         (shortpath): Likewise.
9711         (referenced_file_is_newer): Likewise.
9712         (save_def_or_dec): Likewise.
9713         (do_processing): Likewise.
9714         (main): Likewise.
9715         (edit_file): Likewise. Use rename instead of link.
9716         (rename_c_file): Likewise. Don't rename syscalls file.
9717         (munge_compile_params): Define null device for DOS based systems.
9718         (process_aux_info_file): Use binary mode if appliable.
9719         (edit_file): Likewise.
9720         * invoke.texi (Running Protoize): Document C++ suffixes used.
9721
9722         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
9723         IS_DIR_SEPARATOR macros.
9724         * collect2.c: Likewise.
9725         * cppinit.c: Likewise.
9726         * dwarf2out.c: Likewise.
9727         * gcc.c: Likewise.
9728         * gcov.c: Likewise.
9729         * prefix.c: Likewise.
9730         * rtl.c: Likewise.
9731         * toplev.c: Likewise.
9732         * system.h: And move to here.
9733
9734         * prefix.c (update_path): Fix typo in variable name.
9735
9736 2000-01-06  Richard Henderson  <rth@cygnus.com>
9737
9738         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
9739         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
9740         (count_reg_sets_1, count_reg_references): Likewise.
9741         (flow_loops_level_compute): Start counting actual loop depth at 1.
9742         (flow_loops_find): Likewise.
9743         * local-alloc.c (update_equiv_regs): Likewise.
9744         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
9745
9746 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
9747
9748         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
9749         FIRST_PSEUDO_REGISTER
9750         * dwarf2out.c: Don't include frame.h
9751         * dwarfout.c: Likewise
9752         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
9753         frame.h
9754
9755 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
9756
9757         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
9758         dead registers.
9759
9760         * i386.c (movsf splitter): Fix typo in my last checkin.
9761
9762 2000-01-05  Nick Clifton  <nickc@cygnus.com>
9763
9764         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
9765         own definition of this macro.
9766         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
9767         flag_data_sections or UNIQUE_SECTION_P are true.
9768
9769         * tm.texi (UNIQUE_SECTION): Document that it can be called for
9770         unitialised data decls.
9771
9772         * config/i386/winnt.c (i386_pe_unique_section): Cope with
9773         being called for uninitialised data.
9774
9775         * config/i386/interix.c (i386_pe_unique_section): Cope with
9776         being called for uninitialised data.
9777
9778         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
9779         for uninitialised data.
9780
9781         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
9782         for uninitialised data.
9783
9784         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
9785         for uninitialised data.
9786
9787         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
9788         (UNIQUE_SECTION_P): Always generate a unique section if
9789         flag_data_sections is true.
9790         (UNIQUE_SECTION): Also generate unique sections for
9791         uninitialised data.
9792         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
9793         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
9794         named_section().
9795
9796 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9797
9798         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
9799         SI, or DI.
9800
9801 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9802
9803         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
9804         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
9805         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
9806         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
9807         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
9808
9809         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
9810
9811 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
9812
9813         * c-decl.c (finish_enum): Simplify code to determine minimum and
9814         maximum values of the enum, and calculate the type.  Remove check
9815         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
9816         the DECL_INITIAL of each enumeration constant with a copy converted
9817         to the enumeration type.  When updating variant types, don't bother
9818         updating the type itself.
9819
9820         * c-typeck.c (build_binary_op): Simplify conditional expressions
9821         when weeding out spurious signed-unsigned warnings.  Add new
9822         spurious warning category: if the unsigned quantity is an enum
9823         and its maximum value fits in signed_type(result_type).  Update
9824         commentary.
9825         (build_conditional_expr): Warn here if one alternative is signed
9826         and the other is unsigned.
9827
9828 2000-01-05  Nick Clifton  <nickc@cygnus.com>
9829
9830         * config/fr30/fr30.h: Remove extraneous comments.
9831
9832 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
9833
9834         * reload1.c (choose_reload_regs): When disabling a reload, also
9835         set reload_spill_index to -1.
9836
9837 2000-01-04  Joel Sherrill (joel@OARcorp.com>
9838
9839         * configure.in (m68*-*-rtemscoff*): New target, formal name for
9840         old m68*-*-rtems*.
9841         (m68*-*-rtemself*): New target.
9842         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
9843         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
9844         (sparc*-*-rtemself*): New target.
9845         (sparc*-*-rtems*): Now elf not a.out.
9846         * config/i386/rtems.h: Include config/rtems.h.
9847         * config/i386/rtemself.h: Include config/rtems.h.
9848         * config/i960/rtems.h: Include config/rtems.h.
9849         * config/m68k/rtems.h: Include config/rtems.h.
9850         * config/m68k/rtemself.h: Include config/rtems.h.
9851         * config/mips/rtems64.h: Include config/rtems.h.
9852         * config/pa/rtems.h: Include config/rtems.h.
9853         * config/rs6000/rtems.h: Include config/rtems.h.
9854         * config/sh/rtems.h: Include config/rtems.h.
9855         * config/sh/rtemself.h: Include config/rtems.h.
9856         * config/sparc/rtems.h: Include config/rtems.h.
9857         * config/sparc/rtemself.h: Include config/rtems.h
9858
9859 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
9860
9861         * final.c (shorten_branches): Correctly compute length of
9862         asms without operands.
9863
9864 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
9865
9866         * configure.in: Add pj target.
9867         * configure: Regenerate.
9868         * config/pj: New directory.
9869         * config/pj/lib1funcs.S: New file.
9870         * config/pj/linux.h: New file.
9871         * config/pj/pj.c: New file.
9872         * config/pj/pj.md: New file.
9873         * config/pj/pjl.h: New file.
9874         * config/pj/t-pj: New file.
9875         * config/pj/xm-pj.h: New file
9876
9877 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
9878
9879         * toplev.c (rest_of_compilation): Run shorten-branches before
9880         reg-stack for now.
9881
9882 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9883
9884         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
9885         macros so that they're consistent with their names.
9886         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
9887         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
9888
9889 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9890
9891         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
9892         modified inadvertently.
9893
9894 2000-01-04  Joel Sherrill <joel@OARcorp.com>
9895
9896         * configure.in (v850*-*-rtems*): New target.
9897         * configure: Regenerate.
9898         * config/v850/rtems.h: New file.
9899
9900 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
9901
9902         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
9903         (__gthread_key_create): Likewise.
9904         (__gthread_key_dtor):  Likewise.
9905         (__gthread_once): Fix logic.
9906         (__gthread_key_delete): Cast away constness.
9907
9908         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
9909         * invoke.texi: Document.
9910         * i386/mingw32.h (CPP_SPEC): Use.
9911         (LIBGCC_SPEC): Likewise.
9912         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
9913
9914 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
9915
9916         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
9917         (HANDLE_PRAGMA_PACK): Undefine.
9918         (SLOW_UNALIGNED_ACCESS): Define.
9919
9920 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
9921
9922         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
9923         to default definition.
9924         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
9925         (store_fixed_bit_field): Call macro with word_mode and alignment.
9926         (extract_bit_field): Call macro with relevant mode and alignment.
9927         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
9928         to default definition.
9929         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
9930         and alignment.
9931         (move_by_pieces_ninsns): Likewise.
9932         (clear_by_pieces): Likewise.
9933         (emit_push_insn): Likewise.
9934         (store_field): Call macro with relevant mode and alignment.
9935         (expand_expr): Likewise.
9936         (expand_expr_unaligned): Likewise.
9937
9938         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
9939         (SLOW_UNALIGNED_ACCESS): Define.
9940         (CASE_VECTOR_MODE): Always use 32-bit offsets.
9941         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
9942         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
9943         (toc_section): Likewise and .toc pseudo-op.
9944         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
9945         64-bit mode.
9946         (TEXT_SECTION_ASM_OP): Likewise.
9947         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
9948         32-bit offsets.
9949
9950         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
9951         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
9952         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
9953         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
9954         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
9955
9956 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
9957
9958         * regclass.c: Revert my Jan 4 change to loop cost computation.
9959
9960 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
9961
9962         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
9963         compilation.
9964
9965 2000-01-04  Stan Cox  <scox@cygnus.com>
9966
9967         * haifa-sched.c (build_control_flow): Change unreachable simple
9968         loop test to check if current block has only one predecessor.
9969         (find_rgns): Initialize degree.  Use dest as degree index, not src.
9970
9971 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9972
9973         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
9974
9975         * calls.c (expand_call): Likewise for
9976         `old_stack_arg_under_construction'.
9977
9978         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
9979
9980         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
9981         `save_constant'.
9982
9983         * gcc.c (execute): Likewise for `ut' and `st'.
9984
9985         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
9986
9987         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
9988
9989         * jump.c (jump_optimize_1): Likewise for `temp2'.
9990
9991         * local-alloc.c (block_alloc): Likewise for `r1'.
9992
9993         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
9994
9995         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
9996         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
9997
9998         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
9999         and `set2'.
10000
10001         * reload.c (find_reloads): Likewise for `goal_alternative_number'
10002         and `goal_earlyclobber'.
10003
10004         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
10005
10006         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
10007
10008         * stupid.c (stupid_life_analysis): Likewise for `chain'.
10009
10010         * unroll.c (copy_loop_body): Likewise for `copy'.
10011
10012         * varasm.c (output_constructor): Likewise for `byte'.
10013
10014 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
10015
10016         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
10017         all FP constants for constant->reg moves.
10018         (ix86_split_to_parts): Try to convert memory address into immediate
10019         when available in the constant pool.
10020         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
10021         moves.
10022         (LEGITIMATE_CONSTANT_P): Return 1.
10023         * i386.md (pushsf): New splitter to convert constant pool memory
10024         reference to immediate.
10025         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
10026         reload.
10027
10028 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
10029
10030         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
10031         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
10032         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
10033         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
10034         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
10035
10036 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
10037
10038         * ginclude/stdbool.h:  Support compilation as C++.
10039
10040 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10041
10042         * fold-const.c (make_range): Don't try to reverse an unbounded range.
10043
10044 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
10045
10046         * regclass.c (regclass): Properly compute loop_cost.  Adjust
10047         comments.
10048
10049         * regclass.c: Fix minor whitespace problems.
10050
10051 2000-01-03  Anthony Green  <green@cygnus.com>
10052
10053         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
10054         Restore the pic register if required.
10055
10056 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
10057
10058         * c-common.c (format_char_info): Update comment.
10059         (check_format_info): Recognize 'z' modifier in the same way 'Z'
10060         was recognized.  Emit warning for formats new in ISO C99 only
10061         if flag_isoc9x is not set.
10062
10063 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
10064
10065         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
10066
10067 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
10068
10069         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
10070         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
10071         (make_compound_operation): Choose cheaper alternative between
10072         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
10073
10074         * regclass.c (op_costs): Remove global variable.
10075         (record_reg_classes): New parameter "op_costs" and "reg_pref".
10076         (record_operand_costs): Break out from ...
10077         (scan_one_insn): ... here.
10078         (dump_regclass): Make dumps nicer.
10079         (regclass): Dump preferrences choosed and changes done during passes.
10080
10081 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
10082
10083         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
10084
10085 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
10086
10087         * config/sparc/sparc.c (gen_df_reg): New function.
10088         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
10089         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
10090         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
10091         movtf_cc_reg_sp64+1): Use it.
10092
10093 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
10094
10095         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
10096         copied LABEL_DECLs.
10097
10098 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10099
10100         * config/i386/i386.c (ix86_expand_unary_operator): Function
10101         definition made void.
10102         (ix86_expand_binary_operator): Update outdated preceding comment.
10103         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
10104         prototype.
10105
10106         * config/i386/i386.c (override_options): Fix option-name typo.
10107
10108 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
10109
10110         * system.h (CEIL): Define.
10111         * builtins.c (CEIL): Remove.
10112         * expmed.c (CEIL): Likewise.
10113         * expr.c (CEIL): Likewise.
10114         * stor-layout.c (CEIL): Likewise.
10115
10116 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
10117
10118         * expr.c (store_constructor_field): Fix typo introduced with last
10119         gcc2 merge.
10120
10121 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
10122
10123         * tree.h (BINFO_N_BASETYPES): New macro.
10124
10125 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
10126
10127         * expmed.c (emit_store_flag): Prevent losing a pending stack
10128         adjust the same way we prevent losing queued increments.
10129
10130 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10131
10132         * function.c (update_temp_slot_address): Handle case where sum of
10133         temporary address plus offset in register is a valid address.
10134
10135 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
10136
10137         * genrecog.c (change_state) Corrected typo.
10138
10139 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10140
10141         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
10142         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
10143         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
10144
10145 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
10146
10147         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
10148         case, expand GT comparisons correctly.  Fix a comment before this
10149         part of the code.
10150
10151 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
10152
10153         * dwarfout.c: Include "frame.h"
10154         * dwarf2out.c: Likewise.
10155         * Makefile.in (dwarfout.o): Depend on frame.h
10156         (dwarf2out.o): Likewise.
10157
10158 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
10159
10160         Restore i386 binary compatibility in Dwarf EH info.
10161         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
10162         value of FIRST_PSEUDO_REGISTER.
10163         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
10164         (struct frame_state): Use DWARF_FRAME_REGISTERS.
10165         * dwarfout.c (output_reg_number): Ditto.
10166         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
10167         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
10168
10169 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
10170
10171         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
10172         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
10173         (<hack>_RE_CT): not needed
10174         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
10175         rewritten to scan the file text once only
10176         "template<..." test added
10177         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
10178         (is_cxx_header): declaration added
10179         * fixinc/fixtests.c(is_cxx_header): removed
10180         (apply_fix_p_t): removed
10181         (double_slash_test): is_cxx_header is only called once now
10182         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
10183         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
10184         within the templates.
10185         The borken spelling of "broken" was fixed.
10186         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
10187         The default level depends on FIXINC_DEBUG.
10188
10189 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10190
10191         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
10192         Otherwise provide a declaration for atexit.
10193         (init_dummy): Make sure dummy call to atexit is nevertheless
10194         called with correct number of args.
10195
10196         * frame.c: Update comments referring to other files.
10197
10198         * libgcc2.c: Likewise.
10199
10200 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10201
10202         * cse.c (free_element, get_element): Remove unused prototypes.
10203
10204         * fold-const.c (extract_muldiv): Initialize variables `op0' and
10205         `op1'.
10206
10207         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
10208         `else' clauses.
10209
10210 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
10211
10212         * configure.in,configure: case arm for mn10200-*-* now sets
10213         float_format=i32 so that float.h will correctly claim "double"
10214         to be 32 bits. Ran autoconf to generate configure from .in file.
10215
10216 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
10217
10218         * pa.md (conditional zero): If op1 is a register, force it into
10219         the same register as op0.
10220
10221 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
10222
10223         * tree.h (BINFO_BASETYPES): Improve documentation.
10224
10225 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10226
10227         * configure.in (--enable-checking): Use a more portable `for'
10228         loop syntax.
10229
10230 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10231
10232         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
10233         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
10234
10235         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
10236         Delete files.
10237
10238         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
10239         Delete descriptions.
10240
10241         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
10242         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
10243         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
10244         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
10245         xm-svr4.h: Remove all instances of sys_siglist handling.
10246
10247 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
10248
10249         * config/sparc/sparc.md (cmp_zero_qi,
10250         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
10251         cmp_zero_extendqidi2_andcc_set): New patterns.
10252
10253 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
10254
10255         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
10256         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
10257         (fpgnulib.c, xfgnulib.c): Add rules.
10258         * m68k/t-mot3300-gas: Likewise.
10259
10260 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
10261
10262         * configure.in: Avoid [[ by using test and changequote.  Add
10263         changequote required by 1999-12-14 change.
10264         * configure: Rebuild.
10265
10266 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
10267
10268         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
10269
10270 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
10271
10272         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
10273         * flow.c (find_use_as_address): Likewise.
10274         * function.c (fixup_var_refs_1): Likewise.
10275         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
10276         * jump.c (invert_exp, redirect_exp): Likewise.
10277         * loop.c (replace_call_address): Likewise.
10278         (count_nonfixed_reads): Likewise.
10279         * rtlanal.c (modified_between_p): Likewise.
10280         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
10281         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
10282         * unroll.c (remap_split_bivs): Likewise.
10283
10284 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10285
10286         * diagnostic.c (v_message_with_decl): Use .* format specifier
10287         instead of building the format specifier width manually.
10288
10289         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
10290         determining whether to provide a prototype.  Remove the
10291         sys_siglist clause in the conditional.
10292
10293 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10294
10295         * fold-const.c (operand_equal_p): Use memcmp to compare string
10296         constants.
10297         Suggested by D. J. Bernstein
10298
10299 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
10300
10301         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
10302         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
10303         compiling libgcc2.
10304         * config/mips/mips.h (TARGET_64BIT): Likewise.
10305         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
10306         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
10307         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
10308         dsps.  Give routines proper names if SI/DI modes are not used.
10309         * longlong.h: Use DWunion instead of DIunion.
10310
10311 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
10312
10313         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
10314         GC_CHECKING, GC_ALWAYS_COLLECT.
10315         * configure.in: Allow --enable-checking with an argument
10316         listing check modes to enable.
10317         * config.in, configure: Rebuilt.
10318         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
10319         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
10320         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
10321         ENABLE_GC_ALWAYS_COLLECT.
10322         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
10323         throughout.
10324         * tree.h, tree.c: Change ENABLE_CHECKING to
10325         ENABLE_TREE_CHECKING throughout.
10326
10327 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10328
10329         * fold-const.c (fold_truthop): Properly check for FP RHS.
10330
10331 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
10332
10333         * toplev.h (note_deferall_of_defined_inline_function): Declare.
10334         * toplev.c (note_deferral_of_defined_inline_function): New
10335         function, split out from ...
10336         (rest_of_compilation): ... here.  Use it.
10337
10338 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10339
10340         * expr.c (store_constructor): Don't call clear_storage if size is
10341         variable.
10342
10343 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10344
10345         * Makefile.in (toplev.o): Depend on loop.h.
10346
10347         * dwarfout.c: Include tm_p.h.
10348
10349         * emit-rtl.c (restore_emit_status): Mark parameter with
10350         ATTRIBUTE_UNUSED.
10351
10352         * final.c (final_scan_insn): Likewise.
10353
10354         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
10355         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
10356         flow_depth_first_order_compute, flow_loop_pre_header_find,
10357         flow_loop_tree_node_add, flow_loops_tree_build,
10358         flow_loop_level_compute, flow_loops_level_compute,
10359         flow_loop_outside_edge_p): Add prototypes.
10360         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
10361
10362         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
10363         Mark with ATTRIBUTE_NORETURN.
10364
10365         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
10366
10367         * local-alloc.c (no_conflict_p): Likewise.
10368
10369         * loop.c (insert_bct): Hide definitions of variables with hidden
10370         usage.
10371         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
10372
10373         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
10374         with ATTRIBUTE_UNUSED.
10375         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
10376         (reg_scan): Likewise.
10377
10378         * reload.c (find_reloads): Remove unused variables `changed'.
10379
10380         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
10381         away const-ness.
10382         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
10383         Remove unused variable `insn'.
10384
10385         * toplev.c: Include loop.h.
10386         (report_file_and_line): Remove unnecessary prototype.
10387
10388         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
10389
10390         * unroll.c (biv_total_increment): Likewise.
10391
10392 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10393
10394         * reload1.c (emit_input_reload_insns): Restore old behaviour
10395         wrt. 'special' reloads.
10396
10397 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
10398
10399         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
10400         hash.h.  (cse.c): Don't depend on hashtab.h.
10401
10402         * cse.c: Don't include hashtab.h.
10403         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
10404         of dead functions.
10405         * ggc-simple.c: Don't include hash.h.
10406
10407 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
10408
10409         * dwarf2out.c (add_abstract_origin_attribute): Call
10410         gen_abstract_function on our function context.
10411
10412 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
10413
10414         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
10415
10416 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10417
10418         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
10419         case in switch.
10420
10421 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10422
10423         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
10424         constraints to "a!r".
10425
10426 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
10427
10428         * Makefile.in (calls.o): Depend on function.h.
10429         (alias.o): Likewise.
10430
10431 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
10432
10433         * reload1.c (emit_reload_insns): Break out code and variables into...
10434         (input_reload_insns, other_input_address_reload_insns,
10435         other_input_reload_insns, input_address_reload_insns,
10436         inpaddr_address_reload_insns, output_reload_insns,
10437         output_address_reload_insns, outaddr_address_reload_insns,
10438         operand_reload_insns, other_operand_reload_insns,
10439         other_output_reload_insns): ... new static variables, and...
10440         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
10441         do_output_reload): ... new functions.
10442
10443 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10444
10445         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
10446
10447 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10448
10449         * md.texi: Add c4x constraints documentation.
10450
10451 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10452
10453         * config/i386/dgux.c (struct option): Rename to
10454         lang_independent_option.
10455         (struct m_options): Add description field.
10456         (output_options): Rename option type, add sep declaration, output
10457         ix86_cpu_string and ix86_arch_string only if set.
10458         (output_file_start): Rename option type.
10459
10460 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
10461
10462         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
10463         stmp-int-hdrs.
10464         (libgcc2.a): Similarly.
10465
10466 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
10467
10468         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
10469         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
10470         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
10471
10472 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
10473
10474         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
10475         Remove redundant initialization of "frexpon" and "expon".
10476
10477 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10478
10479         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
10480
10481         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
10482         (store_constructor_field, expand_expr): Pass new arg.
10483
10484 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
10485
10486         * Makefile.in (explow.o): Depend on function.h.
10487
10488         * stor-layout.c (set_sizetype): Fix typo.
10489
10490 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
10491
10492         * function.c (cfun): Renamed from current_function.  All users
10493         changed.
10494         * function.h (cfun): Rename declaration as well.
10495
10496         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
10497         to be of type regset_head, not regset.  All users changed by adding
10498         address operator.
10499         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
10500
10501 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10502
10503         * config/c4x/rtems.h: New file.
10504
10505 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
10506
10507         * reload1.c (spill_failure): Take class of failed reload as argument
10508         and print it.  Caller changed.
10509
10510 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10511
10512         * rs6000.h (SUBTARGET_DEFAULT): New macro.
10513         (TARGET_SWITCHES): Allow subtargets to default switches.
10514         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
10515
10516 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
10517
10518         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
10519         in a main program.
10520
10521 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
10522
10523         * cccp.c (main): Define __STDC_VERSION__ as necessary.
10524         * cppinit.c (cpp_handle_option): Likewise.
10525
10526         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
10527         determine when to define.
10528
10529 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
10530
10531         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
10532         cmove with mismatched test and data modes.
10533
10534 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
10535
10536         * c-typeck.c (c_expand_start_case): Don't warn for long switch
10537         in system headers.
10538
10539 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10540
10541         * alias.c: Minor reformatting.
10542         * flow.c: Likewise.
10543         * regs.h: Likewise.
10544         * stor-layout.c: Likewise.
10545         * fold-const.c: Likewise.
10546         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
10547         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
10548         not arg itself.
10549         (size_int_wide): Cache nodes even if garbage collecting.
10550         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
10551         of SAVE_EXPR has no side effects.
10552         * cse.c: Move a comment.
10553         * tree.c: Minor reformatting.
10554         (int_size_in_bytes): Return -1 if constant overflows.
10555
10556 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10557
10558         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
10559
10560 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
10561
10562         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
10563         after any change to c-parse.in, even if objc-parse.y didn't
10564         change.  Oops.
10565
10566 1999-12-18  David S. Miller  <davem@redhat.com>
10567
10568         * toplev.c (rest_of_compilation): Restore BLOCK tree
10569         reconstruction and branch shortening changes lost in
10570         December 18th change.
10571
10572 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
10573
10574         * config/arm/linux-elf.h: Change all instances of
10575         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
10576         * config/arm/uclinux-elf.h: Likewise.
10577
10578 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
10579
10580         * toplev.c (notice, vmessage, v_message_with_file_and_line,
10581         v_message_with_decl, file_and_line_for_asm,
10582         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
10583         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
10584         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
10585         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
10586         pfatal_with_name, fatal_io_error, need_error_newline,
10587         last_error_function, last_error_tick, announce_function,
10588         default_print_error_function, print_error_function,
10589         report_error_function, fnotice, error_with_file_and_line,
10590         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
10591         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
10592         warning_with_decl, warning_for_asm, warning, pedwarn,
10593         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
10594         diagnostic.c
10595         (compile_file): Use fnotice instead of notice.  Adjust call.
10596
10597         * diagnostic.c: New file.
10598
10599         * Makefile.in (OBJS): Include diagnostic.o
10600         (diagnostic.o): Define dependence.
10601
10602 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10603
10604         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
10605         Tweak formatting.
10606
10607 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10608
10609         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
10610
10611 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
10612
10613         * fixtests.c (is_cxx_header): New fn, split out of
10614         double_slash_test.
10615         (else_endif_label): Allow "#endif // comment" in C++ headers,
10616         as determined by is_cxx_header.
10617         * fixfixes.c (else_endif_label_fix): Update comment.
10618         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
10619         a tty.
10620         * genfixes: Correct double thinko in commandline parsing.
10621         * hackshell.tpl: Generate correct sh syntax for bypass
10622         entries.
10623
10624         * inclhack.def (all): Whenever an inserted preprocessor
10625         conditional is split over multiple lines, use double
10626         backslashes in this file so the fixed header will be readable.
10627
10628         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
10629         and add bypass entry for correct version of this header.
10630         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
10631         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
10632
10633         (hpux8_bogus_inlines): New fix, split from...
10634         (ultrix_atof_param) ... here.
10635         (math_expression): Add bypass entry keyed to glibc comment
10636         indicating the problem has been dealt with; disable
10637         unnecessary sed operations; update commentary.
10638         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
10639         add select and bypass entries, simplify shell operation.
10640         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
10641
10642         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
10643          ultrix_atof_param): Add select entry.
10644         (stdio_va_list, sunos_mather_decl): Add bypass entry.
10645         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
10646         comments with the fixes they describe.
10647
10648         * c-parse.in (string action): Do not warn about ANSI string
10649         concatenation in system headers.  Affects C parser only.
10650         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
10651
10652 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
10653
10654         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
10655         compiling libgcc2 the macro depends always on arch cpp defines.
10656
10657 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
10658
10659         * loop.c (insert_loop_mem): Don't record MEMs from inside
10660         EXPR_LISTs.
10661
10662 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
10663
10664         * regclass.c (regclass): Do not use flowgraph when not optimizing.
10665
10666         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
10667         notes too, create one when replacement failed, attempt to simplify
10668         resulting notes.
10669         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
10670         or REG_EQUIV notes.
10671
10672 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
10673
10674         * crtstuff.c (__dso_handle): Declare.
10675         (__cxa_finalize): Likewise.
10676         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
10677         non-NULL.
10678
10679         * invoke.texi: Document -fuse-cxa-atexit.
10680
10681         * tree.h (ptr_type_node): Document.
10682         (const_ptr_type_node): Likewise.
10683
10684 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10685
10686         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
10687         (optimize_reg_copy_2): Likewise.
10688         (optimize_reg_copy_3): Likewise.
10689         (fixup_match_2): Likewise.
10690         (regmove_optimize): Likewise.
10691         (fixup_match_1): Liekwise.
10692
10693         * i386.md (HI to SImode promoting splitters): Rewrite.
10694         (pushsf mem peep2): New.
10695         (testhi to andhi peep2): Remove.
10696         * i386.h (x86_promote_QImode): New.
10697         (TARGET_PROMOTE_QImode): New.
10698         (PREDICATE_CODES): Add promotable_binary_operator.
10699         * i386.c (x86_promote_QImode0: New.
10700         (promotable_binary_operator): New.
10701         * i386-protos.h (promotable_binary_operator): New.
10702
10703         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
10704         condition.
10705         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
10706
10707 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
10708
10709         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
10710         * function.c (insert_block_after_note): Remove.
10711         (retrofit_block): Likewise.
10712         (identify_blocks): Fix indentation.
10713         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
10714         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
10715         * function.h (insert_block_after_note): Remove prototype.
10716         (retrofit_block): Likewise.
10717         * integrate.c (expand_inline_function): Don't call
10718         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
10719         just expand_start_bindings.  Use the block_map to remap old
10720         NOTE_BLOCKs to new ones.
10721         (integrate_decl_tree): Keep track of remapped blocks.
10722         * integrate.h (struct inline_remap): Add block_map.
10723         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
10724         NOTE_BLOCK on the notes.
10725         (expand_start_bindings): Rename to ...
10726         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
10727         (expand_end_bindings): Set NOTE_BLOCK.
10728         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
10729         reconstruct the BLOCK tree.
10730         * tree.h (expand_start_bindings): Macroize.  Call ...
10731         (expand_start_bindings_and_block): New function.
10732
10733 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
10734
10735         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
10736         to match the format.
10737
10738 1999-12-16  David S. Miller  <davem@redhat.com>
10739
10740         * expr.c (emit_move_insn_1): Only emit clobbers if one of
10741         the outputs is a SUBREG.
10742         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
10743         change.
10744
10745         * config/sparc/sparc.c (epilogue_renumber): Add default case
10746         to switch stmt.
10747
10748 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10749
10750         * toplev.c (rest_of_compilation): Run branch shortening after
10751         reg-stack.
10752
10753         * regclass.c (loop_depth): Remove
10754         (scan_one_insn): Do not handle LOOP_NOTE insns.
10755         (regclass): Go through basic blocks and set loop_cost
10756
10757 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
10758
10759         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
10760
10761 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10762
10763         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
10764         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
10765         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
10766
10767 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
10768
10769         * loop.c (insert_loop_mem): Ignore memory clobbers.
10770
10771         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
10772         to (OP A B).
10773
10774 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
10775
10776         * profile.c: Remove redundant #include "output.h".
10777
10778         * h8300.md (HImode preinc peephole): Fix typo.
10779
10780 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
10781
10782         * function.c (retrofit_block): Abort if we don't find a suitable insn.
10783         (insert_block_after_note): Abort if we don't have a previous block.
10784         Remove FN parameter.
10785         * function.h: Adjust.
10786
10787 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
10788
10789         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
10790         argument more than once.
10791
10792 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
10793
10794         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
10795
10796 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
10797
10798         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
10799
10800 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10801
10802         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
10803         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
10804         update stack_alignment_needed.
10805         (prepare_function_start): Initialize stack_alignment_needed
10806         * function.h (struct function): Add field stack_alignment_needed.
10807
10808 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10809
10810         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
10811         Handle live_throughout / dead_or_set instead of live_before /
10812         live_after.
10813         (save_call_clobbered_regs): Get register livenessinformation from
10814         chain->live_throughout.
10815         (add_stored_regs): New function.
10816         (insert_restore, insert_save): Add restored / saved registers to
10817         dead_or_set.
10818         * global.c (reg_dies): New parameter chain.
10819         (reg_becomes_live): Third parameter is regs_set now.
10820         Changed all callers.
10821         (reg_dies): New parameter chain.  Changed all callers.
10822         (build_insn_chain): Set live_throughout instead of
10823         live_before / live_after.
10824         * reload.h (struct insn_chain): Replace members live_before /
10825         live_after with live_throughout / dead_or_set.
10826         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
10827         instead of live_before / live_after.
10828         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
10829         (order_regs_for_reload, find_reg, finish_spills): Likewise.
10830         (choose_reload_regs_init): Likewise.
10831         * stupid.c (current_chain, find_clobbered_regs): Delete.
10832         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
10833         instead of chain->live_before / chain->live_after.
10834         (mark_hard_ref): New function.
10835         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
10836
10837 1999-12-15  David S. Miller  <davem@redhat.com>
10838
10839         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
10840
10841 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10842
10843         * flow.c (calculate_loop_depth): Make global, remove prototype,
10844         rewrite to use new loop infrastructure.
10845         (find_basic_block): Remove calculate_loop_depth call.
10846         * toplev.c (rest_of_compilation): Call find_basic_block.
10847         * output.h (calculate_loop_depth): Declare.
10848
10849         * flow.c (dump_flow_info): Dump loop_depth.
10850         (flow_loops_nodes_find): Increase loop_depth for basic block in the
10851         body.
10852         (flow_loops_find): Initialize the loop_depth for each basic block.
10853
10854 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
10855
10856         * tree.c (decl_function_context): Handle virtual functions.
10857
10858         * tlink.c (scan_linker_output): Don't look in demangled name when
10859         looking for linker output keywords.
10860
10861         * dwarfout.c (output_type): We can defer namespace-scope classes.
10862
10863 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
10864
10865         * regclass.c (record_reg_classes): Update comment for merging
10866         register class preferences in reg->reg copies.  Tighten conditions
10867         for merging register class preferences in reg->reg copies.
10868
10869 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
10870
10871         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
10872
10873 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
10874
10875         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
10876         (INIT_SECTION_ASM_OP): Delete.
10877         (FINI_SECTION_ASM_OP): Delete.
10878         (STARTFILE_SPEC): Define to hold just crtbegin.o.
10879
10880 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
10881
10882         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
10883         the abstract origin wasn't emitted.
10884
10885         * dwarf2out.c (class_scope_p): New fn.
10886         (gen_subprogram_die): Use it.
10887         (gen_variable_die): Use it.  Tweak logic.
10888         (gen_struct_or_union_type_die): Check context_die to determine
10889         if we're function-local.
10890         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
10891
10892 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
10893
10894         * loop.c (check_dbra_loop): Can't reverse a biv that has
10895         maybe_multiple set.
10896
10897 1999-12-14  Nick Clifton  <nickc@cygnus.com>
10898
10899         * config/arm/arm.c: Add support for -mcpu=arm720 command line
10900         switch.
10901
10902 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10903
10904         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
10905         for givs made from biv increments.
10906
10907 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
10908
10909         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
10910         * alpha.c (override_options): Recognize -mcpu=ev67.
10911         * alpha.h (CPP_CPU_EV67_SPEC): New.
10912         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
10913         (EXTRA_SPECS): Update.
10914
10915 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
10916
10917         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
10918         appropriate for -lang-c89 and -std=*.
10919         * cppinit.c (cpp_handle_option): Likewise.
10920         (new_pending_define): New, split out from cpp_handle_option.
10921         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
10922         or enable trigraphs for -ansi/-std=*.
10923
10924         * ginclude/stdarg.h (__va_copy): New.
10925         (va_copy): Don't define for C89.
10926
10927 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
10928
10929         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
10930         for long long multiply-accumulate.
10931
10932 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10933
10934         * regclass.c (scan_one_insn): Set loop_cost to 1 when
10935         optimizing for size.
10936
10937 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
10938
10939         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
10940         if something changed.  Back out that part of yesterday's changes.
10941
10942         * loop.c (loop_max_reg): New static variable.
10943         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
10944         max_reg_num.
10945         (scan_loop): Call reg_scan_update whenever we may have added new
10946         registers, and update loop_max_reg.
10947
10948 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10949
10950         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
10951         when source does not die.
10952
10953         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
10954
10955 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
10956
10957         * config/sparc/linux64.h (TARGET_LIVE_G0,
10958         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
10959         variants on Linux.
10960         * config/sparc/linux.h (TARGET_LIVE_G0,
10961         TARGET_BROKEN_SAVERESTORE): Likewise.
10962         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
10963         TARGET_BROKEN_SAVERESTORE): Likewise.
10964
10965         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
10966         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
10967         not %g2.
10968         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
10969         as sparc64 block profiling register.
10970         * config/sparc/sparc.c (sparc_override_options): Allow block
10971         profiling with -m32.
10972         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
10973         profiling register.
10974         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
10975         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
10976         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
10977
10978         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
10979         for sparc64.
10980         * config/sparc/sparc.h: Likewise.
10981         * config/sparc/xm-sysv4-64.h: Likewise.
10982         * config/float-sparc.h: Likewise.
10983         * glimits.h: Likewise.
10984         * longlong.h: Likewise.
10985
10986         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
10987         (ASM_IDENTIFY_GCC): Remove.
10988
10989 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
10990
10991         * combine.c (combine_simplify_rtx): Don't make shared rtl.
10992         (simplify_logical): Likewise.
10993
10994 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
10995
10996         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
10997         * cppfiles.c (INO_T_EQ): Likewise.
10998
10999 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
11000
11001         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
11002         * i386/mingw32.h (LIB_SPEC): Likewise.
11003         (STARTFILE_SPEC): Likewise.
11004         * i386/uwin.h (LIB_SPEC): Likewise.
11005         (STARTFILE_SPEC): Likewise.
11006
11007         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
11008         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
11009
11010 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
11011
11012         * combine.c (combine_simplify_rtx): Fix order of checks for
11013         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
11014
11015 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
11016
11017         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
11018         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
11019
11020 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
11021
11022         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
11023         defined.
11024         * regclass.c (inv_reg_alloc_order): New array.
11025         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
11026
11027         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
11028         counted_for_groups, counted_for_nongroups.  Add fields rld and
11029         n_reloads.
11030         * reload.c (push_secondary_reload): Don't set nongroup field of
11031         new reloads.
11032         (push_reload): Likewise.
11033         (find_reloads): Delete code to compute nongroup fields.
11034         * reload1.c (reload_insn_firstobj): New static variable.
11035         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
11036         users changed.
11037         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
11038         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
11039         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
11040         functions.
11041         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
11042         functions.
11043         (struct hard_reg_n_uses): Deleted.
11044         (potential_reload_regs): Deleted.
11045         (init_reload): Initialize spilled_pseudos and pseudos_counted.
11046         (reload): Don't try to allocate reload registers if we already know
11047         we have to make another pass.  Call select_reload_regs.  Free memory
11048         starting with reload_firstobj when starting another pass.
11049         Don't allocate spilled_pseudos.
11050         (calculate_needs_all_insns): Call copy_reloads for an insn that
11051         needs reloads; don't call calculate_needs.
11052         (spill_cost): New static array.
11053         (used_spill_regs_local): New static variable.
11054         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
11055         to compute potential_reload_regs.
11056         (find_reload_regs): Completely rewritten to use find_reg.
11057         (allocate_reload_reg): Don't test counted_for_groups or
11058         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
11059         all cllers changed.
11060         (choose_reload_regs): Add fallback code that uses the existing
11061         register allocation from find_reload_regs.
11062
11063 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
11064
11065         * flow.c (create_edge_list): Cast xmalloc return value.
11066
11067 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
11068
11069         * doprnt.c: Remove incorrect comment closure.
11070
11071         * cse.c: Fix a few minor whitespace goofs.
11072
11073 1999-12-13  Don Bowman  <don@pixstream.com>
11074
11075         * mips/vxworks.h: Fix problem with comment termination.
11076         (EXTRA_SECTIONS): Add in_sbss.
11077         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
11078
11079 1999-12-12  David S. Miller  <davem@redhat.com>
11080
11081         * cse.c (struct cse_reg_info): Add hash_next member,
11082         reorder rest of struct for better packing on 64-bit
11083         hosts.
11084         (cse_reg_info_tree): Kill.
11085         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
11086         REGHASH_FN): New custom pow2 hash mechanism.
11087         (NBUCKETS): Kill.
11088         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
11089         use a pow2 hash table.
11090         (get_cse_reg_info): Rework to use new REGHASH.
11091         (new_basic_block): Likewise, use HASH_SIZE, and inline
11092         free_element call.
11093         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
11094         and inline free_element call.
11095         (lookup_as_function, insert, flush_hash_table, invalidate,
11096         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
11097         invalidate_for_call, use_related_value, find_comparison_args,
11098         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
11099         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
11100         get_element): Kill.
11101
11102 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
11103
11104         * cse.c (cse_basic_block): Free qty_table consistently.
11105
11106 1999-12-12  David S. Miller  <davem@redhat.com>
11107             Jakub Jelinek    <jakub@redhat.com>
11108
11109         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
11110         SUBREGs by hand, gen the appropriate hard reg directly.
11111         (movtf reg/mem split): Likewise and alter_subreg on destination
11112         if necessary.
11113         (movtf mem/reg split): Similarly.
11114         (movdf_cc_sp64): Rename from hidden pattern.
11115         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
11116         (movtf_cc_sp64, following split): New pattern and splitter.
11117         (movdf_cc_reg_sp64): Rename from hidden pattern.
11118         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
11119         TARGET_HARD_QUAD.
11120         (movtf_cc_reg_sp64, following split): New pattern and splitter.
11121
11122 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
11123
11124         * loop.c (load_mems): Don't hoist written floating point mem
11125         if -ffloat-store.
11126
11127 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
11128
11129         * except.h (struct eh_queue): Add `next' pointer.
11130         (struct eh_status): Make x_ehqueue a pointer.
11131         (push_ehqueue):  Declare.
11132         (pop_ehqueue): Likewise.
11133         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
11134         pointer.
11135         (expand_fixup_region_end): Likewise.
11136         (expand_leftover_cleanups): Likewise.
11137         (push_ehqueue): Define.
11138         (pop_ehqueue): Likewise.
11139         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
11140         than doing it inline.
11141         (expand_start_all_catch):  Adjust now that ehqueue is a
11142         pointer.
11143         (mark_eh_queue): Mark all level of the queue.
11144         (mark_eh_status):  Adjust now that ehqueue is a
11145         pointer.
11146         (init_eh_for_function): Allocate ehqueue.
11147         (free_eh_status): Free it.
11148         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
11149         expansion for a fixup.
11150
11151 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11152
11153         * gthr-single.h (__gthread_active_p): Add prototype arguments.
11154
11155         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
11156         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
11157         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
11158         function_ptr, getpagesize, __enable_execute_stack,
11159         __enable_execute_stack, __clear_insn_cache,
11160         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
11161         _cleanup, _exit, __default_terminate, __terminate_func,
11162         __terminate, __empty, __throw, new_eh_context,
11163         eh_context_initialize, eh_context_static, eh_context_specific,
11164         get_eh_context, __get_eh_context, __get_eh_info,
11165         init_reg_size_table, eh_threads_initialize,
11166         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
11167         __unwinding_cleanup, throw_helper, __throw, __rethrow,
11168         __pure_virtual): Add prototype arguments.
11169         (__bb_exit_func): Cast a sizeof to long when comparing against one.
11170         Cast a signed value to unsigned long when comparing against one.
11171         (new_eh_context): Wrap in _GTHREADS macro.
11172         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
11173         declaration.
11174         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
11175         (throw_helper): Initialize variables `handler_p' and `pc_p'.
11176
11177 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11178
11179         * combine.c (record_promoted_value): Remove unused variable
11180         `links2'.
11181
11182         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
11183
11184         * global.c (record_conflicts): Likewise for `j'.
11185
11186         * genoutput.c (output_insn_data): Don't unnecessarily cast away
11187         const-ness.
11188
11189 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11190
11191         * i386-protos.h (output_387_binary_op, output_fix_trunc,
11192         output_fp_compare): Constify a char*.
11193
11194         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
11195         static prototypes.
11196         (override_options, ix86_comp_type_attributes, print_operand,
11197         output_387_binary_op, output_fix_trunc, output_fp_compare):
11198         Constify a char*.
11199         (ix86_sched_reorder): Mark parameter `clock_var' with
11200         ATTRIBUTE_UNUSED.
11201
11202         * i386.h (DEBUG_PRINT_REG): Constify a char*.
11203
11204 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11205
11206         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
11207         operand, for use in the Java front-end.
11208
11209 1999-12-10  Ben Collins  <bcollins@debian.org>
11210
11211         * configure.in: Fix typo for "-64" in 64bit as check.
11212         * configure: Rebuilt.
11213
11214 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
11215
11216         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
11217         appropriate.
11218
11219 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11220
11221         * c-parse.in (string): With -Wtraditional, warn if ANSI string
11222         concatenation is utilized.
11223
11224         * invoke.texi (-Wtraditional): Document it.
11225
11226 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11227
11228         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
11229         Cast a ptrdiff_t to long and pass it to printf with %ld.
11230
11231 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
11232
11233         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
11234         68881, we have no 68881 registers at all.
11235         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
11236         value in a 68881 register if it is available.
11237
11238 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
11239
11240         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
11241         for long long multiply-accumulate.
11242
11243 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
11244
11245         * loop.c (insert_loop_mem): Undo last change.
11246
11247 1999-12-10  David S. Miller  <davem@redhat.com>
11248
11249         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
11250         New functions.
11251         * config/sparc/sparc-protos.h: Add them.
11252         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
11253         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
11254         constraints which use those helpers.
11255         (EXTRA_CONSTRAINT): Use this new macro.
11256         * md.texi: Update sparc target constraints documentation.
11257         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
11258         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
11259         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
11260         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
11261         (movsf high/lo_sum split): Rework for new patterns.
11262         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
11263
11264 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
11265
11266         * c-common.c (c_common_nodes_and_builtins):
11267         Create __builtin_ptrdiff_t and __builtin_size_t.
11268
11269 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
11270
11271         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
11272
11273 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11274
11275         * regclass.c (globalize_reg): Re-instate test that allows
11276         fixed registers to be declared as a variable even after functions
11277         are defined.
11278
11279 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11280
11281         * i386.md (cpu attribute): Add "athlon".
11282         (athlon_decode): New attribute.
11283         (Athlon scheduling units definitions): New.
11284         (fcmp and shld patterns): Set athlon_decode to "vector".
11285         * i386.c (athlon_cost): New.
11286         (m_ATHLON): New.
11287         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
11288         x86_use_sahf): Set for Athlon.
11289         (x86_use_fiop): Unset for Athlon.
11290         (override_options): Define Athlon alignments and "athlon" name.
11291         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
11292         * i386.h (TARGET_ATHLON): New.
11293         (enum processor_type): Add PROCESSOR_ATHLON.
11294         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
11295         for CPU_DEFAULT==5
11296         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
11297
11298 1999-12-09  Andreas Jaeger  <aj@suse.de>
11299
11300         * loop.c (record_biv): Declare parameter as int.
11301
11302         * config/i386/i386-protos.h: Declare long_memory_operand.
11303
11304 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
11305
11306         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
11307         EXPR_WITH_FILE_LOCATION.
11308
11309 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
11310
11311         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
11312         in expander.
11313
11314         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
11315
11316         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
11317         updating code.
11318
11319 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
11320
11321         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
11322         default on linux64 again.
11323         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
11324         models for multilibing.
11325         * genmultilib: Accept | as alternative separator within a set in
11326         MULTILIB_OPTIONS.
11327
11328         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
11329
11330         * calls.c (precompute_arguments): Make sure initial_value contains
11331         value pseudo which CSE expects.
11332         * cse.c (struct set): New entry orig_src.
11333         (cse_insn): Set it early on entry, use it for libcall EQUIV note
11334         replacement.
11335
11336 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
11337
11338         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
11339
11340 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
11341
11342         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
11343
11344 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
11345
11346         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
11347         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
11348
11349         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
11350         if TARGET_ARCH32.
11351
11352         * longlong.h: Merge in changes from glibc.
11353         Also don't clobber %g2 register in 32bit SPARC assembly, so that
11354         -mno-app-regs libgcc can be compiled.
11355         * libgcc2.c: Add defines so that the updated longlong.h
11356         can be used in libgcc2.a. Also, make sure on most architectures
11357         (at least on all which have optimized code in longlong.h defined
11358         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
11359
11360 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11361
11362         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
11363         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
11364         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
11365         is GNU ld.
11366         * configure: Rebuilt.
11367
11368 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
11369
11370         * alpha.c (secondary_reload_class): For !BWX, sub-simode
11371         outputs require a register.
11372
11373 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
11374
11375         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
11376         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
11377         functions like dptoul will be resolved.
11378         (libgcc2.a): Make sure that the object files from DPBIT are named
11379         differently (prefix `_dp') from those that would be coming from
11380         FPBIT.
11381
11382 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
11383
11384         * configure.in: When target is sparc* and tm_file contains 64,
11385         test for 64bit support in assembler.  If not supported, remove
11386         sparc/t-sol2-64 from target-dependent Makefile fragments.
11387         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
11388         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
11389         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
11390         * acconfig.h (AS_SPARC64_FLAG): Added.
11391         * configure, config.in: Rebuilt.
11392         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
11393         support.  Use AS_SPARC64_FLAG.
11394
11395 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
11396
11397         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
11398         suitable for holding OFmode values so that gcc works with complex
11399         quad long doubles.
11400         (hard_64bit_mode_classes): Likewise.
11401
11402         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
11403         so that it is actually matched.
11404         (sethi_di_medlow): Likewise.
11405
11406         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
11407         as legitimate constant if -mvis.
11408         * config/sparc/sparc.md (movtf): Likewise.
11409         (clear_sf): Use const_double_operand.
11410         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
11411
11412         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
11413         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
11414         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
11415         routines, _Qp_* cannot be handled like that now.
11416         (INIT_TARGET_OPTABS): Likewise.
11417         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
11418         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
11419         sparc_emit_float_lib_cmp if ARCH64 and soft float.
11420         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
11421         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
11422         divtf3, sqrttf3): New expanders.
11423         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
11424         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
11425         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
11426         non-_hq patterns.
11427
11428         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
11429         * configure: Rebuilt.
11430         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
11431         -mcpu is given and we're doing 64bit compiles.
11432
11433 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
11434
11435         * loop.h (struct induction): Add multi_insn_incr.
11436         * loop.c (basic_induction_var): New multi_insn_incr argument.
11437         Set it if we search back through previous insns for the biv.
11438         (record_biv): New multi_insn_incr argument; fill in struct induction.
11439         (strength_reduce): Discard an iv with multiple bivs, any of
11440         which require multiple insns to increment.
11441
11442 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11443
11444         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
11445         documentation.
11446
11447 1999-12-06  David S. Miller  <davem@redhat.com>
11448
11449         * combine.c (check_promoted_subreg): Do not conditionalize this upon
11450         PROMOTE_FUNCTION_RETURN.
11451
11452 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
11453
11454         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
11455         and handle REG_UNUSED note on insn.
11456
11457         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
11458         inner_mask instead of mask.
11459
11460 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
11461
11462         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
11463         zero if there was an error.
11464
11465 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
11466
11467         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
11468         output string.
11469
11470         * longlong.h: Fix clobbers in SPARC asm statements.
11471
11472         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
11473         valid sethi operations when TARGET_ARCH64.
11474
11475         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
11476         always use move_by_pieces to avoid infinite recursion.
11477         (restore_fixed_argument_area): Likewise.
11478
11479         * combine.c (check_promoted_subreg, record_promoted_value): New
11480         functions.
11481         (combine_instructions): Use them to retain nonzero and sign bit
11482         information after SUBREGs are eliminated by optimizations in
11483         this pass if PROMOTE_FUNCTION_RETURN.
11484
11485         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
11486         .register declaration. Don't use variables with __ prefixes.
11487
11488 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11489
11490         * fold-const.c (optimize_bit_field_compare): Only use one mode
11491         for both RHS and LHS in non-constant case.
11492
11493 1999-12-06  Nathan Sidwell  <nathan@acm.org>
11494
11495         * frame.c (start_fde_sort): Only allocate erratic array, if
11496         linear one was allocated. Return allocated flag.
11497         (fde_insert): Only insert, if there's a valid array.
11498         (fde_end_sort): Split, sort and merge if linear and erratic
11499         arrays exist, else just sort linear one.
11500         (search_fdes): New function. Linear search through original fde
11501         structure.
11502         (frame_init): Permit multiple initializations. Cope with
11503         memory shortages.
11504         (find_fde): Fallback on linear search, if failed to sort array.
11505         (__deregister_frame_info): Only free sorted array, if we
11506         allocated it.
11507
11508 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
11509
11510         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
11511
11512 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
11513
11514         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
11515
11516 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
11517
11518         * tree.h (special_function_p): Declare.
11519         * calls.c (special_function_p): Make it global.  Don't take `name'
11520         as a parameter.  Fix typo in 1999-11-28 change.
11521         (expand_cal): Adjust.
11522
11523 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
11524
11525         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
11526         * tree.h (EXPR_WFL_FILENAME): Define in terms of
11527         EXPR_WFL_FILENAME_NODE.
11528         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
11529         the TREE_CHAIN.
11530         * print-tree.c (print_note): Print TREE_PRIVATE and
11531         TREE_PROTECTED.
11532
11533         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
11534         the original die cannot be found.
11535
11536         * varray.h (varray_head_tag): Add elements_used.
11537         (VARRAY_PUSH): New macro.
11538         (VARRAY_POP): Likewise.
11539         (VARRAY_TOP): Likewise.
11540         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
11541         types.
11542         * varray.c (varray_init): Initialize elements_used.
11543         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
11544         (INTEGRATE_H): New variable.
11545         (integrate.o): Depend on INTEGRATE_H.
11546         (unroll.o): Likewise.
11547
11548         * function.h (insert_block_after_note): Declare.
11549         * function.c (insert_block_after_note): Split out from ...
11550         (retrofit_block): ... here.
11551
11552         * stmt.c (expand_fixup): Fix typo in comment.
11553
11554 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11555
11556         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
11557         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
11558         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
11559         (regmove_optimize, fixup_match_1): Likewise.
11560
11561 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11562
11563         * flow.c (flow_loops_dump): Add missing argument when calling
11564         flow_loop_nested_p.
11565
11566 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
11567             Greg McGary  <gkm@gnu.org>
11568
11569         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
11570         (init_attributes): Add A_NO_LIMIT_STACK.
11571         (decl_attributes): Handle A_NO_LIMIT_STACK.
11572         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
11573         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
11574         Handle stack bounds checking.
11575         * flags.h (flag_stack_check): Use the word 'probe' rather than
11576         'check', because the flag doesn't actually cause any checking to
11577         be done.
11578         * function.c (expand_function_start): Set
11579         current_function_limit_stack.
11580         * function.h (struct function): Add limit_stack.
11581         (current_function_limit_stack): Define.
11582         * invoke.texi (Code Gen Options): Document new options.
11583         * rtl.h: Declare stack_limit_rtx.
11584         * toplev.c (stack_limit_rtx): New variable.
11585         (decode_f_option): Handle new options -fstack-limit-register=REG,
11586         -fstack-limit-symbol=IDENT, -fno-stack-limit.
11587         (main): Add stack_limit_rtx as GC root.
11588         * tree.h (DECL_NO_LIMIT_STACK): New macro.
11589         (struct tree_decl): New member no_limit_stack.
11590
11591         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
11592         stack_limit_rtx.
11593         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
11594         (conditional_trap+1): Get new mnemonic correct.
11595         (conditional_trap+2): New pattern for DImode traps.
11596
11597         * config/m68k/m68k.c (output_function_prologue): Handle
11598         stack_limit_rtx.
11599         * config/m68k/m68k.md (trap): New insn.
11600         (conditional_trap): New insn.
11601         * md.texi (Standard Names): Document `trap' and
11602         `conditional_trap'.
11603         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
11604         so a cc0 setter doesn't get emitted at some random place in the
11605         function.
11606
11607         * config/i960/i960.md (trap): New insn.
11608         (conditional_trap): New expander.
11609         (conditional_trap+1, conditional_trap+2): New insns for signed
11610         and unsigned cases.
11611         * config/i960/i960.c (i960_function_prologue): Use
11612         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
11613
11614 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
11615                           Geoffrey Keating  <geoffk@cygnus.com>
11616
11617         * flags.h (warn_padded, warn_packed): Add global var decls.
11618         * toplev.c (warn_padded, warn_packed): Add global var defns.
11619         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
11620         * stor-layout.c (layout_record): Add local variable `type'
11621         to hold often-used TREE_TYPE (field).  Add local variable
11622         `unpacked_align' to hold alignment that would be in force
11623         if no `packed' attribute were present.  Warn if `packed' attribute
11624         is unnecessary, or even harmful.  Warn when gcc inserts padding
11625         to satisfy alignment requirements of members.  Use NULL_TREE
11626         when checking whether var_size is set.
11627         * invoke.texi: Document new flags.
11628
11629 1999-12-03  Nathan Sidwell  <nathan@acm.org>
11630
11631         * frame.c (fde_split): Reimplement to avoid variable sized array.
11632
11633 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11634
11635         * combine.c (try_combine): Before fixing up LOG_LINKS for the
11636         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
11637
11638 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
11639
11640         * invoke.texi: Document the mips option -mno-crt0
11641
11642 1999-12-02  Mike Karr  <mkarr@mathworks.com>
11643
11644         * cccp.c (argdata): Added free_ptr member.
11645         (macroexpand): Initialize free_ptr of each argument. When an
11646         argument's buffers are freed, if the argument's free_ptr corresponds
11647         to a buffer on the input stack, then return the free_ptr to that stack
11648         frame, otherwise, free it.
11649         (macarg): If an argument begins and ends on the same input stack level,
11650         then transfer the free_ptr of that buffer to the argument in case
11651         the stack is popped during the processing of a subsequent argument.
11652
11653 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
11654
11655         * loop.c (note_reg_stored): New function.
11656         (struct note_reg_stored_arg): New structure.
11657         (try_copy_prop): Change to be more conservative; only replace within
11658         one extended basic block and stop replacing if a store to the
11659         replacement reg is seen.
11660
11661 1999-12-02  Nick Clifton  <nickc@cygnus.com>
11662
11663         * config/fp-bit.c: Initialise all fields of the NAN
11664         constants.
11665
11666         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
11667         to HANDLE_PRAGMA.
11668
11669 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
11670
11671         * i386.md (extend?f?f2): Force the input into a register, not
11672         the output.
11673
11674 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
11675
11676         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
11677         regclass' sake.
11678         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
11679         alternative because setting up 64bit constant is usually costly,
11680         especially when reload is in progress or completed.
11681         (movdf_const_intreg_sp64): Likewise.
11682         (movdf_const_intreg split): Fix building up constants when
11683         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
11684
11685 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
11686
11687         * combine.c (if_then_else_cond): Use const_true_rtx instead of
11688         const1_rtx for return values in EQ/NE comparison against (const_int 0)
11689         case.
11690
11691         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
11692         (asm_file_start): Emit .am33 into assembly file when compiling for
11693         the AM33.
11694         (print_operand_address): Handle POST_INC addresses.
11695         (can_use_return_insn, initial_offset): Check AM33 registers too.
11696         (expand_prologue): Check & save AM33 registers too.
11697         (expand_epilogue): Similarly.
11698         (secondary_reload_class): Handle AM33 specific secondary reloads.
11699         (output_tst): Emit efficient code for the AM33 too.
11700         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
11701         (TARGET_SWITCHES): Add -mam33 switch.
11702         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
11703         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
11704         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
11705         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
11706         (enum reg_class, REG_CLASS_NAMES): Likewise.
11707         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
11708         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
11709         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
11710         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
11711         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
11712         (HAVE_POST_INCREMENT): Define.
11713         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
11714         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
11715         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
11716         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
11717         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
11718         (zero_extend to SI from QI/HI): Likewise.
11719         (sign_extend to SI from QI/HI): Likewise.
11720         (mulsidi3, umulsidi3): New patterns for the AM33.
11721         (tstsi with zero extension from QI/HI): Add AM33 variants.
11722         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
11723         (return_internal_regs, store_movm): Handle new AM33 registers.
11724         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
11725         (LIBGCC, INSTALL_LIBGCC): Likewise.
11726         * invoke.texi: Document new flags.
11727
11728 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11729
11730         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
11731         (addsi3_carry): Likewise.
11732         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
11733         (sbbsi3_carry): Likewise.
11734         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
11735         (mulhi3): Likewise.
11736         (test?i_1): Ensure that only one operand is memory.
11737         (conditional move patterns): likewise.
11738         (shift and rotate patterns): Rewrite to expander, add
11739         "binary_operator_ok" to the condition.
11740
11741         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
11742         * i386.h (procesor_costs): Add movzbl_load field.
11743         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
11744         non-Q registers, accept DImode registers anywhere.
11745         (Q_CLASS_P): New.
11746         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
11747         * i386.c (*_cost): Set value for movxbl_load field.
11748
11749         * (addsi): New add to lea splitter.
11750         (ashlsi): Likewise.
11751         (lea to add/shift peep2): New.
11752
11753 1999-12-01  Mark Salter <msalter@cygnus.com>
11754
11755         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
11756         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
11757         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
11758
11759 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11760
11761         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
11762         * i386.md (movsi_xor): New.
11763         (movsi_or): New.
11764         (movsi_1, movhi_1, movqi_1): Remove.
11765         (movsi_2): Rename to movsi_1.
11766         (movhi_2): Rename to movhi_1.
11767         (movqi_2): Rename to movqi_1.
11768         (movdi_1): Remove; remove splitter.
11769         (movdi_2): Rename to movdi_1.
11770         (divmodsi4 splitter): Do not emit clobbers for move patterns.
11771         (long move peep2): Do not create QI or HI mode mov0s
11772         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
11773
11774         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
11775         rewrite splitters.
11776
11777         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
11778         (abs?f2_if): Likewise.
11779
11780 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
11781
11782         * ggc.h (ggc_test_and_set_mark): New macro.
11783         (ggc_mark_rtx): Use ggc_test_and_set_mark.
11784         (ggc_mark_tree): Likewise.
11785         (ggc_mark_rtvec): Likewise.
11786         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
11787
11788 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
11789
11790         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
11791         containing types.
11792         (decl_scope_table): Just an array of trees now.
11793         (push_decl_scope): Simplify.
11794         (dwarf2out_init): Adjust.
11795         (local_scope_p): New fn.
11796         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
11797         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
11798         (gen_typedef_die): Likewise.
11799         (gen_lexical_block_die): Don't call push/pop_decl_scope.
11800         (gen_inlined_subroutine_die): Likewise.
11801         (gen_abstract_function): Set current_function_decl temporarily.
11802         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
11803         Handle block extern declarations.  Don't call push/pop_decl_scope.
11804         (gen_decl_die): Fix logic for block externs.
11805
11806 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11807
11808         * calls.c (special_function_p): Remove `realloc' and add `strdup'
11809         to the list of functions which have attribute malloc by default.
11810
11811 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11812
11813         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
11814         integer constant does not match the traditional type, limit the
11815         warnings to cases where the base of the type is ten.
11816
11817         * invoke.texi (-Wtraditional): Document it.
11818
11819 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11820
11821         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
11822         * rs6000.md: Only access a CONST_INT with INTVAL
11823
11824 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
11825
11826         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
11827         (compute_nearerout): Likewise.
11828         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
11829         size_t to unsigned long for formatting.
11830
11831 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
11832
11833         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
11834         Allow the user to override call-used/fixed state of %g2-5
11835         registers from the command line (with the exception of %g4 for
11836         embedded model).
11837         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
11838         there is a higher chance of having a leaf function.
11839         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
11840         for ARCH64 which has %ccr register.
11841         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
11842         patterns.
11843         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
11844         insn accept into delay slot any insn which does not use %[ol]
11845         registers.  Accept some LO_SUM and shift left by 1 for the normal
11846         restore case.
11847         (output_function_epilogue): Likewise.
11848         (epilogue_renumber): Added argument which inhibits any renumbering
11849         and just tests if the rtx does not use any %[ol] registers.
11850         (output_return): Reflect above change.
11851
11852 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
11853
11854         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
11855         aggregate passing for sizes <= 16 bytes.
11856
11857 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
11858
11859         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
11860         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
11861         * reload.c (find_dummy_reload): Likewise.
11862         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
11863         * reload1.c (reload_as_needed): Likewise.
11864         * stupid.c (stupid_find_reg): Likewise.
11865         * tm.texi (Obsolete Register Macros): Delete section.
11866         * gmicro.h: Remove all traces of the two macros.
11867         * i386.h: Likewise.
11868         * m88k.h: Likewise.
11869         * mips.h: Likewise.
11870
11871 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
11872
11873         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
11874         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
11875         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
11876         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
11877         units for the sparclite86x chip.
11878         (flush): Revert October 14th change; add SImode specifically.
11879         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
11880         * invoke.texi: Document it.
11881
11882 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
11883
11884         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
11885         psimode_truncation_operand.
11886
11887         * config/mn10200/mn10200.c (psimode_truncation_operand): New
11888         function.  Return true if the operand is either a MEM valid
11889         for a PSImode address or not a MEM at all.
11890
11891         * config/mn10200/mn10200.md (truncsipsi2): Use
11892         psimode_truncation_operand.
11893
11894 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11895
11896         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
11897         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
11898         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
11899         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
11900         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
11901         (flow_loop_level_compute, low_loops_level_compute): Likewise.
11902         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
11903         * basic-block.h: Protect from multiple inclusion.
11904         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
11905         (struct loops, struct loop): Define structures.
11906         * sbitmap.c (sbitmap_a_subset_b_p): New function.
11907         * sbitmap.h: Protect from multiple inclusion.
11908         (sbitmap_a_subset_b_p): Add prototype.
11909         * Makefile.in (LOOP_H): New macro.
11910         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
11911
11912 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
11913
11914         * cppinit.c (CAT): The argument list of this macro may not contain
11915         spaces !
11916
11917 1999-11-29  David S. Miller  <davem@redhat.com>
11918
11919         Move quantity tables and register equivalence chains into
11920         per-qty and per-register structure arrays respectively.
11921         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
11922         qty_const_insn, qty_comparison_code, qty_comparison_const,
11923         qty_comparison_qty): Delete, replace with...
11924         (qty_table): this structure table.
11925         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
11926         (reg_eqv_table): this structure table.
11927         (make_new_qty): Add argument MODE.  Caller updated.
11928         Update to use qty_table and reg_eqv_table.
11929         (make_regs_eqv, delete_reg_equiv, insert_regs,
11930         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
11931         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
11932         cse_process_notes, cse_main, cse_basic_block): Likewise.
11933
11934 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11935
11936         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
11937         operation if C is negative.
11938         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
11939         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
11940         law for some divisions if constant is negative and change other
11941         divisions to the opposite rounding.
11942
11943         * expr.c (store_constructor_field): If bit position is not multiple
11944         of alignment of TARGET's mode, use BLKmode.
11945
11946         * expr.c (expand_expr_unaligned): Add more code from full case
11947         that is needed when OP0 is in a register.
11948
11949 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11950
11951         * dwarfout.c (field_byte_offset): Size can be zero if there was
11952         an error.
11953
11954 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
11955
11956         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
11957         (associate_trees): Delete unused var TEM.
11958         (extract_muldiv): Delete unused var CANCEL_P.
11959
11960         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
11961         (target_isinf, target_isnan, target_negative): Add return types to
11962         function definitions.
11963
11964 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
11965
11966         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
11967         * fixinc/hackshell.tpl: ditto
11968         * fixinc/fixtests.c(double_slash_test): more C++ header testing
11969         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
11970
11971 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
11972
11973         * reload.c (push_reload): When looking for a register to put into
11974         reg_rtx, make sure all hard regs in a multi-reg register are in the
11975         right class and nonfixed.
11976
11977         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
11978         pending_read_insns, pending_write_insns, pending_read_mems,
11979         pending_write_mems, pending_list_length, last_pending_memory_flush,
11980         last_function_call, sched_before_next_call): Move static variables
11981         into a structure.
11982         (bb_ prefixed versions): Replace with single array bb_deps.
11983         (struct deps): New structure.
11984         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
11985         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
11986         argument of type "struct deps *"; use that instead of global
11987         variables.  All callers changed.
11988         (init_rgn_data_dependencies): Delete function.
11989         (init_rtx_vector): Delete function.
11990         (init_deps): New function.
11991
11992         (free_pending_lists): Simplify, we always use the bb_deps array even
11993         if only one basic block.
11994         (compute_block_backward_dependences): Likewise.
11995         (schedule_region): Likewise.
11996
11997         (propagate_deps): New function, broken out of
11998         compute_block_backward_dependences.
11999         (compute_block_backward_dependences): Use it.
12000
12001         * alpha.md: Delete useless patterns that tried to work around
12002         register elimination problems.
12003
12004         * unroll.c (loop_iterations): Don't abort if iteration variable
12005         was made by loop.
12006
12007         From Joern Rennecke:
12008         * reload1.c (reloads_conflict): Reverse test comparing operand
12009         numbers when testing for conflict between output/outaddr reloads.
12010
12011 1999-11-29  David S. Miller  <davem@redhat.com>
12012
12013         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
12014         arg.
12015         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
12016
12017 1999-11-28  Robert Lipe  <robertl@cygnus.com>
12018
12019         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
12020         table from .fini into .dtor.
12021
12022 1999-11-28  Anthony Green  <green@cygnus.com>
12023
12024         * tree.h (struct tree_decl): Add malloc_flag.
12025         (DECL_IS_MALLOC): Define.
12026         * c-common.c (attrs): Add A_MALLOC attribute.
12027         (init_attributes): Add this attribute to the table.
12028         (decl_attributes): Handle malloc attribute.
12029         * calls.c (special_function_p): Check for the malloc attribute.
12030         * extend.texi (Function Attributes): Document malloc attribute.
12031
12032 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
12033
12034         * pa.md (reload shift-add patterns): Remove.
12035
12036 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12037
12038         * reorg.c (dbr_schedule) Print more statistics. Corrected
12039         problem when printing info when 3 delay slots are filled.
12040
12041 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
12042
12043         * combine.c (setup_incoming_promotions): Pass an outgoing
12044         regno to FUNCTION_ARG_REGNO_P which it expects.
12045
12046 1999-11-28  Andreas Jaeger  <aj@suse.de>
12047
12048         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
12049
12050 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
12051
12052         * cccp.c (do_include): Avoid initialization of automatic variable.
12053
12054         * integrate.c (mark_stores): Function definition made void, to match
12055         previous declaration.
12056         * regclass.c (dump_regclass): Ditto.
12057         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
12058
12059 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12060
12061         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
12062         known to be multiple of divisor.
12063
12064         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
12065
12066         * combine.c (try_combine): Add code to try to merge a set of a
12067         two-word pseudo to a constant with a setting of one of those words
12068         to a constant.
12069
12070         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
12071         (split_tree): Completely rework to make more general.
12072         (make_range, fold): Call negate_expr.
12073         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
12074         (fold, associate): Call new split_tree and associate_trees.
12075         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
12076
12077 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
12078
12079         * loop.c (try_copy_prop): Avoid GNU C extension.
12080
12081 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
12082
12083         * except.c (init_eh_for_function): Still zero eh_return_context,
12084         eh_return_stack_adjust, and eh_return_handler.
12085
12086         * except.h (eh_status): Adjust documentation for x_protect_list.
12087         (begin_protect_partials): New function.
12088         * except.c (enqueue_eh_entry): Fix formatting.
12089         (get_first_handler): Add consistency check.
12090         (add_partial_entry): Adjust usage of protect_list.
12091         (emit_cleanup_handler): Save and restore ehqueue.
12092         (expand_start_all_catch): Add comment.
12093         (begin_protect_partials): New function.
12094         (end_protect_partials): Adjust usage of protect_list.
12095         (init_eh_for_function): Use xcalloc.
12096
12097 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12098
12099         * c-common.c (check_format_info): Don't call a variadic function
12100         with a non-literal format string.
12101
12102         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
12103
12104         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
12105         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
12106         Likewise.
12107
12108         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
12109         Likewise.
12110
12111         * collect2.c (collect_wait): Likewise.
12112
12113         * dbxout.c (dbxout_type): Likewise.
12114
12115         * gcc.c (do_spec_1): Likewise.
12116
12117         * genemit.c (gen_insn, gen_expand): Likewise.
12118
12119         * genrecog.c (write_switch, write_subroutine): Likewise.
12120
12121         * mips-tfile.c (catch_signal, botch): Likewise.
12122
12123         * print-rtl.c (print_rtx): Likewise.
12124
12125         * toplev.c (default_print_error_function, report_error_function,
12126         _fatal_insn): Likewise.
12127
12128 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
12129
12130         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
12131
12132 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12133
12134         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
12135         operations when needed.
12136         * i386.md (fop_?f_comm): New.
12137         (fop_?f_1): Do not accept commutative operands.
12138
12139 1999-11-25  Andreas Jaeger  <aj@suse.de>
12140
12141         * config/mips/mips.md (casesi_internal): Add missing brace.
12142
12143 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
12144
12145         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
12146         (splice_child_die): Handle moving a child DIE from the declaration
12147         DIE of a class to its specification.
12148         (gen_struct_or_union_type_die): Use 'complete' consistently.
12149         (gen_decl_die): Generate the virtual context DIE first.
12150         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
12151
12152 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
12153
12154         * config/mips/mips.md (call_value_multiple_interanal1): New.
12155
12156 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
12157
12158         * dwarf2out.c (free_AT, free_die): New fns.
12159         (remove_children): Call them.
12160         (output_line_info): Disable removal of duplicate notes.
12161
12162         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
12163         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
12164         means pretend the type isn't defined.
12165         Don't defer emitting types.
12166         (gen_type_die_for_member): New fn.
12167         (gen_decl_die): Call it.
12168         (splice_child_die): New fn.
12169         (gen_member_die): Call it rather than generate duplicate dies.
12170
12171         Defer emitting information for the abstract instance of an inline
12172         until we either inline it or emit an out-of-line copy.
12173         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
12174         from output_inline_function if DECL_ABSTRACT is also set.
12175         (block_ultimate_origin): Likewise.
12176         (gen_abstract_function): New fn.
12177         (gen_decl_die, gen_inlined_subroutine_die): Call it.
12178         (gen_subprogram_die):  An abstract instance is not a declaration
12179         just because it doesn't match current_function_decl.  Don't abort
12180         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
12181         has an abstract origin.
12182         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
12183         abstract instance here.
12184
12185 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
12186
12187         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
12188         where we need to reload fpul from a system register.
12189
12190 1999-11-24  Andreas Jaeger  <aj@suse.de>
12191
12192         * config/mips/linux.h (CPP_PREDEFINES): Added.
12193         (LINK_SPEC): Remove -Y since this is only needed on sparc.
12194
12195 1999-11-24  Andreas Jaeger  <aj@suse.de>
12196
12197         * config/mips/linux.h (TARGET_VERSION): Added.
12198         (HANDLE_SYSV_PRAGMA): Added.
12199         (DEFAULT_VTABLE_THUNKS): Added.
12200
12201 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12202
12203         * local-alloc.c (qty): New structure and static variable.
12204         (qty_phys_reg): Remove, all references changed to qty.
12205         (qty_n_refs): Likewise.
12206         (qty_min_class): Likewise.
12207         (qty_birth): Likewise.
12208         (qty_death): Likewise.
12209         (qty_size): Likewise.
12210         (qty_mode): Likewise.
12211         (qty_n_calls_crossed): Likewise.
12212         (qty_alternate_class): Likewise.
12213         (qty_changes_size): Likewise.
12214         (qty_first_reg): Likewise.
12215         (alloc_qty): Rename variable QTY to QTYNO.
12216         (finf_free_reg): Likewise.
12217         (local_alloc): Allocate qty, do not allocate the removed variables.
12218
12219 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
12220
12221         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
12222         when -membedded-pic is passed.
12223
12224         * config/mips/mips.md (casesi): Handle 64-bit case too.
12225         (casesi_internal_di): New insn.
12226
12227         * config/mips/mips.c (embedded_pic_offset): Always make the
12228         embedded-pic subtractions relative to the name of the current
12229         function by use of the magic string "..CURRENT_FUNCTION".
12230         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
12231
12232 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
12233
12234         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
12235         of (const_int 0), when what we really care about is
12236         whether it's a zero constant anyway.
12237         (div_trap_mips16): Likewise.
12238
12239 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
12240
12241         * loop.c (loop_optimize): Always find_loop_tree_blocks and
12242         unroll_block_trees when generating debuggable code.
12243
12244         * tree.h (unsave_expr_1): New function.
12245         (lang_unsave): New variable.
12246         (get_callee_fndecl): New function.
12247         * tree.c (unsave_expr_now_r): New function.
12248         (lang_unsave): Define.
12249         (unsave_expr_1): Likewise.
12250         (unsave_expr_now_r): Split out from unsave_expr_now.
12251         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
12252         call unsave_expr_now_r.
12253         (get_callee_fndecl): Define.
12254
12255         * Makefile.in (gencheck): Don't depend on lang_tree_files.
12256         (gencheck.o): Do depend on lang_tree_files.
12257
12258         * integrate.h (copy_decl_for_inlining): New declaration.
12259         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
12260         (copy_decl_for_inlining): New function.
12261         (integrate_parm_decls): Use it.
12262         (integrate_decl_tree): Likewise.
12263
12264 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
12265
12266         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
12267         the second two from the first.
12268         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
12269         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
12270         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
12271         ISA_HAS_FP4.
12272         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
12273         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
12274         ISA_HAS_FP4.
12275
12276 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
12277
12278         * pa.md (call_internal_symref, call_value_internal_symref): No mode
12279         needed on the address operand.
12280         * pa.c (call_operand_address): Check for the correct mode.
12281
12282 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
12283
12284         * loop.c: Include "basic-block.h".
12285         (try_copy_prop, replace_loop_reg): New functions.
12286         (load_mems): Detect registers that just hold copies of the hoisted
12287         mem, and call try_copy_prop to eliminate them.
12288         * Makefile.in (loop.o): Update dependencies.
12289
12290 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
12291
12292         * Makefile.in (gencheck.o): Depend on gencheck.h.
12293         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
12294         (insn-peep.o): Depend on except.h and function.h.
12295         (insn-attrtab.o): Depend on RECOG_H.
12296         (insn-output.o): Depend on toplev.h and flags.h.
12297         (gengenrtl.o): Depend on real.h.
12298         (gen-protos.o): Depend on cpplib.h and cpphash.h.
12299         Unify all dependencies to be on RECOG_H rather than recog.h.
12300
12301 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12302
12303         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
12304         * configure.in: Try building a bi-arch 32/64-bit compiler on
12305         sparc-*-solaris2.7 and higher.
12306         * configure: Rebuild.
12307
12308 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
12309
12310         * config/freebsd.h: New, FreeBSD architecture independent file.
12311         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
12312         independent pieces.
12313         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
12314         directly by i386/freebsd.h.
12315         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
12316         independent configuration file.
12317         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
12318         directly by i386/freebsd.h.
12319         * configure: Rebuilt.
12320
12321         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
12322         which is in the user's namespace.
12323         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
12324         `i386' which is not in our namespace.
12325
12326 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
12327
12328         * invoke.texi (ARM Options): Add in -mno-alignment-traps
12329
12330 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
12331
12332         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
12333         (add_dwarf_attr, add_child_die): Just push onto the front.
12334         (reverse_die_lists): New fn.
12335         (add_sibling_attributes): Use it.
12336         (push_decl_scope): Reorganize.
12337         (add_name_and_src_coords_attributes): Don't set file and line for
12338         an artificial decl.
12339         (gen_subprogram_die): An artificial function doesn't need to match
12340         file and line.
12341         (gen_compile_unit_die): Return the generated die.  Only add
12342         AT_comp_dir if the filename is relative.
12343         (remove_AT): Simplify loop.  Also free string values.
12344         (output_die): A DIE ref can't be null.
12345         (output_value_format, value_format): Take a dw_attr_ref.
12346         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
12347         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
12348         AT_addr, AT_lbl): New fns.
12349         (various): Use them.
12350         (various): Constify.
12351
12352 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12353
12354         * combine.c (combine_simplify_rtx): When handling a SUBREG,
12355         take SUBREG_WORD into account.
12356         (if_then_else_cond): Likewise.
12357
12358 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
12359
12360         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
12361         clause from BSD license, pursuant with
12362
12363           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
12364
12365 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
12366
12367         * loop.c (load_mems): Reformat slightly.
12368         * basic-block.h (regset_head): New typedef.
12369         (INIT_REG_SET): New macro.
12370
12371 1999-11-22  Bruce Korb  <autogen@linuxbox.com
12372
12373         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
12374         (mips-dec-bsd*): non-functional code
12375         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
12376
12377         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
12378         added three replacement fixes
12379         (no_double_slash): removed comments that are not (any longer) pertinent
12380         (bad_lval): this fix currently runs against many files.
12381         The comment seems to indicate that we should select for files
12382         containing 'pragma extern_prefix'.
12383
12384         * fixinc/fixinc.x86-linux-gnu: deleted
12385         * fixinc/inclhack.sh:  regen
12386         * fixinc/fixincl.x:  regen
12387         * fixinc/fixincl.sh:  regen
12388
12389 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
12390
12391         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
12392         its code is INSN and it has no notes.
12393
12394 1999-11-22  Andrew Haley  <aph@cygnus.com>
12395
12396         * varasm.c (function_defined): Remove.
12397         (make_function_rtl): Don't set function_defined.
12398         (make_decl_rtl): Remove global register warning.
12399         * regclass.c (no_global_reg_vars): New variable.
12400         (globalize_reg): Warn if function has already been defined.
12401         (regclass_init): Set no_global_reg_vars.
12402
12403 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12404
12405         * regclass.c (reg_pref): New structure and static variable
12406         (prefclass): Delete.
12407         (altclass): Delete.
12408         (all uses of prefclass and altclass): Use reg_pref instead.
12409
12410 1999-11-21  Nick Clifton  <nickc@cygnus.com>
12411
12412         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
12413         -malignment-traps.
12414         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
12415         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
12416         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
12417
12418 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
12419
12420         * varasm.c (output_constructor): Solve problem with long long
12421         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
12422
12423 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12424
12425         * global.c (allocno): New structure and static variable.
12426         (allocno_reg): Remove, all references replaced by allocno.
12427         (allocno_size): Likewise.
12428         (hard_reg_conflicts): Likewise.
12429         (hard_reg_preferences): Likewise.
12430         (hard_reg_copy_preferences): Likewise.
12431         (hard_reg_full_preferences): Likewise.
12432         (regs_someone_prefers): Likewise.
12433         (allocno_calls_crossed): Likewise.
12434         (allocno_n_refs): Likewise.
12435         (allocno_live_length): Likewise.
12436         (find_reg): Rename ALLOCNO to NUM.
12437
12438         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
12439         references updated.
12440         (may_move_out_cost): New variable.
12441         (init_reg_sets_1): Initialize may_move_out_cost.
12442         (record_reg_classes): Use may_move_out_cost.
12443
12444         * regclass.c (dump_regclass): New function.
12445         (regclass): New parameter DUMP, call DUMP_REGCLASS.
12446         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
12447         pass rtl_dump_file to regclass.
12448         * rtl.h (regclass): Update prototype.
12449
12450 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12451
12452         * i386.md (neg, not and abs patterns): Revmap to use
12453         ix86_expand_unary_operator and ix86_unary_operator_ok.
12454         (add?f and sub?f expanders): Force operand 1 to register.
12455         * i386.c (ix86_expand_unary_operator): Rewrite.
12456         (ix86_unary_operator_ok): Ensure that memory operands
12457         match real opcode.
12458         (ix86_binary_operator_ok): Do not allow operand 1 to
12459         come into memory and operand 0 not.
12460         (ix86_expand_binary_operator): Ensure that
12461         src1 is not non-matching memory.
12462
12463         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
12464         to support integer registers and memory.
12465         (abss?2_integer): Likewise.
12466
12467         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
12468         (REG_CLASS_NAMES): Likewise.
12469         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
12470         and GENERAL_REGS.
12471         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
12472         (movsf): Likewise; unify 4th and 5th alternative.
12473         (pushdf): Likewise.
12474         (movdf_1): Likewise; rename to movdf_integer.
12475         (pushxf): Likewise; rename to pushxf_integer; fix output template;
12476         remove redundant splitter.
12477         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
12478         (movdf_nointeger): New.
12479         (movxf_nointeger): New.
12480         (pushxf_nointeger): New.
12481
12482         * i386.md (extend?f?f): Split to expander and pattern, refuse two
12483         memory operands in patterns.
12484         (fop*): Refuse two memory operands.
12485
12486         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
12487         on !TARGET_USE_CLTD CPUs.
12488
12489 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
12490
12491         * extend.texi: Document C++ restricted pointers and references.
12492
12493 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
12494
12495         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
12496         (invalidate_skipped_set): Call it unconditionally.
12497         (cse_set_around_loop): Likewise.
12498
12499 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
12500
12501         * rtl.texi (mem): Add documentation for alias-set argument
12502         to RTX `mem'.
12503
12504 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12505
12506         * i386.h (struct_processor_costs): New fields int_load, int_store,
12507         fp_move, fp_load and fp_store
12508         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
12509         fp->int moves
12510         (MEMORY_MOVE_COST): New macro.
12511         * i386.c (386_cost): Define new fields.
12512         (i486_cost): Likewise.
12513         (pentium_cost): Likewise.
12514         (pentiumpro_cost): Likewise.
12515         (k6_cost): Likewise.
12516
12517 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
12518                           Geoffrey Keating  <geoffk@cygnus.com>
12519
12520         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
12521
12522         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
12523         MASK_ALIGN_INT.
12524
12525         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
12526         (TARGET_STRICT_ALIGNMENT): New macro.
12527         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
12528         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
12529         * invoke.texi (M680x0 Options): Document -mstrict-align.
12530
12531 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
12532                           Richard Henderson  <rth@cygnus.com>
12533
12534         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
12535         (ix86_split_long_move): Declare.
12536         * i386.c (split_xf, ix86_split_movdi): Remove.
12537         (ix86_split_to_parts, ix86_split_long_move): New.
12538         * i386.md (dimode move splitters): Use ix86_split_long_move.
12539         (dfmode move splitters): Likewise.
12540         (xfmode move splitters): Likewise.
12541         (movsf_1): Allow F->r.
12542         (movdf_1, movxf_1): Allow F->ro.
12543
12544 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
12545
12546         * except.h (struct eh_entry): Add goto_entry_p.
12547         (eh_region_from_symbol): Remove prototype.
12548         * except.c (find_func_region_from_symbol): New function.
12549         (emit_cleanup_handler): Likewise.
12550         (eh_region_from_symbol): Make it static.
12551         (add_new_handler): Verify the argument.
12552         (find_func_region): Update comment.
12553         (expand_eh_region_end): Expand handlers here, rater than waiting
12554         until expand_leftover_cleanups or start_all_catch.
12555         (expand_leftover_cleanups): Don't expand here.
12556         (expand_start_all_catch): Or here.
12557         (expand_rethrow): Check the return value from find_func_region.
12558         * function.c (expand_function_end): Emit the catch_clauses.
12559
12560 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
12561
12562         * integrate.c (expand_inline_function): Add necessary check for NULL.
12563
12564 1999-11-18  Nick Clifton  <nickc@cygnus.com>
12565
12566         * toplev.c (main): Correctly detect an unrecognised option.
12567
12568         * cppinit.c (cpp_handle_option): Do not claim to have consumed
12569         a -f option if it has not been recognised.
12570
12571 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
12572
12573         * basic-block.h (update_life_extent): Remove trailing comma on
12574         enumeration type list.
12575
12576 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12577
12578         * varasm.c (output_constructor) Solved problem with long long
12579         bitfields. Corrected calculating this_time and shift. Also
12580         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
12581
12582 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
12583
12584         * flow.c (split_edge): Take looping structure into account when
12585         determining where to put the new block note.
12586
12587 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
12588
12589         * Makefile.in (ggc-none.o): Provide host specific version if
12590         needed.
12591
12592 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
12593
12594         * cse.c (delete_trivially_dead_insns): Identify no-op insns
12595         containing subregs too.
12596
12597 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
12598
12599         * invoke.texi: Add documentation for -muninit-const-in-rodata.
12600         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
12601         (TARGET_UNINIT_CONST_IN_RODATA): Define.
12602         (text_section): Add switches -munint-const-in-rodata and
12603         -mno-uninit-const-in-rodata.
12604         (ASM_OUTPUT_COMMON): Remove.
12605         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
12606         const objects should be placed in read-only data. Otherwise declare
12607         them in common.
12608
12609 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
12610
12611         * jump.c (jump_optimize_1): Revert last change.
12612
12613 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
12614
12615         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
12616         test if optimizing for size.
12617
12618 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
12619
12620         * Makefile.in (toplev.o): Depend on except.h.
12621         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
12622
12623 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12624
12625         * i386.md (divmodsi4): Rewrite to expander.
12626         (*divmodsi4_nocltd): New.
12627         (*divmodsi4_cltd): New.
12628         (divmodsi4 splitter): Handle the case when input comes in edx.
12629         (udivmodhi4): Do not use constraints in exander.
12630         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
12631
12632 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
12633
12634         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
12635         for the common case.
12636
12637 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
12638
12639         * explow.c (hard_function_value): Add outgoing argument.
12640         * expr.h (hard_function_value): Declare it.
12641         * calls.c (expand_call, emit_library_call_value): Update callers.
12642         * function.c (aggregate_value_p): Ditto.
12643         (diddle_return_value): Must look at the outgoing registers
12644         on archs with register windows.
12645
12646 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
12647
12648         * alpha.c (alpha_build_va_list): Use make_lang_type and
12649         initialize TYPE_NAME for the va_list record.
12650
12651         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
12652
12653         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
12654         for printing.
12655         * ggc.h (struct ggc_statistics): Rearrange elements for better
12656         packing on 64-bit hosts.
12657         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
12658         (compute_nearerout): Likewise.
12659
12660 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
12661
12662         * config/rs6000/rs6000.c (first_reg_to_save): Save
12663         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
12664
12665 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
12666
12667         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
12668         notion of nesting to find the DIE for a type or function.
12669         DIEs can go in limbo even if we got a context_die.
12670         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
12671         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
12672         for local type.
12673         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
12674         (gen_type_die): Writing out the context doesn't cause member class
12675         template instantiations to be written out as well.
12676
12677 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
12678
12679         * rs6000.h (ASM_OUTPUT_DEF): New.
12680         Based on proposed addition from David Edelsohn.
12681
12682 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
12683             Bruce Korb  <autogen@linuxbox.com>
12684
12685         * fixinc/inclhack.def
12686         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
12687         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
12688                 in net/inet.h.
12689         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
12690         (svr4_endian): enabled with SVR5
12691         (svr4_mkdev): simplified syntax and enabled with SVR5
12692
12693 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
12694
12695         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
12696         * configure: Rebuilt.
12697         * config/t-freebsd-thread: New file.
12698
12699 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
12700
12701         * i386.c (ix86_decompose_address): Verify the base is a REG
12702         before trying to examine its register number.
12703
12704         * basic-block.h: Remove all #defines and prototypes related to
12705         integer lists.
12706         (free_bb_mem, compute_preds_succs): Remove prototype.
12707         * rtl.h (free_bb_mem): Remove prototype.
12708         * flow.c (alloc_int_list_node); Remove function.
12709         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
12710         (compute_preds_succs, free_bb_mem): Likewise.
12711         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
12712         * toplev.c (rest_of_compilation): Likewise.
12713         * haifa-sched.c (build_control_flow): Use flow generated edge
12714         list to build the haifa specific edge list.
12715         (find_rgns): Use new CFG data structures instead of pred/succ lists.
12716         (schedule_insns): Do not build pred/succ lists anymore.  Instead
12717         build the edge table.
12718
12719         * basic-block.h (dump_bb_data): Remove declaration.
12720         * flow.c (dump_bb_data): Remove function.
12721         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
12722         (sbitmap_union_of_predsucc): Likewise.
12723
12724         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
12725         argument.  All callers changed.
12726         (delete_null_pointer_checks_1): No longer need to compute the
12727         pred/succ lists.
12728
12729         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
12730         All callers changed.
12731         (pre_expr_reaches_here_p_work): Likewise.
12732         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
12733         * lcm.c (compute_laterin): Fix initialization of LATER.
12734         (compute_nearerout): Similarly for NEARER.
12735
12736 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12737
12738         * cse.c (set_nonvarying_address_components): Delete unused function.
12739         (refers_to_p): Likewise.
12740
12741 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
12742
12743         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
12744         needed.
12745
12746 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12747
12748         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
12749         definition in do while (0).
12750
12751 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
12752
12753         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
12754
12755 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
12756
12757         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
12758
12759 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
12760
12761         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
12762         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
12763         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
12764         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
12765
12766         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
12767         saved on the stack.  Output more accurate stack frame statistics
12768         into assembler file.
12769
12770 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
12771
12772         * genextract.c (record_insn_name): New function.
12773         (get_insn_name): No longer a stub.
12774         (main): Call record_insn_name for each insn.  After each label
12775         written, print the insn name in a comment.
12776
12777 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12778
12779         * output.h (const_section, init_section, fini_section): Add
12780         prototypes.
12781
12782         * alpha/elf.h (const_section): Delete declaration.
12783
12784         * svr4.h (const_section): Likewise.
12785
12786 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
12787
12788         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
12789         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
12790         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
12791         expressions.
12792         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
12793         variable-sized array bounds.
12794
12795 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
12796
12797         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
12798         ASM_OUTPUT_LABEL.
12799
12800 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12801
12802         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
12803         addresses the same way GO_IF_LEGITIMATE_INDEX does.
12804
12805 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12806
12807         * cse.c (hash_arg_in_struct): Delete.
12808         (struct table_elt): Delete elt in_struct.
12809         (struct set): Delete elt src_in_struct.
12810         (merge_equiv_classes): Don't set either hash_arg_in_struct or
12811         the corresponding in_struct elts.
12812         (canon_hash): Likewise.
12813         (safe_hash): Likewise.
12814         (find_best_addr): Likewise.
12815         (record_jump_cond): Likewise.
12816         (cse_insn): Likewise.
12817
12818 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
12819
12820         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
12821
12822         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
12823         unsigned types.
12824
12825 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
12826
12827         * function.c (diddle_return_value): Put back check that the DECL_RTL
12828         for the function is a register.
12829
12830         * function.c (diddle_return_value): Use hard_function_value to
12831         get an rtx suitable for use in the USE/CLOBBER insn.
12832
12833         * global.c (global_conflicts): Update comments.
12834         (record_conflicts): No need to record conflicts between pseudos here.
12835
12836 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
12837
12838         * fixinc/fixincl.c: Added verbose levels for status messages
12839
12840 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12841
12842         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
12843         operand as argument to expand_and or expand_binop.
12844
12845 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
12846
12847         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
12848         gcc_add_string_root.
12849
12850 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
12851
12852         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
12853
12854 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
12855
12856         * flow.c (compute_flow_dominators): Initially put all blocks on
12857         the worklist.
12858         * lcm.c (compute_antinout_edge, compute_available): Similarly.
12859         * gcse.c (compute_cprop_avinout): Remove.
12860         (compute_cprop_data): Use compute_available.
12861         (delete_null_pointer_checks_1): Use compute_available.
12862
12863         * basic-block.h (compute_available): Returns a void now.
12864         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
12865         to return a value anymore.
12866         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
12867         worklists.  Fix boundary cases. Compute maximal solutions.
12868         (compute_laterin, compute_nearerout): Similarly.
12869
12870         * dwarf2out.c (add_AT_location_description): Allow
12871         (mem (plus (pseudo) (...)) too.
12872
12873 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
12874
12875         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
12876
12877 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
12878                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12879
12880         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
12881
12882         * gansidecl.h: Likewise.
12883
12884         * rtl.c: Likewise.
12885
12886         * rtl.h: Likewise.
12887
12888         * toplev.h: Likewise.
12889
12890         * tree.c: Likewise.
12891
12892         * tree.h: Likewise.
12893
12894         * varray.c: Likewise.
12895
12896         * varray.h: Likewise.
12897
12898 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
12899
12900         * gcov.c (struct arcdata): Add hits and total, remove prob.
12901         (output_branch_counts): New.
12902         (process_args): Set output_branch_counts if -c.
12903         (calculate_branch_probs): Store hits and total instead of
12904         percentage.
12905         (output_data): Emit counts if output_branch_counts is true.
12906         * gcov.texi (Invoking Gcov): Document -c switch..
12907
12908 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
12909
12910         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
12911         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
12912
12913 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
12914
12915         * invoke.texi (C Dialect Options): Add missing builtins from
12916         c-common.c to list.
12917         * extend.texi (Other Builtins): Copy to this list.
12918
12919 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12920
12921         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
12922         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
12923         redundant bitmap.h.
12924
12925 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
12926
12927         * flow.c (compute_flow_dominators): No longer treat basic block 0
12928         or (n_basic_blocks - 1) specially.  Clear the AUX field before
12929         starting computation of doms/pdoms.  Fix initial state for pdoms.
12930
12931 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12932
12933         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
12934         match rtl.o's: added ggc.h and toplev.h
12935         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
12936         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
12937         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
12938
12939 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
12940
12941         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
12942         from HAVE_DOS_BASED_FILESYSTEM.
12943         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
12944         HAVE_DOS_BASED_FILESYSTEM.
12945         (main): Likewise.
12946         (split_directories): Only special-case DOS file names if
12947         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
12948         instead of explicit tests.  Conditionalize on !VMS.
12949         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
12950         tests.  Conditionalize on !VMS.
12951         (process_command): Only use make_relative_prefix if !VMS.
12952         (free_split_directories): Conditionalize on !VMS.
12953         (DIR_UP): Conditionalize on !VMS.
12954
12955 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12956
12957         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
12958
12959 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12960
12961         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
12962         case.
12963
12964 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
12965
12966         * invoke.texi (Environment Variables): Document relative path
12967         lookup.
12968         * gcc.c (DIR_UP): If not defined, define as "..".
12969         (standard_bindir_prefix): New static, holds target location to
12970         install binaries.
12971         (split_directories): New function to split a filename into
12972         component directories.
12973         (free_split_directories): New function, release memory allocated
12974         by split_directories.
12975         (make_relative_prefix): New function, make a relative pathname if
12976         the compiler is not in the expected location.
12977         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
12978         can figure out an appropriate prefix from argv[0].
12979         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
12980         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
12981         STANDARD_BINDIR_PREFIX.
12982
12983 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12984
12985         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
12986         in c4x.c.
12987         * config/c4x/c4x.h: Moved prototypes to c4x.h.
12988         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
12989         c4x_secondary_memory_needed) Delete.
12990         (fp_zero_operand): Add mode argument.
12991
12992 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
12993
12994         * reload1.c (reload_reg_free_for_value_p): Don't use a register
12995         that is in reload_reg_used.
12996
12997 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
12998
12999         * config/arm/arm-protos.h: New file: Prototypes for functions
13000         defined in arm.c and pe.c.
13001         * config/arm/arm.h: Fix compile time warnings.
13002         * config/arm/arm.c: Fix compile time warnings.
13003         * config/arm/pe.h: Fix compile time warnings.
13004         * config/arm/aout.h: Fix compile time warnings.
13005
13006 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
13007
13008         * config/m32r/m32r-protos.h: New file: Prototypes for functions
13009         defined in m32r.c
13010
13011         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
13012         Add support for subtargets.
13013         Add prototypes for new predicates.
13014         Add scheduling macros.
13015
13016         * config/m32r/m32r.c: Fix compile time warnings.
13017         (int8_operand): New predicate function.
13018         (reg_or_cmp_int16_operand): New predicate function.
13019         (extend_operand): New predicate function.
13020         (m32r_adjust_code): New scheduling function.
13021         (m32r_adjust_priorty): New scheduling function.
13022         (m32r_sched_init): New scheduling function.
13023         (m32r_sched_reorder): New scheduling function.
13024         (m32r_sched_variable_issue): New scheduling function.
13025         (direct_return): New codegen function.
13026         (m32r_not_same_reg): New rtl testsing function.
13027
13028         * config/m32r/m32r.md: Fix compile time warnings.
13029         Add support for pre decrement and post increment memory
13030         references.
13031         Add S<cc> patterns.
13032         Add fabs patterns.
13033
13034 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13035
13036         * global.c (EXECUTE_IF_CONFLICT): Don't define.
13037         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
13038         (find_reg): Likewise.
13039
13040 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
13041
13042         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
13043         to avoid assembler errors.
13044
13045 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
13046
13047         * config/v850/v850-protos.h: New file: Prototypes for functions
13048         defined in v850.c
13049         * config/v850/v850.h: Move prototypes to v850-protos.h
13050         * config/v850/v850.c: Move prototypes to v850-protos.h
13051         * config/v850/v850.md: Fix compile time warnings.
13052
13053         * config/fr30/fr30-protos.h: New file: Prototypes for functions
13054         defined in fr30.c
13055         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
13056         * config/fr30/fr30.c: Fix compile time warnings.
13057         * config/fr30/fr30.md: Fix compile time warnings.
13058
13059 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
13060
13061         * tree.h (get_containing_scope): Declare it.
13062         * tree.c (get_containing_scope): New fucntion.
13063         (decl_function_context): Use it.
13064         * toplev.c (rest_of_compilation): Use get_containing_scope.
13065
13066 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13067
13068         * Makefile.in (rtl.o): Depend on toplev.h.
13069
13070 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
13071
13072         * cse.c (delete_trivially_dead_insns): Replace alloca with
13073         xmalloc/xcalloc.
13074         * except.c (update_rethrow_references): Likewise.
13075         (init_eh_nesting_info): Likewise.
13076         * function.c (identify_blocks): Likewise.
13077         * gcse.c (dump_hash_table): Likewise.
13078         * graph.c (print_rtl_graph_with_bb): Likewise.
13079         * loop.c (combine_movables): Likewise.
13080         (move_movables): Likewise.
13081         (count_loop_regs_set): Likewise.
13082         (strength_reduce): Likewise.
13083         * profile.c (compute_branch_probabilities): New function, split
13084         out from ...
13085         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
13086         * regclass.c (regclass): Likewise.
13087         * regmove.c (regmove_optimize): Likewise.
13088         * toplev.c (compile_file): Likewise.
13089         (main): Don't mess with the stack rlimit.
13090
13091 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
13092
13093         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
13094         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
13095
13096 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
13097
13098         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
13099
13100 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
13101
13102         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
13103         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
13104         macro expansion.
13105
13106 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
13107
13108         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
13109
13110 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
13111
13112         * gcse.c (post_dominators): Kill.
13113         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
13114         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
13115         pass in a pdom array since we do not need pdoms.
13116         * haifa-sched.c (schedule_insns): Similarly.
13117         * flow.c (compute_dominators): Remove dead function.
13118         (compute_flow_dominators): Do not compute doms or pdoms if the
13119         caller does not request them.  Split up loop to build doms and
13120         pdoms.  Use a worklist to compute doms and pdoms.
13121         * basic-block.h (compute_dominators): Remove prototype.
13122
13123 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
13124
13125         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
13126         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
13127         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
13128         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
13129         (cant_move, fed_by_spec_load, is_load_insn): Remove.
13130         (schedule_region): Remove unused variable.
13131         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
13132
13133 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
13134
13135         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
13136         (update_equiv_regs): Likewise.
13137         (block_alloc): Likewise.
13138         * reg-stack.c (reg_to_stack): Likewise.
13139         (convert_regs_2): Likewise.
13140         * reload1.c (reload_as_needed): Likewise.
13141
13142 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
13143
13144         * Makefile.in (dbxout.o): Depend on ggc.h.
13145         (dwarf2out.o): Likewise.
13146         (xcoffout.o): Likewise.
13147         * dbxout.c: Include ggc.h.
13148         (dbxout_init): Register lastfile as a root.
13149         * dwarf2out.c: Include ggc.h.
13150         (dwarf2out_line): Register lastfile as a root.
13151         * xcoffout.c: Include ggc.h.
13152         (xcoffout_source_line): Register xcoff_lastfile as a root.
13153
13154 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
13155
13156         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
13157
13158 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
13159
13160         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
13161         defined.
13162         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
13163
13164 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13165
13166         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
13167         (EXECUTE_IF_CONFLICT): Likewise.
13168         (ALLOCNO_LIVE_P): Avoid signed division.
13169         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
13170         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
13171         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
13172
13173 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
13174
13175         * haifa-sched.c (schedule_block): Don't crash if there's no
13176         next insn for an interblock movement.
13177         (add_branch_dependences): Don't allow clobber insns to move either.
13178
13179 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
13180
13181         * i386.c (split_xf): New.
13182         * i386-protos.h: Declare it.
13183         * i386.md (movxf_1): Add general regs alternatives.
13184         (movxf_1+1): New splitter for same.
13185
13186 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
13187
13188         * function.c (purge_addressof_1): Add missing return values.
13189
13190 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
13191
13192         * function.c (is_addressof): New function.  Returns true if
13193         the given piece of RTL is an ADDRESSOF.
13194         (purge_addressof_1): Make boolean.  Return false if the
13195         ADDRESSOFs could not be purged.
13196         (purge_addressof): If ADDRESSOFs could not be purged from the
13197         notes attached to an insn, remove the offending note(s),
13198         unless they are attached to a libcall.
13199
13200 1999-11-05  Andreas Jaeger  <aj@suse.de>
13201
13202         * genoutput.c (null_operand =): Initialize all fields.
13203
13204         * errors.h: Add extern to prototypes.
13205
13206 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
13207
13208         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
13209         * configure: Rebuilt.
13210
13211 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13212
13213         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
13214         (mirror_conflicts): New function.
13215         (global_alloc): Call it.
13216         (expand_preferences): Remove redundant CONFLICTP test.
13217         (find_reg, dump_conflicts): Likewise.
13218         (prune_preferences): Process conflicts one word at a time.
13219
13220 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
13221
13222         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
13223         instead of an explicit loop.
13224
13225 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
13226
13227         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
13228         if REG_RETVAL check succeeds, then put classp in src_elt.
13229
13230 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
13231
13232         * function.c (pad_to_arg_alignment): Only update argument_pad
13233         if the argument's alignment is greater than STACK_BOUNDARY.
13234
13235 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
13236
13237         * bitmap.h (BITMAP_XFREE): New.
13238         * flow.c (life_analysis): Use it.
13239         (life_analysis_1): Free blocks.
13240
13241         * combine.c (undo_commit): New.
13242         (try_combine): Use it.  Don't zap undobuf.undos.
13243         (combine_instructions): Don't zap undobuf.undos; free the
13244         undobuf.frees list.
13245
13246         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
13247
13248         * stmt.c (cost_table_): New.
13249         (estimate_case_costs): Use it instead of xmalloc.
13250
13251         * toplev.c (compile_file): Reuse dumpname memory instead
13252         of strdup'ing it.
13253
13254 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
13255
13256         * reg-stack.c (convert_regs_1): Initialize target_stack->top
13257         after verifying an EH edge.
13258
13259         * haifa-sched.c (init_rgn_data_dependences): Correctly
13260         size bb_pending_lists_length when zeroing.
13261
13262 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
13263
13264         * function.c (diddle_return_value): New.
13265         (expand_function_end): Use it.
13266         * stmt.c (expand_null_return): Likewise.
13267         (expand_value_return): Likewise.
13268
13269         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
13270
13271         * reload1.c (reload): Don't remove return value clobbers.
13272
13273 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
13274
13275         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
13276
13277 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
13278
13279         * cse.c (cse_main): Use xmalloc, not alloca.
13280         (cse_basic_block): Likewise.
13281         * local-alloc.c (local_alloc): Likewise.
13282
13283 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
13284                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13285
13286         * rtl.c: Include toplev.h.
13287         (fatal): Remove declaration.
13288
13289 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
13290
13291         * haifa-sched.c (schedule_block): Fix thinko.
13292
13293 1999-11-03  James McKelvey <mckelvey@fafnir.com>
13294
13295         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
13296         S_IR* defined values
13297
13298 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
13299
13300         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
13301         call `malloc' instead.
13302
13303 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
13304
13305         * flags.h (flag_renumber_insns): Declare.
13306         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
13307         renumbering table.
13308         * rtl.h (renumber_insns): Change prototype.
13309         * toplev.c (flag_renumber_insns): Define.
13310         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
13311
13312 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
13313
13314         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
13315         and fpsqrtd.  Use them and create fdiv function unit to more
13316         accurately represent fpu sqrt pipeline semantics on UltraSparc.
13317         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
13318
13319 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
13320
13321         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
13322         3 on UltraSparc.
13323         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
13324         insn into ready list, do not use just a raw swap.
13325
13326 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
13327
13328         * rtl.h (renumber_insns): New function.
13329         (remove_unnecessary_notes): Likewise.
13330         * emit-rtl.c (renumber_insns): Define.
13331         (remove_unncessary_notes): Likewise.
13332         * toplev.c (rest_of_compilation): Remove dead code.
13333         Use renumber_insns and remove_unncessary_notes.
13334
13335         * gcse.c (struct null_pointer_info): New type.
13336         (get_bitmap_width): New function.
13337         (current_block): Remove.
13338         (nonnull_local): Likewise.
13339         (nonnull_killed): Likewise.
13340         (invalidate_nonnull_info): Take a null_pointer_info as input.
13341         (delete_null_pointer_checks_1): New function.
13342         (delete_null_pointer_checks): Use it.
13343
13344         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
13345         (split_edges): Likewise.
13346         (schedule_block): Likewise.
13347         (compute_block_backward_dependencies): Likewise.
13348         (schedule_region): Likewise.
13349         (schedule_insns): Likewise.
13350
13351 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
13352
13353         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
13354         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
13355         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
13356         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
13357         * jump.c (delete_unreferenced_labels): Don't delete if
13358         LABEL_ALTERNATE_NAME is set.
13359         * print-rtl.c (print_rtx): Dump alternate name.
13360         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
13361         * rtl.h (LABEL_ALTERNATE_NAME): Define.
13362         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
13363         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
13364
13365 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13366
13367         * fix-header.c (recognized_extern, recognized_function): Constify
13368         a char*.
13369
13370         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
13371         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
13372         (compute_available): Remove unused variable `last'.
13373         (compute_nearerout): Remove unused variable `temp_bitmap'.
13374         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
13375         Remove unused variable `x'.
13376
13377         * scan.h (recognized_function, recognized_extern): Constify a
13378         char*.
13379
13380         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
13381
13382 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13383
13384         * varasm.c (decode_rtx_const): Use XSTR to access the string
13385         of a SYMBOL_REF.
13386
13387 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
13388
13389         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
13390
13391 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13392
13393         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
13394
13395 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
13396
13397         * pa.c (ireg_operand): New function.
13398         * pa.h (PREDICATE_CODES): Handle ireg_operand.
13399         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
13400         Fix out of date comment.
13401
13402         * pa.md (negdi2): Turn into expander + anonymous pattern.
13403
13404         * reload.c (find_reloads): Fix typos in recent change.
13405
13406         * dwarf2out.c: Do not include ctype.h.
13407
13408 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13409
13410         * regclass.c (record_reg_classes): Always use may_move_cost when
13411         seeing how operand fits with various register classes.
13412
13413 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
13414
13415         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
13416         * toplev.c: Revert Nov 1 13:22 change.
13417
13418 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
13419
13420         * config/pa/pa.md (height reduction patterns): Add checks for
13421         overlapping operands to avoid semantic-destroying splits for
13422         height reduction patterns.
13423
13424 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13425
13426         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
13427         have been an hyphen, fixed.
13428         * configure: Rebuilt.
13429
13430 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
13431
13432         * config/arm/tpe.h: Add prototypes for exported functions.
13433         * config/arm/pe.c: Fix compile time warnings.
13434         * config/arm/semi.h: Fix compile time warnings.
13435         * config/arm/arm.c: Fix compile time warnings.
13436         * config/arm/arm.h: Fix compile time warnings.
13437         * config/arm/arm.md: Fix compile time warnings.
13438         * config/arm/thumb.c: Fix compile time warnings.
13439         * config/arm/thumb.h: Fix compile time warnings.
13440         * config/arm/thumb.md: Fix compile time warnings.
13441
13442 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
13443
13444         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
13445         detection code
13446
13447         * unroll.c (unroll_loop): Remove LOOP notes when loop is
13448         completely unrolled.
13449
13450 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13451
13452         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
13453
13454 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
13455
13456         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
13457         * rtl.h (rtx_equal_p): Move prototype.
13458         * rtl.c (rtx_equal_function_value_matters): Move from
13459         rtlanal.c
13460         (rtx_equal_p): Likewise.
13461         * rtlanal.c (rtx_equal_function_value_matters): Delete.
13462         (rtx_equal_p): Likewise.
13463
13464 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
13465
13466         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
13467         ! HAS_INIT_SECTION.
13468
13469 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
13470
13471         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
13472
13473         * pa.h (ADDR_VEC_ALIGN): Define.
13474
13475         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
13476         notes when presented with "if (foo) break; end_of_loop" and
13477         the break sequence gets moved out of the loop.
13478
13479         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
13480         Remove explicit zero initializations of entries within MAP.
13481
13482 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
13483
13484         * reg-stack.c (convert_regs_1): Handle EH edges specially.
13485
13486 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
13487
13488         * bitmap.h (BITMAP_XMALLOC): New macro.
13489         * flow.c (CLEAN_ALLOCA): Remove.
13490         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
13491         (life_analysis): Likewise.
13492         (update_life_info): Don't use CLEAN_ALLOCA.
13493         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
13494         (calculate_global_regs_live): Likewise.
13495         (print_rtl_with_bb): Likewise.
13496         (verify_flow_info): Likewise.
13497         * global.c (global_alloc): Likewise.
13498         (global_conflicts): Likewise.
13499         * integrate.c (save_for_inline_nocopy): Likewise.
13500         (expand_inline_function): Likewise.
13501         * jump.c (jump_optimize_1): Likewise.
13502         (duplicate_loop_exit_test): Likewise.
13503         (thread_jumps): Likewise.
13504         * loop.c (loop_optimize): Likewise.
13505         (combine_givs): Likewise.
13506         (recombine_givs): Likewise.
13507         * reorg.c (dbr_schedule): Likewise.
13508         * unroll.c (unroll_loop): Likewise.
13509
13510         * combine.c (combine_instructions): Use xmalloc instead of alloca.
13511
13512 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
13513
13514         * toplev.c (rest_of_compilation): Don't optimize the CFG
13515         when rebuilding, just before dbr.
13516
13517 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13518
13519         * output.h (assemble_end_function, assemble_destructor,
13520         assemble_constructor, assemble_gc_entry, assemble_global,
13521         assemble_label, output_constant_pool) Constify a char*.
13522
13523         * varasm.c (assemble_destructor, assemble_constructor,
13524         assemble_gc_entry, assemble_end_function, assemble_global,
13525         assemble_label, output_constant_pool): Likewise.
13526
13527 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
13528
13529         * config/arm/thumb.c (thumb_expand_prologue): Add comments
13530         explaining what is goin on in this function.
13531
13532 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13533
13534         * regclass.c (record_reg_classes): In matching case, recompute
13535         costs since the direction of movement is different.
13536
13537 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
13538
13539         * resource.c (mark_target_live_regs): For unconditional branches,
13540         the resources found at the branch target should be added to the
13541         resources found so far, not intersected.
13542
13543 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
13544
13545         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
13546         old cpp's.
13547         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
13548         (sys/mman.h): Include this file only if #HAVE_MMAP.
13549         (run_compiles): Initialize `esac_fmt' with one old KR string, not
13550         with automatically concatenated ANSI strings.
13551
13552 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
13553
13554         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
13555         (DIV_ROUND_UP): Robustify.
13556         (ggc_recalculate_in_use_p): New function.
13557         (release_pages): Don't inline it.
13558         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
13559         outer contexts.
13560         (ggc_pop_context): Use ggc_recalculate_in_use_p.
13561         (clear_marks): Always save in_use_p.
13562         (sweep_pages): Use ggc_recalculate_in_use_p.
13563         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
13564         Release pages before counting statistics.
13565
13566 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
13567
13568         * toplev.c (rest_of_compilation): Fix thinko in this change:
13569
13570         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
13571
13572         (rest_of_compilation): If inside an inlined external function,
13573         pretend we are just being declared.
13574
13575 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
13576
13577         * flow.c (calculate_global_regs_live): Fix thinko.
13578
13579         * integrate.c (expand_inline_function): Fix bugs in previous
13580         change from Oct 28, 1999.
13581
13582 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
13583
13584         * stmt.c (expand_value_return): Fix typo in this change:
13585
13586         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13587         (expand_value_return): Correctly convert VAL when promoting function
13588         return; support RETURN_REG being a PARALLEL.
13589
13590 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
13591
13592         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
13593
13594 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13595
13596         * hard-reg-set.h (reg_names): Constify a char*.
13597
13598         * regclass.c  (reg_names): Likewise.
13599
13600         * regs.h (reg_names): Likewise
13601
13602         * a29k/a29k.c (reg_names): Delete declaration.
13603
13604         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
13605
13606         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
13607         arc_output_function_epilogue): Likewise.
13608
13609         * elxsi/elxsi.c (reg_names): Likewise.
13610
13611         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
13612
13613         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
13614         Likewise.
13615
13616         * m88k/m88k.c (output_function_profiler): Likewise.
13617
13618         * sparc/sparc.c (sparc_flat_output_function_prologue,
13619         sparc_flat_output_function_epilogue): Likewise.
13620
13621 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
13622
13623         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
13624         warning from -Wuninitialized and put it under -W.
13625         * function.c (uninitialized_vars_warning): Warn only when the
13626         corresponding flag is set.
13627
13628 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
13629
13630         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
13631         is nonzero and the single set does not have an elt, then assign
13632         it an elt.
13633
13634         * simplify-rtx.c: New file.
13635         * Makefile.in (OBJS): Add simplify-rtx.o
13636         (simplify-rtx.o): Add dependencies.
13637         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
13638         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
13639         (cse_gen_binary, simplify_unary_operation): Delete.
13640         (simplify_binary_operation, simplify_plus_minus): Likewise.
13641         (check_fold_consts, simplify_relation_operation): Likewise.
13642         (simplify_ternary_operation): Likewise.
13643         (delete_trivially_dead_insns): Simplify the contents of the
13644         REG_EQUAL note before trying to substitute it into the source
13645         of the reg-reg copy at the end of a libcall sequence.
13646
13647         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
13648         references/callers changed.
13649
13650         * mn10200.c (mn10200_va_arg): Force the return value into a
13651         register.
13652
13653         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
13654
13655         * cccp.c (macroexpand): Avoid out of range accesses for omitted
13656         arguments.
13657
13658 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
13659
13660         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
13661
13662 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
13663
13664         * fold-const.c (fold): Fix thinko when optimizing comparisons
13665         against -0.0.
13666
13667 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
13668
13669         * gcc.texi (Passes): Update front-end files to their current
13670         location.
13671
13672 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
13673
13674         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
13675         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
13676         (PREDICATE_CODES): Add addition_operation.
13677         * alpha-protos.h (addition_operation): Declare.
13678         (secondary_reload_class): Likewise.
13679         * alpha.c (addition_operation): New.
13680         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
13681         * alpha.md (adddi3): Turn into expander.
13682         (*lda, *adddi_2): New.
13683         (movsf, movdf patterns): Don't preference integer regs.
13684         (movsi, movdi patterns): Don't preference fp regs.
13685
13686 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
13687
13688         * genrecog.c (write_switch): Check for duplicate CODE cases.
13689
13690 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
13691
13692         * ggc-common.c: Update pre-function commentary.
13693         * ggc-page.c: Likewise.
13694         (poison): Remove.
13695         (poison_pages): Use memset directly.
13696         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
13697         (ggc_collect): Poison before sweeping.
13698         * ggc-simple.c: Update pre-function commentary.
13699         (ggc_alloc_obj): Poison non-zeroed memory.
13700
13701 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
13702
13703         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
13704         match format string, even on 64-bit hosts.
13705         * gcc-page.c (ggc_page_print_statistics): Likewise.
13706
13707 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
13708
13709         * config/i386/i386.c (ix86_cpu): Revert last patch.
13710         * config/i386/i386.h (ix86_cpu): Ditto.
13711
13712 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
13713
13714         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
13715         TYPE_SIZE, convert type of result to sizetype.
13716
13717 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
13718
13719         * flow.c (count_or_remove_death_notes): Equate NULL with the
13720         universal set.
13721
13722         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
13723         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
13724         dbr_schedule.
13725
13726         * i386.c (pic_label_no): Delete.
13727         (ix86_attr_length_default): Don't use single_set to peek
13728         inside a parallel.
13729
13730         * recog.c (peephole2_optimize): Allow recog_next_insn to index
13731         the first insn after bb->end.
13732         * i386.md (push mem peeps): Scratch is live after evaluation
13733         of the memory.
13734         (cmp mem peep): Similarly.
13735
13736 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
13737
13738         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
13739         * function.c (pad_to_arg_alignment): Add missing braces.
13740
13741 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13742
13743         * alpha/alpha-protos.h (literal_section): Add prototype.
13744         (alpha_need_linkage, alpha_start_function,alpha_end_function):
13745         Constify a char*.
13746
13747         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
13748         prototype.
13749         (alpha_start_function, alpha_end_function, float_strings,
13750         alpha_need_linkage): Constify a char*
13751
13752         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
13753
13754         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
13755
13756         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13757
13758         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
13759
13760 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13761
13762         * flow.c (debug_flow_info): Add prototype.
13763
13764         * gcc.c (main): Likewise.
13765
13766         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
13767         Likewise.
13768
13769         * reload1.c (failed_reload, set_reload_reg): Likewise.
13770
13771         * mips-tfile.c (main): Likewise.
13772         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
13773         with ATTRIBUTE_NORETURN.
13774
13775 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
13776
13777         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
13778         DECL is not a memory ref.
13779
13780 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
13781
13782         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
13783         * config/i386/i386.c (ix86_cpu): Add extern attribute.
13784
13785 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
13786
13787         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
13788         * config/mips/elf64.h: ditto.
13789
13790 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
13791
13792         * expr.c (emit_push_insn): New argument alignment_pad.
13793         Update all callers.  Adjust stack pointer based on alignment pad.
13794         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
13795         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
13796         (locate_and_pad_parm): New argument alignment_pad.  Update all
13797         callers.
13798         * expr.h (emit_push_insn): Update prototype.
13799         (locate_and_pad_parm): Update prototype.
13800         * calls.c (arg_data):  Add new field alignment_pad.
13801         (initialize_argument_information): Initialize alignment_pad.
13802
13803 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
13804
13805         * except.c (free_eh_nesting_info): Free the info itself.
13806         * function.c (free_after_compilation): Don't free NULL.
13807         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
13808         (pre_edge_insert): Free inserted.
13809         * stmt.c (free_stmt_status): Don't free NULL.
13810
13811 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
13812
13813         * gcov.c (DIR_SEPARATOR): Provide default.
13814         (output_data): Add test for MS-DOS format absolute filename.
13815         (fancy_abort): Correct program name.
13816         (open_files): Open all files in binary mode.
13817         * libgcc2.c (__bb_exit_func): Likewise.
13818
13819         * profile.c (init_branch_prob): Specify binary when opening files.
13820
13821         * flags.h (flag_unwind_tables): New decl.
13822         * toplev.c (flag_unwind_table): New definition.
13823         (f_options): Add -funwind-tables.
13824         (decode_g_option): Clarify warning when unknown -g option is given.
13825         (rest_of_compilation): If inside an inlined external function,
13826         pretend we are just being declared.
13827
13828         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
13829         (dwarf2out_frame_finish): Likewise.
13830
13831 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
13832
13833         * fold-const.c (merge_ranges): If not in0, but in1, handle
13834         upper bounds equal like subset case.
13835
13836 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
13837
13838         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
13839         passed in a register but moved to the stack.
13840
13841 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
13842
13843         * gcc.c (pass_exit_codes, greatest_status): New variables.
13844         (struct option_map): Add entry for "--pass-exit-codes".
13845         (execute): Update greatest_status if error.
13846         (display_help): Add documentation for -pass-exit-codes.
13847         (process_command): Handle -pass-exit-codes.
13848         (main): Look at pass_exit_codes and greatest_status on call to exit.
13849
13850 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13851
13852         * reload.c (find_reloads): Refine test for no input reload
13853         case to not includes reloads emitted after insn.
13854
13855         * function.c (find_temp_slots_from_address): Handle sum involving
13856         a register that points to a temp slot.
13857         (update_temp_slot_address): Make recursive call if both old and
13858         new are PLUS with a common operand.
13859         * calls.c (expand_call): Mark temp slot for result as having
13860         address taken.
13861
13862         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
13863
13864         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
13865         component as well as "BINUTILS".
13866
13867         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
13868         * integrate.c (copy_rtx_and_substitute): Likewise.
13869         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
13870         All callers changed.
13871         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
13872
13873         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
13874         gdb extensions, write size of type; also be more consistent
13875         in using references when this is a subtype.
13876
13877         * pa.md (extv, extzv, insv): Use define_expand to reject constant
13878         that is out of range.
13879
13880         * loop.c (unknown_constant_address_altered): New variable.
13881         (prescan_loop): Initialize it.
13882         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
13883         (invariant_p, case MEM): Remove handling for volatile and readonly;
13884         check new variable if readonly.
13885         (check_dbra_loop): Chdeck unknown_constant_address_altered.
13886
13887         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
13888         (addr_affects_sp_p): Removed from note_mem_written and only
13889         define #ifdef AUTO_INC_DEC.
13890
13891         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
13892
13893         * regclass.c (record_reg_classes): Properly handle register move
13894         directions.
13895
13896         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
13897         Don't think valid if both operands are invalid.
13898         (struct constant_descriptor): New field RTL.
13899         (mark_const_hash_entry): Mark it.
13900         (record_constant{,_rtx}): Initialize it.
13901         (output_constant_def): Allocate RTL in permanent obstack and
13902         save in table.
13903         ({record,compare}_constant_1): Modes must match for
13904         CONSTRUCTOR of ARRAY_TYPE.
13905
13906         * c-common.h (initializer_constant_valid_p): Delete decl from here.
13907         * output.h (initializer_constant_valid_p): Move decl to here.
13908         * c-common.c (initializer_constant_valid_p): Delete function from here.
13909         * varasm.c (initializer_constant_valid_p): Move function to here.
13910
13911         * tree.h (STRIP_SIGN_NOPS): New macro.
13912         * fold-const.c (optimize_minmax_comparison): New function.
13913         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
13914         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
13915         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
13916         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
13917         widening conversions.
13918         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
13919         to look at size of mode, not precision of type; also add missing cases.
13920         (optimize_bit_field_compare, decode_field_reference): Don't try to
13921         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
13922
13923         * dwarf2out.c (ctype.h): Include.
13924         (dwarf2out_set_demangle_name_func): New function.
13925         (size_of_line_info): Deleted.
13926         (output_line_info): Compute size of line info table from difference
13927         of labels.
13928         (base_type_die, add_name_attribute): Call demangle function, if any.
13929         (field_byte_offset): Use bits per word for variable length fields.
13930         (gen_array_type_die): Add array name.
13931         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
13932         (dwarf2out_add_library_unit_info): New function.
13933
13934         * explow.c (set_stack_check_libfunc): New function.
13935         (stack_check_libfunc): New static variable.
13936         (probe_stack_range): Allow front-end to set up a libfunc to call.
13937
13938         * combine.c (simplify_comparison): When making comparison in wider
13939         mode, check for having commuted an AND and a SUBREG.
13940         (contains_muldiv): New function.
13941         (try_combine): Call it when dividing a PARALLEL.
13942         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
13943         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
13944         a PLUS.
13945         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
13946         use one of the CLOBBERs instead.
13947         (if_then_else_cond): If comparing against zero, just return thing
13948         being compared.
13949
13950         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
13951         Don't generate shifts and subtract if have conditional arithmetic.
13952
13953         * rtl.h (delete_barrier): New declaration.
13954         * jump.c (jump_optimize): Set up to handle conditional call.
13955         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
13956         (delete_barrier): New function.
13957
13958         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
13959
13960         * recog.c (nonmemory_operand): Accept ADDRESSOF.
13961
13962         * tree.c (build_type_attribute_variant): Push to obstack of
13963         ttype around type_hash_canon call.
13964
13965         * expr.c (placeholder_list): Move decl to file scope.
13966         (expand_expr): Don't force access to volatile just because its
13967         address is taken.
13968         If ignoring reference operations, just expand the operands.
13969         (expand_expr, case COMPONENT_REF): Propagate
13970         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
13971         Refine test for using bitfield operations vs pointer punning.
13972         (expand_expr, case CONVERT_EXPR): If converting to
13973         BLKmode UNION_TYPE from BLKmode, just return inner object.
13974         Use proper mode in store_field call.
13975         Properly set sizes of object to store and total size in store_field
13976         call for convert to union.
13977         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
13978         memory (like for ADDR_EXPR).  Also, don't put constant in register if
13979         we'll want it in memory.
13980         (readonly_fields_p): New function.
13981         (expand_expr, case INDIRECT_REF): Call it if LHS.
13982         (expand_assignment): Handle a RESULT_DECL where
13983         DECL_RTL is a PARALLEL.
13984         (do_jump, case WITH_RECORD_EXPR): New case.
13985         (get_inner_reference): Always go inside a CONVERT_EXPR
13986         and NOP_EXPR if both modes are the same.
13987         (store_field): Use bitfield operations if size of bitsize is not same
13988         as size of RHS's type.
13989         Check for bitpos not a multiple of alignment in BLKmode case.
13990         Do block move in largest possible alignment.
13991         (store_constructor): Set BITSIZE to -1 for variable size and properly
13992         in case of array of BLKmode.
13993         (expand_expr_unaligned): New function.
13994         (do_compare_and_jump): Call it.
13995
13996         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
13997         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
13998         does not include 'o'.
13999
14000         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
14001         both SET_DEST and SET_SRC reference a virtual register.
14002         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
14003
14004         * integrate.c (expand_inline_function): Handle case of setting
14005         virtual stack vars register (from built in setjmp); when parameter
14006         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
14007         (subst_constant): Add new parm, MEMONLY.
14008         (expand_inline_function, integrate_parm_decls): Pass new parm.
14009         (integrate_decl_tree): Likewise.
14010         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
14011         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
14012         (copy_rtx_and_substitute, case SET): Add explicit calls to
14013         copy_rtx_and_substitute for both sides.
14014
14015         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
14016         constraints.
14017         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
14018         within INDEX_TYPE, instead of before.
14019         (fixup_gotos): Use f->target_rtl, not the next insn,
14020         since latter may be from a later fixup.
14021         (expand_value_return): Correctly convert VAL when promoting function
14022         return; support RETURN_REG being a PARALLEL.
14023         (expand_return): When checking for result in regs and having
14024         cleanup, consider PARALLEL in DECL_RTL as being in regs.
14025
14026 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
14027
14028         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
14029         last_nominal_fname): Mark const.
14030         (struct include_hash: name, nshort, control_macro): Mark
14031         const.
14032         (struct macrodef: symnam): Mark const.
14033         (struct if_stack: fname): Mark const.
14034         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
14035         (IStable): New character-syntax array which encompasses all
14036         the old is_foo arrays.
14037         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
14038         is_space): New macros for interrogating IStable.
14039         (check_macro_name): Kill last argument.  All callers changed.
14040
14041         * cppinit.c (initialize_char_syntax): Delete.
14042         (is_idchar, is_idstart, is_hor_space, is_space,
14043         trigraph_table): Delete.
14044         (IStable): New.  Initialize with clever macros to avoid
14045         information duplication.
14046         (builtin_array): Table of builtins to get rid of explicit list
14047         in initialize_builtins.
14048         (initialize_builtins): Use builtins_array.
14049         (cpp_start_read): Call init_IStable, and set IStable['$'] if
14050         opts->dollars_in_ident.
14051
14052         * cppexp.c: Change all refs to is_xyz[] arrays to use new
14053         is_xyz() macros.
14054         (cpp_parse_expr): Avoid 'format string is not constant'
14055         warning. Use ISGRAPH to identify printable chars.
14056         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
14057         is_xyz() macros.
14058         (read_and_prescan): Map trigraphs to chars with open-coded
14059         if-else-if-... sequence, not a lookup table.
14060         * cpphash.c: Change all refs to is_xyz[] arrays to use new
14061         is_xyz() macros.
14062         * cpplib.c: Change all refs to is_xyz[] arrays to use new
14063         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
14064         (check_macro_name): Remove ability to report an invalid
14065         assertion name, which is never used.
14066         (do_line): Constify a couple of char *'s.
14067         * cppmain.c (main): Call cpp_cleanup before returning.
14068
14069 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
14070
14071         * ggc.h (struct ggc_statistics): New type.
14072         (ggc_get_size): New function.
14073         (ggc_print_statistics): Likewise.
14074         * ggc-common.c (ggc_stats): New variable.
14075         (ggc_mark_rtx_children): Keep statistics.
14076         (ggc_mark_tree_children): Likewise.
14077         (ggc_print_statistics): New function.
14078         * ggc-page.c (struct globals): Add bytes_mapped field.
14079         (alloc_anon): Update it.
14080         (release_pages): Likewise.
14081         (ggc_get_size): New function.
14082         (ggc_page_print_statistics): New function.
14083         * ggc-simple.c (ggc_get_size): New function.
14084
14085 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
14086
14087         * flow.c (propagate_block): When the last reference to a label
14088         before an ADDR_VEC is deleted because the reference is a dead
14089         store, delete the ADDR_VEC.
14090
14091 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
14092
14093         * resource.c (find_free_register): Don't use the frame pointer
14094         if frame_pointer_needed.
14095
14096 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
14097
14098         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
14099         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
14100
14101         * config/i960/i960.c (i960_va_start): New locals base, num.
14102         Use INDIRECT_REF instead of ARRAY_REF on valist.
14103         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
14104
14105 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
14106
14107         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
14108
14109 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
14110
14111         * tree.def (PLACEHOLDER_EXPR): Update comments.
14112
14113 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14114
14115         * c-common.c (check_format_info): Avoid non-literal format string
14116         warnings when `first_arg_num' is zero.
14117
14118 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14119
14120         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
14121
14122 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
14123
14124         * arm.md (casesi_insn): Add a clobber of the condition code
14125         register.
14126
14127 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
14128
14129         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
14130         used by both cc1 and cc1plus.
14131
14132 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
14133
14134         * config/arm/arm.c: Initialise arm_structure_size_boundary to
14135         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
14136         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
14137         to the value 32 if it has not already been defined.
14138         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
14139         Override definition in arm.h with a value of 8.
14140
14141 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
14142
14143         * c-pragma.c (push_alignment): Don't check the return value
14144         of xmalloc.
14145
14146 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
14147
14148         * sparc.h (ADJUST_COST): Fix thinko.
14149
14150 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
14151
14152         * cccp.c (rescan): Fixed obp pointer handling around call to
14153         check_expand subroutine.
14154
14155 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
14156
14157         * gcse.c (delete_null_pointer_checks): Only record non-null info
14158         for pseudos when examining stores.
14159
14160         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
14161         splitters for these patterns.  Use "#" for output templates.
14162         (addsi3_carryin_shift): New pattern.
14163
14164 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
14165
14166         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
14167         of the function return register into a plain REG until
14168         after function inlining is done.
14169
14170 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
14171
14172         * jump.c (jump_optimize_1): If we did cross-jumping, and
14173         the data will matter, rebuild the CFG.
14174         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
14175         not optimizing.  Don't run shorten_branches.
14176         * toplev.c (rest_of_compilation): Run shorten_branches after
14177         reg_to_stack.
14178
14179 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
14180
14181         * rtl.h (note_stores): Add additional paramter.
14182         * rtlanal.c (reg_set_p_1): Take additional paramter.
14183         (reg_set_last_1): Likewise.
14184         (reg_set_p): Adjust call to note_stores.
14185         (reg_set_last): Likewise.
14186         (note_stores): Pass data parameter to worker function.
14187         * alias.c (record_set): Take additional parameter.
14188         (init_alias_analysis): Pass it.
14189         * caller-save.c (mark_set_regs): Take additional parameter.
14190         (save_call_clobbered_regs): Pass NULL to note_stores.
14191         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
14192         parameter.
14193         (record_dead_and_set_regs_1): Likewise.
14194         (reg_dead_at_p_1): Likewise.
14195         (combine_instructions): Adjust calls to note_stores.
14196         (try_combine): Likewise.
14197         (record_dead_insn): Remove.
14198         (record_dead_and_set_regs): Adjust calls to note_stores.
14199         (reg_dead_at_p): Likewise.
14200         * cse.c (invalidate_skipped_set): Take additional parameter.
14201         (cse_check_loop_start): Likewise.
14202         (cse_check_loop_start_value): Remove.
14203         (cse_set_around_loop): Adjust calls to note_stores.
14204         * flow.c (notice_stack_pointer_modification): Take additional
14205         parameter.  Remove duplicate declaration.
14206         (record_volatile_insns): Adjust calls to note_stores.
14207         * gcse.c (record_set_info): Take additional parameter.
14208         (record_last_set_info): Likewise.
14209         (invalidate_nonnull_info): Likewise.
14210         (record_set_insn): Remove.
14211         (compute_sets): Adjust calls to note_stores.
14212         (last_set_insn): Remove.
14213         (compute_hash_table): Adjust calls to note_stores.
14214         (insert_insn_end_bb): Likewise.
14215         (delete_null_pointer_checks): Likewise.
14216         * global.c (mark_reg_store): Take additional parameter.
14217         (mark_reg_clobber): Likewise.
14218         (reg_becomes_live): Likewise.
14219         (global_conflicts): Adjust calls to note_stores.
14220         (build_insn_chain): Likewise.
14221         * integrate.c (note_modified_parmregs): Take additional parameter.
14222         (mark_stores): Likewise.  Make it static.
14223         (save_for_inline_nocopy): Adjust calls to note_stores.
14224         (try_constants): Likewise.
14225         * integrate.h (mark_stores): Remove declaration.
14226         * jump.c (mark_modified_reg): Take additional parameter.
14227         (thread_jumps): Adjust calls to note_stores.
14228         * local-alloc.c (validate_equiv_mem_from_store): Take additional
14229         parameter.
14230         (no_equiv): Likewise.
14231         (reg_is_set): Likewise.
14232         (validate_equiv_mem): Adjust calls to note_stores.
14233         (update_equiv_regs): Likewise.
14234         (block_alloc): Likewise.
14235         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
14236         (note_addr_stored): Take additional parameter.
14237         (note_set_pseudo_multiple_uses): Likewise.
14238         (record_initial): Likewise.
14239         (prescan_loop): Adjust calls to note_stores.
14240         (strength_reduce): Likewise.
14241         (check_dbra_loop): Likewise.
14242         * regmove.c (flags_set_1): Take additional paramter.
14243         (mark_flags_life_zones): Adjust calls to note_stores.
14244         * reload1.c (mark_not_eliminable): Take additional parameter.
14245         (forget_old_reloads_1): Likewise.
14246         (reload_cse_invalidate_rtx): Likewise.
14247         (reload_cse_check_clobber): Likewise.
14248         (reload_combine_note_store): Likewise.
14249         (move2add_note_store): Likewise.
14250         (reload): Adjust calls to note_stores.
14251         (reload_as_needed): Likewise.
14252         (emit_reload_insns): Likewise.
14253         (reload_cse_regs_1): Likewise.
14254         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
14255         (reload_combine): Adjust calls to note_stores.
14256         * resource.c (update_live_status): Take additional paramter.
14257         (mark_target_live_regs): Adjust calls to note_stores.
14258         * stupid.c (find_clobbered_regs): Take additional parameter.
14259         (stupid_life_analysis): Adjust calls to note_stores.
14260
14261 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
14262
14263         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
14264         definition.
14265
14266         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
14267         definition.
14268
14269         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
14270         of the variable arm_structure_size_boundary.
14271
14272 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
14273
14274         * alias.c (init_alias_analysis): Allocate reg_known_value and
14275         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
14276         and reg_seen.
14277         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
14278         * cse.c (cse_main): Call end_alias_analysis.
14279         * haifa-sched.c (schedule_insns): Likewise.
14280         * local-alloc. (update_equiv_regs): Likewise.
14281         * reload1.c (reload_cse_regs): Likewise.
14282
14283 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14284
14285         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
14286         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
14287         mapping from MASK_FPU.
14288
14289 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
14290
14291         * sparc.md (call): Don't bound structure return size to 0xfff.
14292
14293 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
14294
14295         * resource.c (mark_target_live_regs): Check that the target
14296         insn wasn't created after compute_bb_for_insn.
14297
14298 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
14299
14300         * ggc-page.c (poison_pages): Don't be overzealous.
14301
14302 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
14303
14304         * alias.c: Update comments for ADDRESS.
14305         (nonlocal_reference_p): Look inside the ADDRESS to determine if
14306         it is a local memory reference.
14307
14308         * c-typeck.c (build_function_call): Check that the built-in
14309         function is of class BUILT_IN_NORMAL before trying to recongize
14310         it as BUILT_IN_ABS.
14311         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
14312         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
14313
14314 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
14315
14316         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
14317         of alloca.
14318         (pre_gcse): Likewise.
14319         (hoist_expr_reaches_here_p): Likewise.
14320         (hoist_code): Likewise.
14321         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
14322         code to ...
14323         (pre_expr_reaches_here_p_work): ... here.
14324         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
14325         code to ...
14326         (expr_reaches_here_p_work): ... here.
14327
14328 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
14329
14330         * resource.c (find_basic_block): Delete.
14331         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
14332         (init_resource_info): Call compute_bb_for_insn.
14333
14334 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
14335
14336         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
14337         with already adjacent blocks, but no fallthru.
14338         (merge_blocks_move_successor_nojumps): Simplify.
14339         (debug_flow_info): New.
14340
14341         * toplev.c (rest_of_compilation): Open jump1 dump file before
14342         jump and close after, as opposed to just using dump_rtl.
14343
14344 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14345
14346         * reload.h (earlyclobber_operand_p): Declare.
14347         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
14348         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
14349         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
14350         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
14351
14352 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
14353                           Richard Henderson  <rth@cygnus.com>
14354
14355         * emit-rtl.c (emit_block_insn_before): New.
14356         (emit_block_insn_after): New.
14357         * basic-block.h: Declare them.
14358
14359         * bitmap.h: Protect from multiple inclusion.
14360
14361         * recog.c (scratch_operand): Handle VOIDmode correctly.
14362
14363         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
14364
14365         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
14366         * function.c (assign_parms): Likewise.
14367         * global.c (global_conflicts): Clarify STACK_REGS commentary.
14368
14369         * reg-stack.c (max_uid): Remove.
14370         (blocks, block_begin, block_end, block_drops_in): Remove.
14371         (block_stack_in, block_out_reg_set, block_number): Remove.
14372         (struct block_info_def, BLOCK_INFO): New.
14373         (enum emit_where): New.
14374         (current_block): New.
14375         (BLOCK_NUM): Remove.
14376         (mark_regs_pat, record_label_references): Remove.
14377         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
14378         (nan): New.
14379         (goto_block_pat, print_blocks, dump_stack_info): Remove.
14380         (reg_to_stack): Simplified test for existance of fp code.  Use
14381         flow.c code.  Call shorten_branches after cross-jump opt.
14382         (check_asm_stack_operands): Renamed from record_asm_reg_life.
14383         Return false if the asm doesn't use stack regs.  Don't do life
14384         analysis on the asm.
14385         (emit_pop_insn): Replace function pointer arg `when' with
14386         enum `where'.  Update all callers.
14387         (change_stack): Likewise.  Update basic block end.
14388         (emit_swap_insn): Use current_block->head to limit reverse search
14389         for start of block.  Use emit_block_insn_after.
14390         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
14391         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
14392         structure assignment instead of bcopy.
14393         (print_stack): New.
14394         (convert_regs_entry, convert_regs_exit): New.
14395         (convert_regs_1, convert_regs_2): Split out from convert_regs.
14396         Work on basic blocks and the CFG.
14397         (convert_regs): Use them.
14398
14399         * i386.c (output_fix_trunc): Remove code for DImode input operand
14400         not at top-of-stack.
14401         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
14402         appropriate mode.
14403         (fix_truncdi_1): Allow any mode scratch.
14404
14405 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
14406
14407         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
14408         * linux.h, netbsd.h, vms.h: Not here.
14409
14410 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
14411
14412         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
14413         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
14414         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
14415         CONDITIONAL_REGISTER_USEAGE): Use them.
14416         * config/mips/mips.c (mips_move_1word,mips_move_2words,
14417         gen_conditional_branch,override_options) : Use them.
14418         * config/mips/mips.md : Use them.
14419
14420 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
14421
14422         * i386.md (zero_extendqihi2): Use SImode register name with andl.
14423
14424 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
14425
14426         * integrate.c (function_cannot_inline_p): Don't allow inlining
14427         if setjmp is used.
14428
14429 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14430
14431         * c-parse.in (cast_expr): Constify.
14432
14433         * cccp.c (special_symbol): Likewise.
14434
14435         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
14436
14437         * dwarf2out.c (base_type_die): Likewise.
14438
14439         * global.c (allocno_compare): Likewise.
14440
14441         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
14442
14443         * regclass.c (fix_register): Likewise.
14444
14445         * rtl.h (fix_register): Likewise.
14446
14447         * stupid.c (stupid_reg_compare): Likewise.
14448
14449         * toplev.c (decode_f_option): Likewise.
14450
14451         * tree.c (build_complex_type): Likewise.
14452
14453 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
14454
14455         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
14456
14457 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14458
14459         * reload.c (find_reloads): Compute mode and nregs fields of all
14460         reloads.
14461         * reload1.c (calculate_needs_all_insns): Simplify a bit.
14462         (calculate_needs): Use precomputed mode/nregs values.
14463         (allocate_reload_reg): Likewise.
14464         Break out two...
14465         (failed_reload, set_reload_reg): ... new functions.
14466         (choose_reload_regs_init): New function, mostly broken out from...
14467         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
14468         Also lose one #if 0 block.
14469
14470 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
14471
14472         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
14473         substitution.
14474
14475 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
14476
14477         * tree.h (BLOCK_TYPE_TAGS): Remove.
14478         (BLOCK_END_NOTE): Likewise.
14479         (BLOCK_LIVE_RANGE_FLAG): Likewise.
14480         (BLOCK_LIVE_RANGE_START): Likewise.
14481         (BLOCK_LIVE_RANGE_END): Likewise.
14482         (tree_block): Remove live_range_flag, live_range_var_flag, and
14483         type_tags.  Remove end_note, live_range_start, and live_range_end.
14484         (remember_end_note): Remove prototype.
14485         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
14486         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
14487         remember_end_note.
14488         * ggc-common.c (ggc_mark_tree_children): Don't mark
14489         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
14490         * integrate.c (adjust_copied_decl_tree): Remove.
14491         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
14492         * stmt.c (last_block_end_note): Remove.
14493         (init_stmt): Don't add a GC root for it.
14494         (expand_fixup): Don't set it.
14495         (remember_end_note): Remove.
14496         (expand_end_bindings): Don't set last_block_end_note.
14497
14498 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14499
14500         * reload1.c (reload_reg_free_for_value_p): Show
14501         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
14502         reloads.
14503
14504 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
14505
14506         * expmed.c (extract_bit_field): Allow for the case of non-integer
14507         objects that are smaller than a word (like SFmode on a 64-bit
14508         machine).
14509
14510         * loop.c (basic_induction_var): A non-integer variable which is
14511         being set by a paradoxical subreg is probably not a biv.
14512
14513 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14514
14515         * prefix.c (translate_name) Check for empty prefix string.
14516
14517 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
14518
14519         * Makefile.in (CPP_CROSS_NAME): New variable.
14520         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
14521         xcpp.
14522         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
14523         names of the files to be uninstalled.
14524
14525 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
14526
14527         * collect2.c (IS_DIR_SEPARATOR): Define.
14528         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
14529
14530         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
14531         functions too.
14532
14533         * haifa-sched.c (add_dependence): Update the true dependency
14534         cache the first time we add a true dependence to the LOG_LINKS chain.
14535
14536 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
14537
14538         * fold-const.c (fold): Fix comment.
14539
14540 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14541
14542         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
14543         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
14544         dbxout_start_new_source_file, dbxout_source_file,
14545         dbxout_source_line, dbxout_finish, dbxout_type_fields,
14546         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
14547         Constify a char*.
14548         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
14549         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
14550         (dbxout_block): Initialize variable `blocknum'.
14551
14552         * dbxout.h (dbxout_init, dbxout_finish,
14553         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
14554         dbxout_args, dbxout_source_line): Constify a char*.
14555
14556         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
14557         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
14558         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
14559         low_pc_attribute, high_pc_attribute, body_begin_attribute,
14560         body_end_attribute, comp_dir_attribute, sf_names_attribute,
14561         src_info_attribute, mac_info_attribute, producer_attribute,
14562         lookup_filename, generate_macinfo_entry, fundamental_type_code,
14563         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
14564         dwarfout_undef): Constify a char*.
14565         (add_incomplete_type, retry_incomplete_types): Add prototypes.
14566
14567         * dwarfout.h (dwarfout_define, dwarfout_undef,
14568         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
14569
14570 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
14571
14572         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
14573         (MULTILIB_ISA_DEFAULT): New.
14574         (MULTILIB_DEFAULTS): Use it.
14575         * config/mips/mips.c (): Remove the now unnecessary definition
14576         of MIPS_ISA_DEFAULT.
14577         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
14578         unnecessary definition.
14579
14580 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
14581
14582         * arm.md (pic_load_addr): Add constraints to operand 1.
14583
14584 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
14585
14586         * fixinc/genfixes:  Provide a means for specifying -D options to
14587         AutoGen
14588
14589 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
14590
14591         * arm.c (arm_override_options): Correct initialization of
14592         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
14593         arm_is_strong, and arm_is_6_or_7.
14594
14595         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
14596         (note_set_pseudo_multiple_uses): New function.
14597         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
14598         if a pseudo set in the loop exit is used elsewhere.
14599
14600 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
14601
14602         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
14603
14604 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
14605
14606         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
14607         a single load-address pattern.
14608
14609 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
14610
14611         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
14612         depending on whether or not line-number notes are present.
14613
14614 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14615
14616         * cccp.c (progname, file_buf, default_include, include_file,
14617         macrodef, definition, hashval, wchar_type, user_label_prefix,
14618         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
14619         expand_to_temp_buffer, is_system_include, base_name,
14620         absolute_filename, read_name_map, open_include_file,
14621         record_control_macro, check_precompiled, check_preconditions,
14622         pcfinclude, pass_thru_directive, create_definition,
14623         check_macro_name, comp_def_part, collect_expansion,
14624         check_assertion, read_token_list, assertion_install,
14625         assertion_lookup, eval_if_expression, conditional_skip,
14626         validate_else, skip_quoted_string, quote_string, macarg1,
14627         error_from_errno, install, lookup, hashf, dump_defn_1,
14628         perror_with_name, pfatal_with_name, main, trigraph_pcp,
14629         check_white_space, rescan, handle_directive, monthnames,
14630         special_symbol, do_include, remap_include_file, write_output,
14631         arglist, do_assert, do_unassert, do_line, do_error, do_once,
14632         do_ident, do_sccs, do_xifdef, skip_if_group,
14633         output_line_directive, macroexpand, macarg, change_newlines,
14634         initialize_builtins, make_definition): Constify a char*.
14635
14636         * pcp.h (stringdef): Likewise.
14637
14638 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
14639
14640         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
14641         not of pattern.
14642
14643 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
14644                           Richard Henderson  <rth@cygnus.com>
14645
14646         * alias.c: Include ggc.h.
14647         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
14648         (record_set): Verify enough room in reg_base_value.
14649         (init_alias_analysis): Allocate reg_base_value with xcalloc.
14650         Register it as a GC root.
14651         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
14652         * Makefile.in (alias.o): Depend on ggc.h.
14653
14654         * unroll.c (unroll_loop): Verify the insn before a barrier
14655         is a JUMP_INSN before checking JUMP_LABEL.
14656
14657 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14658
14659         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
14660         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
14661         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
14662         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
14663         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
14664         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
14665
14666 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14667
14668         * output.h (ctors_section, dtors_section, bss_section): Prototype.
14669
14670         * alpha/alpha-interix.h (text_section): Delete prototype.
14671         * alpha/elf.h (text_section): Likewise.
14672         * arm/linux-elf.h (text_section): Likewise.
14673         * arm/linux-telf.h (text_section): Likewise.
14674         * c4x/c4x.h (text_section): Likewise.
14675         * dsp16xx/dsp16xx.h (bss_section): Likewise.
14676         * elfos.h (text_section): Likewise.
14677         * i386/aix386ng.h (text_section): Likewise.
14678         * i386/i386-interix.h (text_section): Likewise.
14679         * i386/sco5.h (text_section): Likewise.
14680         * i386/svr3gas.h (text_section): Likewise.
14681         * nextstep.h (text_section): Likewise.
14682         * psos.h (text_section): Likewise.
14683         * ptx4.h (text_section): Likewise.
14684         * svr3.h (text_section): Likewise.
14685         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
14686
14687 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14688
14689         * final.c (peephole): Delete prototype.
14690
14691         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
14692         (pre_insert_copies): Remove unused variable `bb'.
14693
14694         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
14695         prototypes.
14696
14697         * output.h (peephole): Add prototype.
14698
14699 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
14700
14701         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
14702         -O0.
14703
14704 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
14705
14706         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
14707         for inlined declarations.
14708
14709 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
14710
14711         * arm.c (logical_binary_operator): New fucntion.
14712         * arm.h (logical_binary_operator): Declare it.
14713         (PREDICATE_CODES): Handle logical_binary_operator.
14714         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
14715         output constraints.  Add appropriate splitters.
14716         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
14717         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
14718         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
14719
14720 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14721
14722         * genoutput.c (struct operand_data): New elt eliminable.
14723         (output_operand_data): Write it.
14724         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
14725         (compare_operands): Take it into account.
14726         * recog.h (struct insn_operand_data): New elt eliminable.
14727         * reload1.c (check_eliminable_occurrences, elimination_effects): New
14728         functions.
14729         (old_asm_operands_vec, new_asm_operands_vec): Delete.
14730         (eliminate_regs): Move code that detects changes to elimination
14731         target regs into new function elimination_effects.
14732         Delete one #if 0 block.
14733         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
14734         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
14735         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
14736         Only call eliminate_regs for real operands of the insn, not for parts
14737         of its structure or parts matched by things like match_operator.
14738         Use elimination_effects and check_eliminable_occurrences.  Use
14739         copy_insn to duplicate the pattern when not in the final pass.
14740
14741 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
14742
14743         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
14744         and fld.
14745
14746 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
14747
14748         * fixinc/README: document the "mach" machine matching test
14749         * fixinc/fixfixes.c: Implement the #else/#endif label fix
14750         * fixinc/fixtests.c: Implement the #else/#endif label test
14751         * fixinc/inclhack.def: utilize these tests and fixes
14752         * fixinc/inclhack.sh:  regen
14753         * fixinc/fixincl.x:  regen
14754         * fixinc/fixincl.sh:  regen
14755
14756 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
14757
14758         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
14759         depend on ggc.h.
14760
14761 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
14762
14763         * gcc.1: Document exit codes.
14764
14765 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14766
14767         * calls.c: Include tm_p.h later, so everything we need is defined.
14768         * expr.c: Likewise.
14769         * function.c: Likewise.
14770
14771         * except.c: Include tm_p.h.
14772
14773         * sparc.c: Likewise.
14774         (dwarf2out_cfi_label): Don't prototype.
14775         (check_return_regs, epilogue_renumber,
14776         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
14777         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
14778         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
14779         ultra_schedule_insn): Add static prototype.
14780         (data_segment_operand, text_segment_operand): Call itself with the
14781         proper number of arguments.
14782         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
14783
14784         * sparc.h: Move all declarations to sparc-protos.h.
14785         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
14786         symbolic_operand.
14787
14788         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
14789
14790         * config/svr4.h (text_section, ctors_section, dtors_section): Add
14791         Prototypes.
14792         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
14793         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
14794         ASM_OUTPUT_ASCII): Constify a char*.
14795
14796         * sparc-protos.h: New file for sparc prototypes.
14797
14798 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14799
14800         * function.c (record_insns, contains): Always declare and define.
14801         (record_insns): Mark with ATTRIBUTE_UNUSED.
14802
14803 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
14804
14805         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
14806         to .section when outputting a .bss section to deal with multiple
14807         .bss input sections (as happens with -fdata-sections)
14808         Also output %progbits, not @progbits so the assembler doesn't treat as
14809         a comment.
14810         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
14811
14812         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
14813         thumb parts even when building with non-thumb CPUs, by forcing
14814         thumb mode.
14815
14816 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
14817
14818         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
14819         (movdf_const_intreg_sp64): Similarly.
14820
14821         * local-alloc.c (update_equiv_regs): Check the correct insn
14822         for pre-existing REG_EQUIV notes.
14823
14824 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
14825
14826         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
14827         block reached by a branch if we're not going to actually process
14828         this block.
14829
14830 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
14831
14832         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
14833         a local extern function declaration.
14834
14835 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
14836
14837         * i386.c (ix86_expand_prologue): Properly wrap USE around
14838         reg for CALL_INSN_FUNCTION_USAGE.
14839
14840 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
14841
14842         * config/mips/mips.md (movdf_internal1a): Allow floating-point
14843         move between GP_REGs.
14844
14845 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
14846
14847         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
14848         the mode size when finding out if an offset is legal.
14849
14850 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
14851
14852         * basic-block.h (PROP_*): Move constants from ...
14853         * flow.c: ... here.
14854         (compute_bb_for_insn): Free the array before reallocating.
14855         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
14856         (allocate_reg_life_data): Reset all reg variables collected by
14857         propagate_block.
14858         (get_block_head_tail): Don't convert from bb to block.
14859         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
14860         (find_insn_reg_weight): Take block not bb.
14861         (schedule_block): Don't set block num for moved insns.
14862         (schedule_region): Don't update_life_info or find_insn_reg_weight.
14863         (schedule_insns): Do it here instead.
14864         * combine.c (combine_instructions): Invoke compute_bb_for_insn
14865         before update_life_info.
14866         * recog.c (split_all_insns, peephole2_optimize): Update for
14867         new arg to update_life_info.
14868         * rtlanal.c (remove_note): Cope with NULL note.
14869         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
14870         if we did sched1.
14871
14872 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
14873
14874         * jump.c (jump_optimize_1): More accurately detect casesi insns.
14875
14876         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
14877         block records so that merge_blocks_nomove will clean up correctly.
14878         (split_edge): Handle casesi insns.
14879
14880         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
14881
14882 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
14883
14884         * pa.md (call, call_value): Do not emit a blockage after restoring
14885         the PIC register.
14886
14887 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
14888
14889         * c-typeck.c (c_expand_asm_operands): Fix typo.
14890
14891 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14892
14893         * arm.c (fpu_rhs_operand): Verify modes.
14894         (fpu_add_operand): Likewise.
14895         (di_operand): Likewise.
14896         (soft_df_operand): Likewise.
14897
14898 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
14899
14900         * arm.c (arm_return_in_memory): APCS rules state that the elements
14901         of a structure returned in a register must be 'integer-like'.
14902
14903 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
14904
14905         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
14906         in the source tree when the generated targets are out of date
14907         * fixinc/genfixes: Alter it to run individual fixes for make.
14908         * fixinc/README: rewrite
14909         * fixinc/inclhack.def: moved initial comments to README
14910
14911 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
14912
14913         * toplev.c (main): Do not generate an error message if an
14914         unrecognised command line switch is recognisable by another
14915         language.  If extra_warnings are enabled, then generate a
14916         warning message instead.
14917
14918 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
14919
14920         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
14921         (insert_pack_attributes): Delete prototype.
14922
14923         * c-pragma.c (default_alignment): New static variable.
14924         (push_alignment): Initialize to current effective alignment.
14925         (pop_alignment): Use to set new alignment.
14926         (insert_pack_attributes): Delete function.
14927         (handle_pragma_token): Set default_alignment as well each time
14928         a #pragma pack(<n>) is encountered.
14929
14930 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
14931
14932         * reg-stack.c (stack_result): Aggregates are not returned in
14933         stack registers.
14934
14935 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
14936
14937         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
14938
14939 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
14940
14941         * basic-block.h (set_block_num): Declare.
14942         * flow.c (update_life_info): Don't call compute_bb_for_insn
14943         or free_basic_block_vars.
14944         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
14945         (insn_orig_block): Remove.
14946         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
14947         (schedule_block): Keep BLOCK_NUM up-to-date.
14948         (schedule_insns): Use compute_bb_for_insn.
14949         * recog.c (split_all_insns): Likewise.
14950         (peephole2_optimize): Likewise.
14951
14952 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
14953
14954         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
14955         if the pic register is used.
14956
14957 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14958
14959         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
14960         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
14961         if that tests TREE_PERMANENT.
14962
14963 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
14964
14965         * cse.c (invalidate_for_call): Do not remove memory references from
14966         the table here.  It's handled elsewhere.
14967
14968         * haifa-sched.c (add_dependence): Protect references to the
14969         true dependency cache with #ifdef INSN_SCHEDULING.
14970         (remove_dependence): Similarly.
14971
14972         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
14973         to the cfg code that this is a return instruction.
14974         * mn10300.md (return_internal): Similarly.
14975
14976         * combine.c (get_last_value): If the last set of a register
14977         is after subst_low_cuid, then we can not use it to determine
14978         the register's last value.
14979
14980 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
14981
14982         * Makefile.in: Back out previous change.
14983
14984 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
14985
14986         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
14987
14988         * haifa-sched.c (add_dependence): Only check/update the cache
14989         if it exists.
14990         (remove_dependence): Likewise.
14991         (schedule_insns): Only create the true_dependency_cache if the
14992         average number of instructions in a basic block is very large.
14993
14994 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
14995
14996         * Makefile.in (ggc-common.o): Depend on genrtl.h.
14997         (ggc-simple.o): Likewise.
14998         (ggc-page.o): Likewise.
14999
15000 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
15001
15002         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
15003         Prototype for exported functions.
15004         (pre_lcm, pre_rev_lcm): Remove prototypes.
15005         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
15006         (compute_available): Move to lcm.c, and change parameter order.
15007         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
15008         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
15009         (gcse_main): No longer call compute_preds_succs.  Rebuild the
15010         set table after reach pre pass.
15011         (pre_insert_map, pre_delete_map, edge_list): New.
15012         (alloc_pre_mem): Allocate edge vectors.
15013         (free_pre_mem): Delete edge vectors.
15014         (compute_pre_data): Call new edge based lcm routines.
15015         (process_insert_insn): New function.
15016         (insert_insn_end_bb): Use it.
15017         (pre_edge_insert): New function.
15018         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
15019         needed.
15020         (pre_insert_copies): Revamp using new edge based lcm outputs.
15021         (pre_delete): Likewise.
15022         (one_pre_gcse_pass): Insert & remove fake edges to the exit
15023         block.
15024         (compute_code_hoist_vbeinout): New new edge based routines.
15025         * lcm.c: Remove all the old LCM functions.  Replace with new ones
15026         that work with the new cfg datastructures and work with edges
15027         instead of blocks.
15028
15029 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15030
15031         * reload.h (struct reload): Add new fields "mode" and "nregs".
15032         * reload1.c: Change all occurrences of reload_mode and reload_nregs
15033         to reference the "mode" and "nregs" field within struct reload.
15034
15035 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
15036
15037         * haifa-sched.c (true_dependency_cache): New.
15038         (add_dependence): Use the true dependency cache to avoid expensive
15039         walks down the LOG_LINKS dependency list.  Add entries to the
15040         cache as necessary.
15041         (remove_dependence): Remove entries from the true dependency cache
15042         as needed.
15043         (schedule_insns): Allocate and initialize and free the true
15044         dependency cache.
15045
15046         * haifa-sched.c (schedule_insns): Do not remove inter-block
15047         dependencies anymore.
15048
15049 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
15050
15051         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
15052         * i386/t-winnt: Likewise.
15053
15054 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
15055
15056         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
15057
15058 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
15059
15060         * Makefile.in (LANGUAGES): Omit "proto".
15061         (clean): Remove stale comment about removing unprotoize.c.
15062
15063 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15064
15065         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
15066         using arithmetic on void pointers.
15067
15068 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
15069
15070         * haifa-sched.c (compute_block_forward_dependencies): Only check
15071         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
15072
15073 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
15074
15075         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
15076         (expr_equiv_p): Reject memories with different alias sets.
15077
15078 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
15079
15080         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
15081         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
15082         (f_options): Add "bounded-pointers" and "bounds-check" entries.
15083         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
15084         (lang_init): Set default for flag_bounds_check if still "unspecified".
15085
15086 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15087
15088         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
15089
15090 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15091
15092         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
15093         instructions.
15094
15095 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15096
15097         * config/c4x/c4x.md (*db_noclobber,
15098         *decrement_and_branch_until_zero_noclobber): New patterns and
15099         associated splitters.
15100
15101 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15102
15103         * config/c4x/c4x.md (parallel instruction patterns): Rework
15104         constraints to keep reload happy.
15105
15106 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15107
15108         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
15109         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
15110         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
15111         Add new patterns and associated post-reload splitters.
15112
15113 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15114
15115         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
15116
15117 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15118
15119         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
15120         if appropriate.
15121         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
15122
15123 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15124
15125         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
15126         memory mode.
15127
15128 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
15129
15130         * pa.c (move_operand): Rely on memory_address_p to determine the
15131         validity of non-indexed memory addresses.
15132         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
15133         operand in DFmode and SFmode when generating PA2.0 code.
15134
15135 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
15136
15137         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
15138
15139 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
15140
15141         * mips.c (function_prologue): Fix argument types.
15142         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
15143         (casesi_internal): Write to the scratch register.
15144
15145 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
15146
15147         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
15148         to U_CHAR **.
15149         (parse_charconst): Delete unnecessary cast when calling
15150         cpp_parse_escape.
15151         (cpplib.h): Kill prototype of cpp_parse_escape.
15152
15153 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
15154
15155         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
15156         * unroll.c (unroll_loop): Cast return value of alloca.
15157         * i370/i370.c: Include function.h and toplev.h.
15158         (i370_label_scan): Remove c++ commented abort.
15159         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
15160         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
15161         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
15162         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
15163
15164 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
15165
15166         * config/t-freebsd: Do not override USER_H.
15167         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
15168
15169 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
15170                           Mumit Khan  <khan@xraylith.wisc.edu>
15171
15172         * c-parse.in (component_decl): Support anonymous struct/union.
15173         (%expect): Update.
15174         * c-parse.y: Regenerate.
15175         * c-parse.c: Likewise.
15176         * objc/objc-parse.y: Likewise.
15177         * objc/objc-parse.c: Likewise.
15178         * c-decl.c (finish_struct): Don't sort the fields.
15179         (field_decl_cmp): Delete unused function.
15180
15181 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
15182
15183         * sparc.md (movsf_const_intreg): Revert last constraint change.
15184         (movdf_const_intreg_sp32): Likewise.
15185
15186 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
15187
15188         * cse.c: Include hashtab.h instead of splay-tree.h
15189         (struct cse_reg_info): No longer use variant union.  Add new
15190         field "regno".  All references changed to avoid union.
15191         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
15192         (free_cse_reg_info): Remove.
15193         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
15194         (get_cse_reg_info): Revamp to use expandable hash tables instead
15195         of splay trees.  Initialize new fields in cse_reg_info structure.
15196         (new_basic_block): Similarly.
15197
15198 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
15199
15200         * genrecog.c (message_with_line): Prototype.
15201         (validate_pattern): Pass along the set for the dest, not a flag.
15202         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
15203         Check for PC/CC0 as sources.
15204         (nodes_identical): Check for children position match before
15205         allowing the combination.
15206
15207         * rtl.c (read_rtx): Track line number across \\\n.
15208
15209 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
15210
15211         * mips.h (SPECIAL_MODE_PREDICATES): New.
15212         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
15213         (movdi+1, movsi+1): Add output reload constraint.
15214         (casesi_internal): Likewise.  Fix commentary.
15215         (return_internal): Use pmode_register_operand.
15216
15217 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
15218
15219         * 1750a.md (movstrqi): Add missing output reload constraint.
15220         (call_value): Likewise.
15221         * a29k.md (cpxxx patterns): Add missing match_operator mode.
15222         (jmpfdec): Add missing inout reload constraint.
15223         * elxsi.md (addsi patterns): Add missing output reload constraint.
15224         (move from sp): Use @ alternates.
15225         (call_value): No constraint on output.
15226         * fr30.md (movsi_pop): Add missing output reload constraint.
15227         (movsf_constant_store): Likewise.
15228         (splits): Remove constraints.
15229         (subsi3): Add missing mode.
15230         * i370.md (cmpstrsi+1): Add missing output reload constraint.
15231         (call_value): Likewise.
15232         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
15233         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
15234         * m32r.md (movsicc_internal): Add output reload constraint.
15235         (movstrsi_internal): Add inout reload constraints.
15236         * m88k.h (reg_names): Don't declare.
15237         (SPECIAL_MODE_PREDICATES): New.
15238         * m88k.md (*): Use register_operand not reg_or_0_operand
15239         on destinations.
15240         * mn10200.h (PREDICATE_CODES): New.
15241         * ns32k.md (ffs pattern): Add output reload constraint.
15242         * pdp11.md (sob pattern): Add inout reload constraint.
15243         * sh.md (splits): Remove constraints.
15244         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
15245         * v850.md (pattern_is_ok_for_epilogue): Likewise.
15246         * vax.md (jgequ pattern): Add inout reload constraint.
15247
15248 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
15249
15250         * configure.in (djgpp): Revert previous patch.
15251         * configure: Rebuit.
15252         * config/i386/djgpp.h: Revert previous patch.
15253
15254 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
15255
15256         * fixinc/inclhack.def: Restore patch lost during last merge of
15257         "no_bogosity" branch.
15258         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
15259
15260 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
15261
15262         * fixincludes: Add a HPUX 11 fix for inttypes.h.
15263         * fixinc/inclhack.def: Same.
15264         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
15265
15266 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
15267
15268         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
15269         as the base of a PLUS.
15270
15271 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15272
15273         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
15274         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
15275
15276 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
15277
15278         * pa.md (post_stw+1): Use pmode_register_operand.
15279         (dcacheflush, icacheflush): Likewise.
15280
15281         * i386.md (movstricthi_1): Allow r/r.
15282
15283 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
15284
15285         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
15286         to (not (and (arg0) (arg1))). Similary for and.
15287
15288         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
15289         fallthrough to associate code.
15290         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
15291         bits in common.
15292
15293         * combine.c (simplify_logical): Convert XOR to IOR if operands have
15294         no bits in common; remove XOR to ROTATE conversion.
15295
15296 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15297
15298         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
15299
15300 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15301
15302         * config/c4x/c4x.c (dst_operand): New.
15303         (PREDICATE_CODES): Update.
15304         * config/c4x/c4x.h (dst_operand): Declare it.
15305         * config/c4x/c4x.md:  Define mode for each unspec usage.
15306         (move patterns):  Use dst_operand predicate instead of src_operand.
15307         (movqi_update, movqf_update): Delete.
15308
15309 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
15310
15311         * recog.c (pmode_register_operand): New.
15312         * recog.h: Declare it.
15313         * genrecog.c (pred_codes): Likewise.
15314         (special_mode_pred_table): Likewise.
15315         (validate_pattern): Don't warn no mode for address_operand.
15316
15317         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
15318         if the operand is not insn-like.
15319
15320 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
15321                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
15322
15323         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
15324
15325 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
15326
15327         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
15328         instead of general_operand in a SET_DEST.  Use const_double_operand
15329         instead of an explicit test against CONST_DOUBLE.
15330         (movsf_const_lo): Add missing register mode.
15331         (goto_handler_and_restore): Add auxiliary test for Pmode.
15332         (flush): Adjust to use address_operand.
15333         (return_sf_no_fpu): Add missing output constraint.
15334
15335 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
15336
15337         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
15338         for call return value.
15339         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
15340
15341 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
15342
15343         * toplev.c (main): Only warn about options for other languages.
15344         * collect2.c (main): Pass -w to sub-gcc.
15345
15346 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
15347
15348         * flow.c (propagate_block): Add call-clobbered registers to
15349         significant too.
15350
15351         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
15352         zapping mem_set_list.
15353         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
15354         (mark_set_1, mark_used_regs): Likewise.
15355
15356 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
15357
15358         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
15359
15360 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15361
15362         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
15363         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
15364         options. Also add a new item "C-only Warning Options" to the
15365         option summary.
15366
15367 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
15368
15369         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
15370         from multiple calls.
15371
15372 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
15373
15374         * i386.md (call value patterns): Move to the end of the file.
15375         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
15376
15377 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
15378
15379         * configure.in (djgpp configuration): Define extra_objects..
15380         * configure: Rebuilt.
15381         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
15382         (DTORS_SECTION_ASM_OP): Define.
15383         (INIT_SECTION_ASM_OP): Define.
15384         (FINI_SECTION_ASM_OP): Define.
15385         (DATA_SECTION_ASM_OP): Define.
15386         (TEXT_SECTION_ASM_OP): Define.
15387         (EH_FRAME_SECTION_ASM_OP): Define.
15388         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
15389         (STARTFILE_SPEC): Add crtbegin.o.
15390         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
15391         to here from LINK_COMMAND_SPEC.
15392         (DO_GLOBAL_CTORS_BODY): Define.
15393         (CRTSTUFF_USE_FINI_SECTION): Define
15394         (HAS_INIT_SECTION): Delete.
15395
15396 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
15397
15398         * Makefile.in (all.cross): Depend on xcpp$(exeext).
15399
15400 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
15401
15402         * pa.h (PREDICATE_CODES): New.
15403
15404         * genrecog.c (validate_pattern): Condense the destination
15405         non-lvalue message.
15406
15407 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
15408
15409         * alpha.md (call-1): Supply missing mode for operator.
15410         (*): Add missing output reload constraints.  Remove constraints
15411         from define_splits.
15412
15413         * i386.h (SPECIAL_MODE_PREDICATES): New.
15414         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
15415         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
15416         (addsi_lea_3): Add missing mode for op 3.
15417         (prologue_set_got, prologue_get_pc): Add missing modes.
15418         (*) Add missing output reload constraints.
15419
15420 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
15421
15422         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
15423         check for member bit-size overflow and use var_size if it occurs.
15424         (layout_record): Use bitsize_int() to define the type size in bits.
15425         Likewise for computation and assignment to DECL_FIELD_BITPOS.
15426         (layout_decl): Likewise when assigning to DECL_SIZE.
15427
15428 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
15429
15430         * genrecog.c (validate_pattern): Typo last change.  Verify
15431         that output operands have output reloads.
15432
15433 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
15434
15435         * genrecog.c (special_mode_pred_table): New.
15436         (NUM_SPECIAL_MODE_PREDS): New.
15437         (find_operand): New.
15438         (validate_pattern): New argument `insn'.  Warn for assignment to
15439         any predicate accepting non-lvalues.  Conditionaly warn for
15440         match_operand without a mode.  Try much harder to match source
15441         and destination modes on a set.
15442         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
15443
15444 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
15445
15446         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
15447
15448 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
15449
15450         * combine.c (simplify_logical): Recognize xor pattern that encodes
15451         rotation.
15452
15453 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15454
15455         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
15456         alignment.
15457
15458 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
15459
15460         * ggc-page.c (MAP_FAILED): Provide default.
15461
15462 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
15463
15464         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
15465         * sparc.h (PREDICATE_CODES): Update.
15466
15467 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
15468
15469         * alpha.c (some_ni_operand): New.
15470         * alpha-protos.h: Declare it.
15471         * alpha.h (PREDICATE_CODES): Update.
15472         * alpha.md (sXaddq reload insns): Use some_ni_operand
15473         for SET_DEST instead of some_operand.
15474
15475 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
15476                           Jim Wilson  <wilson@cygnus.com>
15477
15478         * genrecog.c (maybe_both_true_2): Don't compare modes of
15479         two DT_pred tests.
15480         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
15481         after find_afterward.
15482         (debug_decision_1): Dump next and afterward codes.
15483
15484 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
15485
15486         * rtl.c (dump_and_abort): Remove.
15487         (fatal_with_file_and_line): New.
15488         (fatal_expected_char): New.
15489         (read_rtx_lineno, read_rtx_filename): New.
15490         (read_skip_spaces): Track line number.
15491         (read_name): Use fatal_with_file_and_line.
15492         (read_rtx): Use fatal_expected_char.  Track line number.
15493         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
15494
15495         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
15496         if it isn't a CODE_LABEL.
15497
15498         * genattr.c (main): Set read_rtx_filename.
15499         * genattrtab.c (main): Likewise.
15500         * gencodes.c (main): Likewise.
15501         * genconfig.c (main): Likewise.
15502         * genemit.c (main): Likewise.
15503         * genextract.c (main): Likewise.
15504         * genflags.c (main): Likewise.
15505         * genopinit.c (main): Likewise.
15506         * genoutput.c (main): Likewise.
15507         * genpeep.c (main): Likewise.
15508
15509         * genrecog.c (decision_test.u.insn): Add `lineno'.
15510         (pattern_lineno, error_count): New variables.
15511         (message_with_line): New.
15512         (add_to_sequence): Break out checking code to ...
15513         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
15514         (merge_insn): Use message_with_line.
15515         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
15516         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
15517
15518 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15519
15520         * expr.c (store_constructor): Clear union if constructor is empty.
15521
15522 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
15523
15524         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
15525         Add !endian checks.  Change %{...} to %(...).
15526
15527 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
15528
15529         * i386.md (*addsi3_cc): Renamed from addcsi3.
15530         (*addsi3_carry): Renamed from addxsi3.
15531         (*subsi3_cc): Renamed from subcsi3.
15532         (*subsi3_carry): Renamed from subxsi3.
15533         (*xorqi_cc_1): Renamed from xorcqi_1.
15534         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
15535         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
15536
15537 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
15538
15539         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
15540         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
15541
15542 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
15543
15544         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
15545         climb up the chain of insns.
15546
15547 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
15548
15549         * genrecog.c (write_subroutine): Careful for null trees.
15550         (process_tree): Don't elide empty functions.
15551
15552 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
15553
15554         * Makefile.in (genrtl.o): Depend on ggc.h.
15555         * configure.in (valloc): Probe for it.
15556         (with-gc): Use ggc-page if valloc present.
15557         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
15558         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
15559         (ggc_alloc_string): Moved from ggc-page.c.
15560         * ggc-none.c (ggc_alloc_obj): New.
15561         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
15562         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
15563         (struct globals): Likewise for dev_zero_fd.
15564         (init_ggc): Likewise for it's initialization.
15565         (ggc_allocated_p): Move careful dereference from ...
15566         (ggc_lookup_page_table): ... here.  Delete.
15567         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
15568         (alloc_anon): Use valloc if no mmap.
15569         (release_pages): Use free if using valloc.
15570         (ggc_alloc_obj): Renamed from alloc_obj.
15571         (ggc_set_mark): Renamed from mark_obj.
15572         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
15573         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
15574         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
15575         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
15576         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
15577         (ggc_collect): Use fp printing instead of our own rounding.
15578         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
15579         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
15580         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
15581         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
15582         (struct ggc_string, struct ggc_any): Delete.
15583         (offsetof): Provide default definition.
15584         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
15585         (PTR_KEY): New.
15586         (struct ggc_mem): New, from corpse of ggc_any.
15587         (struct ggc_status): Delete.
15588         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
15589         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
15590         (n_strings_collected, n_anys_collected): Delete.
15591         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
15592         (ggc_alloc_string, ggc_alloc): Delete.
15593         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
15594         (ggc_free_string, ggc_free_any): Delete.
15595         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
15596         (ggc_compare_addresses, ggc_mark_string): Delete.
15597         (ggc_mark_string_if_gcable, ggc_mark): Delete.
15598         (search_data): Delete.
15599         (struct globals): New.
15600         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
15601         (tree_insert, tree_lookup): New.
15602         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
15603         (clear_marks, sweep_objs): New.
15604         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
15605         (init_ggc): Set allocated_last_gc.
15606         (ggc_push_context): Gut.  Use G.context.
15607         (ggc_pop_context): Likewise.
15608         (ggc_pop_context_1): New.
15609         (debug_ggc_tree): New.
15610         (debug_ggc_balance, tally_leaves): New.
15611         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
15612         (ggc_mark_string_if_gcable): Remove decl.
15613         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
15614         (ggc_mark_rtvec_children): New.
15615         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
15616         (ggc_mark_if_gcable): New decl.
15617         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
15618         (ggc_alloc_tree, ggc_alloc): Likewise.
15619         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
15620         (ggc_alloc_obj): New decl.
15621         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
15622         (ggc_alloc_tree, ggc_alloc): Likewise.
15623         (ggc_set_mark): New decl.
15624         * rtl.h (struct rtx_def): Remove gc_mark.
15625         (struct rtvec_def): Likewise.
15626         * tree.h (struct tree_common): Likewise.
15627
15628 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
15629
15630         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
15631         float_format and thread_file definitions.
15632         * configure: Rebuilt.
15633
15634 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
15635
15636         * extend.texi (Function Names): Document types of function names.
15637
15638 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15639
15640         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
15641         an earlyclobbered output conflict with RELOAD_INPUT reloads.
15642
15643 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15644
15645         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
15646
15647 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15648
15649         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
15650
15651 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
15652
15653         * collect2.c (main): Do prelimnary link on AIX if rflag.
15654
15655 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
15656
15657         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
15658         __CTOR_LIST__ in opposite order, which is the correct order for sorted
15659         constructors.
15660         (__do_global_dtors): similarly for __DTOR_LIST__.
15661
15662 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15663                                 Diego Novillo <dnovillo@cygnus.com>
15664
15665         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
15666         FPUL_REGS.
15667
15668 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
15669
15670         * fixincl/*: Merged "no_bogosity" branch
15671         * fixincl/fixlib.h: protect against doubly defining t_bool
15672         * fixincl/server.h: protect against doubly defining t_bool
15673
15674 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
15675
15676         * genoutput.c: Include toplev.h.
15677
15678 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
15679
15680         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
15681         Undef.
15682         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
15683         * configure: Regenerate.
15684
15685 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
15686
15687         * gcse.c (delete_null_pointer_checks): Returns void.
15688
15689 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15690
15691         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
15692         * emit-rtl.c (copy_insn_1): Likewise.
15693
15694 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
15695
15696         * config/mips/mips.c (mips_build_va_list): Correct
15697         TREE_CHAIN setting when hard-float.
15698         (mips_va_start): Use corrected setting.
15699         (mips_va_arg): Likewise.  Also pass a tree to build of
15700         POSTINCREMENT_EXPR rather than a naked 'int'.
15701
15702 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
15703
15704         * ggc.h (ggc_push_context): Fix comment.
15705         (ggc_pop_context): Likewise.
15706         (mark_string_if_gcable): Likewise.
15707         * ggc-common.c (ggc_mark_rtx_children): Use
15708         ggc_mark_string_if_gcable.
15709         * ggc-page.c (ggc_lookup_page_table): New function.
15710         (ggc_allocated_p): Likewise.
15711         (mark_obj): Fix formatting.
15712         (ggc_mark_string_if_gcable): New function.
15713         * ggc-simple.c (ggc_allocated_strings): New variable.
15714         (ggc_strings_used): Likewise.
15715         (ggc_compare_addresses): New function.
15716         (ggc_pop_context): Pop the `any' memory too.
15717         (ggc_mark_string_if_gcable): New function.
15718         (ggc_collect): Initialize and tear down ggc_allocated_strings.
15719
15720 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
15721
15722         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
15723         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
15724         * rs6000.c (expand_block_move): Match movstrsi_?reg register
15725         changes.
15726
15727 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
15728
15729         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
15730         (sched_reg_live_length, sched_reg_basic_block): Delete.
15731         (current_block_num, bb_live_regs, old_live_regs): Delete.
15732         (dead_notes, struct sometimes): Delete.
15733         (sched_note_set, birthing_insn_p): Delete.
15734         (adjust_priority): Gut useless reg lifetime code.
15735         (create_reg_dead_note, attach_deaths): Delete.
15736         (attach_deaths_insn, new_sometimes_live): Delete.
15737         (finish_sometimes_live): Delete.
15738         (find_pre_sched_live, find_post_sched_live): Delete.
15739         (update_reg_usage): Delete.
15740         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
15741         (schedule_insns): Delete reg lifetime code.
15742         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
15743         (unlink_other_notes): Adjust REG_NOTE commentary.
15744         (reemit_notes): Use REG_SAVE_NOTE.
15745         (schedule_block): Likewise.
15746         (schedule_region): Allocate bitmap of blocks in region.  Use
15747         count_or_remove_death_notes.  Use update_life_info.
15748
15749         * rtl.h (REG_SAVE_NOTE): New.
15750         * rtl.c (reg_note_name): Update.
15751
15752 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
15753
15754         * combine.c (refresh_blocks, need_refresh): New.
15755         (combine_instructions): Allocate refresh_blocks.  Invoke
15756         update_life_info if needed.
15757         (distribute_notes): Mark refresh_blocks instead of installing
15758         USE insns.
15759         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
15760         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
15761
15762         * Makefile.in (recog.o): Depend on basic-block.h.
15763
15764 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
15765
15766         * genrecog.c (add_to_sequence): Thinko last change: delete
15767         shadowing allow_const_int variable.
15768
15769 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15770
15771         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
15772         __GNUC__ and __GNUC_MINOR__.
15773
15774         * gansidecl.h: Likewise.
15775
15776         * rtl.c: Likewise.
15777
15778         * rtl.h: Likewise.
15779
15780         * toplev.h: Likewise.
15781
15782         * tree.c: Likewise.
15783
15784         * tree.h: Likewise.
15785
15786         * varray.c: Likewise.
15787
15788         * varray.h: Likewise.
15789
15790 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15791
15792         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
15793         use one before a jump table.
15794
15795         * rtl.def (ADDRESS): Change documentation to match reality.
15796         * md.texi: Don't document it.
15797         * gmicro.md (load address pattern): Use 'p' constraint, delete use
15798         of ADDRESS rtx.
15799
15800         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
15801
15802 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
15803
15804         * genrecog.c (add_to_sequence): Move allow_const_int test outside
15805         known predicate block; default allow_const_int true.
15806         (debug_decision_list): New.
15807
15808 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
15809
15810         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
15811
15812 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
15813
15814         * gcse.c (gcse_main): Avoid global optimizations if we have a
15815         large number of basic blocks and the ratio of edges to blocks
15816         is high.
15817         (delete_null_pointer_checks): Likewise.
15818
15819 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
15820
15821         * c-common.c (check_format_info): Warn if format string isn't a
15822         string literal.
15823
15824 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
15825
15826         * configure.in (arm*-*-*): Don't let autoconf remove brackets
15827         * configure: regenerate
15828
15829 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
15830
15831         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
15832         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
15833         (peepholes): Re-enable.
15834
15835 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
15836
15837         * Makefile.in (flow.o): Depend on TREE_H.
15838         * basic-block.h (REG_SET_EQUAL_P): New.
15839         (XOR_REG_SET): New.
15840         (n_edges): Declare.
15841         (free_regset_vector): Remove declaration.
15842         (flow_delete_insn_chain): Declare.
15843         (enum update_life_extent): New.
15844         (update_life_info, count_or_remove_death_notes): Declare.
15845         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
15846         Verify register live at bb->global_live_at_start before adding USE.
15847         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
15848         (CLEAN_ALLOCA): New.
15849         (n_edges): New.
15850         (PROP_*): New flags.
15851         (find_basic_blocks_1): Use alloc_EXPR_LIST.
15852         (clear_edges): Zero n_edges.
15853         (make_edge): Increment n_edges.
15854         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
15855         (flow_delete_insn_chain): Export.
15856         (delete_block): Decrement n_edges.
15857         (merge_blocks_nomove): Likewise.
15858         (life_analysis): Give life_analysis_1 PROP flags.
15859         (verify_wide_reg_1, verify_wide_reg): New.
15860         (verify_local_live_at_start): New.
15861         (update_life_info): Rewrite to call into propogate_block.
15862         (mark_reg): New.
15863         (mark_regs_live_at_end): After reload, if epilogue as rtl,
15864         always mark stack pointer.  Conditionally mark PIC register.
15865         After reload, mark call-saved registers, return regsiters.
15866         (life_analysis_1): Accept PROP flags not remove_dead_code.
15867         Call mark_regs_live_at_end before zeroing regs_ever_live.
15868         Use calculate_global_regs_live.  Copy global_live_at_end before
15869         calling final propagate_block.  Zero reg_next_use on exit.
15870         (calculate_global_regs_live): New.
15871         (allocate_bb_life_data): Don't allocate bb->local_set.
15872         (init_regset_vector, free_regset_vector): Remove.
15873         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
15874         Test flags before every operation.  Warn if prologue/epilogue insn
15875         would have been deleted.
15876         (mark_set_regs, mark_set_1): Accept and use FLAGS.
15877         Use alloc_EXPR_LIST.
15878         (mark_used_regs): Accept and use FLAGS, not FINAL.
15879         Remove special handling for RETURN.
15880         (try_pre_increment): Use alloc_EXPR_LIST.
15881         (dump_flow_info): Dump n_edges.
15882         (unlink_insn_chain, split_hard_reg_notes): Remove.
15883         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
15884         (find_insn_with_note, new_insn_dead_notes): Remove.
15885         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
15886         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
15887         (replace_insns): Remove.
15888         (count_or_remove_death_notes): New.
15889         (verify_flow_info): Abort on error after all checks.
15890         (remove_edge): Decrement n_edges.
15891         (remove_fake_edges): Tweek format.
15892         * haifa-sched.c (schedule_insns): Use split_all_insns.
15893         * output.h (update_life_info): Remove declaration.
15894         * recog.c (split_all_insns): From the corpse of split_block_insns,
15895         do the whole function block by block.  Use update_life_info.
15896         (recog_last_allowed_insn): New.
15897         (recog_next_insn): Mind it.
15898         (peephole2_optimize): Set it.  Walk backwards through blocks.
15899         Use update_life_info.
15900         * rtl.h (update_flow_info, replace_insns): Remove declarations.
15901         (split_all_insns): Declare.
15902         * toplev.c (rest_of_compilation): Thread prologue before flow2.
15903         Use split_all_insns.
15904
15905         * i386.md (or -1 peep2s): Disable.
15906
15907 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
15908
15909         * config/mips/mips.md (movstrsi+[123]) : Combine these into
15910         a single pattern.  Scrap the 'd' versions as unnecessary.
15911
15912         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
15913         tablejump_mips162,tablejump_internal4): The operands to a
15914         label_ref must be VOIDmode.
15915
15916 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15917
15918         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
15919
15920 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
15921
15922         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
15923
15924 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
15925
15926         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
15927         cache every function if ggc_p.
15928
15929 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15930
15931         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
15932         instead of copy_rtx.  Accept sequences that contain asm statements.
15933         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
15934         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
15935         orig_asm_operands_vector, copy_asm_operands_vector,
15936         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
15937         variables.
15938         * rtl.h (copy_insn, copy_insn_1): Declare.
15939
15940 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15941
15942         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
15943
15944         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
15945         arguments to `current_file_function_operand'.
15946
15947         * genrecog.c: Include hard-reg-set.h and resource.h in the
15948         generated output file.
15949
15950         * real.c: Include tm_p.h.
15951
15952 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15953
15954         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
15955         output operand.
15956
15957 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
15958
15959         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
15960         before the fctiwz insn.
15961
15962 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15963                           Mark Mitchell  <mark@codesourcery.com>
15964
15965         * tree.c (make_lang_type_fn): New funtion pointer.
15966         (make_lang_type): Call it.
15967         * tree.h (make_lang_type): Declare.
15968         (make_lang_type_fn): Likewise.
15969         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
15970
15971 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
15972
15973         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
15974         make sure that HIGH instructions are copied into BASE_REGS.
15975
15976 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
15977
15978         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
15979
15980 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
15981
15982         * c-decl.c (finish_struct): Use simpler method of
15983         removing elements of a singly-linked list.
15984
15985 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
15986
15987         * alpha.md (peephole2's): Comment out peephole2's that generate
15988         buggy code.
15989
15990 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
15991
15992         * genrecog.c (add_to_sequence): Disable mode check for
15993         wildcard matches.
15994
15995 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15996
15997         * ggc-simple.c (init_ggc): Set empty_string.
15998
15999 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
16000
16001         * configure.in: Detect mmap.  Add --with-gc=foo to select
16002         garbage collector; default to page if mmap available.
16003         * Makefile.in (GGC): Substitute.
16004
16005 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
16006
16007         * c-decl.c (ggc_p): Enable.
16008
16009 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16010
16011         * flow.c (verify_flow_info): Make it extern & unconditionally define.
16012
16013 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
16014
16015         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
16016         string for little-endian-data.
16017
16018 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
16019
16020         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
16021         case somebody tries to compile --enable-checking code with gcc
16022         1.34 or such.
16023
16024 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
16025
16026         * genrecog.c (add_to_sequence): Verify operand to label_ref is
16027         VOIDmode.
16028
16029 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
16030
16031         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
16032         * jump.c (jump_optimize_1): Document why.
16033
16034 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16035
16036         * collect2.c (scan_prog_file, scan_libraries): Prototype function
16037         pointers and casts for `int_handler' and `quit_handler'.
16038
16039         * flow.c (verify_flow_info, split_hard_reg_notes,
16040         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
16041         remove_edge, remove_fake_successors): Add static prototypes.
16042         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
16043         (mark_set_1): Initialize variable `regno'.
16044         (unlink_insn_chain): Likewise for variable `curr'.
16045         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
16046
16047         * loop.c (strength_reduce): Initialize variable
16048         `unrolled_insn_copies'.
16049         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
16050         prototypes.  Change these functions to take const PTR parameters
16051         to avoid prototype conflict when used as the comparson argument
16052         for qsort.
16053         (check_dbra_loop): Initialize variable `comparison_val'.
16054
16055         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
16056         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
16057         (find_valid_class): Initialize variable `best_class'.
16058         (find_reloads): Call memcpy, not bcopy.
16059
16060         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
16061         (hard_reg_use_compare): Don't needlessly cast away const.
16062         (reload_reg_class_lower): Likewise.
16063         (choose_reload_regs): Initialize variable `regno'.
16064
16065 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
16066
16067         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
16068
16069 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
16070
16071         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
16072         ({,d}discard): Add forward declarations.  Declare parameter as
16073         unused.
16074         (main_without_main): Explicitly declare return type to be int.
16075         (memcpy): Properly declare.
16076
16077         * libgcc2.c (toplevel): If inhibit_libc is defined and not
16078         building the trampoline support, declare malloc, free, and
16079         atexit.
16080         (__clear_cache): Mark arguments as potentially unused.
16081
16082         * frame.c (toplevel): If inhibit_libc is defined, declare
16083         malloc and free.
16084
16085 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
16086
16087         * flow.c (make_edge): Accept an optional 2D bitmap in which
16088         to cache edge existence.  Update all callers.
16089         (make_label_edge, make_eh_edge): Pass through the edge cache.
16090         (make_edges): Provide the cache.
16091
16092 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16093
16094         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
16095         a char*.
16096         (local_mbtowc): Change the type of variable `i' from int to size_t.
16097
16098         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
16099         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
16100
16101 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
16102
16103         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
16104         after other includes that define the appropriate types.  Include
16105         tm_p.h for getting user prototypes.
16106         * ggc-callbacks.c (toplevel): Ditto.
16107         * ggc-none.c (toplevel): Ditto.
16108         * gcc-page.c (toplevel): Ditto.
16109         * ggc-simple.c (toplevel): Ditto.
16110
16111 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
16112                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
16113
16114         * config/mips/mips.c (mips_move_2words): Split doubles if
16115         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
16116
16117 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
16118
16119         * genrecog.c (struct decision_test): New.
16120         (struct decision): Remove test-related members, sort the rest by size.
16121         (IS_SPLIT): Simplify.
16122         (new_decision, new_decision_test): New.
16123         (add_to_sequence): Use them.  No special handling for args of
16124         non-MATCH codes.
16125         (maybe_both_true): Renamed from not_both_true; return sense changed.
16126         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
16127         of maybe_both_true and adjusted for decision_test.
16128         (position_merit): Remove.
16129         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
16130         (merge_accept_insn): New, broken out of merge_trees.
16131         (merge_trees): Use them.  No special case for c_test; no node
16132         splitting; use test type instead of position_merit.
16133         (factor_tests): New.
16134         (simplify_tests): New.
16135         (break_out_subroutines): Don't write code now.
16136         (find_afterward): New.
16137         (write_afterward, write_switch, write_cond): New.
16138         (write_action, is_unconditional): New.
16139         (write_node): New.  Use them.
16140         (write_tree_1): Rewrite.  Use the new functions above.
16141         (write_tree): Remove afterward processing.
16142         (write_subroutine): Simplify function variant emission.
16143         (write_subroutines): New.
16144         (same_codes, clear_codes): Remove.
16145         (same_modes, clear_modes): Remove.
16146         (write_header): New, broken out of main.
16147         (make_insn_sequence): Use new_decision and new_decision_test.
16148         (process_tree): New, broken out of main.
16149         (main): Adjust for merge_trees interface change.
16150         Don't #define operands in the output file.
16151         (record_insn_name): New, broken out of make_insn_sequence.
16152         (debug_decision_2, debug_decision_1, debug_decision_0): New.
16153         (debug_decision): New.
16154
16155 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
16156
16157         * resource.c (find_free_register): Mark class_str argument const.
16158         * resource.h: Update prototype to match.
16159
16160         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
16161         * i386.md: Give all anonymous insns names.
16162
16163 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
16164
16165         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
16166         blocks.
16167
16168 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
16169
16170         * toplev.c (dbr_sched_time): Unconditional.
16171         (peephole2_time): New.
16172         (compile_file): Add pass numbers to all of the dump file suffixes.
16173         Dump peephole2_time.  Don't dump times for non-applicable passes.
16174         (rest_of_compilation): Add pass numbers to dump file suffixes.
16175         Conditionalize calls to the scheduler.
16176         * invoke.texi: Update.
16177
16178 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
16179
16180         * flow.c (make_edges): Fix insn iteration.
16181         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
16182         (find_basic_blocks_1): Fix spelling mistake.
16183
16184 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
16185
16186         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
16187         always have side-effects.  Use memset not bzero.
16188         (make_node): Likewise.
16189
16190 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
16191
16192         * stmt.c (expand_anon_union_decl): When any of the elements of the
16193         union is addressable, so is the entire union.
16194
16195 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
16196
16197         * sbitmap.c (sbitmap_ones): Don't set too many bits.
16198
16199         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
16200         * bitmap.c (bitmap_operation): Return true iff TO changed.
16201         (bitmap_equal_p): New.
16202         (bitmap_bit_p): Tidy arithmetic.
16203         (debug_bitmap_file): Likewise.
16204
16205 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
16206
16207         * toplev.c (rest_of_compilation): Turn on cse_not_expected
16208         before cse2 instead of after.
16209
16210 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
16211
16212         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
16213         register offsets.
16214
16215 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16216
16217         * cppinit.c (is_idchar initializer): Loosen tests to accept
16218         gcc 2.>6 and >2.
16219
16220 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
16221
16222         * mips.md: Define conditional move patterns for floating point
16223         operands and DI mode conditions.
16224
16225 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
16226
16227         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
16228         always have side-effects.
16229
16230 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
16231
16232         * mn10200.c (asm_file_start): Fix typo.
16233
16234         * cppinit.c (is_idchar initializer): Tighten tests for when
16235         to put the table into initialized memory.
16236
16237         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
16238         not an array of rtunion.
16239         * gcc-page.c (ggc_alloc_rtvec): Similarly.
16240         * gcc-simple (ggc_free_rtvec): Similarly.
16241
16242         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
16243         of rtunions.
16244
16245         * mbchar.h: Add missing #endif.
16246
16247         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
16248         (FPBIT, DPBIT): Define.
16249
16250 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16251
16252         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
16253
16254         * profile.c (instrument_arcs, output_gcov_string,
16255         tablejump_entry_p): Add static prototypes.
16256         (output_gcov_string): Constify a char*.
16257
16258         * regmove.c (replacement_quality, fixup_match_2): Add static
16259         prototypes.
16260
16261         * resource.h (reg_dead_p): Add extern prototype.
16262
16263         * rtl.c (trim_filename): Add static prototype.
16264
16265         * scan-decls.c (skip_to_closing_brace): Likewise.
16266
16267         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
16268         (expand_end_case): Initialize variable `range'.
16269         (emit_case_nodes): Remove unused prototype `rtx_fn'.
16270
16271         * varasm.c (asm_emit_uninitialised): Add static prototype.
16272         (asm_emit_uninitialised, assemble_variable): Mark parameter with
16273         ATTRIBUTE_UNUSED.
16274
16275 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16276
16277         * cpplib.c (if_directive_nameo): Add static prototype.
16278
16279         * cse.c (cse_insn): Remove unused variable `p'.
16280
16281         * except.c (create_rethrow_ref, push_entry,
16282         receive_exception_label, new_eh_region_entry, find_func_region,
16283         clear_function_eh_region, process_nestinfo): Add static prototypes.
16284         (get_reg_for_handler): Hide definition.
16285         (process_nestinfo): Initialize variable `extra_handlers'.
16286
16287         * expr.h (expand_builtin_longjmp): Add extern prototype.
16288
16289         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
16290
16291         * function.c (prepare_function_start): Likewise.
16292         (pop_function_context_from): Mark parameter `context' with
16293         ATTRIBUTE_UNUSED.
16294         (push_temp_slots_for_block, flush_addressof): Hide definition.
16295
16296         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
16297         solve_program_flow_graph, calculate_branch_probs,
16298         function_summary, main, fancy_abort): Add prototypes.
16299
16300         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
16301         (add_hash): Constify a char*.
16302
16303         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
16304         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
16305         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
16306
16307         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
16308
16309         * lists.c (free_list, zap_lists): Likewise.
16310
16311 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16312
16313         * alias.c (nonlocal_reference_p): Add static prototype.
16314
16315         * bitmap.c (bitmap_element_allocate): Prototype args in function
16316         pointer cast.
16317
16318         * builtins.c (stabilize_va_list): Add static prototype.
16319         (expand_builtin_va_arg): Constify a char*.
16320
16321         * c-lex.c (getch, put_back, extend_token_buffer_to,
16322         read_line_number, token_getch, token_put_back): Add static
16323         prototypes.
16324
16325         * c-parse.gperf (hash, is_reserved_word): Likewise.
16326
16327         * cccp.c (is_dir_separator): Likewise.
16328
16329 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16330
16331         * graph.h: New file to prototype functions exported by graph.c.
16332
16333         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
16334
16335         * graph.c: Include graph.h.
16336
16337         * toplev.c: Likewise.  Remove redundant prototypes.
16338
16339 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
16340
16341         * invoke.texi: Removed duplicated description for -Q.
16342
16343 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
16344
16345         * extend.texi: Grammar fix in __extension__ text.
16346
16347 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
16348
16349         * md.texi (define_peephole2): New section.
16350
16351 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
16352
16353         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
16354         (mov $-1 to or peepholer): Enable for pentium when optimizing for
16355         speed.
16356
16357 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
16358
16359         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
16360
16361 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
16362
16363         * i386.md (ffs expander): Emit Pentium friendly code for
16364         TARGET_PENTIUM.
16365
16366 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
16367
16368         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
16369         for non-trees.
16370         (build1): Likewise.
16371
16372 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16373
16374         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
16375
16376 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
16377
16378         * config/m68k/m68k.c (use_return_insn): Return false if the pic
16379         register is in use.
16380
16381 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16382
16383         * md.texi (No Constraints): Delete section.
16384         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
16385         * final.c (final_scan_insn): We always have register constraints.
16386         * genattrtab.c: Don't include "insn-config.h".
16387         (write_attr_case): We always have register constraints.
16388         * genconfig.c (register_constraint_flag): Delete.
16389         (walk_insn_part): Don't check whether we have register constraints.
16390         (main): Don't write out "#define REGISTER_CONSTRAINTS".
16391         * genoutput.c (have_constraints): Delete.
16392         (main): Don't set it.
16393         (output_operand_data): We always have constraints.
16394         (scan_operands): Likewise.
16395         (compare_operands): Likewise.
16396         * local-alloc.c (block_alloc): We always have constraints.
16397         (requires_inout): Always compile this function.
16398         * recog.c (extract_insn): We always have constraints.
16399         (constrain_operands, reg_fits_class_p): Always compile these
16400         functions.
16401         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
16402         fields.
16403         (struct insn_operand_data): Likewise.
16404         * regclass.c (regclass): We always have constraints.
16405         (record_reg_classes, copy_cost, record_address_regs,
16406         auto_inc_dec_reg_p): Always compile these functions.
16407         * regmove.c (regmove_optimize): We always have constraints.
16408         * reload.c (find_reloads): Likewise.
16409         * reload1.c (reload): Likewise.
16410         (reload_cse_simplify_operands): Likewise.
16411         * i860.c (output_delay_insn): Likewise.
16412
16413 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
16414
16415         * iris6.h (BUILD_VA_LIST_TYPE): Define.
16416
16417 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16418
16419         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
16420         for the va_list record.
16421
16422 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
16423
16424         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
16425         prologues.
16426
16427 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
16428
16429         * alias.c: Include insn-flags.h.
16430         * Makefile.in (alias.o): Update.
16431
16432 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
16433
16434         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
16435         to LTU and GEU.  Handle more cases using sbb.
16436
16437 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
16438
16439         * i386.md (truncatexfdf splitters): Do not use subreg.
16440         (fop XFmode patterns): Fix mode in operand testing.
16441
16442 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
16443
16444         * jump.c (jump_optimize_1): Amend last change to test only the
16445         form of the operand, not the insn.
16446
16447         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
16448         not register_operand to determine when B may need preloading.
16449
16450 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
16451
16452         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
16453         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
16454         (call-value patterns): Move to end of file.
16455         (*): Remove mode from label_ref in (pc) context.
16456         (movstrqi): Use memory not general_operand for BLKmode operands.
16457         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
16458         to register_operand operands.
16459         (peep2 patterns): Convert from commented-out peephole patterns.
16460
16461 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16462
16463         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
16464         to BUILT_IN_INIT_DWARF_REG_SIZES.
16465         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
16466         Renamed from BUILT_IN_DWARF_REG_SIZE; call
16467         expand_builtin_init_dwarf_reg_sizes.
16468         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
16469         with __builtin_init_dwarf_reg_size_table.
16470         * dwarf2out.c (struct reg_size_range): Delete.
16471         (expand_builtin_init_dwarf_reg_sizes): New function.
16472         (expand_builtin_dwarf_reg_size): Delete.
16473         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
16474         (expand_builtin_dwarf_reg_size): Don't declare.
16475         * libgcc2.c (dwarf_reg_size_table_initialized): New.
16476         (dwarf_reg_size_table): New.
16477         (init_reg_size_table): New function.
16478         (copy_reg): Use dwarf_reg_size_table.
16479         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
16480         before use.
16481
16482 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
16483
16484         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
16485         Correctly build argument list to constructor and destructor functions.
16486
16487 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
16488
16489         * c-tree.h (warn_float_equal): Declare.
16490         * c-decl.c (warn_float_equal): Define.
16491         (c_decode_option): Recognize -W[no-]float-equal.
16492         * c-typeck.c (build_binary_op): Conditionally warn
16493         about equality tests of floating point types.
16494         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
16495         * invoke.texi: Add docs for -Wfloat-equal warning.
16496
16497 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
16498
16499         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
16500         generating RTL directly.
16501         * mips.h (INIT_TARGET_OPTABS): Likewise.
16502         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
16503
16504         * expr.h (init_mov_optab): Delete declaration
16505
16506         * h8300.c (WORD_REG_USED): Update to avoid useless register
16507         saves in interrupt functions and functions which never return.
16508
16509         * cse.c (struct set): Delete inner_dest_loc field.
16510         (cse_insn): Remove assignments to inner_dest_loc field.
16511
16512 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
16513
16514         * ggc-page.c: Don't include <unistd.h> etc taken care of
16515         by "system.h".  Include <sys/mman.h> afterward.
16516
16517 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
16518
16519         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
16520         ggc_alloc_string.
16521
16522 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
16523
16524         * xcoffout.c (xcoffout_declare_function): Add documentation.
16525         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
16526         TARGET_64BIT.  Compare constant to -1, not bit pattern.
16527         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
16528         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
16529         gen_movsi typos.
16530
16531 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
16532
16533         * dwarf2out.c (add_abstract_origin_attribute): Abort if
16534         origin_die is NULL.
16535         (gen_inlined_enumeration_type_die): Do not abort if the type has
16536         not been writeen out.
16537         (gen_inlined_structure_type_die): Do not abort if the type has
16538         not been writeen out.
16539         (gen_inlined_union_type_die): Do not abort if the type has
16540         not been writeen out.
16541         (gen_tagged_type_instantiation_die): Do not abort if the type
16542         has not been written out.
16543
16544 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16545
16546         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
16547         call it.
16548         * reg-stack.c (straighten_stack): Copy hard reg set with
16549         COPY_HARD_REG_SET.
16550
16551 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
16552
16553         * builtins.c (stabilize_va_list): Stabilize array type va_list
16554         to a pointer type, not the base record type.
16555         (expand_builtin_va_copy): Dereference the pointers explicitly;
16556         use the correct size for the copy.
16557
16558         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
16559         (rs6000_va_arg): Likewise.
16560
16561 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
16562
16563         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
16564
16565 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
16566
16567         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
16568         field.
16569         (DECL_BUILT_IN_CLASS): Adjust accordingly.
16570
16571 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
16572
16573         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
16574         (init_ggc): Use it instead of a constant.
16575         (ggc_collect): Bound allocated_last_gc by it.
16576
16577 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
16578
16579         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
16580         with va_list.
16581
16582 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
16583
16584         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
16585         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
16586         * configure:  Regen.
16587         * config/mips/openbsd.h:  New, OpenBSD little endian target.
16588         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
16589         * config/mips/xm-openbsd.h:  New, OpenBSD host.
16590
16591 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
16592
16593         * config/m68k/m68k.c (output_function_prologue,
16594         output_function_epilogue): Use
16595         current_function_uses_pic_offset_table instead of regs_ever_live
16596         to decide whether to save/restore pic register.
16597         (legitimize_pic_address): Don't modify regs_ever_live any more.
16598
16599 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
16600
16601         * function.h (struct function): Add x_dont_save_pending_sizes_p.
16602         * stor-layout.c (variable_size): Don't add sizes to the pending
16603         sizes list if x_dont_save_pending_sizes_p is set.
16604
16605 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
16606
16607         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
16608         for symbolic_operand().
16609         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
16610
16611 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16612
16613         * combine.c (gen_rtx_combine): Add missing call to va_end().
16614
16615         * final.c (asm_fprintf): Likewise.
16616
16617         * genattrtab.c (attr_rtx): Likewise.
16618
16619 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
16620
16621         * cse.c: Update comments.
16622         (cse_insn): When converting a conditional/computed jump into
16623         an unconditional jump, always make sure a BARRIER immediately
16624         follows the converted jump.  Do not delete unreachable code.
16625         (cse_basic_block): Do not delete unreachable code.
16626         * toplev.c (rest_of_compilation): Move call to
16627         delete_trivially_dead_insns after the conditional call to
16628         jump_optimize.
16629
16630 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16631
16632         * collect2.c (make_temp_file): Don't prototype.
16633
16634         * gcc.c (make_temp_file): Likewise.
16635
16636         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
16637
16638 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
16639
16640         * varasm.c (asm_emit_uninitialised): New function: Generate
16641         the assembler statements necessary to declare an uninitialised
16642         variable.
16643         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
16644         variable.
16645         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
16646         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
16647         section.
16648         (assemble_variable): Use asm_emit_uninitialised to emit an
16649         uninitialised variable.
16650
16651 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
16652
16653         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
16654         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
16655         <geoffk@cygnus.com>.
16656
16657 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16658
16659         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
16660         * c-common.h (builtin_function): Don't declare.
16661
16662         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
16663         DECL_BUILT_IN.
16664         (pushdecl): Likewise.
16665         (finish_decl): Likewise.
16666         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
16667         int.  All callers changed.
16668         Set the builtin's DECL_BUILT_IN_CLASS.
16669         * tree.h (enum built_in_class): New.
16670         (enum built_in_function): Delete NOT_BUILT_IN.
16671         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
16672         in a union.
16673         (DECL_SET_FUNCTION_CODE): Likewise.
16674         (DECL_BUILT_IN_CLASS): New macro.
16675         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
16676         (struct tree_decl): Split builtin function code field into a
16677         struct.
16678         (builtin_function): Declare.
16679
16680 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
16681
16682         * optabs.c (init_traps): Fix typo in last change.
16683
16684 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
16685
16686         * toplev.c (rest_of_decl_compilation): Update comment.
16687
16688 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
16689
16690         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
16691         in .sbss if appropriate.
16692         (EXTRA_SECTION_FUNCTIONS): Add sbss.
16693         (SBSS_SECTION_ASM_OP): New macro.
16694         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
16695         (EXTRA_SECTIONS): Add in_sbss.
16696         * config/mips/mips.h: Prototype sbss_section.
16697
16698 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
16699
16700         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
16701         to disappear.
16702
16703 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
16704
16705         * optabs.c (init_traps): Register trap_rtx as a GC root.
16706
16707 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16708
16709         * config/mips/mips.c (function_arg_pass_by_reference): Define
16710         unconditionally, since it's called unconditionally.
16711
16712 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
16713
16714         * toplev.c (documented_lang_options): Add -fshort-wchar.
16715         * c-decl.c (c_decode_option): Likewise.
16716         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
16717         for wchar_t.
16718         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
16719         * gcc.c (default_compilers): If -fshort-wchar,
16720         override __WCHAR_TYPE__.
16721         * tm.texi (C Dialect Options): Add -fshort-wchar.
16722
16723         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
16724         symbol for a variable.
16725
16726         * cpplib.h (CPP_PREPROCESSED): New macro.
16727         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
16728         we're seeing this input for a second time.
16729
16730 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
16731
16732         * emit-rtl.c (init_emit_once): Initialize modes first.
16733
16734 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
16735
16736         * config/i386/i386.c (pic_label_name): Change to char pointer.
16737         (global_offset_table): New variable.
16738         (load_pic_register): Fill global_offset_table if it hasn't
16739         already been done.  Allocate pic_label_name dynamically.
16740         * ggc.h (empty_string): New variable.
16741         * ggc-simple.c (empty_string): Likewise.
16742         (init_ggc): Allocate empty_string and add as root.
16743         * stmt.c (digit_strings): New variable.
16744         (init_stmt): Add last_block_end_note as root.  Allocate and
16745         initialize digit_strings.
16746         (expand_asm_operands): Use empty_string instead of string
16747         constant.  Use digit_strings instead of string constants.
16748         * profile.c (init_arc_profiler): Allocate string with
16749         ggc_alloc_string instead of xmalloc.
16750         (output_func_start_profiler): Likewise.
16751         * c-typeck.c (digest_init): Check if init is error_mark_node.
16752
16753 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
16754                           Richard Henderson  <rth@cygnus.com>
16755
16756         * ggc-page.c: New file.
16757         * Makefile.in (ggc-page.o): New.
16758
16759 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
16760
16761         * invoke.texi: Document -fdelete-null-pointer-checks
16762         * toplev.c (flag_delete_null_pointer_checks): New.
16763         (f_options): Add entry for -fdelete-null-pointer-checks.
16764         (rest_of_compilation): Conditionalize null pointer check
16765         elimination on flag_delete_null_pointer_checks.
16766         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
16767
16768 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
16769
16770         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
16771         copyright notice and special exception to GPL.
16772
16773 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16774
16775         * abi64.h (mips_function_value): Add prototype arguments.
16776
16777         * mips-protos.h: New file with mips prototypes.
16778
16779         * mips.c: Include "tm_p.h".
16780         (mktemp, lookup_name): Add prototype arguments.
16781         (extern_list, string_constant, mips_fill_delay_slot,
16782         mips_output_external, mips_output_external_libcall,
16783         mips_output_filename, mips_declare_object, function_prologue,
16784         mips_expand_prologue, function_epilogue, mips16_constant,
16785         build_mips16_function_stub, mips_output_conditional_branch):
16786         Constify a char*.
16787         (mips_va_start): Remove unused variable `u'.
16788         (mips_va_arg): Cast value to unsigned when comparing against one.
16789         (trace): Delete.
16790         (save_restore_insns, mips_expand_prologue): Add missing arg in
16791         call to `large_int'.
16792
16793         * mips.h: Move prototypes to mips-protos.h.
16794         (data_section, memory_address_p, rdata_section,
16795         readonly_data_section, simple_epilogue_p, text_section): Delete
16796         prototypes delcared elsewhere.
16797         (mips_epilogue_delay_slots, print_options): Delete unused decls.
16798         (trace): Delete.
16799         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
16800
16801         * mips.md: Delete extra args in call to `mips_move_2words'.
16802
16803         * xm-iris6.h (alloca): Add prototype argument.
16804
16805         * genpeep.c: Include "tm_p.h" in generated output file.
16806
16807 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
16808
16809         * basic-block.h (find_edge_index): Change parameters.
16810         * flow.c (verify_edge_list): Pass basic_block parameters to
16811         find_edge_index instead of integers.
16812
16813 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
16814
16815         * combine.c (simplify_comparison): Use an unsigned shift to adjust
16816         the constant.
16817
16818 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
16819
16820         * gcc.1: Fix a formatting error.
16821
16822 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
16823
16824         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
16825         i786, mn10200, mn10300, pdp11, v850.
16826
16827 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
16828
16829         * libgcc2.c (num_digits): Add prototype with
16830         __attribute__((const)).
16831         (__terminate): Add prototype.
16832
16833 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
16834
16835         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
16836
16837         * alpha/alpha.c (print_operand): Fix type of `code'.
16838         (alpha_output_filename): Constify.
16839         * alpha/alpha.h: Move all function declarations ...
16840         * alpha/alpha-protos.h: ... here.  New file.
16841         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
16842         (SECTION_FUNCTION_TEMPLATE): Likewise.
16843
16844 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16845
16846         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
16847         * expr.c (expand_expr): Likewise.
16848         (do_jump): Likewise.
16849         (do_store_flag): Pass ccp_store_flag to can_compare_p.
16850         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
16851         accessor macros.
16852         (enum can_compare_purpose): New.
16853         (can_compare_p): Adjust prototype.
16854         (prepare_cmp_insn, prepare_operand): Declare.
16855         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
16856         * optabs.c (cmp_available_p): Deleted.
16857         (expand_abs): Pass ccp_jump to can_compare_p.
16858         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
16859         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
16860         Call can_compare_p rather than cmp_available_p.
16861         (prepare_operand): No longer static.
16862         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
16863         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
16864         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
16865         sequence to use emit_cmp_and_jump_insns.
16866         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
16867
16868 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
16869
16870         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
16871         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
16872         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
16873         (plus (reg) (const_int 0))
16874         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
16875
16876 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
16877
16878         * rs6000.c (expand_block_move): DImode loads and stores require
16879         word-aligned displacements.  Increment address registers with
16880         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
16881
16882 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
16883
16884         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
16885         is no name for the base type, rather than segfault.  If we are
16886         writing out a complex integer type, use DW_ATE_lo_user.
16887
16888         * expr.c (emit_move_insn_1): If we are copying a complex that fits
16889         in one word or less (complex char, complex short, or on 64 bit
16890         systems complex float) to/from a hard register, copy it through
16891         memory instead of dying in gen_{real,imag}part.  If we have a
16892         short complex type, prevent inlining since it allocates stack
16893         memory.
16894
16895         * tree.c (build_complex_type): If we are writing dwarf2 output,
16896         generate a name for complex integer types.
16897
16898 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
16899
16900         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
16901         * flow.c (remove_edge): Remove extra whitespace.
16902         (remove_fake_edges): Fix comment.
16903         (add_noreturn_fake_exit_edges): Use the correct name.
16904
16905 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
16906
16907         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
16908         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
16909         (clean): Depend on INTL_CLEAN.
16910         (maintainer-clean): Adjust.
16911
16912 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16913
16914         * configure.in (AC_PREREQ): Bump to 2.13.
16915         (AC_C_STRINGIZE): Call this instead of using a custom macro.
16916
16917         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
16918
16919         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
16920
16921         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
16922
16923         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
16924         (HAVE_STRINGIZE): Define.
16925
16926 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
16927
16928         * c-parse.in: save and restore warn_pointer_arith on __extension__
16929         along with pedantic.
16930         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
16931         Set the type of extension to itype rather than $<itype>1 kludge.
16932         * extend.texi (Alternate Keywords): Adjust documentation.
16933         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
16934
16935 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
16936
16937         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
16938         most assembler templates.
16939
16940         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
16941         FP loads and stores.
16942         (following_call): Always return zero for the PA8000.
16943         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
16944         FP loads and stores.
16945         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
16946
16947         * pa.h (BRANCH_COST): Define.
16948
16949         * pa.md (return, return_internal): Use bve for PA2.0.
16950
16951         * pa.md (fused multiply): Add variants which reduce height for the
16952         fused multiply, but which still generate 2 insns.
16953         (fnegabs): Similarly.
16954
16955         * pa.md (subsi3): Turn into an expander.  Create two anonymous
16956         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
16957         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
16958
16959         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
16960         for TARGET_PA_20.
16961         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
16962         code generation.
16963         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
16964         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
16965
16966         * regclass.c (init_regs): Add "top_of_stack" as a garbage
16967         collection root.
16968
16969         * flow.c (record_active_eh_regions): Terminate loop after finding
16970         the last insn in the last basic block.
16971
16972 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16973
16974         * config/c4x/c4x.md: Delete parallel instruction peepholes.
16975
16976 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16977
16978         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
16979
16980 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16981
16982         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
16983         splitting to not use output template.
16984
16985 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16986
16987         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
16988         * config/c4x/c4x.c (c4x_va_start): New function.
16989
16990 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
16991
16992         * genrecog.c (not_both_true): Handle correctly cases when called for
16993         tests with different positions in the insn.
16994
16995 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16996
16997         * machmode.h (HOST_PTR_PRINTF): Move from here ...
16998
16999         * system.h (HOST_PTR_PRINTF): ... to here.
17000
17001         * mips-tfile.c: Don't include machmode.h.
17002
17003         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
17004         (mips-tfile.o): Don't depend on machmode.h.
17005
17006 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17007
17008         * haifa-sched.c (sched_analyze): Rename local variable `region' to
17009         avoid conflicts with typedef struct `region' at the top level scope.
17010
17011 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
17012
17013         * basic-block.h (basic_block): Add eh_beg, eh_end.
17014         * flow.c (entry_exit_blocks): Update.
17015         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
17016         Call new functions.
17017         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
17018         lists.c functions to allocate insn lists.
17019         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
17020         edge creation ...
17021         (make_eh_edge): ... here.  New.
17022         (move_stray_eh_region_notes): New.
17023         (record_active_eh_regions): New.
17024         (delete_unreachable_blocks): Split out block merging ...
17025         (try_merge_blocks): ... here.  New.
17026         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
17027         Dump debugging data.
17028         (merge_blocks_move_successor_nojumps): Likewise.
17029         (merge_blocks): Use eh_beg+eh_end to validate block movement.
17030
17031 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
17032
17033         * extend.texi (Bound member functions): Document unbound pmf
17034         conversion.
17035
17036 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17037
17038         * flow.c (split_edge): Handle insertion on a fallthrough edge which
17039         has the EXIT_BLOCK as a dest.
17040
17041 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17042
17043         * flow.c (remove_edge): New function to remove an edge from the
17044         flow graph.
17045         (remove_fake_successors): New function to remove fake successor edges.
17046         (remove_fake_edges): New function to remove all fake edges from the
17047         flow graph.
17048         (add_fake_exit_edges): New function to add fake edges from all blocks
17049         with no successors to the exit block.
17050         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
17051         prototypes for new functions.
17052
17053 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17054
17055         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
17056         Use Pmode to determine whether to output .dword or .word.
17057
17058 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
17059
17060         * tree.c (built_in_filename): New variable.
17061         (BUILT_IN_FILENAME): New macro.
17062         (init_tree_codes): Allocate built_in_filename.
17063         (make_node): Use built_in_filename instead of string constant.
17064
17065 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
17066
17067         * configure.in: Add fr30 target.
17068         * configure: Regenerate.
17069         * config/fr30: New directory.
17070         * config/fr30/crti.asm: New file.
17071         * config/fr30/fr30.c: New file.
17072         * config/fr30/crtn.asm: New file.
17073         * config/fr30/fr30.h: New file.
17074         * config/fr30/fr30.md: New file.
17075         * config/fr30/lib1funcs.asm: New file.
17076         * config/fr30/t-fr30: New file.
17077         * config/fr30/xm-fr30.h: New file.
17078
17079 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
17080
17081         * flow.c (merge_blocks_move_successor_nojumps): Delete the
17082         BARRIER at the end of the successor, not the BARRIER before
17083         the successor.
17084
17085         * pa.c (pa_add_gc_roots): Fix thinko in last change.
17086
17087 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
17088
17089         * stmt.c (any_pending_cleanups): Don't crash when
17090         current_function->stmt is unset.
17091
17092 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17093
17094         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
17095         other initializations that may use it for relative offsets.
17096
17097 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17098
17099         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
17100         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
17101         * config/i386/sol2dbg.h: Removed.
17102         * config/i386/sol2gas.h: New file, to enable gas work-around.
17103         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
17104         Don't use sol2dbg.h.
17105         * configure: Rebuilt.
17106
17107 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
17108
17109         * invoke.texi (-fthis-is-variable): Remove documentation.
17110
17111 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
17112
17113         * basic-block.h (compute_bb_for_insn): Declare.
17114         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
17115         to use; set size of basic_block_for_insn directly.
17116         (find_basic_blocks): Update.
17117
17118 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17119
17120         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
17121
17122 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17123
17124         * crtstuff.c (ON_EXIT): Delete empty macro definition.
17125         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
17126
17127 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
17128
17129         * c-decl.c (c_decode_option): Extend comment.
17130
17131 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
17132
17133         * toplev.c (progname): Make 'const char *'
17134         (flag_print_mem): Move out of main.
17135         (version_flag): Move out of main.
17136         (filename): Move out of main.
17137         (debug_args): Remove g prefix from options.
17138         (documented_lang_options): Remove cpplib specific options.
17139         (display_help): Add g prefix to debug options.
17140         (check_lang_option): Delete this function.
17141         (decode_d_option): New function: Decode -d... option.
17142         (decode_f_option): New function: Decode -f... option.
17143         (decode_W_option): New function: Decode -W... option.
17144         (decode_g_option): New function: Decode -g... option.
17145         (independent_decode_option): New function: Decode a language
17146         independent command line option.
17147         (main): Invoke lang_decode_option and then
17148         independent_decode_option on each command line option in
17149         turn.
17150
17151 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
17152
17153         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
17154          * fold-const.c (fold_range_test): Do not try to fold the range
17155          test if the rhs or lhs has side effects.
17156
17157         * basic-block.h (compute_flow_dominators): Declare.
17158
17159         * gcse.c (alloc_code_hoist_mem): New function.
17160         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
17161         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
17162         (hoist_code, one_code_hoisting_pass): Likewise.
17163         (gcse_main): If optimizing for size, then hoist expressions
17164         computed in multiple dominated basic blocks.
17165
17166         * gcse.c (invalid_nonnull_info): New function.
17167         (delete_null_pointer_checks): Likewise.
17168         * rtl.h (delete_null_pointer_checks): Declare.
17169         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
17170
17171         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
17172         (merge-blocks_move_successor_nojumps): Likewise.
17173         (merge_blocks): Allow merging of some blocks, even if it requires
17174         physical movement of the blocks, but not if it requires new jumps.
17175
17176         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
17177         Callers and prototype changed.
17178         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
17179
17180 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17181
17182         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
17183         -YP when both -p and -pg are present.  From i386/sol2.h.
17184
17185 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17186
17187         * Makefile.in (distclean): Delete tm_p.h.
17188         * configure.in: Create a new file, "tm_p.h", from a list in
17189         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
17190         "i386/i386-protos.h".
17191
17192         * alias.c: Include "tm_p.h".
17193         * c-typeck.c: Likewise.
17194         * calls.c: Likewise.
17195         * cse.c: Likewise.
17196         * emit-rtl.c: Likewise.
17197         * explow.c: Likewise.
17198         * expmed.c: Likewise.
17199         * expr.c: Likewise.
17200         * final.c: Likewise.
17201         * flow.c: Likewise.
17202         * fold-const.c: Likewise.
17203         * function.c: Likewise.
17204         * gcse.c: Likewise.
17205         * global.c: Likewise.
17206         * haifa-sched.c: Likewise.
17207         * integrate.c: Likewise.
17208         * jump.c: Likewise.
17209         * local-alloc.c: Likewise.
17210         * loop.c: Likewise.
17211         * optabs.c: Likewise.
17212         * recog.c: Likewise.
17213         * reg-stack.c: Likewise.
17214         * regclass.c: Likewise.
17215         * regmove.c: Likewise.
17216         * reload.c: Likewise.
17217         * reload1.c: Likewise.
17218         * reorg.c: Likewise.
17219         * resource.c: Likewise.
17220         * stmt.c: Likewise.
17221         * stor-layout.c: Likewise.
17222         * toplev.c: Likewise.
17223         * tree.c: Likewise.
17224         * unroll.c: Likewise.
17225         * genattrtab.c (main): Make generated file include "tm_p.h".
17226         * genemit.c (main): Likewise.
17227         * genoutput.c (main): Likewise.
17228         * genrecog.c (main): Likewise.
17229
17230         * i386.h: Delete all prototypes.
17231         * i386.c: Include "tm_p.h".
17232         (ix86_attr_length_default): Call constant_call_address_operand
17233         with correct number of arguments.
17234         * i386-protos.h: New file.
17235         * i386.md (unnamed patterns): Call constant_call_address_operand
17236         with correct number of arguments.
17237         (exception_receiver): Call load_pic_register with correct number
17238         of arguments.
17239
17240 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
17241
17242         * c-pragma.c (mark_align_stack): Dereference the void* properly.
17243
17244 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
17245
17246         * rtl.h (insns_safe_to_move_p): New function.
17247         * loop.c (find_and_verify_loops): Use it.
17248         * rtlanal.c (insns_safe_to_move_p): Define it.
17249
17250 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
17251
17252         * c-pragma.c: Include ggc.h.
17253         * Makefile.in (c-pragma.o): Update.
17254
17255 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17256
17257         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
17258         (LIB_SPEC): Likewise.
17259         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
17260         Reindent -YP/-p/-pg.
17261         Copied from config/sparc/sol2.h.
17262
17263 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
17264
17265         * c-pragma.c (mark_align_stack): New.
17266         (init_pragma): New.
17267         * c-pragma.h (init_pragma): Declare it.
17268         * c-lex.c (init_parse): Call it.
17269
17270 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17271
17272         * configure.in: Pick up thread library on Solaris/x86 just
17273         like on Solaris/sparc.
17274         * configure: Rebuilt.
17275
17276 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
17277
17278         * rtl.h (global_rtx_index): New enum.
17279         (global_rtl): Change to array of rtx.
17280         (pc_rtx, cc0_rtx): Redefine accordingly.
17281         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
17282         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
17283         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
17284         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
17285         (const_int_rtx): Change to array of rtx.
17286         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
17287         accordingly.
17288         * emit-rtl.c (global_rtl): Change to array of rtx.
17289         (const_int_rtx): Change to aray of rtx.
17290         (gen_rtx_CONST_INT): Redefine accordingly.
17291         (init_emit_once): Allocate and initialize global_rtl.  Likewise
17292         for const_int_rtx.  Add both as GC roots.
17293         * genattrtab.c (global_rtl): Update declaration.
17294
17295 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
17296
17297         * Makefile (USER_H): Add iso646.h back.
17298
17299 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
17300
17301         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
17302         zapping the LOG_LINKS of sched_before_next_call.
17303
17304         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
17305         * pa.c (insn_refs_are_delayed): Renamed from
17306         insn_sets_and_refs_are_delayed.
17307
17308 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
17309
17310         * functiion.h (struct function): Add x_whole_function_mode_p.
17311         (retrofit_block): Declare.
17312         * function.c (retrofit_block): New function.
17313         (identify_blocks): Add assertions.  Allow an incomplete set of
17314         block notes if we're still generating code for the function.
17315         * integrate.c: Include loop.h.
17316         (expand_inline_function): Call find_loop_tree_blocks to map block
17317         notes to blocks when in whole-function mode.  Use retrofit_block
17318         to insert new BLOCKs for the inlined function, rather than
17319         insert_block.
17320         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
17321         * Makefile.in (integrate.o): Depend on loop.h.
17322
17323 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
17324
17325         * tree.h (warn_about_unused_variables): Declare.
17326         * stmt.c (warn_about_unused_variables): New function, split out
17327         from ...
17328         (expand_end_bindings): Here.
17329
17330 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
17331
17332         * stmt.c (preserve_subexpressions_p): Don't crash when
17333         current_function->stmt is unset.
17334
17335 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
17336
17337         * stmt.c (expand_start_bindings): Allow callers to pass a flag
17338         indicating that no NOTE_INSN_BLOCK_BEG note is required.
17339         (expand_start_target_temps): Use it.
17340         * except.c (expand_eh_region_start_for_decl): Likewise.
17341         * expr.c (expand_expr): Likewise.
17342
17343 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
17344
17345         * fold-const.c (operand_equal_p): Pay attention to side effects.
17346
17347 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
17348
17349         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
17350         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
17351
17352         * tlink.c (scan_linker_output): Look for keywords before accepting
17353         a mangled name in quotes.
17354
17355 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
17356
17357         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
17358         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
17359
17360 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
17361
17362         * alpha.md: Revert Thu Nov 26 change that came in through the
17363         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
17364         Avoid earlyclobber when possible.
17365
17366 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17367
17368         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
17369
17370         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
17371         Define HAVE_ON_EXIT.
17372
17373 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17374
17375         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
17376         CTYPE_CONV in all ctype macros.
17377
17378         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
17379         from system.h.
17380
17381         * cexp.y (initialize_random_junk): Likewise.
17382
17383         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
17384
17385         * i370.c (handle_pragma): Likewise.
17386
17387         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
17388
17389         * v850.c (override_options): Likewise.
17390
17391         * doprint.c (_doprnt): Likewise.
17392
17393         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
17394         Likewise.
17395
17396         * fixinc/server.c (load_data): Likewise.
17397
17398         * fold-const.c (real_hex_to_f): Likewise.
17399
17400         * genattr.c (write_upcase, gen_attr): Likewise.
17401
17402         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
17403         write_upcase): Likewise.
17404
17405         * genemit.c (print_code): Likewise.
17406
17407         * genopinit.c (gen_insn): Likewise.
17408
17409         * genpeep.c (print_code): Likewise.
17410
17411         * genrecog.c (print_code): Likewise.
17412
17413         * optabs.c (init_libfuncs): Likewise.
17414
17415 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
17416
17417         * haifa-sched.c (sched_analyze): Keep the list of notes organized
17418         in pairs.
17419         (reemit_notes): Likewise.
17420
17421 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
17422
17423         * ggc.h (ggc_root): Move to ggc-common.c.
17424         (roots): Remove.
17425         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
17426         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
17427         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
17428         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
17429         * ggc-common.c (ggc_root): Move from ggc.h.
17430         (roots): Declare, static.
17431         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
17432         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
17433         null or check/set mark bit.
17434         (ggc_mark_roots): New.
17435         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
17436
17437 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
17438
17439         * m32r.c: Include toplev.h.
17440         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
17441         (gen_compare): Rename swap_p to must_swap to match uses.
17442         Add default abort case.
17443         (m32r_output_function_epilogue): Remove unused variables.
17444         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
17445         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
17446         define to empty parameter list.  Update all uses.
17447         (predicate decls): Use enum machine_mode not int.
17448         * m32r.md (movsi): Call abort, not fatal_insn.
17449         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
17450
17451 1999-09-14  Andrew Haley  <aph@cygnus.com>
17452
17453         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
17454         use $0 instead of 0.
17455
17456 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17457
17458         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
17459         computation out of loop over hard regs.
17460
17461 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
17462
17463         * function.c (identify_blocks): Don't shadow a variable in an
17464         outer scope.
17465         * integrate.c (integrate_decl_tree): Don't use pushlevel,
17466         pushdecl, or poplevel to build up the new BLOCK tree.
17467         (expand_inline_function): Likewise.
17468         (integrate_parm_decls): Likewise.
17469
17470 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
17471
17472         * c-typeck.c (qualify_type): Merge qualifiers from both types.
17473
17474 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
17475
17476         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
17477         * invoke.texi: Document this change.
17478
17479 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
17480
17481         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
17482         Free the struct.
17483         (mark_emit_status): Renamed from mark_emit_state.
17484         * except.c (mark_eh_status): Renamed from mark_eh_state.
17485         Check not null before marking.
17486         (free_eh_status): New.
17487         * expr.c (mark_expr_status, free_expr_status): New.
17488         * function.c (free_machine_status): New.
17489         (free_after_parsing): New.
17490         (free_after_compilation): Move bits to free_after_parsing; call
17491         free_eh_status, free_expr_status; zero the marked members of the
17492         function state.
17493         (prepare_function_start): No can_garbage_collect.
17494         Call init_eh_for_function.
17495         (expand_dummy_function_end): Free up current_function state.
17496         (mark_function_status): Renamed from mark_function_state.
17497         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
17498         * function.h (struct function): No can_garbage_collect.
17499         (free_machine_status, free_after_parsing): Declare.
17500         (free_eh_status, free_expr_status): Declare.
17501         * ggc.h (mark_expr_status): Declare.
17502         * stmt.c (free_stmt_status): Free the struct.
17503         (mark_stmt_status): Renamed from mark_stmt_state.
17504         (init_stmt): Don't call init_eh.
17505         (init_stmt_for_function): Don't call init_eh_for_function.
17506         * toplev.c (compile_file): Call init_eh.
17507         (rest_of_compilation): Free basic block info before ggc_collect.
17508         Call free_after_parsing; conditionally call free_after_compilation.
17509         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
17510         Check not null before marking.
17511         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
17512
17513 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
17514
17515         * c-lex.c (yylex): Initialize warn.
17516
17517 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
17518
17519         * pa.c (emit_move_sequence): Properly set the mode of the scratch
17520         register when performing secondary reloads for the SAR register.
17521
17522 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
17523
17524         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
17525         (NOTE_BLOCK): New macro.
17526         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
17527         * function.h (identify_blocks): Change prototype.
17528         * function.c (identify_blocks): Simplify.
17529         (reorder_blocks): Likewise.
17530         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
17531         NOTE_INSN_BLOCK_{BEG,END}.
17532         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
17533         the list of saved notes if the note isn't a
17534         NOTE_INSN_BLOCK_{BEG,END}.
17535         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
17536         NOTE_BLOCK_NUMBER.
17537         (reemit_notes): Adjust recreation of notes to reflect new saved
17538         note structure.
17539         * print-rtl.c (print_rtx): Print the address of the BLOCK when
17540         printing a block note.
17541         * stmt.c (block_vector): Remove.
17542         (find_loop_tree_blocks): Simplify.
17543         (unroll_block_trees): Likewise.
17544         * tree.h (reorder_block): Change prototype.
17545
17546 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
17547
17548         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
17549         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
17550         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
17551         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
17552         (atexit, exit): Simplify.
17553         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
17554         * config/lots: Remove defns of HAVE_ATEXIT.
17555
17556 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
17557
17558         * calls.c (precompute_arguments): Fix typo in comment.
17559         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
17560         TARGET_EXPR.
17561
17562 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
17563
17564         * dsp16xx.c (override_options): Fix typos in GC root registration.
17565
17566 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
17567
17568         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
17569         from config/svr4.h.
17570         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
17571         (FUNCTION_PROFILER): Redefine appropriately for Linux.
17572         (CC1_SPEC): Likewise.
17573
17574 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17575
17576         * genattr.c (main): Add extern prototype.  Call return, not exit.
17577         * genattrtab.c (main): Likewise.
17578         * gencheck.c (main): Likewise.
17579         * gencodes.c (main): Likewise.
17580         * genconfig.c (main): Likewise.
17581         * genemit.c (main): Likewise.
17582         * genextract.c (main): Likewise.
17583         * genflags.c (main): Likewise.
17584         * gengenrtl.c (main): Likewise.
17585         * genopinit.c (main): Likewise.
17586         * genoutput.c (main): Likewise.
17587         * genpeep.c (main): Likewise.
17588         * genrecog.c (main): Likewise.
17589
17590         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
17591         * genattrtab.c (get_insn_name): Likewise.
17592         * gencodes.c (get_insn_name): Likewise.
17593         * genconfig.c (get_insn_name): Likewise.
17594         * genemit.c (get_insn_name): Likewise.
17595         * genextract.c (get_insn_name): Likewise.
17596         * genflags.c (get_insn_name): Likewise.
17597         * genopinit.c (get_insn_name): Likewise.
17598         * genpeep.c (get_insn_name): Likewise.
17599
17600         * gencheck.c (usage): Add static prototype.
17601         * genextract.c (print_path): Constify a char*.
17602         * genopinit.c (optabs): Likewise.
17603         * genoutput.c (operand_data, data, output_predicate_decls,
17604         compare_operands): Likewise.
17605         * genrecog.c (write_tree): Add default case in switch.
17606
17607 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17608
17609         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
17610
17611         * print-rtl.c (get_insn_name): Remove prototype.
17612
17613         * toplev.h (progname): Declare const.
17614
17615         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
17616         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
17617         dump_sched_info, dump_local_alloc, regset_release_memory,
17618         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
17619         error_with_file_and_line, error_with_decl, error_for_asm, error,
17620         fatal, warning_with_file_and_line, warning_with_decl, warning,
17621         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
17622         Remove redundant prototypes.
17623
17624         (notice, check_lang_option, report_file_and_line, vnotice,
17625         mark_file_stack): Add static prototype.
17626         (set_fatal_function): Add prototype.
17627         (vnotice, report_file_and_line, set_fatal_function,
17628         check_lang_option): Constify a char*.
17629         (main): Prototype.  Call return, not exit.
17630
17631 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17632
17633         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
17634
17635         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
17636
17637         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
17638
17639         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
17640
17641 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17642
17643         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
17644         behave as if it's zero in all cases.
17645         (expand_function_start): Adjust call to assign_parms.
17646         * tree.h (assign_parms): Adjust prototype.
17647         * objc/objc-act.c (hack_method_prototype): Adjust call to
17648         assign_parms.
17649
17650 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
17651
17652         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
17653         arg_pointer_rtx fixed if the argument pointer register is
17654         not fixed.
17655         (NONZERO_BASE_PLUS_P): Likewise.
17656
17657 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
17658
17659         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
17660         match_insn2 to match_insn.
17661         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
17662
17663 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
17664
17665         * Makefile.in (USER_H): Remove va-foo.h.
17666
17667         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
17668         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
17669         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
17670         va-spur.h,va-v850.h}: Remove.
17671
17672 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
17673
17674         * sparc/sparc.md (eligible_for_return_delay): New attribute.
17675         (in_return_delay): Use it instead of match_insn.
17676
17677 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17678
17679         * config/alpha/va_list.h (va-alpha.h): Do not include.
17680         (__gnuc_va_list): Typedef as in varargs.h.
17681
17682 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
17683
17684         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
17685         DECL_LIVE_RANGE_RTL.
17686
17687 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
17688
17689         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
17690         not NOTE_BLOCK_NUMBER.
17691         (expand_eh_region_end): Likewise.
17692         (find_exception_handler_labels): Likewise.
17693         (scan_region): Likewise.
17694         (exception_optimize): Likewise.
17695         (update_rethrow_references): Likewise.
17696         (set_insn_eh_region): Likewise.
17697         * final.c (final_scan_insn): Likewise.
17698         * flow.c (make_edges): Likewise.
17699         * integrate.c (expand_inline_function): Likewise.
17700         * print-rtl.c (print_rtx): Likewise.
17701
17702 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
17703
17704         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
17705         terms of builtin functions and types.
17706
17707         * mips.c (mips_build_va_list): New.
17708         (mips_va_start, mips_va_arg): New.
17709         * mips.h (BUILD_VA_LIST_TYPE): New.
17710         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
17711
17712         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
17713         (sh_build_va_list, sh_va_start, sh_va_arg): New.
17714         * sh.h (BUILD_VA_LIST_TYPE): New.
17715         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
17716
17717 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
17718
17719         * recog.h (struct recog_data): Make dup_num, operand_address_p,
17720         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
17721         (struct insn_data): Likewise with n_operands, n_dups,
17722         n_alternatives, output_format.
17723         * regclass.c (scan_one_insn): Cast n_operands to int before
17724         arithmetic inside comparison.
17725
17726 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
17727
17728         * toplev.c (compile_function): Unconditionally emit nop.
17729
17730 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17731
17732         * haifa-sched.c (actual_hazard): Move declaration of variable
17733         `this_cost' into the scope where it is used.
17734
17735 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17736
17737         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
17738         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
17739         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
17740
17741         * genrecog.c (make_insn_sequence): Call memset, not bzero.
17742
17743         * jump.c (find_insert_position): Don't declare or define unless
17744         !HAVE_conditional_arithmetic.
17745         (returnjump_p_1, delete_prior_computation): Add static prototypes.
17746
17747         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
17748
17749         * recog.c (offsettable_address_p): Prototype function pointer.
17750         (preprocess_constraints): Call memset, not bzero.
17751
17752         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
17753         (gcc_obstack_init): Don't declare.
17754         (fix_sizetype): Add static prototype.
17755         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
17756         (tree_cons): Call memset, not bzero.
17757
17758         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
17759         definition in macro ASM_WEAKEN_LABEL.
17760         (mark_const_hash_entry): Add static prototype.
17761
17762 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17763
17764         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
17765
17766         * unroll.c (find_common_reg_term, subtract_reg_term,
17767         loop_find_equiv_value): Add static prototypes.
17768         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
17769         (copy_loop_body): Remove unreachable break statement.
17770
17771         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
17772
17773         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
17774
17775 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17776
17777         Undo some changes from the gcc2 merge:
17778         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
17779         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
17780         pointers.
17781
17782         Undo this change:
17783         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
17784         * emit-rtl.c (gen_lowpart_common): Disable optimization of
17785         initialized float-int union if the value is a NaN.
17786
17787 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17788
17789         * gthr-win32.h: New file.
17790
17791         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
17792         shared as a valid attribute.
17793         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
17794         * extend.texi: Document `shared' variable attribute.
17795
17796 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
17797
17798         * configure.in: Handle --enable-threads on FreeBSD.
17799         * configure: Rebuit.
17800
17801 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
17802
17803         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
17804         thread support.
17805         * configure: Rebuilt.
17806
17807 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
17808                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
17809                           Rosimildo DaSilva <rdasilva@connecttel.com>
17810
17811         * configure.in (m68k-*-rtemscoff*): Added.
17812         * configure.in (mips64orion-*-rtems*): Converted to ELF.
17813         * configure.in (sparc-*-rtemsaout*): Added as alias for old
17814         sparc-rtems configuration.
17815         * configure.in (sparc-*-rtemself*): Added.
17816         * configure.in (sparc-*-rtems*): Now ELF not a.out.
17817         * config/i386/rtems.h: Added comment.
17818         * config/sparc/rtemself.h: New file.
17819
17820         * configure.in (m68k-rtemself): Added.
17821         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
17822         and DWARF_DEBUGGING_INFO.
17823         * config/m68k/crti.s: New file.
17824         * config/m68k/crtn.s: New file.
17825         * config/m68k/t-crtstuff: New file.
17826         * config/m68k/rtemself.h: New file.
17827
17828         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
17829         global ctor/dtor and C++ exception handling.
17830         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
17831         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
17832         ENDFILE_SPEC.
17833         * config/i386/t-rtems-i386: New File.
17834
17835 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
17836
17837         * stmt.c (expand_end_case): Return right away if the case stack is
17838         empty.
17839
17840 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
17841
17842         * Makefile.in (version.c): Remove rule incorrectly brought in from
17843         the gcc2 merge.
17844
17845 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
17846
17847         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
17848         * msdos/top.sed:  Take into account a prepended $(SHELL) to
17849         move-if-change.
17850         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
17851
17852         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
17853
17854 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17855
17856         * regmove.c (fixup_match_1): Don't change an unchanging register.
17857         (stable_but_for_p): Renamed to:
17858         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
17859         Changed all callers.
17860
17861 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
17862
17863         * loop.c (strength_reduce): Don't call reg_used_between_p if the
17864         insn from BL2 is after the insn from BL.
17865
17866 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
17867
17868         * recog.h (INSN_OUTPUT_FORMAT_*): New.
17869         (struct insn_data): Merge `template' and `outfun' into `output'.
17870         Add `output_format'.
17871         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
17872         (struct data): Remove `outfun'; add `output_format'.
17873         (name_for_index): Remove declaration.
17874         (output_insn_data): Handle output formats.
17875         (process_template): Emit the bare array for @.
17876         (gen_expand, gen_split): Set output_format to NONE.
17877         * output.h (get_insn_template): Declare.
17878         * final.c (get_insn_template): New.
17879         (final_scan_insn): Use it.
17880         * toplev.c (compile_file): Likewise.
17881
17882         * c4x/c4x.c (c4x_process_after_reload): Likewise.
17883         * i860/i860.c (output_delayed_branch): Likewise.
17884         (output_delay_insn): Likewise.
17885
17886 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17887
17888         * rtl.c (obstack_alloc_rtx): Removed.
17889
17890 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
17891
17892         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
17893
17894 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
17895
17896         * i386.c (call_insn_operand): Reject const_int.
17897         (expander_call_insn_operand): Use call_insn_operand.
17898
17899 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17900
17901         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
17902
17903 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
17904
17905         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
17906         Use DImode operation.
17907
17908 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
17909
17910         * gcc.c: Include sys/resource.h.
17911         (report_times): New flag.
17912         (execute):  If report_times is set, calculate and report the
17913         CPU time consumed by each subprocess.
17914
17915         (rus, prus): New globals.
17916         (option_map): Add --time.
17917         (display_help): Document -time.
17918         (process_command): Set report_times if -time is given.
17919         Turn off -pipe if -time is given.
17920
17921         * invoke.texi: Document new option -time.
17922
17923         * configure.in: Check for getrusage.  Check if we have to
17924         prototype getrusage.
17925         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
17926         * configure: Regenerate.
17927         * config.in: Regenerate.
17928
17929 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
17930
17931         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
17932         fields.
17933
17934 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
17935
17936         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
17937         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
17938         (nan): Return _thenan_sf or _thenan_df as appropriate.
17939         (L_thenan_sf): Define _thenan_sf.
17940         (L_thenan_df): Define _thenan_df.
17941
17942         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
17943         (DPBIT_FUNCS): Add _thenan_df.
17944
17945 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
17946
17947         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
17948         TYPE_SIZE_UNIT.
17949
17950 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17951
17952         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
17953
17954         * gcc.h: New file.
17955         (lang_specific_driver): Don't take a function pointer parameter.
17956         All callers changed.
17957
17958         * gcc.c: Include gcc.h.
17959         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
17960         lang_specific_extra_outfiles, fatal): Don't declare.
17961         (multilib_defaults_raw): Constify.
17962         (read_specs): Call memset, rather than bzero.
17963         (main): Call return, not exit.
17964         (lookup_compiler): Call memcpy, not bcopy.
17965         (fatal): Make extern.
17966
17967         * cppspec.c: Include gcc.h.
17968         (lang_specific_driver): Initialize variable `quote'.  Constify a
17969         char*.  All calls to the function pointer parameter now
17970         explicitly call `fatal'.
17971
17972         * gccspec.c (lang_specific_driver): Include gcc.h.
17973
17974 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
17975
17976         * arm.c (note_invalid_constants): Use recog_data.operand_type
17977         for recog_op_type.
17978
17979 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17980
17981         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
17982         Declare.
17983
17984         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
17985         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
17986         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
17987         reload_secondary_in_reload, reload_secondary_out_reload,
17988         reload_secondary_in_icode, reload_secondary_out_icode,
17989         reload_reg_rtx, reload_when_needed): Delete declarations.
17990         (struct reload): New structure.
17991         (rld): Declare new array.
17992         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
17993         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
17994         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
17995         reload_secondary_in_reload, reload_secondary_out_reload,
17996         reload_secondary_in_icode, reload_secondary_out_icode,
17997         reload_reg_rtx, reload_when_needed): Delete definitions.
17998         (rld): New array.
17999         (whole file): Replace uses of the deleted arrays with uses of rld.
18000         * reload1.c (whole file): Replace uses of the deleted arrays with
18001         uses of rld.
18002         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
18003         explicit loops, not with bcopy.
18004
18005 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
18006
18007         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
18008         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
18009         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
18010         insn_name): Delete and consolidate into new structures.
18011         (insn_operand_predicate_fn): New.
18012         (insn_output_fn): New.
18013         (insn_gen_fn): New.
18014         (struct insn_operand_data): New.
18015         (struct insn_data): New.
18016         (insn_data): New.
18017         (OUT_FCN): Update for insn_data change.
18018         * builtins.c (expand_builtin_strlen): Likewise.
18019         (expand_builtin_memcmp): Likewise.
18020         * combine.c (make_extraction, simplify_comparison): Likewise.
18021         * cse.c (canon_reg, cse_insn): Likewise.
18022         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
18023         * expmed.c (store_bit_field, extract_bit_field): Likewise.
18024         (emit_store_flag): Likewise.
18025         * expr.c (convert_move, emit_block_move): Likewise.
18026         (clear_storage, emit_push_insn, expand_increment): Likewise.
18027         (do_store_flag): Likewise.
18028         * expr.h (GEN_FCN): Likewise.
18029         (insn_gen_function): Die.
18030         * final.c (final_scan_insn): Update for insn_data change.
18031         (output_asm_name): Likewise.
18032         * function.c (fixup_var_refs_1): Likewise.
18033         * loop.c (check_dbra_loop): Likewise.
18034         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
18035         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
18036         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
18037         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
18038         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
18039         * regmove.c (gen_add3_insn): Likewise.
18040         * reload.c (push_secondary_reload, combine_reloads): Likewise.
18041         (find_reloads, find_reloads_address_1): Likewise.
18042         (debug_reload_to_stream): Likewise.
18043         * reload1.c (emit_reload_insns, gen_reload): Likewise.
18044         * stmt.c (expand_end_case): Likewise.
18045         * toplev.c (compile_file): Likewise.
18046
18047         * c4x/c4x.c (c4x_process_after_reload): Likewise.
18048         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
18049
18050         * print-rtl.c (insn_name_ptr): Remove declaration.
18051         (get_insn_name): Declare.
18052         (print_rtx): Use it.
18053         * genoutput.c (insn_name_ptr): Remove.
18054         (next_operand_number): New.
18055         (struct operand_data): New.
18056         (null_operand, odata, odata_end): New.
18057         (struct data): Use struct operand_data.
18058         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
18059         (get_insn_name): Renamed from name_for_index.
18060         (output_prologue): Define NO_MD_PROTOTYPES.
18061         (output_predicate_decls): Break out from output_epilogue.
18062         Iterate over the operands list.
18063         (output_operand_data): Break out from output_epilogue.  Emit
18064         just the operands list.
18065         (output_insn_data): Break out from output_epilogue.  Emit just
18066         the insn data.
18067         (output_epilogue): Remove.
18068         (output_get_insn_name): New.
18069         (constraints, op_n_alternatives, predicates, address_p): Die.
18070         (modes, strict_low, seen): Die.
18071         (scan_operands): Take new param `d' instead of writing to
18072         seven global variables.
18073         (compare_operands): New.
18074         (place_operands): New.
18075         (validate_insn_alternatives): Update for struct data change.
18076         (gen_insn): Don't zero or copy 7 global arrays.  Update for
18077         scan_operands; call place_operands.
18078         (gen_peephole, gen_expand, gen_split): Likewise.
18079         (main): Update for new output routines.
18080
18081         * genattr.c (insn_name_ptr): Remove.
18082         (get_insn_name): New function.
18083         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
18084         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
18085         * genrecog.c: Likewise.
18086
18087         * alpha.md (adddi3): Make `pattern' array static.
18088
18089 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18090
18091         * config/c4x/c4x.h (c4x_rpts_cycles_string,
18092         c4x_cpu_version_string): Constify char *.
18093         * config/c4x/c4x.c (c4x_rpts_cycles_string,
18094         c4x_cpu_version_string): Likewise.
18095
18096 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
18097
18098         * tree.c (save_tree_status): Revert 10 Sep change.
18099         (restore_tree_status): Likewise.  Call obstack_free with NULL
18100         before freeing the obstack proper.
18101
18102 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
18103
18104         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
18105
18106         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
18107         surrounding context.
18108
18109 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
18110
18111         * tree.c (type_hash_canon): Put all types in the hash-table, when
18112         GC'ing.
18113
18114 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
18115
18116         * recog.h (struct recog_data, recog_data): New.
18117         (recog_foo variables): Kill.
18118         * recog.c (recog_operand, recog_operand_loc): Kill.
18119         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
18120         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
18121         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
18122         (recog_data): Define.
18123         (extract_insn): Update all recog_foo references to use recog_data.
18124         (preprocess_constraints, constrain_operands): Likewise.
18125         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
18126         * genattrtab.c (main): Likewise.
18127         * genextract.c (main): Likewise.
18128         * genoutput.c: Likewise.
18129         * genrecog.c (write_subroutine, main): Likewise.
18130         * local-alloc.c (block_alloc): Likewise.
18131         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
18132         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
18133         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
18134         * reload.c (find_reloads, find_reloads_toplev): Likewise.
18135         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
18136         (reload_cse_simplify_operands): Likewise.
18137
18138         * arc/arc.c (arc_final_prescan_insn): Likewise.
18139         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
18140         * h8300/h8300.c (notice_update_cc): Likewise.
18141         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
18142         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
18143         * mn10200/mn10200.c (notice_update_cc): Likewise.
18144         * mn10300/mn10300.c (notice_update_cc): Likewise.
18145         * romp/romp.c (update_cc): Likewise.
18146         * sparc/sparc.c (check_pic): Likewise.
18147         * v850/v850.c (notice_update_cc): Likewise.
18148
18149         * genemit.c (main): Don't declare recog_operand.
18150
18151 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
18152
18153         * ggc.h (rtvec_def): Forward declare.
18154         (tree_node): Likewise.
18155         (ggc_root): Define.
18156         (roots): Declare.
18157         (ggc_set_mark_rtx): Add prototype.
18158         (ggc_set_mark_rtvec): Likewise.
18159         (ggc_set_mark_tree): Likewise.
18160         * ggc-simple.c (ggc_root): Don't define.
18161         (roots): Don't declare.
18162         (ggc_mark_rtx): Remove.
18163         (ggc_mark_rtvec): Likewise.
18164         (ggc_mark_tree): Likewise.
18165         (ggc_mark_varray): Likewise.
18166         (ggc_mark_tree_hash_table_entry): Likewise.
18167         (ggc_mark_tree_hash_table): Likewise.
18168         (ggc_set_mart_rtx): New function.
18169         (ggc_set_mark_rtvec): Likewise.
18170         (ggc_set_mark_tree): Likewise.
18171         (ggc_add_root): Remove.
18172         (ggc_add_rtx_root): Likewise.
18173         (ggc_remove_tree_root): Likewise.
18174         (ggc_add_string_root): Likewise.
18175         (ggc_add_tree_varray_root): Likewise.
18176         (ggc_add_tree_hash_table_root): Likewise.
18177         (ggc_del_root): Likewise.
18178         (ggc_mark_rtx_ptr): Likewise.
18179         (ggc_mark_tree_ptr): Likewise.
18180         (ggc_mark_string_ptr): Likewise.
18181         (ggc_mark_tree_varray_ptr): Likewise.
18182         (ggc_mark_tree_hash_table_ptr): Likewise.
18183         * ggc-common.c: New file.
18184         * Makefile.in (OBJS): Add ggc-common.o.
18185         (ggc-common.o): List dependencies.
18186
18187 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
18188
18189         * cppalloc.c (xstrdup): Use memcpy.
18190         * cpperror.c (cpp_print_containing_files): Don't use
18191         cpp_notice.
18192         * cpplib.c (conditional_skip): Set temp->lineno.
18193         (do_endif): Make error message less obscure.
18194         (if_directive_name): New function.
18195         (cpp_get_token [case EOF]): Unwind the if stack and generate
18196         error messages for each unterminated conditional in this file.
18197         (parse_string):  Do not behave differently if -traditional.
18198
18199 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
18200
18201         * builtins.c (expand_builtin_va_arg): Cope with an array-type
18202         va_list decomposing to pointer-type.
18203         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
18204         (rs6000_va_arg): Likewise.
18205
18206 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
18207
18208         * except.c (start_dynamic_handler): Compute size using
18209         STACK_SAVEAREA_MODE.
18210
18211 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18212
18213         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
18214         include directory headers.  Don't define strrchr.  Don't provide
18215         my_* replacement functions.  Prefer PTR over `pointer_type'.
18216         Don't prototype system functions.  Don't redefine getopt.
18217
18218         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
18219         safe_read, safe_write, save_pointers, restore_pointers,
18220         is_id_char, in_system_include_dir, directory_specified_p,
18221         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
18222         find_corresponding_lparen, referenced_file_is_newer,
18223         save_def_or_dec, munge_compile_params, gen_aux_info_file,
18224         process_aux_info_file, identify_lineno, check_source,
18225         seek_to_line, forward_to_next_token_char, output_bytes,
18226         output_string, output_up_to, other_variable_style_function,
18227         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
18228         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
18229         find_static_definition, connect_defs_and_decs, add_local_decl,
18230         add_global_decls, needs_to_be_converted, visit_each_hash_node,
18231         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
18232         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
18233         scan_for_missed_items, edit_file, string_list_cons): Add static
18234         prototypes.
18235         (standard_exec_prefix, target_machine, target_version,
18236         default_syscalls_dir, string_list, string_list_cons, find_file,
18237         do_cleaning): Constify a char*.
18238         (safe_read, safe_write): Use PTR, not a char*.
18239         (is_id_char): Take an int, not a char.
18240         (main): Add prototype.  Call return, not exit.
18241
18242 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
18243
18244         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
18245         when comparing types.
18246
18247 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
18248
18249         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
18250         (strength_reduce): Release the varrays from the no-bivs early exit.
18251
18252         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
18253         the loop over the registers.
18254
18255         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
18256         for a new obstack.
18257         (restore_tree_status): Check that instead when freeing the obstack.
18258
18259 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
18260
18261         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
18262         as pointers.
18263
18264 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18265
18266         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
18267         operand size modifiers.
18268
18269 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18270
18271         * c-common.c (c_common_nodes_and_builtins): Don't build
18272         va_list_type_node.
18273         * c-common.h (enum c_tree_index and related accesor macros): Remove
18274         everything now declared in tree.h.
18275         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
18276         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
18277         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
18278         (error_mark_node, void_type_node, char_type_node, integer_type_node,
18279         unsigned_type_node, ptr_type_node, va_list_type_node,
18280         integer_zero_node, null_pointer_node, integer_one_node): Delete.
18281         (init_decl_processing): Call build_common_tree_nodes and
18282         build_common_tree_nodes_2 instead of building their nodes here.
18283         Don't add roots for these nodes.
18284         * stor-layout.c (size_zero_node, size_one_node): Delete.
18285         (set_sizetype): Make a new node for bitsizetype each time.
18286         * tree.c (global_trees): New variable.
18287         (init_obstacks): Add a gc root for it.
18288         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
18289         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
18290         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
18291         (build_common_tree_nodes): New function.
18292         (fix_sizetype): New function.
18293         (build_common_tree_nodes_2): New function.
18294         * tree.h (enum tree_index): New.
18295         (global_trees): Declare.
18296         Add accessor macros for all nodes now moved to global_trees.
18297         Delete their declarations.
18298
18299 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
18300
18301         * c-decl.c (finish_function): When processing a nested function,
18302         push and pop GC context around rest_of_compilation.
18303
18304 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
18305
18306         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
18307         Default ix86_arch to PROCESSOR_I386.
18308         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
18309         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
18310         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
18311         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
18312         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
18313         (EXTRA_SPECS): Remove deleted specs.
18314
18315 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
18316
18317         * function.c (assign_stack_local_1): Allocate from
18318         function->x_frame_offset, not frame_offset.
18319
18320 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
18321
18322         * ggc.h (lang_cleanup_tree): Remove.
18323         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
18324         * ggc-callbacks.c (lang_cleanup_tree): Remove.
18325
18326         * c-decl.c (finish_struct): Use ggc_alloc to allocate
18327         TYPE_LANG_SPECIFIC when garbage collecting.
18328         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
18329         (lang_cleanup_tree): Remove.
18330
18331 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
18332
18333         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
18334         * crtstuff.c: Not here.
18335         * dwarf2out.c: Or here.
18336         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
18337         info.
18338
18339 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
18340
18341         * function.h (free_after_compilation): Remove decl parameter.
18342         (free_varasm_status0: Likewise.
18343         (free_emit_status): Likewise.
18344         (free_stmt_status): Likewise.
18345         (free_after_compilation): Likewise.
18346         (init_lang_status): New variable.
18347         (free_lang_status): Likewise.
18348         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
18349         * function.c (init_lang_status): New variable.
18350         (free_lang_status): Likewise.
18351         (push_function_context_to): Don't set function::decl here.
18352         (free_after_copmilation): Make decl parameter implicit.  Call
18353         free_lang_status if defined.
18354         (prepare_function_start): Call init_lang_status if defined.
18355         (init_function_start): Set function::decl here.
18356         * profile.c (output_func_start_profiler): Don't call pushdecl
18357         until we've actually started the function.
18358         * stmt.c (free_stmt_status): Make decl parameter implicit.
18359         * toplev.c (rest_of_compilation): Don't pass decl to
18360         free_after_compilation.
18361         * varasm.c (free_varasm_status): Likewise.
18362
18363 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18364
18365         * except.c (call_get_eh_context): Add root when allocating static
18366         tree variable.
18367
18368 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
18369
18370         * arm.c: Include "ggc.h".
18371         (arm_add_gc_roots): New function.
18372         (arm_override_options): Call it.
18373         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
18374
18375         * arm.md (define_asm_attributes): Add a pool_range attribute.
18376
18377 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
18378
18379         * extend.texi (Volatiles): New node.
18380
18381 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
18382
18383         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
18384         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
18385         (struct ggc_any): Replace `mark' with `magic_mark'.
18386         (ggc_alloc_string): Use memcpy, not bcopy.
18387         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
18388         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
18389         (ggc_free_any): New.
18390         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
18391         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
18392         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
18393         Use IS_MARKED. Use ggc_free_any.
18394
18395 1999-09-09  Scott Bambrough <scottb@netwinder.org>
18396
18397         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
18398
18399 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
18400
18401         * toplev.c (main): Always init_ggc.
18402
18403 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
18404
18405         * except.c (find_all_handler_type_matches): Free the list if
18406         we found no matches.
18407
18408         * combine.c (SUBST): Break out to a real function do_SUBST.
18409         (SUBST_INT): Likewise.
18410         * gcse.c (free_pre_mem): Free `temp_bitmap'.
18411         (pre_insert): Free `inserted'.
18412         * loop.c (basic_induction_var): Always set `location'.
18413
18414         * function.c (expand_function_end): Add initial_trampoline as a root.
18415         * rtl.h (init_varasm_once): Declare.
18416         * toplev.c (compile_file): Call it.
18417         * ggc-simple.c (ggc_mark_string_ptr): New.
18418         (ggc_add_string_root): New.
18419         (ggc_collect): Disable collection avoidance temporarily.
18420         * ggc.h (ggc_add_string_root): Declare.
18421         * except.c (create_rethrow_ref): Use ggc_alloc_string.
18422         * optabs.c (init_libfuncs): Likewise.
18423         * varasm.c (named_section): Use ggc_alloc_string.
18424         (make_function_rtl): Likewise.
18425         (make_decl_rtl): Likewise.
18426         (assemble_static_space): Likewise.
18427         (assemble_trampoline_template): Likewise.
18428         (output_constant_def): Likewise.
18429         (force_const_mem): Likewise.
18430         (mark_const_hash_entry): New.
18431         (mark_pool_sym_hash_table): New.
18432         (mark_varasm_state): Use it.
18433         (init_varasm_once): New.
18434
18435         * expr.h (init_one_libfunc): Declare.
18436         * optabs.c (init_one_libfunc): New.
18437         (init_optabs): Use it.
18438         * config/gofast.h: Likewise.
18439         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
18440         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
18441
18442 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
18443
18444         * Makefile.in (cppexp.o): Depend on cpphash.h.
18445         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
18446         Include cpphash.h.
18447         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
18448         * cpplib.c (do_define): Generalise to handle poisoned definitions,
18449         redefining poisoned identifiers, etc.
18450         (do_undef): Don't allow poisoned identifiers to be undefined.
18451         (do_pragma): Add #pragma poison.
18452         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
18453
18454         * cccp.c: Add T_POISON node type.
18455         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
18456         poisoned xxx.
18457         (do_define): Generalise to handle poisoned definitions,
18458         redefining poisoned identifiers, etc.
18459         (do_undef): Don't allow poisoned identifiers to be undefined.
18460         (do_pragma): Add #pragma poison.
18461         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
18462
18463         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
18464         * c-pragma.h: Add ps_poison state.  We now always have generic
18465         pragmas.
18466
18467 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
18468
18469         * ggc.h (ggc_alloc): New function.
18470         (ggc_mark): Likewise.
18471         * ggc-simple.c (ggc_any): New structure.
18472         (ggc_status): Add anys.
18473         (n_anys_collected): New variable.
18474         (ggc_alloc): Define.
18475         (ggc_mark): Likewise.
18476         (ggc_collect): Collect the anys.
18477
18478 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18479
18480         * c-decl.c (mark_binding_level): Make static to match prototype.
18481
18482 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
18483
18484         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
18485
18486 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
18487
18488         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
18489         will use into account.  Expand the max width to 5.
18490         * rtl.c: Likewise.
18491
18492 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
18493
18494         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
18495         for the rtx length.
18496
18497 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
18498
18499         * alpha.md (call value patterns): Remove the result predicates.
18500
18501 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
18502
18503         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
18504         last change.
18505
18506 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18507
18508         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
18509         changed from extern char *, to extern PTR.  Also fix typo in
18510         NEED_DECLARATION_REALLOC test.
18511
18512         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
18513
18514 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18515
18516         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
18517         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
18518         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
18519         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
18520
18521         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
18522
18523         * cccp.c (pcfinclude): Likewise.
18524
18525         * global.c (allocno_compare): Likewise.
18526
18527         * haifa-sched.c (rank_for_schedule): Likewise.
18528
18529         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
18530
18531         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
18532
18533         * stupid.c (stupid_reg_compare): Likewise.
18534
18535         * tree.c (_obstack_allocated_p): Likewise.
18536
18537         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
18538
18539 1999-09-08  Bruce Korb  autogen@linuxbox.com
18540
18541         * Makefile.in: Give the hapless gperf user a hint about
18542         why "gperf -F" fails.
18543
18544 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
18545
18546         * lists.c: Include ggc.h.
18547         (zap_lists): New.
18548         (init_EXPR_INSN_LIST_cache): Install it.
18549
18550         * ggc-simple.c (init_ggc): Absorb the old init.
18551         (ggc_push_context): Use xcalloc.
18552         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
18553         (ggc_collect): Add [rvts] tags to the collection stats.
18554
18555 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
18556
18557         * cccp.c (main): Fix handling of -include and -imacros options.
18558
18559 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
18560
18561         * cpplib.c (cpp_push_buffer): Fix order of arguments.
18562
18563 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
18564
18565         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
18566         genrtl.c.
18567
18568 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
18569
18570         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
18571         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
18572         and SET_DEST. Update comment.
18573
18574 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18575
18576         * config/c4x/c4x.c: Include ggc.h.
18577         (c4x_add_gc_roots): New function.
18578         (c4x_override_options): Call c4x_add_gc_roots.
18579
18580 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
18581
18582         * defaults.h (TARGET_ESC): Move ...
18583         * system.h: ... here, where Linas had it in the first place.  Silly me.
18584
18585 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
18586
18587         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
18588         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
18589         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
18590         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
18591         * defaults.h (TARGET_ESC): Add default.
18592
18593 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
18594
18595         * configure.in: add i370-*-openedition, i370-*-mvs and
18596         i370-*-linux targets
18597
18598 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
18599
18600         * dsp16xxx.c: Include ggc.h
18601         (override_options): Mark GC roots.
18602         * mn10200.c: Include ggc.h.
18603         (asm_file_start): Mark GC roots.
18604         * tahoe.c: Include ggc.h.
18605         (extensible_operand): Mark GC roots.
18606
18607 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
18608
18609         * README: Add section discussing status of ELF ABI.
18610         * i370.c: Fix misc spelling mistakes.
18611         (i370_label_scan): Updated notes, exception handling.
18612         (i370_function_prolog): Simplify ELF stack handling.
18613         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
18614         (STACK_GROWS_DOWNWARD): ELF stack grows down.
18615         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
18616         * i370.md: (movdi): Add notes.
18617         (floatsidf2): Use stack not rtca for scratch float area.
18618         (iorsi3): Correct operand constraints.
18619         * x-oe: Restore TAROUTOPTS which are used by pax.
18620
18621 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
18622
18623         * rs6000.c: Include ggc.h.
18624         (rs6000_add_gc_roots): New function.
18625         (override_options): Call it.
18626
18627 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
18628
18629         * alpha.h (alpha_compare): New.
18630         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
18631         * alpha.c: Likewise for the definitions.
18632         (alpha_emit_conditional_branch): Update for alpha_compare.
18633         (alpha_emit_conditional_move): Likewise.
18634         * alpha.md (cmpdf, cmpdi): Likewise.
18635         (setcc patterns): Likewise.  Zero alpha_compare after use.
18636         (sne): Optimize (x != 0) into (0U < x).
18637
18638 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
18639
18640         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
18641         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
18642         (INIT_EXPANDERS): Remove.
18643         * alpha.c: Include ggc.h.
18644         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
18645         (alpha_init_machine_status, alpha_mark_machine_status): New.
18646         (override_options): Install them.
18647         (struct machine_function): Moved to alpha.h.
18648         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
18649         (alpha_init_expanders): Remove.
18650         (alpha_return_addr): Adjust to use current_function->machine.
18651         (alpha_ra_ever_killed): Likewise.
18652         (alpha_expand_epilogue): Likewise.
18653         * alpha.md (eh_epilogue): Likewise.
18654
18655 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
18656                           Melissa O'Neill  <oneill@cs.sfu.ca>
18657                           Geoffrey Keating  <geoffk@cygnus.com>
18658
18659         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
18660         call-used registers (call-saved registers must still be contiguous
18661         and end with r31, of course).
18662
18663 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
18664
18665         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
18666         (self_promoting_type_p): Delete.
18667         (self_promoting_args_p): Move ...
18668         * c-common.c: ... here.
18669         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
18670         (simple_type_promotes_to): New.
18671         * builtins.c (lang_type_promotes_to): New.
18672         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
18673         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
18674         * c-common.h: ... here.
18675         (self_promoting_args_p, simple_type_promotes_to): Declare.
18676         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
18677         (grokdeclarator): Likewise.
18678         * tree.h (lang_type_promotes_to): Declare.
18679
18680 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
18681
18682         Add some machine-dependent GC roots.
18683         * sparc.c: Include ggc.h.
18684         (sparc_add_gc_roots): New function.
18685         (mark_ultrasparc_pipeline_state): Likewise.
18686         (override_options): Call sparc_add_gc_roots.
18687         * pa.c: Include ggc.h.
18688         (pa_add_gc_roots): New function.
18689         (mark_deferred_plabels): Likewise.
18690         (override_options): Call pa_add_gc_roots.
18691         * mips.c: Include ggc.h.
18692         (mips_add_gc_roots): New function.
18693         (override_options): Use it.
18694
18695 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18696
18697         * cpperror.c (cpp_file_line_for_message): Constify a char*.
18698
18699         * cppexp.c (parse_number, parse_charconst, cpp_lex,
18700         cpp_parse_expr): Add static prototypes.
18701         (parse_charconst): Don't cast away const-ness.
18702         (token): Constify a char*.
18703
18704         * cppfiles.c (file_name_list, include_hash, find_include_file,
18705         finclude, initialize_input_buffer): Constify a char*.
18706         (file_cleanup, find_position): Add static prototypes.
18707
18708         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
18709         collect_expansion): Add static prototypes.
18710         (cpp_install, create_definition, monthnames): Constify a char*.
18711
18712         * cpphash.h (cpp_install): Likewise.
18713
18714         * cppinit.c (known_suffixes, default_include,
18715         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
18716         (base_name, dump_special_to_buffer, initialize_dependency_output):
18717         Add static prototypes.
18718
18719         * cpplib.c (my_strerror): Constify a char*.
18720         (null_underflow, null_cleanup, skip_comment, copy_comment,
18721         copy_rest_of_line, handle_directive, pass_thru_directive,
18722         get_directive_token, read_line_number, cpp_print_file_and_line,
18723         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
18724         v_cpp_warning_with_line, detect_if_not_defined,
18725         consider_directive_while_skipping): Add static prototypes.
18726         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
18727         cpp_pedwarn_with_file_and_line): Constify a char*.
18728
18729         * cpplib.h (cpp_options, include_hash, progname, definition,
18730         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
18731         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
18732         find_include_file, deps_output, include_hash): Constify a char*.
18733
18734         * cppmain.c (progname): Constify.
18735         (main): Add prototype.  Use return, not exit.
18736
18737         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
18738         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
18739         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
18740         check_protection): Add static prototype.
18741         (xfree): Remove.
18742         (progname, recognized_macrom, recognized_extern): Constify a char*.
18743         (main): Add prototype.
18744
18745         * gen-protos.c (progname): Constify a char*.
18746
18747 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
18748
18749         * emit-rtl.c (free_emit_status): Take decl as a parameter.
18750         (init_emit_once): Add more GC roots.
18751         * except.c (mark_func_eh_entry): New function.
18752         (mark_eh_node): Mark false_label and rethrow_label.
18753         (init_eh): Add more GC roots.
18754         * function.c (free_after_compilation): Take decl as a paramter.
18755         Call free_stmt_status.
18756         (mark_function_state): Don't assume x_parm_reg_stack_loc is
18757         non-NULL.
18758         * function.h (free_after_compilation): Change prototype.
18759         (free_varasm_status): Likewise.
18760         (free_emit_status): Likewise.
18761         (free_stmt_status): New function.
18762         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
18763         Remove, replacing with ...
18764         (ggc_status): New structure.
18765         (ggc_chain): New variable.
18766         (init_gcc): Define.
18767         (ggc_push_context): New function.
18768         (ggc_pop_context): Likewise.
18769         (ggc_alloc_rtx): Adjust for use of ggc_chain.
18770         (ggc_alloc_rtvec): Likewise.
18771         (ggc_alloc_tree): Likewise.
18772         (ggc_alloc_string): Likewise.
18773         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
18774         (ggc_mark_tree): Give language-dependent code a chance to mark
18775         `x' nodes.
18776         (ggc_mark_tree_varray): Handle empty arrays.
18777         (ggc_collect): Adjust for use of ggc_chain.  Clear
18778         bytes_alloced_since_last_gc.
18779         * ggc.h (ggc_pop_context): New function.
18780         (ggc_push_context): Likewise.
18781         * print-tree.c (print_node): Don't print obstacks when GC'ing.
18782         * stmt.c (free_stmt_status): New function.
18783         (init_stmt_for_function): Clear last_expr_value.
18784         * toplev.c (rest_of_compilation): Always call free_after_compilation.
18785         Conditionalize call to ggc_collect.
18786         (main): Call init_ggc.
18787         * tree.c (push_obstacks): Do the push, even when GC'ing.
18788         (push_obstacks_nochange): Likewise.
18789         (pop_obstacks): Liekwise.
18790         * varasm.c (free_varasm_status): Take decl as a parameter.
18791
18792 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18793
18794         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
18795         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
18796         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
18797         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
18798
18799 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
18800
18801         * pa/x-pa-mpeix: New file for the MPE port.
18802
18803         * pa/quadlib.asm: New file for long double support.
18804
18805         * configure.in: Add hppa1.0-*-mpeix for MPE port.
18806         * configure: Rebuilt.
18807
18808 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
18809
18810         * final.c (shorten_branches): Fix last change.
18811
18812 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
18813
18814         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
18815
18816 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
18817
18818         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
18819         details.
18820
18821 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18822
18823         * c-aux-info.c (concat): Don't define.
18824
18825         * cccp.c (my_strerror): Likewise.  All callers changed to use
18826         xstrerror instead.
18827         (do_include): Call xstrdup, not xmalloc/strcpy.
18828         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
18829         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
18830
18831         * collect2.c (my_strsignal): Likewise.  All callers changed to use
18832         strsignal instead.
18833         (locatelib): Call xstrdup, not xmalloc/strcpy.
18834
18835         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
18836
18837         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
18838
18839         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
18840
18841         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
18842
18843         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
18844
18845         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
18846
18847         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
18848         malloc/realloc.
18849         (find_all_handler_type_matches): Likewise.  Don't check return
18850         value.
18851         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
18852         xmalloc, not malloc.
18853         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
18854
18855         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
18856         (init_spec): Call xcalloc, not xmalloc/bzero.
18857         (set_spec): Call xstrdup, not save_string.
18858         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
18859         (find_a_file): Call xstrdup, not xmalloc/strcpy.
18860         (process_command): Call xstrdup, not save_string.
18861         (main): Call xcalloc, not xmalloc/bzero.
18862
18863         * gcov.c (xmalloc): Don't define.
18864         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
18865         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
18866         (output_data): Call xcalloc, not xmalloc/bzero.
18867
18868         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
18869
18870         * mips-tdump.c (xmalloc): Don't define.
18871         (print_symbol): Call xmalloc, not malloc.
18872         (read_tfile): Call xcalloc, not calloc.
18873
18874         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
18875         Don't define.  All callers of xfree/my_strsignal changed to use
18876         free/strsignal instead.
18877         (allocate_cluster): Call xcalloc, not calloc.
18878
18879         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
18880         Fix memory leak, free allocated memory.
18881
18882         * prefix.c (translate_name): Call xstrdup, not save_string.
18883         (update_path): Likewise.
18884
18885         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
18886
18887         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
18888         Don't define.  Callers of xfree/savestring2 changed to use
18889         free/concat instead.
18890
18891         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
18892         (init_elim_table): Likewise.
18893
18894         * resource.c (init_resource_info): Likewise.
18895
18896         * stupid.c (stupid_life_analysis): Likewise.
18897
18898         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
18899         (open_dump_file): Call concat, not xmalloc/strcpy/...
18900         (clean_dump_file): Likewise.
18901         (compile_file): Call xstrdup, not xmalloc/strcpy.
18902
18903 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
18904
18905         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
18906         * v850.c (v850_va_arg): New.
18907
18908 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18909
18910         * haifa-sched.c: Tidy comments.
18911
18912 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18913
18914         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
18915         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
18916         $(out_object_file)): Depend on ggc.h.
18917         * c-common.c: Include "ggc.h".
18918         (combine_strings): If doing GC, use ggc_alloc_string.
18919         * c-decl.c: Include "ggc.h".
18920         (ggc_p): Define with value 0.
18921         (mark_binding_level): New function.
18922         (init_decl_processing): Add GC roots.
18923         (mark_c_function_context): New function.
18924         (lang_mark_false_label_stack): New function.
18925         (lang_mark_tree): New function.
18926         (lang_cleanup_tree): New function.
18927         * c-lang.c: Include "ggc.h".
18928         (lang_init): Call c_parse_init.
18929         * c-lex.c: Include "ggc.h".
18930         (check_linenum): If doing GC, don't copy filenames to permanent
18931         obstack.
18932         * c-parse.in: Include "ggc.h".
18933         (c_parse_init): New function.
18934         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
18935         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
18936
18937         * except.c (mark_eh_state): Mark more state.
18938         * function.c (mark_function_state): Likewise.
18939         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
18940         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
18941         * toplev.c (mark_file_stack): New function.
18942         (compile_file): If doing GC, use ggc_alloc_string on input filename.
18943         (main): Add root for input_file_stack.
18944
18945         * i386.c: Include "ggc.h".
18946         (ix86_mark_machine_status): New function.
18947         (override_options): Set mark_machine_status.
18948
18949 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18950
18951         * tree.c (copy_node): Copy node contents also if doing GC.
18952
18953 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
18954
18955         * collect2.c (scan_libraries): Fix double-thinko :-).
18956
18957 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
18958
18959         * collect2.c (scan_libraries): Fix thinko.
18960
18961         * cse.c (delete_trivially_dead_insns): Do not skip the last
18962         insn if it is a real insn.
18963
18964 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
18965
18966         * Makefile.in (ggc-simple.o): Depend on hash.h.
18967         * ggc.h (ggc_add_tree_hash_table_root): Declare.
18968         (ggc_mark_tree_varray): Likewise.
18969         (ggc_mark_tree_hash_table): Likewise.
18970         * ggc-simple.c: Include hash.h.
18971         (ggc_mark_tree_hash_table_ptr): New function.
18972         (ggc_mark_tree_hash_table_entry): Likewise.
18973         (ggc_mark_tree_hash_table): Likewise.
18974         (ggc_add_tree_hash_table_root): Likewise.
18975         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
18976         rtx, when defining fields.
18977
18978 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
18979
18980         * profile.c (output_func_start_profiler): Remove apparently
18981         nonsensical call to start_sequence.
18982
18983 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
18984
18985         * clipper/clipper.c (clipper_va_start): Fix typos.
18986
18987         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
18988         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
18989         (spur_va_arg): New stub.
18990
18991         * configure.in: Comment out pyramid.
18992
18993 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
18994
18995         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
18996         don't conflict with the bits that win32, cygwin, and dgux
18997         defines.
18998
18999 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
19000                           Bernd Schmidt <bernds@cygnus.co.uk>
19001
19002         * integrate.c (function_cannot_inline_p): Do not inline
19003         functions with forced labels.
19004
19005 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
19006                           Bernd Schmidt <bernds@cygnus.co.uk>
19007                           Mark Mitchell  <mark@codesourcery.com>
19008
19009         * Makefile.in (ggc-simple.o): Depend on varray.h.
19010         (rtl.o): Depend on ggc.h.
19011         (genattrtab.o): Depend on ggc.h.
19012         (print-tree.o): Likewise.
19013         (fold-const.o): Likewise.
19014         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
19015         (make_insn_raw): Don't cache insns when GC'ing.
19016         (emit_insn_before): Likewise.
19017         (emit_insn_after): Likewise.
19018         (emit_insn): Likewise.
19019         (start_sequence): Use xmalloc to allocate the sequence_stack.
19020         (end_sequence): Add free to free it.
19021         (gen_sequence): Don't cache insns when GC'ing.
19022         (clear_emit_caches): Don't use sequence_element_free_list.
19023         (init_emit): Use xcalloc, not xmalloc+bzero.
19024         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
19025         * function.c (pop_function_context_from): Use free to free the
19026         fixup_var_refs_queue.
19027         (put_reg_into_stack): Allocate it with xmalloc.
19028         * genattrtab.c: Include ggc.h.
19029         (operate_exp): Don't use obstack_free when GC'ing.
19030         (simplify_cond): Likewise.
19031         (simplify_text_exp): Likewise.
19032         (optimize_attrs): Likewise.
19033         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
19034         GC'ing.
19035         (gencode): Generate a #include for ggc.h.
19036         * ggc-callbacks.c (ggc_p): Define it to zero.
19037         * ggc-none.c (ggc_p): Likewise.
19038         * ggc-simple.c: Include varray.h.
19039         (ggc_mark_tree_varray): New function.
19040         (ggc_add_tree_varray_root): Likewise.
19041         (ggc_mark_tree_varray_ptr): Likewise.
19042         * ggc.h (ggc_p): Declare.
19043         (varray_head_tag): Likewise.
19044         (ggc_add_tree_varray_root): Declare.
19045         * print-tree.c (print_node): Don't check for TREE_PERMANENT
19046         inconsistencies when GC'ing.
19047         * rtl.c: Include ggc.h.
19048         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
19049         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
19050         (rtx_free): Don't call obstack_free when GC'ing.
19051         * toplev.c (rest_of_compilation): Call ggc_collect after every
19052         pass, if GC'ing.
19053         * tree.c (push_obstacks): Do nothing, if GC'ing.
19054         (pop_obstacks_nochange): Likewise.
19055         (pop_obstacks): Likewise.
19056         (make_node): Use ggc_alloc_tree when GC'ing.
19057         (copy_node): Likewise.
19058         (get_identifier): Use ggc_alloc_string when GC'ing.
19059         (build_string): Likewise.
19060         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
19061         (tree_cons): Likewise.
19062         (build1): Likewise.
19063         (type_hash_canon): Don't call obstack_free when GC'ing.
19064
19065 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
19066
19067         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
19068         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
19069
19070 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
19071                           Bernd Schmidt <bernds@cygnus.co.uk>
19072                           Mark Mitchell  <mark@codesourcery.com>
19073
19074         * Makefile.in (stor-layout.o): Depend on ggc.h.
19075         (expr.o): Depend on ggc.h.
19076         (profile.o): Depend on ggc.h.
19077         (stor-layout.o): Depend on ggc.h.
19078         * emit-rtl.c (init_emit_once): Add gc roots.
19079         * expr.c: Include ggc.h.
19080         (emit_block_move): Add gc roots.
19081         (clear_storage): Likewise.
19082         * expr.h (init_stor_layout_once): New function.
19083         * profile.c: Include ggc.h.
19084         (init_arc_profiler): profiler_label is a root.
19085         * scan.c (make_sstring_space): Trust xrealloc to function
19086         correctly with first parameter NULL.
19087         * stor-layout.c: Include ggc.h.
19088         (set_sizetype): Add gc root.
19089         (init_stor_layout_once): New function.
19090         * toplev.c (compile_file): Call it.
19091
19092 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
19093                           Bernd Schmidt <bernds@cygnus.co.uk>
19094                           Mark Mitchell  <mark@codesourcery.com>
19095
19096         * Makefile.in (tree.o): Depend on ggc.h.
19097         (varasm.o): Likewise.
19098         (function.o): Likewise.
19099         (stmt.o): Likewise.
19100         (except.o): Likewise.
19101         (optabs.o): Likewise.
19102         (emit-rtl.o): Likewise.
19103         * emit-rtl.c: Include ggc.h.
19104         (sequence_element_free_list): Remove, and all references.
19105         (mark_sequence): New functions.
19106         (mark_emit_state): New function.
19107         * except.c: Include ggc.h.
19108         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
19109         (mark_tree_label_node): New functions.
19110         (mark_eh_state): New function.
19111         * function.c: Include ggc.h.
19112         (mark_temp_slot, mark_function_chain): New functions.
19113         (mark_function_state): New function.
19114         (init_function_once): New function.
19115         * function.h (init_function_once): New function.
19116         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
19117         * ggc.h (label_node): Declare.
19118         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
19119         (lang_mark_false_label_stack): New function.
19120         (mark_temp_slot): Remove declaration.
19121         (mark_function_chain): Likewise.
19122         (mark_eh_state): Adjust prototype.
19123         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
19124         Likewise.
19125         * optabs.c: Include ggc.h.
19126         (mark_optab): New function.
19127         (init_optabs): Add gc roots.
19128         * stmt.c: Include ggc.h.
19129         (mark_cond_nesting, mark_loop_nesting): New functions.
19130         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
19131         (mark_stmt_state): New function.
19132         * toplev.c (compile_file): Call init_function_once.
19133         * tree.c: Include ggc.h.
19134         (type_hash): Move declaration earlier in file.
19135         (TYPE_HASH_SIZE, type_hash_table): Likewise.
19136         (init_obstacks): Add gc roots.
19137         (mark_type_hash): New function.
19138         * varasm.c: Include ggc.h.
19139         (mark_pool_constant): New function.
19140         (mark_varasm_state): New function.
19141
19142 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19143
19144         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
19145
19146 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
19147
19148         * c-decl.c (struct language_function): Renamed from struct c_function.
19149         Delete elt NEXT.
19150         (c_function_chain): Delete.
19151         (push_c_function_context): New arg F.  Don't warn about nested
19152         functions here.  Fill LANGUAGE elt of F.  Delete code to update
19153         c_function_chain.  Don't call push_function_context.
19154         (pop_c_function_context): New arg F.  Restore from there instead of
19155         from c_function_chain.  Don't call pop_function_context.  Clear out
19156         LANGUAGE field of F when done.
19157         * c-lang.c: Include "function.h"
19158         (lang_init): Initialize save_lang_status and restore_lang_status.
19159         * c-parse.in (nested_function, nested_function_notype): Warn about
19160         nested functions.  Call push_function_context/pop_function_context
19161         instead of the _c_ variants.
19162         * c-tree.h (push_c_function_context, pop_c_function_context): Update
19163         prototype.
19164         * Makefile.in (c-lang.o): Update dependencies.
19165
19166         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
19167         regno_pointer_flag, regno_pointer_align.
19168         (gen_reg_rtx): Use xrealloc to enlarge them.
19169         (free_emit_status): New function.
19170         * function.c (mark_machine_status, mark_lang_status): New variables.
19171         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
19172         in some bits from assign_stack_local.  All callers changed to use new
19173         name.
19174         (assign_stack_local): Just call assign_stack_local_1.
19175         (free_after_compilation): New function.
19176         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
19177         (trampoline_address): Likewise.
19178         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
19179         (prepare_function_start): Explicitly clear some more variables.
19180         * function.h (struct function): New elt can_garbage_collect.
19181         (mark_machine_status, mark_lang_status): Declare variables.
19182         (free_after_compilation, free_emit_status, free_varasm_status,
19183         init_varasm_status): Declare functions.
19184         * toplev.c (rest_of_compilation): Call free_after_compilation when
19185         done with the current function.
19186         * varasm.c (free_varasm_status): New function.
19187
19188 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
19189
19190         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
19191         (EXPAND_BUILTIN_VA_ARG): Define.
19192         * sparc.c (sparc_va_start): New.
19193         (sparc_va_arg): New.
19194
19195 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19196
19197         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
19198
19199 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19200
19201         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
19202
19203 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
19204
19205         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
19206         (OBJS): Add $(GGC).
19207         (ggc-callbacks.o): New target.
19208         * ggc-callbacks.c: New file.
19209
19210 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19211
19212         * expr.h: Collapse individual optab and libfunc vars to arrays.
19213         (optab_index, libfunc_index): New enumerations.
19214         (optab_table, libfunc_table): New arrays.
19215         Add accessor macros for both.
19216
19217         * optabs.c (optab_table, libfunc_table): New.
19218         Delete declarations for individual optab and libfunc vars.
19219
19220 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
19221
19222         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
19223
19224 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
19225
19226         * Makefile.in (GGC, GGC_LIB): New.
19227         (HOST_RTL): Include ggc-none.o.
19228         (ggc-simple.o): New target.
19229         (ggc-none.o): Likewise.
19230         * tree.h (tree_common): Add gc_mark.
19231         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
19232         (struct rtvec_def): Add gc_mark.
19233         * emit-rtl.c (global_rtl): Update static initializers to contain
19234         enough initializers.
19235         * ggc.h, ggc-none.c, ggc-simple.c: New files.
19236         * toplev.c (gc_time): New variable.
19237         (all_time): New variable.
19238         (compile_file): Print gc time.
19239         (print_time): Calculate percentage of the whole.
19240
19241 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19242
19243         Change obstack memory management and varasm constant pool handling so
19244         that nested functions are treated like any other functions.
19245         * function.c (init_machine_status): New variable.
19246         (push_function_context_to): Set contains_functions for the outer
19247         function.  Don't call save_varasm_status.
19248         (pop_function_context_from): Don't call restore_varasm_status.  Don't
19249         set current_function_contains_functions.
19250         (prepare_function_start): Call init_varasm_status rather than
19251         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
19252         is non-null.
19253         * function.h (struct function) Add field varasm.  Delete fields
19254         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
19255         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
19256         (init_machine_status): Declare.
19257         (save_varasm_status, restore_varasm_status): Delete declarations.
19258         (save_tree_status, restore_tree_status): Delete last argument.
19259         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
19260         code.  All callers changed.
19261         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
19262         save_constants_in_decl_trees, restore_constants, save_constants,
19263         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
19264         functions.
19265         (inlining): New variable.
19266         (reg_map, label_map, insn_map, orig_asm_operands_vector,
19267         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
19268         variables.
19269         (save_for_inline_nocopy): Don't save constants.
19270         Don't set inl_emit field in current_function.
19271         (expand_inline_function): Use emit field, not inl_emit, of the inlined
19272         function.  Set new variable inlining before
19273         calling copy_rtx_and_substitute.
19274         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
19275         constant pool references if inlining is nonzero.
19276         Delete ADDRESS and (most of the) CONST cases.
19277         (output_inline_function): Save and restore current_function/
19278         current_function_decl.  Delete restore_constants code.  Don't call
19279         init_const_rtx_hash_table.
19280         * output.h (init_const_rtx_hash_table): Don't declare.
19281         * rtl.h (struct function): Declare.
19282         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
19283         * toplev.c (rest_of_compilation): Don't treat nested functions or
19284         functions containing them specially.  Delete all code to deal with
19285         save_for_inline_copying.
19286         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
19287         inline_obstacks): Delete variables.
19288         (save_tree_status): Lose arg CONTEXT.  All callers changed.
19289         Simply allocate a new function_maybepermanent_obstack for the new
19290         function, delete all the special cases.
19291         Don't save inline_obstacks.
19292         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
19293         Delete special handling for function_maybepermanent_obstack; simply
19294         free it if empty.
19295         Don't restore inline_obstacks.
19296         (permanent_allocation):  Delete code that frees inline_obstacks.
19297         (print_inline_obstack_statistics): Delete function.
19298         (dump_tree_statistics): Don't call it.
19299         * varasm.c (struct varasm_status): New.
19300         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
19301         last_pool, pool_offset, const_double_chain): Delete global
19302         variables, replace with accessor macros.
19303         (immed_double_const): Don't walk const_double_chain outside a
19304         function, but don't treat nested functions specially anymore.
19305         (immed_real_const_1): Likewise.
19306         (clear_const_double_mem): Don't treat nested functions specially.
19307         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
19308         (save_varasm_status, restore_varasm_status): Delete functions.
19309         (init_varasm_status): New function.
19310         (force_const_mem): Don't treat nested functions specially.
19311         (find_pool_constant): Accept new arg F, search for constants in
19312         that function's pool rather than the current one.  All callers
19313         changed.
19314         (get_pool_constant_for_function, get_pool_mode_for_function): New
19315         functions.
19316
19317         * i386.c (init_386_machine_status): New function, mostly from
19318         clear_386_stack_locals.
19319         (struct machine_functions): Rename element names to avoid name
19320         clashes.
19321         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
19322         macros, replacing global variables.
19323         (clear_386_stack_locals, save_386_machine_status,
19324         restore_386_machine_status): Delete functions.
19325         (override_options): Initialize init_machine_status.
19326         * i386.h (INIT_EXPANDERS): Delete macro.
19327         (save_386_machine_status, restore_386_machine_status,
19328         clear_386_stack_locals): Delete declarations.
19329
19330 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19331
19332         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
19333         (doloop_begin):  Simplify pattern and use emit_jump_insn.
19334         (doloop_end): Simplify pattern, switch operand order,
19335         and use emit_jump_insn.
19336
19337 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
19338
19339         * function.h (struct function): Add new element LANGUAGE.
19340         (save_lang_status): Declare new variable.
19341         (restore_lang_status): Likewise.
19342         * function.c (save_lang_status): Define.
19343         (restore_lang_status): Likewise.
19344         (push_function_context_to): Call language-specific save function.
19345         (pop_function_context_from): Call language-specific restore function.
19346
19347 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
19348
19349         * i386.md (movsf_1): Check REG_P before use of REGNO.
19350         (movdf_1): Likewise.
19351         (movxf_1): Likewise.
19352         (extendsfdf2): Likewise.
19353         (extendsfxf2): Likewise.
19354         (extenddfxf2): Likewise.
19355
19356 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19357
19358         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
19359         constants into memory.
19360         (c4x_shiftable_constant): New function.
19361         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
19362         (c4x_shiftable_constant): Declare.
19363         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
19364         ashlqi3_noclobber): Add new patterns and associated splitters.
19365
19366 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
19367
19368         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
19369         * dwarf2out.c (dwarf2out_frame_init): Likewise.
19370         * final.c (shorten_branches): Likewise.
19371         * global.c (global_alloc): Likewise.
19372         * haifa-sched.c (build_control_flow): Likewise.
19373         * stmt.c (check_for_full_enumeration_handling): Likewise.
19374         (estimate_case_costs): Likewise.
19375
19376 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
19377
19378         * rtl.h (RTL_CHECKC2): Fix typo in last change.
19379
19380 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
19381
19382         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
19383         (recompute_reg_usage): Likewise.
19384         * rtlanal.c (find_regno_fusage): Likewise.
19385
19386         * rtl.c (rtl_check_failed_code1): New function.
19387         (rtl_check_failed_code2): New.
19388         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
19389         (RTL_CHECKC1, RTL_CHECKC2): New.
19390         (XC*): New accessor macros.
19391         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
19392         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
19393         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
19394         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
19395         (TRAP_*, RANGE_INFO_*): Likewise.
19396
19397 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19398
19399         * Makefile.in (tlink.o): Don't depend on toplev.h.
19400
19401         * collect2.c (c_file, o_file, export_file, import_file, ldout,
19402         output_file, nm_file_name, ldd_file_name, strip_file_name,
19403         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
19404         add_prefix, prefix_from_env, prefix_from_string, do_wait,
19405         fork_execute, maybe_unlink, add_to_list,
19406         extract_init_priority, write_list, dump_list,
19407         dump_prefix_list, write_list_with_asm, write_c_file,
19408         write_c_file_stat, write_c_file_glob, scan_prog_file,
19409         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
19410         ignore_library, extract_string, notice, dump_file, target_machine,
19411         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
19412         read_file, print_load_command): Constify a char*.
19413         (fdopen, error, fatal, fatal_perror): Don't prototype.
19414         (my_strerror): Remove.  All callers use xstrerror instead.
19415         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
19416         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
19417         to xcalloc/strcpy/strcat/...  to one call to concat.
19418         (main, scan_prog_file, scan_libraries): Use an intermediate
19419         `const char **' to build an argv array.
19420         (mapfile, libselect, libcompare, locatelib): Add prototypes.
19421
19422         * collect2.h (collect_execute, collect_wait, dump_file,
19423         file_exists): Constify a char*.
19424         (ldout, c_file_name, temporary_obstack, permanent_obstack,
19425         temporary_firstobj, vflag, debug): Add extern declarations.
19426         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
19427
19428         * tlink.c: Don't include toplev.h.
19429         (vflag, debug, ldout, c_file_name, temporary_obstack,
19430         permanent_obstack, temporary_firstobj): Don't declare.
19431         (tlink_execute, frob_extension, symbol_hash_lookup,
19432         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
19433         recompile_files, read_repo_files, demangle_new_symbols,
19434         scan_linker_output): Constify a char*.
19435         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
19436         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
19437
19438 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
19439
19440         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
19441         (relative) rather than jsr (absolute) subroutine call insns.
19442         * config/m68k/m68k-coff.h: Ditto.
19443
19444 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
19445
19446         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
19447         now rework these too.
19448         (arm_reorg): If an insn can't reach the end of the current pool,
19449         ensure that we emit that pool before the insn.
19450
19451 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
19452
19453         * tlink.c (scan_linker_output): Skip the initial underscore in
19454         a mangled name if appropriate.
19455
19456 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19457
19458         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
19459         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
19460         error_with_ivar, gen_declarator, create_builtin_decl,
19461         my_build_string, generate_descriptor_table, generate_ivars_list,
19462         generate_dispatch_table, check_protocols, TAG_GETCLASS,
19463         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
19464         dump_base_name, lang_decode_option, build_encode_expr,
19465         start_class, finish_class, encode_pointer, really_start_method,
19466         gen_declaration, dump_interface, handle_class_ref, handle_impent):
19467         Constify.
19468         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
19469         Add static prototypes.
19470         (build_objc_string_decl, build_selector_reference_decl,
19471         encode_bitfield, build_class_reference_decl): Remove unused
19472         parameter, all callers changed.
19473         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
19474         (objc_printable_name): Likewise.  Change second parameter to type int.
19475         (init_objc): Use memcpy, not bcopy, to avoid casts.
19476
19477 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
19478
19479         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
19480         reg notes on a deleted insn.
19481         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
19482
19483 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
19484
19485         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
19486
19487 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19488
19489         * stmt.c (expand_asm_operands): Fix index into inout_mode when
19490         reading it.
19491
19492 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
19493
19494         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
19495         * tm.texi (MD_ASM_CLOBBERS): Document it.
19496
19497 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
19498
19499         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
19500         * except.c (expand_rethrow): Remove unused variable.
19501         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
19502         * flow.c (replace_insns): Likewise.
19503         (create_edge_list, verify_edge_list): Likewise.
19504         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
19505
19506         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
19507         is special code to run.
19508         (main): Don't define operands to emit_operand.
19509         * genrecog.c (main): Don't emit an empty peephole2_insn function.
19510
19511         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
19512
19513         * alpha/alpha.h (normal_memory_operand): Declare.
19514         (reg_no_subreg_operand): Declare.
19515         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
19516
19517 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
19518
19519         * c-parse.in (compstmt_primary_start): New, broken out of first
19520         part of compstmt handling in primary.
19521         (primary): Use it.  Add an error clause.
19522         (compstmt_nostart): Renamed from compstmt; remove all
19523         initial invocations of compstmt_start.
19524         (compstmt): New.
19525
19526 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
19527
19528         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
19529         needed.
19530
19531 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
19532
19533         * combine.c (simplify_shift_const): Remove extra semicolon.
19534         * dwarf2out.c (remove_AT): Likewise.
19535         * expmed.c (expand_mult): Likewise.
19536         * gcov.c (create_program_flow_graph): Likewise.
19537         * reorg.c (mostly_true_jump): Likewise.
19538
19539 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
19540
19541         * fold-const.c (fold_range_test): Do not try to fold the range
19542         test if the rhs or lhs has side effects.
19543
19544         * combine.c (simplify_rtx): Recognize another case of a synthesized
19545         sign extension.
19546
19547         * varasm.c (mark_constant_pool): When marking indirect references,
19548         only look at SYMBOL_REFs.
19549
19550         * except.c (expand_fixup_region_end): Do not peek at
19551         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
19552
19553 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
19554
19555         * flags.h: New variables align_loops, align_loops_log,
19556         align_jumps, align_jumps_log, align_labels, align_labels_log,
19557         align_functions, align_functions_log.
19558         * toplev.c: Define them.
19559         (f_options): Handle -falign-* when they have no argument.
19560         (main): Add logic to set variables for -falign-functions,
19561         -falign-jumps, -falign-labels, -falign-loops.
19562         Make it -fsched-verbose=<n> and -finline-limit=<n>.
19563         (display_help): Change help to match options.
19564         * final.c (LABEL_ALIGN): Default to align_labels_log.
19565         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
19566         (LOOP_ALIGN): Default to align_loops_log.
19567         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
19568         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
19569         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
19570         * varasm.c (assemble_start_function): Handle align_functions.
19571
19572         * config/sparc/sparc.h: Don't declare sparc_align_*.
19573         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
19574         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
19575         sparc.c.
19576         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
19577         it's a promise.
19578         * config/sparc/sparc.c: Delete sparc_align_loops,
19579         sparc_align_jumps, sparc_align_funcs and the corresponding string
19580         variables.
19581         (sparc_override_options): Default align_functions on ultrasparc.
19582         Delete -malign-* handling.
19583
19584         * config/mips/mips.c (override_options):  On 64-bit targets,
19585         try to align code to 64-bit boundaries.
19586         (print_operand): New substitution, %~,
19587         which aligns labels to align_labels_log.
19588         * config/mips/mips.md (div_trap_normal): Use %~.
19589         (div_trap_mips16): Likewise.
19590         (abssi): Likewise.
19591         (absdi2): Likewise.
19592         (ffssi2): Likewise.
19593         (ffsdi2): Likewise.
19594         (ashldi3_internal): Likewise.
19595         (ashrdi3_internal): Likewise.
19596         (lshrdi3_internal): Likewise.
19597         (casesi_internal): Likewise.
19598
19599 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
19600
19601         Merge new ia32 backend from the branch!
19602
19603         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
19604         See ChangeLog.P2 on new_ia32_branch for details.
19605
19606         * rtl.h (stack_regs_mentioned_p): Delete prototype.
19607         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
19608         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
19609         * i386/gas.h (ASM_FILE_START): Define.
19610         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
19611         for name change of ix86_valid_decl_attribute_p.
19612         (i386_pe_valid_type_attribute_p): Similarly.
19613
19614 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
19615
19616         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
19617         to step through CC modes.
19618
19619 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19620
19621         * regmove.c (fixup_match_1): Don't move INSN in front of P if
19622         it would end up in the shadow of a live flags regsiter.
19623
19624 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19625
19626         * reload1.c: Fix many indentation problems.
19627         * reload.c: Likewise.
19628
19629 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
19630
19631         * alias.c (non_local_reference_p): Constify fmt.
19632
19633 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
19634
19635         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
19636
19637 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
19638
19639         * cse.c (delete_trivially_dead_insns): Do not delete stores to
19640         the internal_arg_pointer.
19641
19642 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
19643
19644         Merge peephole2 from new_ia32_branch:
19645         * Makefile.in (STAGESTUFF): Add *.peephole2.
19646         (mostlyclean): Likewise.
19647         (recog.o): Depend on resource.h.
19648
19649         * final.c (peephole): Conditionalize decl on HAVE_peephole.
19650         (final_scan_insn): Likewise for the invocation of peephole.
19651         * genconfig.c (main): Look for peephole and peephole2 patterns.
19652         Emit HAVE_peephole* accordingly.
19653         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
19654         * flags.h (flag_peephole2): Declare.
19655         * toplev.c: New pass peephole2.  New flag -fpeephole2.
19656
19657         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
19658         * gencodes.c (main): Likewise.
19659         * genextract.c (main): Likewise.
19660         * genoutput.c (main): Likewise.
19661         * genemit.c (max_operand_1): Look for the max scratch operand.
19662         (gen_rtx_scratch): New.
19663         (gen_exp): Use it, and pass on new arg subroutine_type.
19664         (gen_expand): Take max scratch into account.
19665         (gen_split): Emit peephole2 functions.
19666         (output_peephole2_scratch): New.
19667         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
19668         * genrecog.c (routine_type): Add PEEPHOLE2.
19669         (IS_SPLIT): New.
19670         (make_insn_sequence): Match outer parallel for peep2.  Discard
19671         top level scratches and dups.
19672         (add_to_sequence): New args insn_type and top.  Update all callers.
19673         Handle toplevel peep2 matching insns.
19674         (write_subroutine): Handle peep2.
19675         (write_tree_1): Likewise.
19676         (write_tree): Likewise.
19677         (main): Likewise.
19678         (change_state): New arg afterward.  Update all callers.
19679         Handle matching separate insns.
19680         * recog.c (recog_next_insn): New.
19681         (peephole2_optimize): New.
19682         * rtl.def (DEFINE_PEEPHOLE2): New.
19683         * resource.c (find_free_register): New argument last_insn.  Use it
19684         to find a register available through the entire span.
19685         * resource.h (find_free_register): Update prototype.
19686
19687 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
19688
19689         * i386.c (output_strlen_unroll): Don't write xops[7]
19690         label if it wasn't set.
19691
19692 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
19693
19694         * cpplib.c (struct directive): Const-ify name pointer and
19695         function pointer prototype.
19696         (validate_else, do_define, do_line, do_include, do_undef,
19697         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
19698         do_elif, do_endif, do_sccs, do_assert, do_unassert,
19699         do_warning): Const-ify second arg.
19700         (directive_table): Mark const.  Reorder entries by frequency
19701         of usage, record statistics.
19702
19703 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
19704
19705         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
19706         bounds- check RTL accesses if --enable-checking.
19707         (RTVEC_ELT): Bounds check if --enable-checking.
19708         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
19709         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
19710         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
19711         GET_NUM_ELEM.
19712         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
19713         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
19714
19715         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
19716         (NOTE_SOURCE_FILE): Use X0STR.
19717         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
19718         MEM_ALIAS_SET): Use X0INT.
19719         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
19720         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
19721         Use X0EXP.
19722         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
19723         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
19724         (rtl_check_failed_bounds, rtl_check_failed_type1,
19725         rtl_check_failed_type2, rtvec_check_failed_bounds): New
19726         functions.
19727         (fancy_abort): Fix comment.
19728
19729         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
19730         (cse_insn): Decrement LABEL_NUSES for jump target before
19731         deleting jump insn.
19732         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
19733         * final.c (alter_subreg): Compute regno before changing x to
19734         REG; set REGNO(x) after changing it.
19735         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
19736         notes containing CONST_INTs.
19737         (delete_eh_regions): Use NOTE_EH_HANDLER.
19738         * function.c (put_reg_into_stack): Make reg a MEM before
19739         initializing it.
19740         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
19741         delete insn.
19742         (gen_mem_addressof): Make reg a MEM before initializing it.
19743         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
19744         X0WINT.
19745         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
19746         deleting an insn, not after.
19747         (block_alloc): Only look at PATTERN(insn) if we have to, and
19748         only if it's format class 'i'.
19749         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
19750         CONST_INT before using its INTVAL.
19751         * print-rtl.c (print_rtx): Use X0STR.
19752         * regmove.c (fixup_match_1): Don't look at PATTERN of
19753         non-class-'i' insn chain elements.
19754         * reload.c (loc_mentioned_in_p): Take address of
19755         in->fld[1].rtx directly.
19756         * reload1.c (reload): Change reg to a MEM before initializing
19757         it.
19758         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
19759         have no names.
19760         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
19761
19762 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
19763
19764         * config/mips/mips.c (machine_dependent_reorg): Force a
19765         barrier to output the local constant pool if a barrier hasn't
19766         been found at a natural point in the instruction stream.
19767
19768 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19769
19770         * c-parse.in (language_string): Constify.
19771
19772         * dwarf2out.c (language_string): Remove declaration.
19773
19774         * dwarfout.c (language_string): Likewise.
19775
19776         * toplev.c (language_string, init_parse, finish_parse): Likewise.
19777
19778         * tree.h (language_string, init_parse, finish_parse): Declare.
19779
19780         * i386/sun386.h (language_string): Remove declaration.
19781
19782         * mips.h (language_string): Likewise.
19783
19784         * nextstep.h (language_string): Likewise.
19785
19786         * nextstep21.h (language_string): Likewise.
19787
19788         * rs6000.c (language_string): Likewise.
19789
19790 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19791
19792         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
19793         (getpwd.o): Remove target.
19794
19795         * getpwd.c: Delete file.  Its in libiberty now.
19796
19797         * dbxout.c (getpwd): Don't prototype.
19798         * dwarf2out.c (getpwd): Likewise
19799         * dwarfout.c (getpwd): Likewise
19800         * final.c (getpwd): Likewise.
19801         * protoize.c (getpwd): Likewise.
19802
19803 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19804
19805         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
19806
19807 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
19808
19809         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
19810         mark_set_resources.
19811
19812 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
19813
19814         * fixinc/Makefile.in (subdir): New.
19815         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
19816         (Makefile): New.
19817
19818 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
19819
19820         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
19821         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
19822         be shared.
19823
19824         * invoke.texi: Fix typo.
19825
19826         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
19827         changed.  Handle autoincrement addressing modes.
19828
19829         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
19830         just like we would the virtual incoming args register when
19831         integrating.
19832
19833 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
19834
19835         * rs6000.h (ASM_FILE_START): Specify complete filename, including
19836         path, in .file directive.
19837
19838 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
19839
19840         * gcc.texi (External Bugs): Remove obsolete note about Perl on
19841         SunOS.
19842
19843 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
19844
19845         * stdbool.h: Make the typedef name _Bool, with bool a #defined
19846         alias.
19847
19848 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19849
19850         * tree.c (tree_code_name): Constify a char*.
19851
19852         * tree.h (tree_code_name, decl_printable_name): Likewise.
19853
19854         * function.h (struct function): Likewise.
19855
19856         * toplev.c (decl_name, decl_printable_name): Likewise.
19857
19858         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
19859
19860         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
19861         (init_objc): Remove function pointer cast.
19862
19863 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
19864
19865         * pa.md (interspace_jump): New pattern.
19866         (builtin_longjmp): New expander.
19867
19868 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
19869
19870         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
19871         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
19872         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
19873
19874 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
19875
19876         * jump.c (delete_prior_computation): Also check calls
19877         to constant functions.  Don't bother checking for a
19878         REG_UNUSED note before adding it.
19879         (delete_computation): Handle multi-word hard registers
19880         when synthesizing missing REG_DEAD notes for a register
19881         which is both set and used by an insn.
19882
19883 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19884
19885         * loop.c (this_loop_info): New variable.
19886         (loop_has_call, loop_has_volatile, loop_has_tablejump,
19887         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
19888         All uses updated.
19889         (prescan_loop, strength_reduce): New argument loop_info.  All callers
19890         updated.
19891         (scan_loop): New variable loop_info, initialise to address of
19892         this_loop_info.
19893         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
19894         Delete variable loop_has_multiple_exit targets and replace with
19895         field in this_loop_info.
19896         (find_and_verify_loops): Rename this_loop to this_loop_num.
19897         (strength_reduce): Delete loop_iteration_info.  Replace variable
19898         loop_info with function argument of same name.
19899         (insert_bct): Rework test for loop being completely unrolled.
19900
19901         * loop.h (struct loop_info): New fields num, loops_enclosed,
19902         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
19903         has_indirect_jump, and cont.  Redefine use of unroll_number.
19904         (loop_unroll_number): Delete.
19905
19906         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
19907         field of loop_info.
19908         (loop_iterations): Delete variable vtop and instead use
19909         loop_info->vtop computed in prescan_loop.
19910
19911 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
19912
19913         * fix-header.c (main): Do not pass a null pointer to strcmp.
19914
19915 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
19916
19917         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
19918         filenames.
19919         * configure: Rebuilt.
19920
19921 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
19922
19923         * jump.c (jump_optimize_1): Do not delete assignments to
19924         internal_arg_pointer.
19925         * cse.c (delete_trivially_dead_insns): Always consider a set of
19926         the internal_arg_pointer live.
19927
19928 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
19929
19930         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
19931         (update_life_info) [REG_WAS_0]: Search the original insns rather
19932         than the new insns for the note.  Fix typos finding note_dest.
19933         If no dest found, discard the note rather than abort.
19934         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
19935         (replace_insns): Remove the old insn list after update_life_info
19936         not before.
19937
19938 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
19939
19940         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
19941         sched_analyze_insn.
19942         (sched_analyze_1): Let add_dependence care for not adding dups.
19943         (sched_analyze_2): Likewise.
19944         (add_branch_dependences): Likewise.
19945
19946 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19947
19948         * i386/winnt.c (export_list): New type.
19949         (exports_head): Rename to
19950         (export_head):  this.
19951         (i386_pe_record_exported_symbol): Add is_data flag.
19952         (i386_pe_asm_file_end): Emit directive for exported variables.
19953         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
19954         prototype.
19955         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
19956         (ASM_DECLARE_OBJECT_NAME): Likewise.
19957         (ASM_DECLARE_FUNCTION_NAME): Likewise.
19958         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19959
19960 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
19961
19962         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
19963
19964         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
19965         operand.
19966
19967 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
19968
19969         * config/openbsd.h: Define SET_ASM_OP.
19970         * tm.texi: cross-reference SET_ASM_OP in the index.
19971
19972 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
19973
19974         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
19975         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
19976         and class_narrowest_mode at compile time.  Kill init_rtl.
19977         Mark rtx_length, mode_class, mode_size, mode_unit_size,
19978         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
19979         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
19980         EXTRA_CC_NAMES.
19981         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
19982         format.
19983         * rtl.h: Declare rtx_length and rtx_format as const.
19984         * machmode.def: Define CC().  Use CC() to define CCmode.  If
19985         EXTRA_CC_MODES is defined, expand it here.
19986         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
19987         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
19988         const.  Kill all references to EXTRA_CC_MODES.
19989
19990         * toplev.c: Don't prototype or call init_rtl.
19991         * optabs.c: Don't call init_mov_optab.
19992         * genemit.c: Don't generate init_mov_optab.  Don't call
19993         init_rtl.
19994         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
19995         here.
19996         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
19997         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
19998         genrecog.c: Don't call init_rtl.
19999
20000         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
20001         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
20002         definition of EXTRA_CC_MODES.
20003
20004         * md.texi: Kill ref to EXTRA_CC_NAMES.
20005         * tm.texi: Document new way to define EXTRA_CC_MODES.
20006
20007         * genrecog.c: Do not look up the name of a define_split.
20008         (Unrelated bugfix.)
20009
20010 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
20011
20012         * config/v850/v850.md: Fix typo introduced by previous delta.
20013
20014 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20015
20016         * gcc.c (fatal): Make definition static to match prototype.
20017
20018 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20019
20020         * combine.c (get_last_value): Don't look for earlier sets if the last
20021         known set is somewhere in between the insns being combined.
20022
20023 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
20024
20025         * configure.in: Don't use shell ! to negate exit codes
20026         * configure: Regenerate
20027
20028 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
20029
20030         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
20031         the fact that ALIGN is measured in bits, not bytes.
20032
20033 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
20034
20035         * errors.c: New file; defines functions error, warning, and
20036         fatal, variables have_error and progname.
20037         * errors.h: New file; prototypes and decls for stuff in errors.c.
20038
20039         * Makefile: Add rules to build errors.o and
20040         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
20041         genopinit, genrecog, genextract, genpeep, genattr, and
20042         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
20043         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
20044         genpeep.o, genattr.o, and genoutput.o.
20045
20046         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
20047         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
20048         define or prototype fatal.  Set progname at beginning of main.
20049         * genoutput.c:  Likewise, and don't define or prototype error
20050         either.
20051
20052         * c-typeck.c (c_expand_start_case): Return immediately if exp
20053         is an ERROR_MARK.
20054         * fold-const.c (operand_equal_p): Return immediately if arg1
20055         or arg0 are ERROR_MARKs.
20056         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
20057         fields of type ERROR_MARK when calculating if the record can
20058         go in a register.
20059
20060 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
20061         with much help from Jeffrey A Law and Richard Henderson
20062
20063         * i386.md: In the 6 insns which call output_fix_trunc,
20064         earlyclobber operands[0].
20065
20066 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
20067
20068         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
20069         creating new registers.
20070
20071 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
20072
20073         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
20074         i386_reg_alloc_order, i386_regparm_string,
20075         i386_align_loops_string, i386_align_jumps_string,
20076         i386_align_funcs_string, i386_preferred_stack_boundary_string,
20077         and i386_branch_cost_string as type "const char *".
20078         * i386.c: Define all above strings as type "const char *".
20079
20080 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
20081
20082         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
20083         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
20084
20085 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
20086
20087         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
20088         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
20089
20090 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
20091
20092         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
20093         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
20094         (dwarf2out_line, dwarf2out_finish): Likewise.
20095         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
20096
20097 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20098
20099         * tree.c (lang_unsave_expr_now) : Correct return type.
20100         * tree.h (lang_unsave_expr_now) : Same.
20101
20102 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
20103
20104         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
20105         instead of duplicating code.
20106
20107 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20108
20109         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
20110
20111 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
20112
20113         * tree.h: fancy_abort always takes three args.
20114         * resource.c: Move include of system.h before toplev.h.
20115
20116 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
20117
20118         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
20119         as SYMBOL_REFs.
20120
20121 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
20122
20123         * system.h: Don't redefine abort or trim_filename.
20124         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
20125         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
20126         whether or not __FUNCTION__ is available.
20127         * tree.h: Duplicate rtl.h's definition of abort, for files
20128         that don't include rtl.h.  Delete all code to perform type
20129         checking with a compiler other than GCC.
20130         * varray.h: Delete all code to perform type checking with a
20131         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
20132         its arguments exactly once, using a statement expression.
20133         Adjust the VARRAY_<type> accessor macros to match.
20134         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
20135         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
20136         caller's location.  Define fatal_insn and fatal_insn_not_found
20137         as macros that use _fatal_insn and _fatal_insn_not_found.
20138         (fancy_abort, trim_filename): Kill prototypes.
20139
20140         * rtl.c (trim_filename): Move here from toplev.c.
20141         (fancy_abort): New function.
20142         (DIR_SEPARATOR): Provide default definition.
20143         * tree.c (tree_check_failed, tree_class_check_failed): Go
20144         through fancy_abort.
20145         (tree_check, tree_class_check, cst_or_constructor_check,
20146         expr_check): Delete.
20147         * varray.c (varray_check_failed): New function.
20148         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
20149         _fatal_insn and _fatal_insn_not_found.  Go through
20150         fancy_abort.
20151         (trim_filename, fancy_abort): Delete.
20152
20153         * builtins.c (expand_builtin_args_info): Report ICE with abort.
20154         * except.c (start_catch_handler): Report ICE with error/abort
20155         combo.
20156         * final.c (output_operand_lossage): Likewise.
20157         * flow.c (verify_flow_info): Likewise.
20158
20159         * gcc.c: Prototype fatal.
20160         * gengenrtl.c: Undef abort after including rtl.h not system.h.
20161         * genattr.c, genattrtab.c, genemit.c, genextract.c,
20162         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
20163         Don't define fancy_abort.
20164
20165 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
20166
20167         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
20168         canonization.
20169
20170 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
20171
20172         * m88k.h (VERSION_INFO2): Kill.
20173         (VERSION_STRING): Kill.
20174         (TM_RCS_ID): Kill.
20175         (VERSION_INFO1): Tidy.
20176         (TARGET_VERSION): Update.
20177         * m88k/dgux.h (VERSION_INFO2): Kill.
20178         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
20179         * m88k/luna.h (VERSION_INFO1): Tidy.
20180         * m88k/sysv4.h (VERSION_INFO1): Likewise.
20181         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
20182         (output_file_start): Adjust for death of VERSION_STRING.
20183
20184 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
20185
20186         * cpplib.c (detect_if_not_defined): New function.
20187         (do_if): Use it to detect potential once-only headers.
20188
20189 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
20190
20191         * c-common.c (combine_strings): Always set TREE_CONSTANT.
20192
20193 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20194
20195         * combine.c (nonzero_bits) : Allow single-ly set registers to be
20196         anywere in the function only if they are pseudos and set before
20197         being used (not live at the start of the function).
20198         (num_sign_bit_copies) : Same.
20199         (get_last_value_validate) : Same.
20200         (get_last_value) : Same.
20201
20202 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
20203
20204         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
20205         where N and M are constant and N is an integer multiple of M.
20206
20207 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20208
20209         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
20210         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
20211         sbitmap_union_of_preds): Add prototypes.
20212         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
20213         the intersection of successors with the new flow graph structures.
20214         (sbitmap_intersection_of_preds): New function to compute the
20215         intersection of predecessors with the new flow graph structures.
20216         (sbitmap_union_of_succs): New function to compute the union of
20217         successors with the new flow graph structures.
20218         (sbitmap_union_of_preds): New function to compute the union of
20219         predecessors with the new flow graph structures.
20220         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
20221         (expr_reaches_here_p): Use edge and basic_block structures instead
20222         of s_preds and s_succs.
20223         (compute_cprop_avinout): Use new sbitmap routines.
20224         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
20225         of s_preds and s_succs.
20226         * flow.c (compute_flow_dominators): Compute dominators using
20227         edges and basic blocks instead of s_preds and s_succs.
20228
20229 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20230
20231         * lists.c (unused_insn_list, unused_expr_list): New file for
20232         maintaining various types of lists. New statics for maintaining a
20233         cache of available INSN_LIST and EXPR_LIST nodes.
20234         (free_list): Static function for freeing a list of INSN/EXPR nodes.
20235         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
20236         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
20237         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
20238         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
20239         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
20240         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
20241         (free_INSN_LIST_node): Free an individual INSN_LIST node.
20242         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
20243         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
20244         (remove_dependence, free_pending_lists): Use new global routines.
20245         (flush_pending_lists, sched_analyze_insn): Use new global routines.
20246         (sched_analyze, compute_block_backward_dependences): Use new routines.
20247         (sched_analyze_1, sched_analyze_2): Use new routines.
20248         (schedule_insns): Use new global routines.
20249         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
20250         prototypes.
20251         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
20252         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
20253         prototypes.
20254         * toplev.c (rest_of_compilation): Initialize node cache.
20255         * Makefile.in (OBJS): Add lists.o to list of object files.
20256         (lists.o): Add dependancies.
20257
20258 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
20259
20260         * config/v850/v850.md: Fix compile time warning messages.
20261         * config/v850/v850.c: Fix compile time warning messages.
20262         * config/v850/v850.h: Fix compile time warning messages.
20263
20264 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20265
20266         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
20267         Remove unused prototype for `init_lengths'.
20268
20269 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20270
20271         * calls.c (emit_call_1): Mark parameter `stack_size' with
20272         ATTRIBUTE_UNUSED.
20273         (expand_call): Initialize variable `insn'.
20274         (emit_library_call): Likewise for variable `high_to_save'.
20275         (emit_library_call_value): Likewise.
20276         (store_one_arg): Likewise for variables `lower_bound' and
20277         `upper_bound'.
20278
20279         * combine.c (try_combine): Likewise for variables `i2_code_number'
20280         and `other_code_number'.
20281         (find_split_point): Likewise for variables `pos', `unsignedp' and
20282         `inner'.
20283         (simplify_if_then_else): Likewise for variables `op' and `c1'.
20284         (simplify_and_const_int): Remove unused variable `width'.
20285         (merge_outer_ops): Likewise.
20286
20287         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
20288         HOST_WIDE_INT' when comparing against one.
20289         (simplify_relational_operation): Likewise.
20290         (cse_insn): Initialize variables `src_eqv_volatile',
20291         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
20292
20293         * final.c (init_final): Constify parameter `filename'.
20294         (final_start_function): Mark parameter `optimize' with
20295         ATTRIBUTE_UNUSED.
20296         (profile_function): Likewise for parameters `first' and `optimize'.
20297         (output_source_line): Likewise for parameter `file'.
20298
20299         * integrate.c (subst_constants): Cast a value to `size_t' when
20300         comparing against one.
20301         (mark_stores): Initialize variable `mode'.  Cast a value to
20302         `size_t' when comparing against one.
20303
20304         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
20305
20306         * loop.c (move_movables): Initialize variable `first'.
20307         (strength_reduce): Likewise for variable `increment'.
20308         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
20309         value to `size_t' when comparing against one.
20310         (load_mems): Initialize variable `end_label'.
20311
20312         * output.h (init_final): Constify parameter.
20313
20314         * reload.c (decompose): Initialize variable `base'.
20315
20316         * reload1.c (reload): Likewise for variable `is_scalar'.
20317         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
20318         (choose_reload_regs): Initialize variable `mode'.
20319         (emit_reload_insns): Likewise for variable `store_insn'.
20320         (reload_cse_noop_set_p): Mark parameter `insn' with
20321         ATTRIBUTE_UNUSED.
20322         (reload_combine): Initialize variable `set'.
20323
20324         * unroll.c (unroll_loop): Likewise for variable `local_label'.
20325         (copy_loop_body): Cast a value to `size_t' when comparing against
20326         one.
20327
20328         * varasm.c (assemble_variable): Initialize variable `size_tree'.
20329         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
20330         (remove_from_pending_weak_list): Mark parameter `name' with
20331         ATTRIBUTE_UNUSED.
20332
20333 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20334
20335         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
20336         gcse dump file.
20337
20338 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
20339
20340         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
20341         (ASM_DECLARE_FUNCTION_NAME): Define.
20342         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
20343         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
20344         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
20345         not already defined.
20346
20347 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20348
20349         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
20350         of n_popped when call/call_value are not defined.
20351
20352 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
20353
20354         * tm.texi: GNU CC -> GCC conversion.
20355         (CC1_SPEC): Indicate it is used for all language front ends.
20356
20357 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
20358
20359         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
20360         NOTE_INSN_EH_REGION_END correctly.
20361
20362 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
20363                           Jeff Law <law@cygnus.com>
20364
20365         * loop.c (strength_reduce): Automatically unroll loops if the
20366         unrolled loop size is smaller than the rolled loop size.
20367
20368         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
20369         and delete comment that code should be rewritten.
20370
20371 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
20372
20373         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
20374         as reachable.
20375
20376         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
20377
20378 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
20379
20380         * fixinc/mkfixinc.sh: Don't fix uwin headers.
20381         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
20382         (LINK_SPEC): Add -u _main when building executables.
20383         (ASM_DECLARE_FUNCTION): Update from Cygwin.
20384         (ASM_FILE_END): Use the default for ix86-pe.
20385         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
20386
20387 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
20388
20389         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
20390         and ASM_CLOSE_PAREN are empty strings.
20391
20392 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
20393                           Geoffrey Keating <geoffk@cygnus.com>
20394
20395         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
20396         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
20397         (unprotoize.o): Ditto.
20398         (test-protoize-simple): Don't define STD_PROTO_DIR.
20399         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
20400         changes to make 'test-protoize-simple' pass.
20401         (STD_PROTO_DIR): Remove define.
20402         (STANDARD_EXEC_PREFIX): Supply default define.
20403         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
20404         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
20405         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
20406         (GET_ENV_PATH_LIST): New macro.
20407         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
20408         (do_processing): Initialize default_syscalls_dir using new
20409         macros.  Use it to initialize syscalls_absolute_filename.
20410
20411 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
20412
20413         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
20414         B into a register before emit_conditional_move.
20415
20416 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
20417
20418         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
20419         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
20420         multiplicand out of (+ (* a b) (* c d)).
20421
20422 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
20423                           Richard Henderson  <rth@cygnus.com>
20424
20425         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
20426         (new_insn_dead_notes): Likewise.
20427         (update_n_sets): Likewise.
20428         (update_flow_info): Move to flow.c, renamed to update_life_info;
20429         extend to handle multiple source insns.
20430         * flow.c: Include resource.h
20431         (unlink_insn_chain): New.
20432         (split_hard_reg_notes): New.
20433         (maybe_add_dead_note): New.
20434         (maybe_add_dead_note_use): New.
20435         (find_insn_with_note): New.
20436         (new_insn_dead_notes): New.
20437         (update_n_sets): New.
20438         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
20439         (maybe_remove_dead_notes): New.
20440         (update_life_info): New.
20441         (prepend_reg_notes): New.
20442         (replace_insns): New.
20443         * output.h (update_life_info): Declare.
20444         * recog.c (split_block_insns): Use update_life_info.
20445         * resource.c (find_free_register): Use reg_alloc_order, don't use
20446         fixed regs, make sure the mode is supported, don't use new regs.
20447         (reg_dead_p): New.
20448         * rtl.h (replace_insns): Declare.
20449
20450 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
20451
20452         * expr.c (expand_expr): Cope with COND_EXPRs with one
20453         non-returning branch.
20454
20455 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
20456
20457         * expr.c (store_expr): Always pass down the target, even when not
20458         doing CSE.
20459
20460 1999-08-24  Nick Clifton  <nickc@cygnus.com>
20461
20462         * configure.in: Define target_cpu_default for v850 targets.
20463         * configure: Regenerate
20464
20465         * config/v850/v850.h (TARGET_CPU_generic): Define.
20466         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
20467         addresses are 4 byte aligned.
20468
20469         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
20470         addresses.
20471
20472 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20473
20474         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
20475         (main): Add prototypes.
20476
20477         * genattrtab.c (substitute_address, write_const_num_delay_slots,
20478         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
20479         (write_attr_get): Emit prototypes along with function definition.
20480         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
20481         (write_complex_function): Emit static prototype along with
20482         function definition.
20483
20484         * genemit.c (gen_split): Emit prototypes along with function
20485         definition.
20486
20487         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
20488         Likewise for predicates and `insn_operand_predicate'.
20489         (process_template): Emit static prototype along with function
20490         definition.
20491
20492         * genrecog.c (make_insn_sequence): Constify a char*.  Add
20493         prototypes for get_split_*().
20494         (write_subroutine): Emit prototypes along with function
20495         definition.
20496
20497 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20498
20499         * gcse.c (find_avail_set): Follow chains of register-register copies.
20500         Use oprs_not_set_p to guarantee that the returned value can be
20501         substituted.
20502         (cprop_insn): Don't verify the return value of find_avail_set with
20503         oprs_not_set_p.
20504
20505         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
20506         (cprop_cc0_jump): New function.
20507         (cprop_insn): Break out new function cprop_jump and use it.
20508         Also use cprop_cc0_jump for machines with CC0.
20509         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
20510
20511         * tree.h (current_function_calls_setjmp,
20512         current_function_calls_longjmp): Delete declarations.
20513         * dsp16xx.c: Include "function.h".
20514         * elxsi.c: Likewise.
20515         * gmicro.c: Likewise.
20516         * h8300.c: Likewise.
20517         * i370.c: Likewise.
20518         * m32r.c: Likewise.
20519         * mn10200.c: Likewise.
20520         * mn10300.c: Likewise.
20521         * ns32k.c: Likewise.
20522         * spur.c: Likewise.
20523         * v850.c: Likewise.
20524
20525         * rtl.h (rtx_equal_function_value_matters): Declare.
20526         * toplev.c (rtx_equal_function_value_matters): Don't declare.
20527         * cse.c: Likewise.
20528         * function.c: Likewise.
20529         * emit-rtl.c: Likewise.
20530
20531 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
20532
20533         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
20534         call.
20535
20536 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
20537
20538         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
20539         exactly.
20540
20541 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
20542
20543         * cpp.texi: Add a node documenting macro varargs (copied
20544         from extend.texi).
20545
20546 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
20547
20548         * cppspec.c: Put a null pointer at the end of the new argv.
20549
20550 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
20551
20552         * configure.in: Remove code to select/de-select the haifa
20553         scheduler.  Every scheduled port gets haifa now.
20554         * configure: Rebuilt.
20555         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
20556         * sched.c Deleted.
20557         * Makefile.in: Corresponding changes.
20558
20559 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20560
20561         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
20562         All callers changed.
20563         (prepare_float_lib_cmp): Likewise.
20564         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
20565         * expr.h (emit_float_lib_cmp): Delete declaration.
20566         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
20567         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
20568         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
20569         specially.
20570         (cmptf): Now conditional on TARGET_HARD_QUAD.
20571
20572 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
20573
20574         * resource.c (mark_target_live_regs): Use
20575         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
20576
20577 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20578
20579         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
20580
20581         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
20582
20583         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
20584
20585 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20586
20587         * rtl.h (rtx_format): Constify a char*.
20588
20589         * rtl.c (rtx_format): Likewise.
20590         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
20591         (init_rtl): Use accessor macro, not `rtx_format'.
20592
20593         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
20594         char*.
20595
20596         * caller-save.c (mark_referenced_regs): Likewise.
20597
20598         * combine.c (subst, make_compound_operation, known_cond,
20599         gen_rtx_combine, update_table_tick, get_last_value_validate,
20600         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
20601
20602         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
20603         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
20604         count_reg_usage): Likewise.
20605
20606         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
20607         Likewise.
20608
20609         * final.c (leaf_renumber_regs_insn): Likewise.
20610
20611         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
20612         dump_edge_info, count_reg_references): Likewise.
20613
20614         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
20615         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
20616         Likewise.
20617
20618         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
20619         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
20620         add_label_notes): Likewise.
20621
20622         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
20623         clear_struct_flag, count_sub_rtxs, count_alternatives,
20624         compares_alternatives_p, contained_in_p, walk_attr_value,
20625         write_expr_attr_cache): Likewise.
20626
20627         * genconfig.c (walk_insn_part): Likewise.
20628
20629         * genemit.c (max_operand_1, gen_exp): Likewise.
20630
20631         * genextract.c (walk_rtx): Likewise.
20632
20633         * genflags.c (num_operands): Likewise.
20634
20635         * genoutput.c (scan_operands): Likewise.
20636
20637         * genpeep.c (match_rtx): Likewise.
20638
20639         * genrecog.c (add_to_sequence): Likewise.
20640
20641         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
20642         Likewise.
20643
20644         * integrate.c (save_constants, copy_for_inline,
20645         copy_rtx_and_substitute, subst_constants, restore_constants):
20646         Likewise.
20647
20648         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
20649         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
20650
20651         * local-alloc.c (contains_replace_regs, memref_referenced_p):
20652         Likewise.
20653
20654         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
20655         add_label_notes, replace_call_address, count_nonfixed_reads,
20656         invariant_p, find_single_use_in_loop, find_mem_givs,
20657         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
20658         Likewise.
20659
20660         * print-rtl.c (reg_names, print_rtx): Likewise.
20661
20662         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
20663
20664         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
20665         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
20666         print_blocks): Likewise.
20667
20668         * regclass.c (fix_register, record_address_regs,
20669         reg_scan_mark_refs): Likewise.
20670
20671         * regmove.c (stable_but_for_p): Likewise.
20672
20673         * reload.c (loc_mentioned_in_p, operands_match_p,
20674         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
20675         copy_replacements, refers_to_regno_for_reload_p,
20676         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
20677         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
20678         Likewise.
20679
20680         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
20681         delete_address_reloads_1, count_occurrences,
20682         reload_cse_mem_conflict_p, reload_combine_note_use,
20683         add_auto_inc_notes): Likewise.
20684
20685         * resource.c (mark_referenced_resources, mark_set_resources):
20686         Likewise.
20687
20688         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
20689         reg_mentioned_p, regs_set_between_p, modified_between_p,
20690         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
20691         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
20692         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
20693         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
20694
20695         * sched.c (sched_analyze_2, attach_deaths): Likewise.
20696
20697         * stupid.c (stupid_mark_refs): Likewise.
20698
20699         * unroll.c (remap_split_bivs): Likewise.
20700
20701         * varasm.c (mark_constants): Likewise.
20702
20703         * a29k/a29k.c (uses_local_reg_p): Likewise.
20704
20705         * alpha/alpha.c (summarize_insn): Likewise.
20706
20707         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
20708         eliminate_lr2ip): Likewise.
20709
20710         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
20711
20712         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
20713         reg_mentioned_in_mem): Likewise.
20714
20715         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
20716         symbolic_reference_mentioned_p): Likewise.
20717
20718         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
20719
20720         * sh/sh.c (regs_used, mark_use): Likewise.
20721
20722         * vax/vax.c (vax_rtx_cost): Likewise.
20723
20724 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20725
20726         * machmode.h (mode_name): Constify a char*.
20727
20728         * rtl.c (mode_name): Likewise.
20729
20730         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
20731
20732         * optabs.c (init_libfuncs): Constify a char*.
20733
20734         * print-tree.c (mode_name): Remove redundant declaration.
20735         (print_node): Use accessor macro, not `mode_name'.
20736
20737         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
20738         not `mode_name'.
20739         (new_spill_reg): Constify a char*.
20740
20741         * tree.c (mode_name): Remove redundant declaration.
20742
20743 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20744
20745         * rtl.c (rtx_name): Constify a char*.
20746
20747         * rtl.h (rtx_name, fix_sched_param): Likewise.
20748
20749         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
20750         (mypr): Use accessor macro, not `rtx_name'.
20751
20752         * genemit.c (print_code): Constify a char*.
20753
20754         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
20755
20756         * genpeep.c (print_code): Constify a char*.
20757
20758         * genrecog.c (print_code): Likewise.
20759
20760         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
20761         end_bb): Add static prototype.
20762         (draw_edge): Constify a char*.
20763         (end_bb): Remove unused parameter.
20764
20765         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
20766         print_block_visualization): Constify a char*.
20767
20768 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
20769
20770         * c-common.c (c_get_alias_set): Update comment.
20771
20772 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
20773
20774         * linux.h (LIB_SPEC): Added.
20775
20776 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20777
20778         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
20779
20780 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
20781
20782         * tree.c (expr_check): Fix typo in last change.
20783
20784 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
20785
20786         * rtl.def (NOTE): Change format to "iuu0n".
20787         (ADDR_DIFF_VEC): Change format to "eEee0".
20788         (ADDRESSOF): Change format to "eit".
20789
20790         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
20791         (RTVEC_ELT): Change to match.
20792         (XVECEXP): Use XVEC and RTVEC_ELT.
20793         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
20794         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
20795         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
20796         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
20797         TRAP_CONDITION, TRAP_CODE): Use XEXP.
20798         (INTVAL): Use XWINT.
20799         (ADDRESSOF_DECL): Use XTREE.
20800         (SET_ADDRESSOF_DECL): Delete.
20801         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
20802         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
20803         ifdefed out since 2.6 at least.
20804         (gen_rtvec_vv): Delete prototype.
20805
20806         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
20807         not rtunion.
20808         (copy_most_rtx): Handle 't' format letter.
20809         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
20810         (gen_rtvec_vv): Delete function.  All callers changed to use
20811         gen_rtvec_v instead.
20812         * print-rtl.c (print_rtx): Move special casing of NOTEs to
20813         the '0' format letter.
20814
20815         * function.c (gen_mem_addressof): Don't use
20816         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
20817         instead.
20818         * integrate.c (copy_rtx_and_substitute): Likewise.
20819         Copy 't' slots with XTREE.
20820         (subst_constants): Treat 't' slots like '[swi]' slots.
20821         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
20822         * jump.c (rtx_equal_for_thread_p): Likewise.
20823         * rtlanal.c (rtx_equal_p): Likewise.
20824         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
20825         only four arguments.
20826         * gengenrtl.c (type_from_format): Provide correct types for
20827         'b' and 't' slots.
20828
20829
20830         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
20831         If a recent gcc is in use (always in stage2 and beyond), use
20832         statement expressions, so we don't make a function call unless
20833         the check fails.  Evaluate arguments exactly once.
20834         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
20835         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
20836         Delete.
20837         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
20838         they evaluate their arguments exactly once, irrespective of
20839         the compiler in use.
20840
20841         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
20842         is used by the currently-enabled check macros.  This is:
20843         (tree_check_failed, tree_class_check_failed): For gcc.
20844         (tree_check, tree_class_check, cst_or_constructor_check,
20845         expr_check): For other compilers.
20846
20847         * gencheck.c: Do not define any *_CHECK1 macros.
20848
20849 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
20850                           Mark Mitchell <mark@codesourcery.com>
20851
20852         * c-common.c (c_get_alias_set): Fix support for poitners and
20853         references.
20854
20855 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
20856
20857         * alias.c: Include tree.h.
20858         (nonlocal_reference_p, mark_constant_function): New functions.
20859         * flow.c (life_analysis): Call mark_constant_function.
20860         * rtl.h (mark_constant_function): Declare it.
20861
20862 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
20863
20864         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
20865         unrecognisable switches.
20866
20867 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20868
20869         * loop.c (recombine_givs): Set ix field after sorting.
20870         (recombine_givs): Remove bogus index / giv lockstep looping.
20871
20872 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20873
20874         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
20875         on CODE.
20876         (emit_store_flag_force): Use do_compare_rtx_and_jump.
20877         (do_cmp_and_jump): Formatting fixes.
20878         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
20879         do_compare_rtx_and_jump instead of compare_from_rtx.
20880         (do_compare_rtx_and_jump): New function; mostly copied from
20881         compare_from_rtx.
20882         (do_jump_for_compare): Delete.
20883         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
20884         MIN_EXPR.
20885         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
20886         of compare/do_jump_for_compare pairs.
20887         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
20888         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
20889         compare_from_rtx/do_jump_for_compare pairs.
20890         (do_jump_by_parts_equality): Likewise.
20891         (do_jump_by_parts_equality_rtx): Likewise.
20892         * expr.h (do_compare_rtx_and_jump): Declare.
20893         * optabs.c (prepare_cmp_insn): New function, contains most of the code
20894         that used to be in emit_cmp_insn.
20895         (cmp_available_p): New function.
20896         (prepare_operand): New function.
20897         (emit_cmp_and_jump_insn_1): New function, contains some code that used
20898         to be in emit_cmp_insn.
20899         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
20900         parameters to be pointers; don't emit final compare but modify some of
20901         the values pointed to by the args so the caller can perform the
20902         correct comparison.
20903         (expand_binop): Call emit_store_flag_force with signed forms of
20904         comparison code.
20905         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
20906         emit_jump_insn pair.
20907         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
20908         emit_cmp_and_jump_insn_1.  Call emit_queue.
20909         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
20910         arg.
20911         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
20912         jump sets cc0 before deleting it.
20913         * integrate.c (expand_inline_function): Likewise.
20914         * unroll.c (unroll_loop): Similar changes in several places.
20915         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
20916         before deleting it.
20917
20918 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20919
20920         * Makefile.in (insn-recog.o): Update dependencies.
20921         * genrecog.c (main): Make generated file include "function.h".
20922
20923 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
20924
20925         * cse.c (cse_insn): Call never_reached_warning when a jump is
20926         changed to be unconditional.
20927         * flags.h: Declare warn_notreached.
20928         * flow.c (delete_block): Call never_reached_warning when
20929         a block is deleted.
20930         * jump.c (delete_barrier_successors): Call never_reached_warning
20931         when we delete everything after a BARRIER.
20932         (never_reached_warning): New function.
20933         * rtl.h: Declare never_reached_warning.
20934         * toplev.c (warn_notreached): New variable.
20935         (lang_independent_options): Set warn_notreached
20936         when -Wunreachable-code.
20937         (compile_file): We need line numbers for -Wunreachable-code.
20938
20939 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
20940
20941         * haifa-sched.c (insn_unit): Fix typo on out of range test.
20942         * sched.c (insn_unit): Likewise.
20943
20944 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
20945
20946         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
20947
20948 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20949
20950         * flow.c (create_edge_list): Use xmalloc, not malloc.
20951
20952 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
20953
20954         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
20955         C-style comments.  Do not lose the character before double slash.
20956
20957 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20958
20959         * basic-block.h (struct edge_list): Stucture to maintain a vector
20960         of edges.
20961         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
20962          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
20963         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
20964         New function prototypes.
20965         * flow.c (create_edge_list): Function to create an edge list.
20966         (free_edge_list): Discards memory used by an edge list.
20967         (print_edge_list): Debug output showing an edge list.
20968         (verify_edge_list): Internal consistency check for an edge list.
20969         (find_edge_index): Function to find an edge index for a pred and succ.
20970
20971 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
20972
20973         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
20974         hashtable.
20975
20976 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
20977
20978         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
20979
20980 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
20981
20982         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
20983
20984 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
20985
20986         * toplev.c (rest_of_compilation): Allow machine dependent
20987         reorganisation pass to place information into the RTL dump
20988         file if it so wishes.
20989
20990 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
20991
20992         * explow.c (hard_function_value): Use VOIDmode instead of
20993         MAX_MACHINE_MODE.
20994         * stmt.c (expand_return): Likewise.
20995         * stor-layout.c (get_best_mode): Likewise.
20996
20997         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
20998         emit call instead of emit_insn call.
20999
21000 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21001
21002         * configure.in: Handle --disable/enable-win32-registry.
21003         * install.texi: Document --disable/enable-win32-registry.
21004         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
21005         (WIN32_REGISTRY_KEY): New macro.
21006         * prefix.c: Use to enable/disable win32-specific code.
21007         (lookup_key): Use versioned key.
21008         * configure: Regenerate.
21009         * config.in: Likewise.
21010
21011 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
21012
21013         * cpplib.c (read_line_number): New fn, split out of...
21014         (do_line): Here.
21015
21016 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21017
21018         tree.c (lang_unsave_expr_now) : New.
21019         (unsave_expr_now): Call lang_unsave_expr_now.
21020         tree.h (lang_unsave_expr_now) : New.
21021
21022 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
21023
21024         * toplev.c (flag_new_exceptions): On by default.
21025
21026 1999-08-13  Michael Meissner  <meissner@cygnus.com>
21027
21028         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
21029
21030 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
21031
21032         * dwarfout.c (fundamental_type_code): Return FT_boolean for
21033         INTEGER_TYPE with precision==1, it's __java_boolean.
21034
21035 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21036
21037         * global.c (prune_preferences): Move some invariants out of the
21038         inner loop.
21039
21040 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
21041
21042         * configure.in (alpha*-dec-osf*): Add osf5.
21043
21044 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
21045
21046         * configure.in: Rework handling of ARM GNU/Linux slightly.
21047         (arm*-*-linux-gnuoldld): New target.
21048         * configure: Regenerate.
21049         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
21050         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
21051         * config/arm/linux-oldld.h: New file.
21052         * config/arm/linux-elf26.h: Don't include linux-elf.h.
21053         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
21054         Don't define.
21055         * config/arm/linux-elf.h (ASM_SPEC): Define.
21056         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
21057         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
21058         for 26-bit APCS and old linker.
21059         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
21060         `arm_elf'.
21061         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
21062         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
21063         don't define `arm' or `arm_elf'.
21064         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
21065         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
21066
21067 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
21068
21069         * rtl.texi: Fix typo.
21070
21071 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
21072
21073         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
21074
21075 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
21076
21077         * extend.texi (C++ Signatures): Remove node.
21078         * invoke.texi: Remove discussion of -fhandle-signatures,
21079         signature, sigof, __signature__, and __sigof__.
21080
21081 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
21082
21083         * Makefile.in (JAVAGC): Removed.
21084
21085 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21086
21087         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
21088
21089 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
21090
21091         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
21092
21093 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
21094
21095         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
21096         a register that is already known to be a pointer.
21097
21098 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
21099
21100         * fixinc/inclhack.tpl: Only install assert.h conditionally.
21101         * fixinc/inclhack.sh: Regenerated.
21102         * fixinc/fixincl.sh: Regenerated.
21103
21104 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
21105
21106         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
21107         Fix documentation of -ansi flag to describe its C++ behavior.
21108         Remove bogus reference to GCC 2.9.
21109
21110 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
21111
21112         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
21113         note if it is non-NULL.
21114
21115 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21116
21117         * except.h (eh_nesting_info): Add new structure defintion.
21118         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
21119         (reachable_handlers, update_rethrow_references): Add function
21120         prototypes.
21121         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
21122         a rethrow symbol instead of an integer exception region number.
21123         * flow.c (Make_edges): Use new exception nesting routines to determine
21124         which handlers are reachable from a CALL or asynchronous insn.
21125         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
21126         goto receivers.
21127         (delete_eh_regions): Update rethrow labels, and don't delete
21128         regions which are the target of a rethrow.
21129         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
21130         avoid overloading the SYMBOL_REF_USED flag.
21131         (rethrow_symbol_map): Use new rethrow_ref field.
21132         (rethrow_used): Use new rethrow_ref field.
21133         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
21134         of an integer.  Fix formatting.
21135         (output_exception_table_entry): Use new rethrow_ref field.
21136         (can_throw): Check for EH_REGION_NOTE before deciding
21137         whether a CALL can throw or not.
21138         (scan_region): Call rethrow_used() instead of accessing data structure.
21139         (update_rethrow_references): New function to make sure only regions
21140         which are still targets of a rethrow are flagged as such.
21141         (process_nestinfo): New static function to initialize a handler
21142         list for a specific region.
21143         (init_eh_nesting_info): New function to allocate and initialize
21144         the list of all EH handlers reachable from all regions.
21145         (reachable_handlers): New function to retrieve the list of handlers
21146         reachable from a specific region and insn.
21147         (free_eh_nesting_info): New function to dispose of a list of
21148         reachable handlers.
21149
21150 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21151
21152         * flow.c (split_edge): Set JUMP_LABEL field.
21153         (commit_one_edge_insertion): Set head correctly for insert_before.
21154         When inserting insns, update insn block numbers if allocated.
21155
21156 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21157
21158         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
21159         retry_incomplete_types): Add static prototype.
21160         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
21161         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
21162         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
21163         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
21164         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
21165         Constify a char*.
21166
21167         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
21168         dwarf2out_start_source_file, dwarf2out_line): Likewise.
21169
21170 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21171
21172         * output.h (assemble_name): Constify a char*.
21173
21174         * varasm.c (UNIQUE_SECTION, assemble_start_function,
21175         assemble_variable, assemble_name): Likewise.
21176
21177         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
21178
21179         * arm/pe.c (arm_pe_unique_section): Likewise.
21180
21181         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
21182
21183         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
21184
21185         * i386/interix.c (i386_pe_unique_section): Likewise.
21186
21187         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
21188
21189         * i386/winnt.c (i386_pe_unique_section): Likewise.
21190
21191         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
21192
21193         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
21194
21195         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
21196
21197         * pa/pa.c (output_call): Likewise.
21198
21199         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
21200
21201         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
21202
21203         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
21204         Likewise.
21205
21206         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
21207         Likewise.
21208
21209         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
21210
21211         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
21212         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
21213
21214         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
21215
21216 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21217
21218         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
21219
21220 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21221
21222         * tree.h (lang_identify): Constify a char*.
21223         (print_error_function): Add extern prototype.  Constify a char*.
21224
21225         * c-lang.c (lang_identify): Constify a char*.
21226
21227         * objc/objc-act.c (lang_identify): Constify a char*.
21228
21229 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21230
21231         * genpeep.c (main): Make generated file include "function.h".
21232         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
21233
21234 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21235
21236         * Makefile.in: Update dependencies.
21237         * alias.c: Include "function.h"
21238         * c-decl.c: Likewise.
21239         * caller-save.c: Likewise.
21240         * calls.c: Likewise.
21241         * combine.c: Likewise.
21242         * cse.c: Likewise.
21243         * explow.c: Likewise.
21244         * final.c: Likewise.
21245         * global.c: Likewise.
21246         * graph.c: Likewise.
21247         * local-alloc.c: Likewise.
21248         * loop.c: Likewise.
21249         * optabs.c: Likewise.
21250         * profile.c: Likewise.
21251         * recog.c: Likewise.
21252         * regclass.c: Likewise.
21253         * regmove.c: Likewise.
21254         * reload.c: Likewise.
21255         * reorg.c: Likewise.
21256         * resource.c: Likewise.
21257         * sched.c: Likewise.
21258         * stupid.c: Likewise.
21259         * config/1750a/1750a.c: Likewise.
21260         * config/a29k/a29k.c: Likewise.
21261         * config/arc/arc.c: Likewise.
21262         * config/arm/arm.c: Likewise.
21263         * config/arm/thumb.c: Likewise.
21264         * config/c4x/c4x.c: Likewise.
21265         * config/clipper/clipper.c: Likewise.
21266         * config/convex/convex.c: Likewise.
21267         * config/fx80/fx80.c: Likewise.
21268         * config/i860/i860.c: Likewise.
21269         * config/m68k/m68k.c: Likewise.
21270         * config/m88k/m88k.c: Likewise.
21271         * config/mips/mips.c: Likewise.
21272         * config/pdp11/pdp11.c: Likewise.
21273         * config/pyr/pyr.c: Likewise.
21274         * config/romp/romp.c: Likewise.
21275         * config/sh/sh.c: Likewise.
21276         * config/tahoe/tahoe.c: Likewise.
21277         * config/vax/vax.c: Likewise.
21278         * config/we32k/we32k.c: Likewise.
21279         * config/sparc/sparc.c: Include "function.h".
21280         (mem_min_alignment): Test current_function rather than
21281         regno_pointer_align.
21282         * config/pa/pa.c: Likewise.
21283         (compute_frame_size): Delete declaration of
21284         current_function_outgoing_args_size.
21285         * config/arc/arc.h (current_function_varargs): Delete declaration.
21286         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
21287         declaration.
21288         * config/i370/i370.h (current_function_outgoing_args_size): Delete
21289         declaration.
21290         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
21291         current_function_uses_pic_offset_table.
21292         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
21293         of current_function_returns_pointer.
21294         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21295         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21296         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21297         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21298         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21299         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21300         * config/m88k/m88k.c: Include "function.h"
21301         (call_used_regs, current_function_pretend_args_size,
21302         current_function_outgoing_args_size, frame_pointer_needed): Delete
21303         declarations.
21304         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
21305         declaration.
21306         * config/mips/mips.h (current_function_calls_alloca): Delete
21307         declaration.
21308         * config/mn10200/mn10200.h (current_function_needs_context,
21309         rtx_equal_function_value_matters): Delete declarations.
21310         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
21311         flag_pic): Delete declarations.
21312         * config/pa/pa.h (current_function_pretend_args_size,
21313         current_function_decl): Delete declarations.
21314         * config/pa/som.h (current_function_varargs): Delete declaration.
21315         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
21316         declaration.
21317         * config/pyr/pyr.h (current_function_pretend_args_size,
21318         current_function_args_size, current_function_calls_alloca): Delete
21319         declarations.
21320         * config/sh/sh.h (current_function_varargs): Delete declaration.
21321         * config/sparc/sparc.h (current_function_outgoing_args_size,
21322         current_function_calls_alloca, current_function_decl): Delete
21323         declarations.
21324         * config/spur/spur.h (current_function_pretend_args_size,
21325         current_function_calls_alloca): Delete declarations.
21326         * config/v850/v850.c (current_function_outgoing_args_size): Delete
21327         declaration.
21328         * config/vax/vms.h (current_function_name): Delete declaration.
21329         * gcse.c: Include "function.h".
21330         (current_function_name, current_function_calls_setjmp): Delete
21331         declarations.
21332         * haifa-sched.c: Include "function.h".
21333         (forced_labels): Delete declaration.
21334         * jump.c: Likewise.
21335         * reg-stack.c: Likewise.
21336         * reload1.c: Likewise.
21337         * genemit.c (main): Make generated file include function.h.
21338         * genoutput.c (output_prologue): Likewise.
21339
21340         * builtins.c (saveregs_value, apply_args_value): Delete variables.
21341         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
21342         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
21343         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
21344         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
21345         macros for some of them.
21346         (emit_filename, emit_lineno): Delete declarations.
21347         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
21348         regno_pointer_* variables through current_function.
21349         (gen_inline_header_rtx): Delete function.
21350         (save_emit_status): Delete function.
21351         (set_new_last_label_num): New function.
21352         (clear_emit_caches): New function.
21353         (restore_emit_status): Just clear last_labelnum and call
21354         clear_emit_caches.
21355         (get_last_insn_anywhere): Variable sequence_stack is now accessed
21356         through macro seq_stack.
21357         (add_insn_after): Likewise.
21358         (add_insn_before): Likewise.
21359         (remove_insn): Likewise.
21360         (pop_topmost_sequence): Likewise.
21361         (in_sequence_p): Likewise.
21362         (start_sequence_for_rtl_expr): Likewise.
21363         (start_sequence): Likewise, and likewise for
21364         sequence_rtl_expr/seq_rtl_expr.
21365         (push_topmost_sequence): Likewise.
21366         (end_sequence): Likewise.
21367         (init_virtual_regs): Now takes a "struct emit_status *" argument.
21368         All callers changed.  Store into that pointer instead of globals.
21369         (init_emit): Allocate emit elt of current_function.
21370         Changes for sequence_rtl_expr/sequence_stack renaming.
21371         Call clear_emit_caches instead of doing it in-line.
21372         Access regno_pointer_* variables through current_function.
21373         (init_emit_once) Don't clear sequence_stack.
21374
21375         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
21376         Delete variables.
21377         (arg_pointer_save_area): Delete declaration.
21378         (finish_expr_for_function): Renamed from init_queue; no longer static.
21379         (init_expr): Don't call init_queue.
21380         (save_expr_status, restore_expr_status): Delete functions.
21381         (expand_expr): Changes to reflect new layout of struct function.
21382         Don't access current_function_check_memory_usage when current_function
21383         is 0.
21384         * expr.h (forced_labels, save_expr_regs, saveregs_value,
21385         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
21386         current_function_outgoing_args_size, current_function_arg_offset_rtx,
21387         current_function_uses_const_pool, function_call_count,
21388         current_function_uses_pic_offset_table, nonlocal_labels,
21389         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
21390         current_function_check_memory_usage, nonlocal_goto_handler_slots,
21391         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
21392         declarations.
21393         (finish_expr_for_function): Declare.
21394         * flags.h (current_function_has_nonlocal_label,
21395         current_function_has_nonlocal_goto, current_function_is_thunk,
21396         current_function_has_computed_jump): Delete declarations.
21397         * flow.c (forced_labels): Delete declaration.
21398         * function.c (current_function_pops_args,
21399         current_function_returns_struct, current_function_returns_pcc_struct,
21400         current_function_needs_context, current_function_calls_setjmp,
21401         current_function_calls_longjmp, current_function_has_nonlocal_label,
21402         current_function_has_nonlocal_goto, current_function_is_thunk,
21403         current_function_has_computed_jump, current_function_calls_alloca,
21404         current_function_contains_functions, current_function_returns_pointer,
21405         current_function_epilogue_delay_list, current_function_args_size,
21406         current_function_pretend_args_size, current_function_arg_offset_rtx,
21407         current_function_outgoing_args_size, current_function_varargs,
21408         current_function_stdarg, current_function_args_info, cleanup_label,
21409         current_function_name, current_function_uses_const_pool,
21410         current_function_instrument_entry_exit, current_function_return_rtx,
21411         current_function_uses_pic_offset_table, nonlocal_labels,
21412         current_function_internal_arg_pointer, current_function_cannot_inline,
21413         current_function_check_memory_usage, function_call_count,
21414         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
21415         nonlocal_goto_stack_level, return_label, save_expr_regs,
21416         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
21417         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
21418         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
21419         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
21420         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
21421         Delete variables.
21422         (push_function_context_to): Don't save them.  Don't call
21423         save_storage_status, save_emit_status or save_expr_status.
21424         (pop_function_context_from): Don't restore them.  Don't call
21425         restore_storage_status or restore_expr_status.
21426         (get_func_frame_size): New function.
21427         (get_frame_size): Use it.
21428         (assign_outer_stack_local): Reflect some member name changes in struct
21429         function.
21430         (put_reg_into_stack): Likewise.
21431         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
21432         seq_rtl_expr.
21433         (fixup_var_refs): Likewise.
21434         (fix_lexical_addr): Likewise.
21435         (trampoline_address): Likewise.
21436         (prepare_function_start): Clear field inlinable of current_function.
21437         (init_function_for_compilation): New function.
21438         (expand_dummy_function_end): New function.
21439         (expand_function_end): Call finish_expr_for_function.
21440         * function.h (struct emit_status): New; fields moved here from struct
21441         function and from global variables.  Add accessor macros for some of
21442         the fields.
21443         (struct expr_status): Likewise.
21444         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
21445         (struct function): Add fields expr and emit, inlinable, inl_emit,
21446         original_arg_vector, original_decl_initial, inl_last_parm_insn,
21447         inl_max_label_num.  Add many comments.
21448         Add accessor macros for all elts of struct function that no longer
21449         have a global variable.
21450         (cleanup_label, return_label, frame_offset, tail_recursion_label,
21451         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
21452         stack_slot_list): Delete declarations.
21453         (get_func_frame_size): Declare.
21454         (save_expr_status, restore_expr_status, save_emit_status,
21455         save_storage_status, restore_storage_status): Delete declarations.
21456         (init_virtual_regs): Declare.
21457         * output.h (current_function_pops_args,
21458         current_function_returns_struct, current_function_returns_pcc_struct,
21459         current_function_needs_context, current_function_calls_setjmp,
21460         current_function_calls_longjmp, current_function_calls_alloca,
21461         current_function_has_nonlocal_label, current_function_varargs,
21462         current_function_has_computed_jump, current_function_returns_pointer,
21463         current_function_contains_functions, current_function_args_size,
21464         current_function_pretend_args_size, current_function_stdarg,
21465         current_function_outgoing_args_size, current_function_args_info,
21466         current_function_name, current_function_return_rtx,
21467         current_function_epilogue_delay_list,
21468         current_function_uses_const_pool, current_function_cannot_inline):
21469         Delete declarations.
21470         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
21471         regno_reg_rtx): Delete declaration.
21472         (REGNO_POINTER_FLAG): Delete macro.
21473         * stmt.c (expand_goto): Changes to reflect that some fields in struct
21474         function were renamed.
21475         * stor-layout.c (save_storage_status, restore_storage_status): Delete
21476         functions.
21477         * toplev.c: Include "function.h".
21478         (current_function_decl): Delete declaration.
21479         (compile_file): Call init_dummy_function_start and
21480         expand_dummy_function_end around some initializations that need to
21481         emit rtl.
21482         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
21483         Call init_function_for_compilation.
21484         * unroll.c: Include "function.h"
21485         (unroll_loop): Access regno_pointer_* variables through
21486         current_function.
21487
21488         * tree.h (struct tree_decl): Add elt f to saved_insns member.
21489         (DECL_SAVED_INSNS): use it.
21490         (expand_dummy_function_end): Declare.
21491         (init_function_for_compilation): Declare.
21492         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
21493         that it's no longer an INLINE_HEADER.
21494         (expand_call): Likewise.
21495         * integrate.c (finish_inline): Delete function.
21496         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
21497         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
21498         args.  Don't generate an INLINE_HEADER rtx, just return the arg
21499         vector.  All callers changed.
21500         (save_for_inline_copying):  Create a duplicate struct emit_status to
21501         hold the emit state for compiling the current function.  Use this and
21502         the other new fields in struct function that are for integration
21503         instead of an INLINE_HEADER.
21504         Use memcpy instead of bcopy.
21505         Store the current struct function in DECL_SAVED_INSNS of fndecl.
21506         (save_for_inline_nocopy): Similar changes, except no new emit_status
21507         is needed here.
21508         (expand_inline_function): Get information from function structure,
21509         not from an inline header rtx.
21510         (output_inline_function): Lose code to extract the necessary
21511         information from an inline header; simply put back the function
21512         structure into current_function.  Clear its inlinable elt.
21513         * rtl.def (INLINE_HEADER): Delete.
21514         * rtl.h: Delete all accessors for an INLINE_HEADER.
21515         (gen_inline_header_rtx): Delete declaration.
21516         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
21517         Delete declarations.
21518         (REGNO_POINTER_ALIGN): Delete.
21519         (clear_emit_caches): Declare.
21520         (set_new_last_label_num): Declare.
21521
21522 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
21523
21524         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
21525
21526         * except.c (expand_eh_region_start_for_decl): Always start a new block.
21527         * stmt.c (is_eh_region): Make sure current_function is present, too.
21528
21529 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
21530
21531         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
21532         for 64bit PA targets.
21533
21534         * pa.h (SELECT_SECTION): Define.
21535         * som.h (SELECT_SECTION): Delete.
21536
21537 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21538
21539         * alias.c (init_alias_analysis): Wrap call to
21540         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
21541
21542 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
21543
21544         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
21545         <sys/asm.h> contains an asm comment with an apostrophe
21546         * fixinc/inclhack.sh:  regen
21547         * fixinc/fixincl.x:  regen
21548
21549 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
21550
21551         * function.c (init_function_start): Clear prologue & epilogue.
21552         (prologue_epilogue_contains): New function.
21553         * alias.c (init_alias_analysis): Use it.
21554         * rtl.h (prologue_epilogue_contains): Declare it.
21555
21556 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
21557
21558         * jump.c (onlyjump_p): New function.
21559         * rtl.h: Declare it.
21560         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
21561         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
21562
21563 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
21564
21565         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
21566         to invert loops.  Simplify block scanning.
21567
21568 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
21569
21570         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
21571         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
21572
21573 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
21574
21575         * config/sparc/liteelf.h: New file to support sparclite-elf target
21576         * config/sparc/t-sp86x: New file to support sparc86x targets
21577         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
21578         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
21579         * configure.in: Support above target triplets
21580         * configure: Regenerated
21581
21582 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
21583
21584         * fixinc/server.c (server_setup): Do not prefix function used as
21585         parameter with `&'.
21586
21587 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
21588
21589         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
21590         Remove fp reg alternatives.
21591
21592 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
21593
21594         * Makefiin (TAROUTOPTS): Kill.
21595         (install-headers-tar): Use "xpf" for tar headerfile extraction
21596         * i370/x-oe (TAROUTOPTS): Delete.
21597         * m68k/x-apollo68 (TAROUTOPTS): Delete.
21598         * m68k/x-hp320 (TAROUTOPTS): Delete.
21599         * m68k/x-hp320g (TAROUTOPTS): Delete.
21600         * gcc.texi: Update bug reporting text.
21601
21602 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
21603
21604         * reg-stack.c (change_stack) Fixed problem with negative array index.
21605
21606 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
21607
21608         * extend.texi, install.texi: Fix spelling mistakes.
21609
21610         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
21611         (s-attrtab); No longer try to use pre-made insn-attrtab file.
21612         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
21613         PREMADE_ATTRTAB_MD.
21614         * mips/t-ecoff: Likewise.
21615         * mips/t-elf: Likewise.
21616         * mips/t-mips: Likewise.
21617         * mips/t-osfrose: Likewise.
21618         * mips/t-r3900: Likewise.
21619         * mips/t-svr3: Likewise.
21620         * mips/t-svr4: Likewise.
21621         * mips/t-ultrix: Likewise.
21622
21623         * gcc.texi: Document recommend means to provide software floating
21624         point libraries in libgcc.a
21625
21626 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
21627
21628         * c-lex.c (yylex): We can have a number with no digits.
21629
21630 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
21631
21632         * jump.c (delete_prior_computation): New function, broken
21633         out of delete_computation.  Check for side effects with
21634         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
21635         multi-word hard registers.
21636         (delete_computation): Use it.  Check for side effects with
21637         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
21638         missing REG_DEAD note for a register which is both set and
21639         used by an insn.
21640
21641 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
21642
21643         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
21644         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
21645         (ASM_FILE_START): Import _mcount with the right type.
21646         (ASM_DECLARE_FUNCTION_NAME): Define.
21647         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
21648         * pa.c (output_function_prologue): Always emit the function's label
21649         here.
21650         * pa.h (TEXT_SPACE_P): Define.
21651         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
21652         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
21653         * som.h (TEXT_SPACE_P): Delete.
21654         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
21655         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
21656
21657 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
21658
21659         * expr.c (emit_group_load): Allow src to be a CONCAT.
21660
21661 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21662
21663         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
21664         (___mulsi3): Use '!' comment character.
21665
21666 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21667
21668         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
21669
21670 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
21671
21672         * gcc.c: Update URLs and mail addresses.
21673         * gcc.texi: Likewise.
21674
21675 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
21676
21677         * rs6000.c (current_file_function_operand): Return zero for
21678         weak functions.
21679         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
21680         weak symbols.
21681         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
21682         for weak symbols.
21683
21684 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
21685
21686         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
21687         allocate space in the stack frame for the PIC register.
21688
21689 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
21690
21691         * m68k.md (xordi3, anddi3): These patterns are not available on
21692         the coldfire.
21693
21694 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
21695
21696         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
21697         (PUT_REAL): Likewise.
21698
21699 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21700
21701         * final.c (shorten_branches): Don't add an alignment for loops
21702         that have no label inside.
21703
21704 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21705
21706         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
21707         prototypes in macro HAVE_cmpstrsi.
21708
21709         * cpplib.c (cpp_get_token): Remove unused label `op3'.
21710
21711         * emit-rtl.c (operand_subword): Remove unused variable
21712         `bits_per_word'.
21713
21714         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
21715
21716         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
21717
21718 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
21719
21720         * cpphash.c (macroexpand): Delete leading whitespace when arg
21721         is concatenated before.
21722         (unsafe_chars): Correct test for whether + and - can extend a
21723         token.
21724
21725         * cppinit.c (cpp_start_read): Do dependencies for
21726         -include/-imacros files also.
21727
21728         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
21729         tokenizing non-directive lines.
21730         (cpp_expand_to_buffer): Temporarily disable no-output mode.
21731         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
21732         the input file.
21733
21734 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
21735
21736         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
21737
21738         * c-lex.c: Sync with C++ frontend.
21739         (linemode): New variable.
21740         (parse_float): imag, conversion_errno, and type are output only.
21741         (yylex): Adjust.  Move initial '.' case into main switch.
21742         Use linemode.
21743         (handle_generic_pragma): Just deal with tokens.
21744         (readescape): Use ISXDIGIT and ISGRAPH.
21745         * c-parse.in: Add END_OF_LINE token.
21746
21747         * c-lex.c (lang_init): Generalize.
21748         (nextchar): Remove.  Replace uses with UNGETC.
21749         (skip_white_space): Handle linemode here.  Optimize for cpplib.
21750         (skip_white_space_on_line): Remove.
21751         (extend_token_buffer_to): New fn.
21752         (extend_token_buffer): Use it.
21753         (read_line_number, check_newline): Just deal with tokens.
21754         (token_getch, token_put_back): New fns.
21755         (yylex): Use them.  More cpplib optimizations.  Simplify.
21756
21757 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
21758                           Jason Merrill  <jason@yorick.cygnus.com>
21759
21760         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
21761         (consume_string): Make this smart about USE_CPPLIB.
21762         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
21763         (yylex): Rewrite to be intelligent about USE_CPPLIB.
21764         Also, clean up cases where we redundantly set token_buffer[0].
21765         (read_line_number): New fn.
21766         (ignore_escape_flag): New variable.
21767
21768 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
21769
21770         * a29k/t-a29kbare: Fix some comments.
21771         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
21772         (FPBIT, DPBIT): Define.
21773         * a29k/t-vx29k: Likewise.
21774         * arc/t-arc: Likewise.
21775         * arm/t-arm-elf: Likewise.
21776         * arm/t-bare: Likewise.
21777         * arm/t-pe: Likewise.
21778         * arm/t-pe-thumb: Likewise.
21779         * arm/t-semi: Likewise.
21780         * arm/t-thumb: Likewise.
21781         * arm/t-thumb-elf: Likewise.
21782         * arm/t-thumb-linux: Likewise.
21783         * h8300/t-h8300: Likewise.
21784         * i960/t-i960: Likewise.
21785         * i960/t-vxworks960: Likewise.
21786         * m32r/t-m32r: Likewise.
21787         * mips/t-ecoff: Likewise.
21788         * mips/t-elf: Likewise.
21789         * mips/t-r3900: Likewise.
21790         * pa/t-pro: Likewise.
21791         * rs6000/t-aix43: Likewise.
21792         * rs6000/t-beos: Likewise.
21793         * rs6000/t-newas: Likewise.
21794         * rs6000/t-ppccomm: Likewise.
21795         * rs6000/t-rs6000: Likewise.
21796         * rs6000/t-winnt: Likewise.
21797         * rs6000/t-xnewas: Likewise.
21798         * rs6000/t-xrs6000: Likewise.
21799         * sh/t-sh: Likewise.
21800         * sparc/t-elf: Likewise.
21801         * sparc/t-sparcbare: Likewise.
21802         * sparc/t-sparclite: Likewise.
21803         * sparc/t-splet: Likewise.
21804         * v850/t-v850: Likewise.
21805         * mn10200/t-mn10200: Fix comments.
21806         * mn10300/t-mn10300: Likewise.
21807
21808         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
21809         dummy operand.  Allocate a new pseudo for the dummy operand.
21810         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
21811
21812         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
21813
21814 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
21815
21816         * configure: Rebuilt.
21817         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
21818
21819 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
21820
21821         * recog.c (preproces_constraints): Zero recog_op_alt before
21822         processing the constraints.
21823
21824         * arm.c (typedef minipool_node): Renamed from pool_node.
21825         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
21826         (add_minipool_constant): New function.
21827         (dump_minipool): New function.
21828         (find_barrier): Remove special case for getting the insn size of
21829         an insn that references the constant pool.
21830         (minipool_fixup): New structure.
21831         (push_minipool_barrier): New function.
21832         (push_minipool_fix): New function.
21833         (note_invalid_constants): New function.
21834         (add_pool_constant, dump_table, fixit, broken_move): Delete.
21835         (arm_reorg): Rewrite code to fix up the constant pool into a
21836         series of mini-pools embedded in the insn stream.
21837         (arm_output_epilogue): New function, made mainly from the body
21838         of output_func_epilogue.
21839         (output_func_epilogue): Move insn generation part of epilogue code
21840         to arm_output_epilogue.
21841         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
21842         * arm.md (pool_range): New attribute.
21843         (zero_extendqidi2): Add attribute pool_range.
21844         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
21845         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
21846         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
21847         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
21848         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
21849         (epilogue): New expand.
21850         (epilogue_insn): New insn.  Call arm_output_epilogue.
21851
21852         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
21853         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
21854
21855 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
21856
21857         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
21858
21859 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
21860
21861         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
21862
21863 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
21864
21865         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
21866
21867 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
21868
21869         * global.c: Fix comment.
21870
21871 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
21872
21873         * gcc.c (access_check): New static function.
21874         (find_a_file): Use it when searching a directory list.
21875         * collect2.c (find_a_file): Don't accept directories found when
21876         searching a directory list.
21877
21878 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
21879
21880         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
21881         function parameters with `&'.
21882         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
21883
21884 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
21885
21886         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
21887         or tidy_fallthru_edge if the last insn in the block is not
21888         an unconditional jump or a simple conditional jump.
21889
21890 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21891
21892         * Makefile.in (c-decl.o): Depends on defaults.h.
21893
21894 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
21895
21896         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
21897         PA1.1 and above.
21898         (CLASS_MAX_NREGS): Likewise.
21899
21900 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
21901
21902         * cse.c (cse_insn): Fix dumb thinko in last change.
21903
21904 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21905
21906         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
21907         "const char *".
21908
21909 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
21910
21911         * dwarf2out.c (add_location_or_const_value_attribute): Correct
21912         test for sizes of passed and declared parameter types.
21913
21914 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21915
21916         * fixincludes: Fix the return type of bsearch, char* -> void*.
21917
21918         * fixinc/inclhack.def: Likewise.
21919
21920 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
21921
21922         * invoke.texi (-fdump-translation-unit): New option.
21923
21924 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
21925
21926         * expr.h (PROMOTE_PROTOTYPES): Move ...
21927         * defaults.h: ... to here.
21928         * c-decl.c: Include defaults.h instead of expr.h.
21929         * c-typeck.c: Include defaults.h.
21930
21931 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
21932
21933         * toplev.h (errorcount): Declare.
21934         (warningcount): Likewise.
21935         (sorrycount): Likewise.
21936         * c-lex.c (errorcount): Don't declare.
21937         * dwarf2out.c (errorcount): Don't declare.
21938
21939 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
21940
21941         * config/libgloss.h: Add a note discouraging use with ELF.
21942         * configure.in: Don't use libgloss.h for ELF targets.
21943         Always use_collect2 on a.out targets.
21944
21945 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
21946
21947         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
21948         (force_to_mode, case ASHIFTRT): Add shiftrt label.
21949
21950 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21951
21952         * loop.c (strength_reduce): When doing biv->giv conversion, update
21953         reg note of NEXT->insn.
21954
21955 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
21956
21957         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
21958
21959 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
21960
21961         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
21962         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
21963         Ensure expr.h is included.
21964         * c-typecheck.c (convert_arguments): Ditto.
21965
21966         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
21967
21968         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
21969         * config/convex/convex.h: Ditto.
21970         * config/dsp16xx/dsp16xx.h: Ditto.
21971         * config/fx80/fx80.h: Ditto.
21972         * config/gmicro/gmicro.h: Ditto.
21973         * config/i370/i370.h: Ditto.
21974         * config/i386/i386.h: Ditto.
21975         * config/m32r/m32r.h: Ditto.
21976         * config/m68k/m68k.h: Ditto.
21977         * config/m88k/m88k.h: Ditto.
21978         * config/mips/mips.h: Ditto.
21979         * config/pa/pa.h: Ditto.
21980         * config/pyr/pyr.h: Ditto.
21981         * config/tahoe/tahoe.h: Ditto.
21982         * config/we32k/we32k.h: Ditto.
21983
21984         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
21985         based on arch size.
21986
21987         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
21988
21989         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
21990         from comment.
21991
21992         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
21993
21994 1999-08-02  Richard Henderson  <rth@cygnus.com>
21995
21996         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
21997         for the register spill block.
21998         (m32r_va_arg): New.
21999         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
22000         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
22001
22002         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
22003         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
22004         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
22005
22006 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
22007
22008         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
22009         MAX_WCHAR_TYPE defined in sparc.h.
22010         * config/sparc/linuxaout.h: Likewise.
22011         * config/sparc/linux64.h: Likewise.
22012         Also default to -mvis if CPU is UltraSPARC.
22013
22014 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
22015
22016         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
22017         (RTX_OK_FOR_OLO10): Likewise.
22018         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
22019         %lo(), allow it in addresses...
22020         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
22021         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
22022         does not make sense.
22023         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
22024         (sparc_output_scratch_registers): New function.
22025         (output_function_prologue, sparc_flat_output_function_prologue): Use
22026         it.
22027         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
22028         defined.
22029         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
22030         * configure.in: Add check for .register pseudo-op support in as and
22031         check for offsetable %lo().
22032         * acconfig.h: Add templates for the above checks.
22033         * configure: Regenerate.
22034
22035 1999-08-02  Richard Henderson  <rth@cygnus.com>
22036
22037         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
22038         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
22039         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
22040
22041 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22042
22043         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
22044         reg_biv_class.
22045
22046 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
22047
22048         * config/float-sparc.h: New file.
22049         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
22050         sparc-*-linux-gnu and sparc64-*-linux*.
22051
22052 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22053
22054         * rs6000.c (rs6000_va_list): Type is an array.
22055         (rs6000_va_start): Don't doubly adjust for varargs.
22056         (rs6000_va_arg): Evaluate long long GPR adjustment.
22057
22058 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
22059
22060         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
22061         -maix64 and -maix32.
22062         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
22063         LINK_SPEC): Change appropriately.
22064         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
22065         (u_short_cint_operand): Likewise.
22066         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
22067         for 64-bit hosts.
22068         * rs6000/t-aix43 (MULTILIB): Change to -m64.
22069
22070         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
22071
22072 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
22073
22074         * rs6000/rs6000.c (num_insns_constant_wide): Correct
22075         for type promotion.
22076         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
22077         (non_add_cint_operand): Likewise.
22078         (logical_operand): Likewise.
22079         (non_logical_cint_operand): Likewise.
22080         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
22081         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
22082         (rs6000_select_rtx_section): Suppress warning.
22083         (small_data_operand): Suppress warning.
22084         (rs6000_got_register): Suppress warning.
22085         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
22086         type, so `J' is generally the wrong constraint for a SImode value;
22087         use `L' instead.
22088         (andsi3_internal2): Likewise.
22089         (andsi3_internal3): Likewise.
22090         (iorsi3_internal1): Likewise.
22091         (xorsi3_internal1): Likewise.
22092         (movsi): Likewise.
22093         (movsf_softfloat): Likewise.
22094         (scc insns): Likewise.
22095         (movsi+2): Preserve sign bits of SImode constant.
22096         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
22097         (movdf+1): Sign-extend properly.
22098         (movdi_32+1): Sign-extend properly.
22099         (scc insns): Sign-extend properly.
22100
22101         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
22102         K, L, and T.
22103
22104 1999-08-02  Richard Henderson  <rth@cygnus.com>
22105
22106         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
22107         -mcpu parsing code.
22108         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
22109         * alpha.md (all fp insns): Likewise.
22110
22111 1999-08-02  Nick Clifton  <nickc@cygnus.com>
22112
22113         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
22114         already defined.
22115
22116 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
22117
22118         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
22119         pic_load_label generator directly.
22120         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
22121         No longer a named pattern.
22122
22123 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
22124
22125         * explow.c (force_reg): Call force_operand if X does not
22126         satisfy general_operand.
22127
22128 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
22129
22130         * fix-header.c (main): When testing for CONTINUED, use string
22131         equality, not pointer equality.
22132
22133 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
22134
22135         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
22136
22137 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
22138
22139         * cse.c (cse_insn): Fix loop which deletes insns after a jump
22140         that has become an unconditional jump.
22141
22142         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
22143         (output_function_epilogue): Similarly.
22144
22145 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22146
22147         * tree.h (init_dummy_function_start): Declare.
22148
22149 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22150
22151         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
22152         last_expr_type, last_expr_value, block_start_count, block_stack,
22153         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
22154         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
22155         dynamically in stmt elt of struct function for each function.
22156         (struct nesting): Rename function_call_count elt to n_function_calls,
22157         target_temp_slot_level to block_target_temp_slot_level.  All users
22158         changed.
22159         (struct stmt_status): New structure definition.
22160         Add many accessor macros for stmt_status elements which previously
22161         were global variables.
22162         (init_stmt_for_function): Allocate stmt elt for current_function.
22163         Reflect that block_start_count was renamed to
22164         current_block_start_count.
22165         (save_stmt_status, restore_stmt_status): Delete functions.
22166         (preserve_subexpressions_p): Don't access loop_stack when outside
22167         a function.
22168         (expand_start_bindings): Reflect that block_start_count was renamed to
22169         current_block_start_count.
22170         (expand_fixup): Likewise.
22171         (expand_decl): Don't access block_stack when outside a function.
22172         (expand_decl_cleanup): Likewise.
22173         (expand_dcc_cleanup): Likewise.
22174         (expand_dhc_cleanup): Likewise.
22175         (expand_anon_union_decl): Likewise.
22176         (set_file_and_line_for_stmt): New function.
22177         (in_control_zone_p): New function.
22178
22179         * function.h (struct function): Add new elt stmt.
22180         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
22181         case_stack, nesting_stack, nesting_depth, block_start_count,
22182         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
22183         emit_lineno, goto_fixup_chain.
22184         (save_eh_status, restore_eh_status, save_stmt_status,
22185         restore_stmt_status): Delete declarations.
22186         * function.c (push_function_context_to): Don't call save_stmt_status.
22187         (pop_function_context_to): Don't call restore_stmt_status.
22188         * tree.h (in_control_zone_p): Declare.
22189         * rtl.h (set_file_and_line_for_stmt): Declare.
22190
22191         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
22192         call set_file_and_line_for_stmt.
22193
22194 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
22195
22196         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
22197         Also update copyright.
22198
22199 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22200
22201         * c-pragma.c: Don't include "except.h".
22202         * emit-rtl.c: Likewise.
22203         * stor-layout.c: Likewise.
22204         * tree.c: Likewise.
22205         * varasm.c: Likewise.
22206
22207         * flow.c: Include "function.h".
22208         * tree.h (init_dummy_function_start): Declare new function.
22209
22210         * except.h (struct eh_status): New structure.
22211         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
22212         been included.
22213         (eh_return_stub_label, ehstack, catchstack, ehqueue,
22214         catch_clauses, false_label_stack, caught_return_label_stack,
22215         protect_list, current_function_ehc): Add accessor macros for the
22216         corresponding fields in current_function->eh; delete declarations
22217         for all items that used to be declared here.
22218         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
22219         catch_clauses, false_label_stack, caught_return_label_stack,
22220         protect_list, current_function_ehc): Delete variables.
22221         (init_eh_for_function): Allocate current_function->eh.
22222         (save_eh_status, restore_eh_status): Delete functions.
22223
22224         * function.h (struct function): Add fields next_global and eh.
22225         Delete all exception handling related fields.
22226         * function.c (current_function): New variable.
22227         (all_functions): New variable.
22228         (push_function_context_to): Don't allocate a struct function,
22229         use current_function instead.  Call init_dummy_function_start when
22230         outside a function.  Clear current_function before returning.
22231         (pop_function_context_from): Restore current_function.
22232         Don't free the restored struct function.
22233         (prepare_function_start): New function.
22234         (init_dummy_function_start): New function.
22235         (init_function_start): Break out some code into prepare_function_start
22236         and call it here.
22237
22238         * stmt.c (save_stmt_status): Don't call save_eh_status.
22239         (restore_stmt_status): Don't call restore_eh_status.
22240
22241         * Makefile.in: Update dependencies.
22242
22243 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
22244
22245         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
22246         of depending on a magic constant value.  Update comments.
22247         (hppa_expand_prologue): Similarly.
22248
22249         * pa.md (reload_indi, reload_outdi): Allow any register for the
22250         original reload register.
22251
22252 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
22253
22254         * cccp.c (print_help): Change marcos to macros.
22255
22256 1999-07-30  Richard Henderson  <rth@cygnus.com>
22257
22258         * c-typeck.c (initializer_constant_valid_p): Move ...
22259         * c-common.c (initializer_constant_valid_p): ... here.  Use
22260         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
22261         of label addresses.
22262         * c-common.h (initializer_constant_valid_p): Declare.
22263         * c-tree.h (initializer_constant_valid_p): Remove.
22264
22265 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
22266
22267         * config/i386/sol2-c1.asm: Align the stack.
22268         * config/i386/sol2-gc1.asm: Likewise.
22269
22270 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
22271
22272         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
22273         -Asparclite for sparc86x.
22274         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
22275         sparc86x.
22276         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
22277
22278 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
22279
22280         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
22281         the user if using the non-default arch size in BI_ARCH configuration.
22282         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
22283
22284         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
22285         Fix patterns so that they actually match.
22286         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
22287         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
22288         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
22289         TARGET_HARD_MUL32.
22290         (mulsidi3): Reflect this in the expand.
22291         (smulsi3_highpart): Only on TARGET_ARCH32.
22292         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
22293         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
22294         (umulsidi3): Reflect this in the expand.
22295         (umulsi3_highpart): Only on TARGET_ARCH32.
22296         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
22297         don't require g0 to be zero.
22298         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
22299         ({,u}divsi3): New expands.
22300         ({,u}divsi3_sp64): New patterns.
22301         (after lshrdi3_v8plus): Four new patterns to help combiner
22302         optimizing nested mixed mode shifts.
22303
22304         * config/sparc/sparc.c (sparc_override_options): Use deprecated
22305         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
22306         speed things up. Don't use them by default on plain v9 in 64bit
22307         mode, according to what SPAMv9 sais.
22308
22309         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
22310         top 32 bits of %[og][0-7] in signal handlers.
22311         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
22312
22313 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
22314
22315         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
22316         (ashlsi3): Corresponding changes.
22317
22318         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
22319
22320 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
22321
22322         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
22323
22324 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22325
22326         * arm.h (Hint): Delete macro.
22327         Substitute HOST_WIDE_INT for Hint in some prototypes.
22328         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
22329
22330 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
22331
22332         * builtins.c (expand_builtin_setjmp): Use force_operand to
22333         make sure that the buffer address is in a suitable form to be
22334         passed to force_reg.
22335
22336 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
22337
22338         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
22339         them here.
22340
22341 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
22342
22343         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
22344         proper mode in the condition string.
22345         (icacheflush, dcacheflush): Remove modes from match_operands.
22346
22347         * pa.c (emit_move_sequence): Always convert scratch_reg to the
22348         proper mode before using it.
22349
22350         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
22351         pair.
22352
22353         * pa.c (store_reg): Do not call add_high_const generator directly.
22354         (load_reg, set_reg_plus_d): Likewise.
22355         * pa.md (add_high_const): No longer a named pattern.
22356
22357         * pa.c (legitimize_address): Consistently use Pmode rather than
22358         SImode.  Do not call gen_pic2_highpart directly anymore.
22359         * pa.md (pic2_highpart): No longer a named pattern.
22360         (pic2_lo_sum): Similarly.  Reformat to make more readable.
22361
22362         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
22363         needed.
22364
22365         * README: Update.
22366
22367 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22368
22369         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
22370
22371 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
22372
22373         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
22374         and tag the spill mems.
22375         (hppa_va_start): New.
22376         (hppa_va_arg): New.
22377         * pa.h (EXPAND_BUILTIN_VA_START): New.
22378         (EXPAND_BUILTIN_VA_ARG): New.
22379
22380 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
22381
22382         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
22383         and tag the spill mems.
22384         (mn10300_va_start): New.
22385         (mn10300_va_arg): New.
22386         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
22387         (EXPAND_BUILTIN_VA_ARG): New.
22388
22389 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
22390
22391         * mn10200.c (mn10200_va_arg): New.
22392         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
22393
22394 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
22395
22396         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
22397         rather than play with TREE_INT_CST_LOW.
22398
22399 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
22400
22401         * config/arm/telf.h: Include dbxelf.h.
22402         (CPP_PREDEFINES): Only define if not already defined.
22403         (ASM_IDENTIFY_GCC): Likewise.
22404         (SUBTARGET_EXTRA_SECTIONS): Likewise.
22405         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
22406         * config/arm/thumb.h (LINK_SPEC): Only define if not already
22407         defined.
22408         (DBX_DEBUGGING_INFO): Don't define.
22409         * config/arm/linux-telf.h: New file.
22410         * config/arm/linux-tgas.h: New file.
22411         * config/arm/t-thumb-linux: New file.
22412         * config/arm/uclinux-elf.h: New file.
22413         * config/arm/uclinux-telf.h: New file.
22414         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
22415         thumb-*-uclinux): New targets.
22416         * configure: Regenerate.
22417
22418 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
22419
22420         * pa.md (post_store, pre_load): New expanders.
22421         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
22422         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
22423         need to directly generate RTL for them.
22424         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
22425         changes.
22426
22427 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
22428
22429         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
22430         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
22431         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
22432         (secndary_reload_class): Make TARGET_ELF conditional compile.
22433         (print_operand_address): Similar.
22434         (output_toc): Print all values as hex.
22435         (get_issue_rate): Rearrange and add RS64A and PPC630.
22436         * rs6000.h (processor_type): Add RS64A and PPC630.
22437         (PROCESSOR_POWERPC64): New.
22438         (PROMOTE_MODE): Use word_mode.
22439         (RTX_COSTS): Add RS64A and PPC630.
22440         * rs6000.md (scheduling information): Add lmul and ldiv
22441         representing 64-bit integer multiply and divide.  Add rs64a and
22442         PPC630 information.
22443         (ashldi3): Add support for "rldic" instruction.
22444         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
22445
22446 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
22447
22448         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
22449         instead of V8 for sparclite86x in cpu_table.
22450
22451 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22452
22453         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
22454         output_file_directive.
22455
22456 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
22457
22458         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
22459         tree for op1, not the rtl.
22460
22461 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
22462
22463         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
22464         to m88k_va_start, leaving only the register spill.
22465         (m88k_build_va_list): New.
22466         (m88k_va_start): New.
22467         (m88k_va_arg): New.
22468         * m88k.h (BUILD_VA_LIST_TYPE): New.
22469         (EXPAND_BUILTIN_VA_START): New.
22470         (EXPAND_BUILTIN_VA_ARG): New.
22471
22472 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
22473
22474         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
22475         Rename from expand_builtin_saveregs.
22476         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
22477
22478 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
22479
22480         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
22481         for the register spill block.
22482         (i960_build_va_list): New.
22483         (i960_va_start): New.
22484         (i960_va_arg): New.
22485         * i960.h (BUILD_VA_LIST_TYPE): New.
22486         (EXPAND_BUILTIN_VA_START): New.
22487         (EXPAND_BUILTIN_VA_ARG): New.
22488         * i960.md (store_multiple): Use change_address on individul mems.
22489
22490 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
22491
22492         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
22493         an ARRAY_TYPE.
22494         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
22495         (expand_builtin_va_end): Evaluate arg for side effects.
22496         * c-common.c (c_common_nodes_and_builtins): Construct a
22497         va_list_arg_type_node to handle array decomposition to pointer.
22498
22499 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
22500
22501         * except.c (st_dynamic_cleanup): Use force_operand on the
22502         buffer's address.
22503
22504 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
22505
22506         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
22507         * c4x.c (c4x_va_arg): New.
22508
22509 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
22510
22511         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
22512         has manual_pop set.
22513
22514 1999-07-26  Nathan Sidwell  <nathan@acm.org>
22515
22516         * eh-common.h (__eh_matcher): Prototype correctly.
22517
22518 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
22519
22520         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
22521         (TARGET_SINGLE_PIC_BASE): Likewise.
22522         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
22523         definitions.
22524         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
22525         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
22526         (TARGET_OPTIONS): Add -mpic-register=N.
22527         (OUTPUT_INT_ADDR_CONST): New macro.
22528         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
22529         LEGITIMATE_PIC_OPERAND_P): Likewise.
22530         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
22531         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
22532         output_addr_const directly.
22533         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
22534         ARM port.
22535         (thumb_pic_register, thumb_pic_register_string): Declare.
22536
22537         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
22538         from arm.c.
22539         (label_mentioned_p): New function: Imported from arm.c.
22540         (legitimize_pic_address): New function: Imported from arm.c.
22541         (is_pic):New function: Imported from arm.c.
22542         (thumb_finalize_pic):New function: Imported from arm.c.
22543         (add_constant): Cope with PIC constants.
22544         (fixit): Cope with PIC constants.
22545         (output_return): Do not treat the PIC register as live if
22546         TARGET_SINGLE_PIC_BASE is true.
22547         (thumb_function_prologue): Do not treat the PIC register as live if
22548         TARGET_SINGLE_PIC_BASE is true.
22549         (thumb_expand_prologue): Do not treat the PIC register as live if
22550         TARGET_SINGLE_PIC_BASE is true.
22551         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
22552         TARGET_SINGLE_PIC_BASE is true.
22553         (thumb_print_operand): Accept '|'.
22554         (thumb_override_options): Process PIC options.
22555
22556         * config/arm/thumb.md (movsi): Support PIC.
22557         (call_insn): Change "i" constraint to "X".
22558         (call_value_insn): Likewise.
22559         (consttable_4, consttable_8, consttable_end): Set and clear
22560         "making_const_table" as appropriate.
22561         (pic_load_addr, pic_add_dot_plus_four): New insns.
22562
22563         * invoke.texi (Thumb Options): Fix spelling.  Document new
22564         options -msingle-pic-base and -mpic-register=.
22565
22566 1999-07-26  Andrew Haley  <aph@cygnus.com>
22567
22568         * config/m32r/initfini.c (__init): Use a full word immediate for
22569         __fini: this allows it to be placed in any memory region.
22570
22571         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
22572         -mmodel=medium.  This is OK for all memory models.
22573
22574 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
22575
22576         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
22577         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
22578
22579 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
22580
22581         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
22582         defined.
22583
22584         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
22585
22586 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
22587
22588         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
22589         (BUILD_VA_LIST_TYPE): New.
22590         (EXPAND_BUILTIN_VA_START): New.
22591         (EXPAND_BUILTIN_VA_ARG): New.
22592         * i860.c (output_delayed_branch): Disable.
22593         (output_delay_insn): Likewise.
22594         (i860_saveregs): New.
22595         (i860_build_va_list): New.
22596         (i860_va_start): New.
22597         (i860_va_arg): New.
22598         * i860.md: Disable all peepholes using output_delayed_branch.
22599         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
22600
22601 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
22602
22603         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
22604         (BUILD_VA_LIST_TYPE): New.
22605         (EXPAND_BUILTIN_VA_START): New.
22606         (EXPAND_BUILTIN_VA_ARG): New.
22607         * clipper.c (clipper_builtin_saveregs): Only dump registers.
22608         Return the address of the save area.
22609         (clipper_build_va_list): New.
22610         (clipper_va_start): New.
22611         (clipper_va_arg): New.
22612
22613 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
22614
22615         * arc.h (EXPAND_BUILTIN_VA_START): New.
22616         (EXPAND_BUILTIN_VA_ARG): New.
22617         * arc.c (arc_setup_incoming_varargs): Set alias set of
22618         varargs save area.
22619         (arc_va_start): New.
22620         (arc_va_arg): New.
22621
22622 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
22623
22624         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
22625         (BUILD_VA_LIST_TYPE): New.
22626         (EXPAND_BUILTIN_VA_START): New.
22627         (EXPAND_BUILTIN_VA_ARG): New.
22628         * alpha.c (alpha_builtin_saveregs): Delete.
22629         (alpha_build_va_list): New.
22630         (alpha_va_start): New.
22631         (alpha_va_arg): New.
22632
22633 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
22634
22635         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
22636         column zero.
22637         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
22638         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
22639
22640         * gcc.texi: More changes related to list conversion.
22641         * invoke.texi: Likewise.
22642
22643 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
22644
22645         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
22646         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
22647         (expand_builtin_next_arg): Accept ARGLIST not EXP.
22648         (stabilize_va_list): New function.
22649         (std_expand_builtin_va_start): New function.
22650         (expand_builtin_va_start): New function.
22651         (get_varargs_alias_set): New function.
22652         (std_expand_builtin_va_arg): New function.
22653         (expand_builtin_va_arg): New function.
22654         (expand_builtin_va_end): New function.
22655         (expand_builtin_va_copy): New function.
22656         (expand_builtin): Call them.
22657         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
22658         __builtin_{varargs_start,stdarg_start,end,copy}.
22659         (build_va_arg): New function.
22660         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
22661         (build_va_arg): Declare.
22662         * c-decl.c (ptr_type_node, va_list_type_node): New.
22663         * c-parse.gperf (__builtin_va_arg): New.
22664         * c-parse.in (VA_ARG): New token.
22665         (unary_expr): Recognize it.
22666         * expr.c (expand_expr): Expand VA_ARG_EXPR.
22667         * expr.h (std_expand_builtin_va_start): Declare.
22668         (std_expand_builtin_va_arg): Declare.
22669         (expand_builtin_va_arg): Declare.
22670         (get_varargs_alias_set): Declare.
22671         * tree.def (VA_ARG_EXPR): New.
22672         * tree.h (BUILT_IN_VARARGS_START): New.
22673         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
22674         (ptr_type_node, va_list_type_node): Declare.
22675         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
22676         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
22677         * m88k.h, m88k.c: Likewise.
22678         * mn10300.h, mn10300.c: Likewise.
22679         * pa.h, pa.c: Likewise.
22680         * rs6000.h, rs6000.c: Likewise.
22681         * sh.h, sh.c: Likewise.
22682         * sparc.h, sparc.c: Likewise.
22683
22684         * emit-rtl.c (operand_subword): Copy alias set.
22685         (change_address): Likewise.
22686
22687 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
22688
22689         * pa.c (compute_frame_size): Scan all the used callee saved registers,
22690         not just the first one.
22691
22692 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
22693
22694         * config/arm/arm.h (TARGET_SWITCHES): Add
22695         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
22696         (TARGET_OPTIONS): Add -mpic-register=.
22697         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
22698         (arm_pic_register_string): Declare.
22699         (NEED_PLT_GOT): Delete, replace with ...
22700         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
22701         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
22702         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
22703         * config/arm/arm.c (arm_override_options): Add new option
22704         -mpic-register=N.
22705         (arm_pic_register_string): New variable.
22706         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
22707         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
22708         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
22709         (output_return_instruction): Likewise.
22710         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
22711         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
22712         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
22713
22714         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
22715         mention of -msched-prolog.  Document new options -msingle-pic-base
22716         and -mpic-register=.
22717
22718 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
22719
22720         * haifa-sched.c (reemit_notes): Tidy.
22721         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
22722         haifa's routine.
22723
22724 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
22725
22726         * explow.c (trunc_int_for_mode): New function.
22727         (plus_constant_wide): Use it.
22728         * combine.c (simplify_and_const_int): Likewise.
22729         (merge_outer_ops): Likewise.
22730         (simplify_shift_const): Likewise.
22731         * cse.c (simplify_unary_operation): Likewise.
22732         (simplify_binary_operation): Likewise.
22733         * emit-rtl.c (operand_subword): Likewise.
22734         * rtl.h: Declare it.
22735
22736 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22737
22738         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
22739         (use NUM_REGS instead of NUM_INTS).
22740
22741 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22742
22743         * builtins.c: New file.
22744         * expr.c (saveregs_value, apply_args_value):  Delete definition,
22745         moved into builtins.c.
22746         (string_constant): No longer static.
22747         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
22748         apply_args_size, apply_result_size, result_vector,
22749         expand_builtin_apply_args, expand_builtin_apply,
22750         expand_builtin_return): Delete functions, moved into builtins.c.
22751         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
22752         * expr.h (saveregs_value, apply_args_value): Declare variables.
22753         (expand_builtin, string_constant): Declare functions.
22754         * Makefile.in: Update to build builtin.o.
22755
22756 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
22757
22758         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
22759         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
22760         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
22761         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
22762         false.
22763         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
22764         Define to zero.
22765
22766 1999-07-21  Michael Meissner  <meissner@cygnus.com>
22767
22768         * print-rtl.c (print_rtx): Print the names of the virtual
22769         registers.
22770
22771 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
22772
22773         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
22774         introduced in previous delta.
22775
22776 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22777
22778         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
22779         to avoid name clash.
22780
22781 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
22782
22783         * c-lex.c (yylex) : Correct the test for overflow when lexing
22784         integer literals.
22785
22786 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
22787
22788         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
22789         (adjust_priority): Always call ADJUST_PRIORITY.
22790         (schedule_insn): Only put insns into the ready at cost 0.
22791         (schedule_block): Remove redundant initial sort.  Give clock_var
22792         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
22793         is not 0.
22794         * tm.texi (MD_SCHED_REORDER): Update docs.
22795
22796         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
22797         * sparc.c (ultra_reorder_called_this_block): Delete.
22798         (ultrasparc_sched_init): Don't set it.
22799         (ultrasparc_sched_reorder): Don't check it.
22800
22801 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
22802
22803         * rs6000.h (struct rs6000_args): Add sysv_gregno.
22804         * rs6000.c (init_cumulative_args): Init sysv_gregno.
22805         (function_arg_boundary): Align DFmode.
22806         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
22807         to get fp reg and stack overflow correct.
22808         (function_arg): Likewise.
22809         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
22810         (setup_incoming_varargs): Restructure for ABI_V4; use
22811         function_arg_advance to skip final named argument.
22812         (expand_builtin_saveregs): Properly unskip the last integer arg
22813         when doing varargs.  Adjust overflow location calculation.
22814
22815         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
22816         explicitly unsigned.
22817         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
22818         (__VA_GP_REGSAVE): Similarly.
22819         (__va_longlong_p): Delete.
22820         (__va_arg_type_violation): New declaration.
22821         (va_arg): Restructure.  Flag promotion errors.  Align double.
22822         TFmode passed by reference.
22823
22824         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
22825         in the HOST_BITS_PER_WIDE_INT > 32 case.
22826
22827 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
22828
22829         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
22830
22831 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
22832
22833         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
22834         * toplev.c (documented_lang_options): Add -fpreprocessed.
22835         * cpplib.h (struct cpp_buffer): Add preprocessed.
22836         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
22837         (cpp_start_read): Don't expand macros or emit an initial #line
22838         directive if -fpreprocessed.
22839
22840 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
22841
22842         * cpplib.h (struct cpp_buffer): Added manual_pop for
22843         better C++ tokenization.
22844         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
22845         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
22846         * c-common.c (cpp_token): Make non-static.
22847
22848 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22849
22850         * c-common.h: New file.
22851         * c-common.c (permanent_obstack): Delete unused declaration.
22852         (c_global_trees): New array.
22853         (c_common_nodes_and_builtins): New function; split off common code
22854         from init_decl_processing in both c-decl.c and cp/decl.c.
22855         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
22856         c_global_trees and accessor macros defined in c-common.h.
22857         Include c-common.h.
22858         * c-decl.c: Delete definitions for tree nodes that were replaced by
22859         c_global_trees.
22860         (init_decl_processing): Build void_list_node.
22861         Call c_common_nodes_and_builtins; delete code to generate the common
22862         builtins here.
22863         * objc/objc-act.c (build_module_descriptor): Rename variable
22864         void_list_node to avoid clash with c-common.h.
22865
22866         * Makefile.in: Update dependencies.
22867         * objc/Make-lang.in: Likewise.
22868
22869 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
22870
22871         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
22872         (UNIQUE_SECTION_P): Likewise.
22873         (UNIQUE_SECTION): Likewise.
22874
22875 1999-07-19  Linas Vepstas  <linas@linas.org>
22876
22877         * config/i370/README: New file.
22878         * config/i370/linux.h: New file.
22879         * config/i370/mvs.h: New file.
22880         * config/i370/oe.h: New file.
22881         * config/i370/t-linux: New file.
22882         * config/i370/t-mvs: New file.
22883         * config/i370/t-oe: New file.
22884         * config/i370/x-oe: New file.
22885         * config/i370/xm-linux.h: New file.
22886         * config/i370/xm-mvs.h: New file.
22887         * config/i370/xm-oe.h: New file.
22888
22889         * i370.c (label_node_t): Add first_ref_page, label_addr,
22890         label_first_ref, label_last_ref members.
22891         (mvs_need_base_reload): Renamed from mvs_label_emitted.
22892         (MAX_MVS_LABEL_SIZE): Define.
22893         (MAX_LONG_LABEL_SIZE): Define.
22894         (alias_node_t, alias_anchor, alias_number): New.
22895         (mvs_function_table): Reorder for EBCDIC.
22896         (ascebc, ebcasc): Unconditionally define.
22897         (i370_branch_dest, i370_branch_length): New functions.
22898         (i370_short_branch, i370_label_scan): New functions.
22899         (mvs_get_label): Renamed from mvs_add_label.  Search for
22900         an existing label before creating a new one.
22901         (mvs_add_label): New function.
22902         (mvs_get_label_page): New function.
22903         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
22904         over the entire list.
22905         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
22906         (mvs_check_page) [TARGET_ELF_ABI]: New function.
22907         (mvs_add_alias, mvs_need_alias): New functions.
22908         (mvs_get_alias, mvs_check_alias): New functions.
22909         (handle_pragma): New function.
22910         (mvs_function_check): New function.
22911         (unsigned_jump_follows_p): Search harder.
22912         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
22913         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
22914         * i370.h (TARGET_VERSION): Delete.
22915         (CPP_SPEC, CPP_PREDEFINES): Delete.
22916         (mvs_label_emitted): Delete.
22917         (TARGET_EBCDIC): Delete.
22918         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
22919         (HANDLE_PRAGMA): Define.
22920         (HARD_REGNO_NREGS): Handle complex modes.
22921         (HARD_REGNO_MODE_OK): Likewise.
22922         (CLASS_MAX_NREGS): Likewise.
22923         (RET_REG): Likewise.
22924         (EXTRA_CONSTRAINT): Define.
22925         (RETURN_IN_MEMORY): True for DImode.
22926         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
22927         (FUNCTION_PROFILER): Delete.
22928         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
22929         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
22930         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
22931         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
22932         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
22933         (ASM_FILE_START): Add "RMODE ANY".
22934         (ASM_OUTPUT_EXTERNAL): Check for aliases.
22935         (ASM_GLOBALIZE_LABEL): Likewise.
22936         (ASM_OUTPUT_LABELREF): Likewise.
22937         (ASM_OUTPUT_COMMON): Likewise.
22938         (PRINT_OPERAND): Handle 'K', 'W', default.
22939         (PRINT_OPERAND_ADDRESS): New.
22940         (Lots of defines): Add support for TARGET_ELF_ABI.
22941         * i370.md (attr length): New.  Define for all patterns.
22942         (*): Lots of tweeks to assembly output and constraints.
22943
22944 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
22945
22946         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
22947         Disable patterns performing SImode comparisons with SImode values
22948         if TARGET_POWERPC64 and instruction does not sign-extend or does
22949         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
22950         differ for signed quantities.
22951         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
22952         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
22953         (decrement_and_branch_on_count): Add 64-bit variant.
22954
22955 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22956
22957         * final.c (output_asm_insn): When searching for the matching string
22958         for a given dialect, don't run past the end of the list of
22959         alternatives if there are fewer alternatives in the template than
22960         dialects.
22961
22962 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
22963
22964         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
22965         Removed paragraph about compression of files and size limitation,
22966         duplicated in the FAQ.  Use gcc-patches for posting patches.
22967         * gcc.c (main): Updated URL with bug reporting instructions to
22968         gcc.gnu.org.  Removed e-mail address.
22969         * system.h (abort): Likewise.
22970
22971 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22972
22973         * Makefile.in (stmp-multilib-sub): Make the files extracted
22974         from $(LIBGCC1) writable.
22975
22976 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
22977
22978         * config/arm/aout.h: Reformat for improved readability.
22979
22980         * config/arm/arm.h: Reformat for improved readability.
22981         Replace uses of fprintf with asm_fprintf where appropriate.
22982         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
22983         function declaration assembler actions.
22984         (NUM_INTS): New macro: Convert from bytes to words.
22985         (NUM_REGS): New macro: Compute number of registers required to
22986         hold a quanitity of tyep MODE.
22987         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
22988         types.
22989         (NUM_ARG_REGS): New macro: The number of argument registers
22990         available.
22991         (ARG_REGISTER): New macro: Compute the register number of the Nth
22992         argument register.
22993         (LAST_ARG_REGNUM): New macro: The number of the last argument
22994         register.
22995         (SP_REGNUM): New macro: Register number of the stack pointer.
22996         (FP_REGNUM): New macro: Register number of the frame pointer.
22997         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
22998         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
22999         CUMULATIVE_ARGS so that it counts registers not bytes.
23000
23001         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
23002         TARGET_INTERWORK.
23003         Replace uses of fprintf with asm_fprintf where appropriate.
23004         (output_ascii_pseudo_op): Replace with version from thumb.c
23005
23006         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
23007
23008         * config/arm/elf.h (CPP_PREDEFINES): Replace with
23009         SUBTARGET_CPP_SPEC.
23010         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
23011         (ASM_FILE_START): Emit ASM_APP_OFF.
23012
23013 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
23014
23015         * pa.c (compute_frame_size): Round frame according to
23016         STACK_BOUNDARY rather than a hardwired value.
23017
23018         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
23019
23020         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
23021         of "1".
23022         * configure: Rebuilt.
23023
23024         * configure.in (hppa*-*-linux*): New configuration.
23025         * configure: Rebuilt.
23026         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
23027         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
23028         * pa/pa-linux.h: New file.
23029         * pa/t-linux: New file.
23030         * pa/xm-linux.h: New file.
23031
23032         * pa.c (hppa_legitimize_address): Change references from SImode to
23033         either Pmode or word_mode as appropriate.
23034         (emit_move_sequence, store_reg, load_reg): Likewise.
23035         (set_reg_plus_d, hppa_expand_prologue): Likewise.
23036         (output_mul_insn): Likewise.
23037         * pa.h (PROMOTE_MODE): Likewise.
23038         (INITIALZE_TRAMPOLINE): Likewise.
23039         (Pmode): Define to word_mode.
23040
23041         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
23042         value of 4.  Allocate 8 bytes for each FP register save.
23043         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
23044         value of 4.
23045         (hppa_expand_prologue): Likewise.
23046         * pa.h (PROMOTE_MODE): Likewise.
23047         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
23048         (FUNCTION_ARG_BOUNDARY): Likewise.
23049
23050         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
23051
23052         * pa.c (out_of_line_prologue_epilogue): Delete.
23053         (override_options): Remove -mspace related code.
23054         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
23055         (compute_frame_size): Only allocate space for register that
23056         actually need to be saved.
23057         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
23058         (TARGET_SWITCHES): Remove -mspace, -mno-space
23059         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
23060         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
23061         * pa/ee.asm, pa/ee_fp.asm: Delete.
23062
23063         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
23064
23065         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
23066         directive in column zero.
23067
23068 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
23069
23070         * m68k.c (output_function_prologue): Fix computation of save mask
23071         when generating PIC code.
23072
23073 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
23074
23075         * tree.c (build_type_attribute_variant): Move current_obstack restore
23076         after build_qualified_type call.
23077
23078 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
23079
23080         * configure.in: Use t-iris6, even with GNU LD.
23081         * config/mips/iris6gld.h: Fix typo in linker spec.
23082         * config/mips/t-iris6gld: Remove.
23083
23084 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
23085
23086         * rs6000.md (insv, extzv): Remove SImode dependence in named
23087         patterns.  Explicitly generate DImode RTL if PowerPC64 and
23088         operand is DImode.
23089         (insvdi): Reverse start and size in instruction template.
23090
23091 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
23092
23093         * invoke.texi: Typo fixes.
23094
23095 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
23096
23097         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
23098         handle at this time instead of silently generating incorrect code.
23099         (gen_imagpart): Likewise.
23100
23101         * reload.c (find_reloads): Emit a USE for a pseudo register without
23102         a hard register if we could not create an optional reload for the
23103         pseudo.
23104
23105 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23106
23107         * c-typeck.c (output_init_element, process_init_element):
23108         When advancing constructor_unfilled_fields for a RECORD_TYPE,
23109         check for nameless bit fields.
23110
23111 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
23112
23113         * regclass.c (scan_one_insn): Notice subregs that change the
23114         size of their operand.
23115         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
23116
23117 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
23118
23119         * configure.in (alpha*-*-*): Include alpha/t-ieee.
23120         * configure: Rebuilt.
23121         * alpha/t-ieee: New file.
23122
23123 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
23124
23125         * rs6000.c (find_addr_reg): Do not select r0 as an address
23126         register.
23127
23128 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
23129
23130         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
23131
23132 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
23133
23134         * rs6000.md (movsf): Do not force easy FP constants into memory.
23135
23136         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
23137         immed_double_const to ensure they are properly truncated then
23138         sign extended.
23139
23140 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
23141
23142         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
23143         always unless NO_DEBUG is used.  Compile this code
23144         unconditionally.
23145         (replace_symbols_in_block): Compile it unconditionally.
23146
23147 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
23148
23149         * configure.in (i?86-*-elf*): New target.
23150         * configure: Rebuilt.
23151         * i386/i386elf.h, i386/t-i386elf: New files.
23152
23153 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
23154
23155         * toplev.c (main): Don't complain about saying -gdwarf.
23156         (rest_of_compilation): Remove redundant code.
23157
23158 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
23159
23160         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
23161
23162 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
23163
23164         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
23165         "Li960R:", to avoid name clash.
23166
23167 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23168
23169         * loop.c (check_dbra_loop): When reversing a loop, delete all
23170         REG_EQUAL notes referencing the reversed biv except those which are
23171         for a giv based on it.
23172
23173 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
23174
23175         * version.c: Drop "gcc-" prefix from version #.
23176
23177 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
23178
23179         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
23180         the label if we're being verbose.
23181
23182 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
23183
23184         * m68k.c (output_function_prologue): Add pic register to mask
23185         if live and flag_pic.
23186         (output_function_epilogue): Likewise.
23187
23188 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
23189
23190         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
23191         directives in column zero.
23192
23193         * pa/elf.h (ASM_FILE_START): Define.
23194         * pa/som.h (ASM_FILE_START): Include .level directives.
23195         * pa/hpux10.h (ASM_FILE_START): Delete.
23196         * pa/hpux11.h (ASM_FILE_START): Delete.
23197
23198         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
23199
23200 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23201
23202         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
23203         when reload_out equals reload_in.
23204
23205 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
23206
23207         * invoke.texi (Spec Files): New node: Describe the contents of
23208         spec files.
23209
23210 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
23211
23212         * invoke.texi (DEC Alpha Options): Put @end table at
23213         beginning of line, to avoid confusing texi2html.
23214
23215 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
23216
23217         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
23218         introduced in previous delta.
23219
23220 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23221
23222         * reload1.c (gen_reload): When synthesizing a 3 operand add
23223         sequence, improve test for when to reload OP1 into the reload
23224         register instead of OP0.
23225
23226 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
23227
23228         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
23229
23230 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
23231
23232         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
23233         string literal.
23234
23235 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
23236
23237         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
23238         (va_dcl): Use __builtin_va_alist_t.
23239
23240 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
23241
23242         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
23243         on the permanent_obstack.
23244         * dwarfout.c (output_type): Likewise.
23245
23246 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23247
23248         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
23249         Merged from c-typeck.c and cp/typeck.c.
23250         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
23251         Merged into c-common.
23252
23253 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
23254
23255         * c-lex.c (errorcount): Declare it.
23256         (finish_parse): Update errorcount when using CPPLIB.
23257
23258 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
23259
23260         * fixinc/inclhack.def(end_else_label): Double the backslash so
23261         sed gets a chance to see it.
23262         * fixinc/inclhack.sh: regen
23263         * fixinc/fixincl.x: regen
23264
23265 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
23266
23267         Add framework to support armv5 architecture when it becomes
23268         available:
23269
23270         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
23271         (arm_arch5): New variable.
23272         (all_architectures): Add armv5 line.
23273         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
23274         -march=armv5 is specified on the command line.
23275         (arm_arch5): Export this variable.
23276         * invoke.texi: Document new string accepted by -march= switch for
23277         ARM ports.
23278
23279         * config/arm/arm.h: Replace use of constant 12 as a register
23280         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
23281         * config/arm/arm.c: Replace use of constant 12 as a register
23282         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
23283
23284         * config/arm/elf.h: Tidy up.
23285         * config/arm/coff.h: Tidy up.
23286
23287 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
23288
23289         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
23290         * gcc/config/mips/t-iris6gld: New file.
23291         * gcc/config/mips/iris6gld.h: Likewise.
23292
23293 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23294
23295         * c-decl.c (widest_integer_literal_type_node,
23296         widest_unsigned_literal_type) : New.
23297         (init_decl_processing): Handle/use the two new types.
23298         * c-common.c (type_for_size,type_for_mode) : Same.
23299         * c-lex.c (yylex) : Same.
23300         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
23301         Same.
23302         * c-tree.h (widest_integer_literal_type_node,
23303         widest_unsigned_literal_type) : New.
23304
23305 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
23306
23307         * dwarfout.c (field_byte_offset): Correctly compute the object's
23308         byte offset for the first bit of a field which crosses an alignment
23309         boundary on a !BYTES_BIG_ENDIAN target.
23310
23311 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
23312
23313         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
23314         ntohs.
23315
23316 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
23317                           Jeff Law <law@cygnus.com>
23318
23319         * ginclude/varargs.h (va_dcl): Use word_mode for type of
23320         __builtin_va_list.
23321
23322         * except.c: Include intl.h.
23323         (expand_eh_return): Set current_function_cannot_inline.
23324         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
23325         * function.h (struct function): Add eh_return_stub_label.
23326         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
23327         * Makefile.in (except.o): Depend on intl.h.
23328
23329 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
23330
23331         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
23332         same as offsettable in cases 1 and 2.
23333
23334 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
23335
23336         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
23337         (extlh, extwh): Likewise.
23338
23339 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23340
23341         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
23342
23343 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
23344
23345         * configure.in: Add arm-pe and thumb-pe targets.
23346         * configure: Regenerate.
23347
23348         * thumb.c (arm_naked_function_p): New function: Determines if
23349         a function is naked (has no gcc generated prologue/epilogue).
23350         (is_called_in_ARM_mode): Return true if the func has the
23351         interfacearm attribute.
23352         (output_return): Do not generate a return for naked functions.
23353         (thumb_function_prologue): Do not generate a prologue for
23354         naked functions.
23355         (thumb_expand_prologue): Do not generate a prologue for naked
23356         functions.
23357         (thumb_expand_epilogue): Do not generate an epilogue for naked
23358         functions.
23359         (arm_valid_machine_decl_attribute): New function, copied from
23360         arm.c:  Permit naked and interfacearm attributes.
23361
23362         * config/arm/pe.c: New file: Support code for arm-pe target.
23363         * config/arm/pe.h: New file: Header file for arm-pe target.
23364         * config/arm/tpe.h: New file: Header file for thumb-pe target.
23365         * config/arm/t-thumb-pe: New file: Makefile fragment for
23366         thumb-pe target.
23367
23368 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
23369
23370         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
23371         -fPIC or -fpic is specified.
23372
23373 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
23374
23375         * expr.c (emit_block_move): Use copy_to_mode_reg for
23376         !TARGET_MEM_FUNCTIONS case too.
23377
23378         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
23379         appropriate.
23380         * configure: Rebuilt.
23381         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
23382         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
23383         definitions made redundant by dbxelf.h inclusion.  Delete
23384         lots of definitions related to assembly output that are
23385         specific to the SOM object format.
23386         * pa.c (output_function_prologue): Do not emit the function's
23387         name for OBJ_ELF.
23388         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
23389         * pa-pro.h: Deleted.
23390         * som.h: New file with SOM specific definitions.
23391         * elf.h: New file with ELF specific definitions.
23392
23393         * elfos.h (const_section): Output a tab before assembler directives.
23394         (ctors_section, dtors_section): Likewise.
23395         (ASM_OUTPUT_SECTION_NAME): Likewise.
23396
23397         * pa/pa1.h: Delete unused file.
23398
23399 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
23400
23401         * configure.in (hppa*-hp-hpux11*): New configuration.
23402         * configure: Rebuilt.
23403         * pa/pa-hpux11.h: New file.
23404         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
23405         command line.
23406
23407         * mips.md (leasi, leadi): New patterns.
23408
23409         * expr.c (emit_block_move): Properly handle case where one of the
23410         block move arguments has a queued increment or decrement.
23411         (clear_storage): Similarly.  Fix formatting goof.
23412
23413 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
23414
23415         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
23416         semicolon from the BSD VA_LIST replacement expression.
23417
23418         * fixinc/inclhack.sh: regen
23419         * fixinc/fixincl.x: regen
23420
23421         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
23422         now use the fixincl program.
23423
23424 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
23425
23426         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
23427         case.  Also make the PIC register call_used.
23428
23429         * m68k.h (FINALIZE_PIC): Delete.
23430         * m68k.c (finalize_pic): Delete.
23431
23432 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
23433
23434         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
23435         to memory.
23436
23437 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
23438
23439         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
23440
23441 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
23442
23443         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
23444
23445 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
23446
23447         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
23448
23449 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
23450
23451         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
23452
23453 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
23454
23455         * rs6000.c (output_toc): Always use hex values for floating-point
23456         constants.  Store single-precision values in upper-half of TOC
23457         entry in 64-bit mode.
23458         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
23459         to final constraints.
23460         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
23461         (fctiwz): Improve accuracy of RTL for pattern.
23462
23463 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23464
23465         * expr.c (expand_expr): Allow RTL_EXPR's through the
23466         MAX_INTEGER_COMPUTATION_MODE checks.
23467
23468 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
23469
23470         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
23471         such that MASK_SUPPORT_ARCH is not negative.
23472
23473 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
23474
23475         * loop.c (verify_dominator): Properly handle ADDR_VEC and
23476         ADDR_DIFF_VEC insns that appear inside loops.
23477
23478 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
23479                           Jeff Law <law@cygnus.com>
23480
23481         * rs6000.md (movdf_hardfloat32): Revert previous patch.
23482         Handle LO_SUM the same as offsettable in cases 1 and 2.
23483         * rs6000.c (find_addr_reg): Revert previous patch.
23484
23485 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
23486
23487         * system.h (strstr): New external function declaration.
23488         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
23489         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
23490         * config.in, configure: Rebuilt.
23491
23492 1999-06-24  Tom Tromey  <tromey@cygnus.com>
23493
23494         * gcc.c (main): Read user-specified specs files after computing
23495         additional startfile_prefixes.
23496
23497 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
23498
23499         Revert these two patches:
23500
23501         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23502         * loop.c (strength_reduce): When doing biv->giv conversion, update
23503         reg note of NEXT->insn.
23504
23505         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23506         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
23507         reg_biv_class.
23508         (recombine_givs): Set ix field after sorting.
23509
23510 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23511
23512         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
23513         for the parts of an UNSPEC / UNSPEC_VOLATILE.
23514
23515 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
23516
23517         *fixinc/inclhack.def:  Add fix development commentary
23518         (read_ret_type): reactivate and add selection clause
23519         (zzz_*): tweak output file name to match what is used in hackshell.tpl
23520         *fixinc/{fixincl.x|inclhack.sh}: regen
23521
23522 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
23523
23524         * expr.c (expand_expr): STRIP_NOPS before checking against
23525         MAX_INTEGER_COMPUTATION_MODE
23526         (check_max_integer_computation_mode): Likewise.
23527
23528 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
23529
23530         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
23531
23532 1999-06-22  Jim Wilson  <wilson@cygnus.com>
23533
23534         * expr.c (store_expr): When target is a promoted subreg, return a
23535         promoted subreg as a result.
23536
23537 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
23538
23539         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
23540         coding standards.
23541         (dwarf2out_define): Mark unused parameters appropriately.
23542         (gen_unspecified_parameters_die): Ditto.
23543         (gen_subprogram_die): Fix signed/unsigned warnings.
23544         (gen_variable_die): Ditto.
23545
23546 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
23547
23548         * fixinc/inclhack.def(end_else_label): combined else_label
23549         and endif_label and fixed the sed expression.
23550         *fixinc/{fixincl.x|inclhack.sh}: regen
23551
23552 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
23553
23554         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
23555         'x' when handling non-offsettable addresses
23556
23557 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
23558
23559         * final.c (shorten_branches): Don't try to split an insn that has
23560         been deleted.
23561
23562 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
23563
23564         * config/mips/mips.c (symbolic_expression_p): New function.
23565         (mips_select_rtx_section): Put symbolic expressions in the
23566         data section, not the read-only data section.
23567
23568 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
23569
23570         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
23571
23572 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
23573
23574         * collect2.c (main): Log frame table count.
23575         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
23576         (scan_prog_file) [COFF]: Handle frame tables.
23577
23578         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
23579         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
23580         * alpha/elf.h: Undef them again.
23581         * alpha/vms.h: Remove their definitions.
23582
23583 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23584
23585         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
23586         remove the clobber of r0 and change the REG_UNUSED note to
23587         REG_INC.
23588
23589 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
23590
23591         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
23592         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
23593         fits in HOST_WIDE_INT and one uses union to access a long constant
23594         as double.
23595
23596 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
23597
23598         * sparc.c (sparc_override_options): Don't allow profiling for
23599         code models other than medlow.
23600         (sparc_function_profiler): New function from old FUNCTION_PROFILER
23601         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
23602         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
23603         (sparc_block_profiler): Likewise.
23604         (sparc_function_block_profiler_exit): Likewise.
23605         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
23606         (FUNCTION_BLOCK_PROFILER): Likewise.
23607         (BLOCK_PROFILER): Likewise.
23608         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
23609         (MCOUNT_FUNCTION): New.
23610         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
23611         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
23612         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
23613         (MCOUNT_FUNCTION): New.
23614         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
23615         (BLOCK_PROFILER): Delete.
23616         (MCOUNT_FUNCTION): New.
23617
23618 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
23619
23620         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
23621
23622 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
23623
23624         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
23625         Add the macros.
23626
23627         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
23628         Ditto.
23629
23630         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
23631         Ditto.
23632
23633         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
23634         Ditto.
23635
23636 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
23637
23638         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
23639         types.
23640
23641 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
23642
23643         * i386/djgpp.h (LIB_SPEC): New.
23644         (STARTFILE_SPEC): New.
23645
23646         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
23647
23648 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
23649
23650         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
23651         compiler flags.
23652
23653         * system.h (WSTOPSIG): New macro.
23654
23655 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
23656
23657         * c-pragma.c (push_alignment): Don't ignore alignments greater than
23658         4 bytes.
23659         (insert_pack_attributes): Take into account member natural
23660         alignment.
23661
23662         * i386/winnt.c (exports_head): New static variable.
23663         (i386_pe_record_exported_symbol): New function.
23664         (i386_pe_asm_file_end): Use.
23665         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
23666         symbols to be emitted at end of assembly.
23667         (ASM_DECLARE_OBJECT_NAME): Likewise.
23668         (ASM_DECLARE_FUNCTION_NAME): Likewise.
23669
23670         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
23671         -iwithprefix.
23672
23673 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
23674
23675         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
23676         in last change.
23677
23678 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
23679
23680         * haifa-sched.c (sched_analyze_1): Use free_list instead of
23681         zapping reg_last_uses directly.
23682         (sched_analyze_2, sched_analyze_insn): Likewise.
23683         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
23684
23685 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
23686
23687         * rs6000.md (movdf_hardfloat32): Use worst case insn length
23688         attributes for cases 1 and 2.
23689
23690 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
23691
23692         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
23693         instead of set.
23694
23695 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
23696
23697         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
23698
23699 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
23700
23701         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
23702         PIC_OFFSET_TABLE_REGNUM for general alloaction.
23703         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
23704         must be stacked if it is used for PIC accesses.
23705         * arm.c (use_return_insn): Handle PIC register specially.
23706         (output_return_instruction): Likewise.
23707         (output_func_{prologue,epilogue}): Likewise.
23708         (output_expand_prologue): Likewise.
23709
23710         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
23711         (*strsi_predec): Renamed from *strqi_predec.
23712         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
23713         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
23714
23715         * arm.c (arm_override_options): Remove warning about PIC code
23716         not being supported.
23717
23718 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
23719
23720         * rs6000.c (find_addr_reg): New function.
23721         * rs6000.h (find_addr_reg): Declare.
23722         (offsettable_addr_operand): Delete.
23723         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
23724         from and stores to GPRs.
23725
23726 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
23727
23728         * alpha.c (alpha_expand_block_move): Use get_insns rather than
23729         gen_sequence as argument to emit_no_conflict_block.
23730
23731 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
23732
23733         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
23734         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
23735         *fixinc/fixincl.x: regen
23736         *fixinc/inclhack.sh: regen
23737
23738 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
23739
23740         * added support for -mpcrel (PC relative addressing for m68k)
23741         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
23742         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
23743         * m68k.c (print_operand_address): Handle 32-bit PIC case.
23744         (comments for general_src_operand): Add some explanation
23745         about EXTRA_CONSTRAINTS.
23746         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
23747         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
23748         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
23749         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
23750         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
23751         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
23752         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
23753         if not already set.
23754         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
23755         * m68k.h (TARGET_PCREL): New target flag.
23756         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
23757         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
23758         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
23759         contains a SYMBOL_REF.  Relax this constraint during reload, since
23760         we want to use the predicates, not reload's built-in concept of a
23761         valid memory address, to control what insns need reloading.
23762         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
23763         operands (essentially 'g', 'm', and 's' under normal circumstances).
23764         * m68k.c (print_operand): Cause printing of pc-relative addresses
23765         to include pc register.
23766         (print_operand_address): Ditto.
23767         (general_src_operand): Accept operands that are not only
23768         general_operands, but are also valid when used as a pc-relative
23769         source.
23770         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
23771         (memory_src_operand): Similar, for memory_operands.
23772         (pcrel_address): New predicate to accept the special case of a
23773         pc-relative address.
23774         * m68k.md (many patterns): Rewrite common SImode, HImode, and
23775         QImode insns to accept *_src_operand instead of *_operand where
23776         pc-relative operands can fit.  For example, a pc-relative operand
23777         can be used as a memory source operand for addsi3, but not as a
23778         memory destination.
23779         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
23780
23781 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
23782
23783         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
23784         .thumb_set pseudo op to mark aliases of thumb functions.
23785
23786 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
23787
23788         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
23789         preference to ASM_OUTPUT_DEF, if it is defined.
23790
23791         * tm.texi: Document new, optional target macro
23792         ASM_OUTPUT_DEF_FROM_DECLS.
23793
23794 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
23795
23796         * fixincludes: ISCNTL patch
23797         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
23798         (dgux_int_varargs): new for DG/UX
23799         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
23800
23801 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
23802
23803         * invoke.texi (ia32 options): Fix typo.
23804
23805 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23806
23807         * loop.c (strength_reduce): When doing biv->giv conversion, update
23808         reg note of NEXT->insn.
23809
23810 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
23811
23812         * loop.c (move_movables): Note issues with replacing REGs with
23813         SUBREGs.
23814         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
23815
23816 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
23817
23818         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
23819
23820         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
23821         the reference to `mcount' was not correct for the ELF on FreeBSD.
23822
23823 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23824
23825         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
23826         reg_biv_class.
23827
23828         (recombine_givs): Set ix field after sorting.
23829
23830 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
23831
23832         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
23833         to safe to extract a subword out of a REG.
23834
23835 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23836
23837         * sh.md (mulsi3): Don't add a no-op move at the end.
23838
23839 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23840
23841         * cse.c (cse_insn): Don't put hard register source into tables for
23842         the last insn of a libcall.
23843
23844 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23845
23846         * loop.c (strength_reduce): Insert sets of derived givs at every
23847         biv increment, even if it's the only one.
23848
23849 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
23850
23851         * dwarfout.c (add_incomplete_type): New fn.
23852         (output_type): Call it.
23853         (retry_incomplete_types): New fn.
23854         (dwarfout_finish): Call it.
23855
23856         From Eric Raskin <ehr@listworks.com>:
23857         (output_type): Output types for bases.
23858
23859 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
23860
23861         * mips.c (mips_output_conditional_branch): Add `break'
23862         between `default' label and `close braces'.
23863
23864 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
23865
23866         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
23867         specifications and make it realistic.
23868         (LIB_SPEC): Likewise.
23869
23870 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
23871
23872         * config/mips/mips.c (mips_secondary_reload_class): Check for
23873         (PLUS (SP) (REG)) and return appropriate register class.
23874         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
23875         Handle (PLUS (SP) (REG)).
23876         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
23877         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
23878         of emit_insn for tablejump.
23879
23880 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
23881
23882         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
23883         asm_fprintf format string by itself.
23884         (output_function_profiler): Likewise.
23885
23886 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
23887
23888         * combine.c (simplify_logical, case AND): Only call
23889         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
23890         or the constant is positive.
23891
23892 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
23893
23894         * configure.in: Fix typo in rs6000-ibm-aix4 case.
23895         * configure: Regenerate.
23896
23897 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
23898
23899         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
23900         require a sub-version #.
23901         * configure: Rebuilt.
23902
23903 1999-06-14  Robert Lipe  (robertlipe@usa.net)
23904
23905         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
23906
23907 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
23908
23909         * c-typeck.c (process_init_element): Detect excess elements in
23910         char array initializer.
23911
23912 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
23913
23914         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
23915
23916 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
23917
23918         * invoke.texi (Option Summary): Add -fpermissive flag.
23919
23920 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
23921
23922         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
23923         that require PIC code sequences.
23924
23925 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
23926
23927         * configure.in: Add new target: thumb-elf.
23928         * configure: Regenerate.
23929         * config/arm/t-thumb-elf: New file: Makefile fragment for
23930         thumb-elf build.
23931         * config/arm/telf.h: New file: Header file for thumb-elf
23932         build.
23933
23934 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
23935
23936         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
23937         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
23938         initializers is some circumstances.
23939
23940         * fixinc/inclhack.def (endif_label): Add additional selector for
23941         more bogus stuff after #endif statements.
23942         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
23943
23944 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
23945
23946         * i386/cygwin.h (SET_ASM_OP): Define.
23947
23948 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
23949
23950         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
23951
23952 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23953
23954         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
23955         latter.
23956
23957         * sh.md (ic_invalidate_line_i): Remove second alternative.
23958
23959 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
23960
23961         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
23962         test for the presence of valid prototypes.  Delete bypass expr.
23963         (ioctl_fix_ctrl): Correct the selection expression.
23964         (no_double_slash): Correct quoting rules
23965         *fixinc/fixincl.x: regen
23966         *fixinc/inclhack.sh: regen
23967
23968 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
23969
23970         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
23971
23972 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23973
23974         * rs6000.md (movsi_got_internal_mem): Delete.
23975         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
23976         (GOT_TOC_REGNUM): Delete.
23977         (PIC_OFFSET_TABLE_REGNUM): Define.
23978         (FINALIZE_PIC): Disable.
23979         * rs6000.c (rs6000_got_register): New code for fixed pic register.
23980         (rs6000_replace_regno): Delete.
23981         (rs6000_finalize_pic): Likewise.
23982         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
23983
23984 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23985
23986         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
23987         is a note; use <= for the compare; advance P while it is
23988         a NOTE.
23989
23990 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
23991
23992         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
23993         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
23994
23995         * varasm.c (remove_from_pending_weak_list): Verify t->name
23996         is non-NULL before passing it to strcmp.
23997
23998 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
23999
24000         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
24001         the typed arguments are not part of a comment
24002         (ioctl_fix_ctrl): Added a purpose comment
24003         *fixinc/fixincl.x: regenerate
24004         *fixinc/inclhack.sh: regenerate
24005
24006 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24007
24008         * invoke.texi: Add C4x invocation docs.
24009
24010 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24011
24012         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
24013         Define new macros.
24014         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
24015         TARGET_EXPOSE_LDP.
24016         (c4x_legitimize_reload_address): New function.
24017         * config/c4x/c4x.md: Update docs.
24018
24019 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
24020
24021         * fixincludes: Avoid removing '.'.
24022         * fixinc/fixinc.svr4: Likewise.
24023         * fixinc/fixinc.winnt: Likewise.
24024         * fixinc/inclhack.tpl: Likewise.
24025         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
24026
24027 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24028
24029         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
24030         pattern.
24031         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
24032
24033 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24034
24035         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
24036         correctly.
24037
24038 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
24039
24040         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
24041         * configure: Regenerate.
24042
24043 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
24044
24045         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
24046         values.
24047
24048 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
24049
24050         * fixinc/inclhack.def (avoid_bool): Also catch
24051         "typedef [unsigned] int bool".
24052         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
24053
24054         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
24055         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
24056         * configure: Rebuilt.
24057
24058 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
24059
24060         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
24061         such that we can override its definitions if necessary.
24062         (CPP_SPEC): New define.  Support processor specific predefines via
24063         %(cpp_cpu).
24064         (CC1_SPEC): New define.  Support processor specific compiler
24065         options via %(cc1_cpu).
24066         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
24067         -static.
24068
24069 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24070
24071         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
24072         between sed's -e flag, and the open-quote following it.
24073         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
24074
24075 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
24076                           Jeffrey A Law  (law@cygnus.com)
24077
24078         * varasm.c (assemble_start_function): Remove the function
24079         from the pending weak decls list when we define a function.
24080         (assemble_variable): Similarly for variables.
24081         (weak_finish): Ignore items on the list with a NULL name.
24082         (remove_from_ending_weak_list); New function to "remove" an item
24083         from the pending weak declarations list.
24084
24085 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
24086
24087         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
24088
24089 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
24090
24091         * c-lex.c (GETC): Redefine to call getch.
24092         (UNGETC): Redefine to call put_back.
24093         (putback_buffer): New structure type.
24094         (putback): New static structure.
24095         (getch): New function.
24096         (put_back): New function.
24097         (yylex): Replace unused bytes from bad multibyte character.
24098
24099 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
24100
24101         * cpplib.c (do_define): Cast `alloca' return value.
24102         (do_include, do_undef, do_pragma): Likewise.
24103         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
24104         values.
24105         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
24106         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
24107
24108 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
24109
24110         * sparc.md (abstf2): This should be an expand.
24111         (split after abstf2_notv9): Fix mode.
24112         (abstf2_hq_v9): New pattern.
24113         (abstf2_v9): Only use when no hard quad.
24114         (absdf2_v9): Fix if target is not the same as source.
24115         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
24116         Add correct output constraints.
24117
24118 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
24119
24120         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
24121         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
24122
24123 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
24124
24125         * mips.h (mips_output_conditional_branch): New function.
24126         (mips_adjust_insn_length): Likewise.
24127         (ASSEMBLER_SCRATCH_REGNUM): New macro.
24128         (ADJUST_INSN_LENGTH): Likewise.
24129         * mips.c (print_operand): Add `F' and `W' for floating-point
24130         comparison opcodes.
24131         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
24132         are now in bytes.
24133         (mips_adjust_insn_length): New function.
24134         (mips_output_conditional_branch): New function.
24135         * mips.md (length): Adjust attribute definition to handle
24136         conditional branches.  Change lengths to bytes, rather than
24137         instructions throughout.  Remove length attribute from
24138         instructions whose length is four bytes, and rely on the default
24139         instead.
24140         (dslot): Fix typo in comment.
24141         Reword conditional branch patterns to use
24142         mips_output_conditional_branch.
24143
24144 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24145
24146         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
24147         (LIB_SPEC): Likewise.
24148         Link with -lprof1_r for -g/-pg.
24149
24150 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
24151
24152         * loop.c (check_dbra_loop): Fix change of Jan 19.
24153
24154 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
24155
24156         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
24157         (STARTFILE_SPEC):  Define, override the svr4.h version.
24158         (ENDFILE_SPEC):  Likewise.
24159
24160 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
24161
24162         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
24163         * fixinc/fixincl.x: Regenerated.
24164         * fixinc/inclhack.sh: Regenerated.
24165
24166 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24167
24168         * sh.c (barrier_align): Don't return early for normal branch/barrier
24169         when optimizing for SH2.
24170
24171 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
24172
24173         * i386/udk.h (LINK_SPEC): Correct linker search path for
24174         system libraries.
24175
24176 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24177
24178         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
24179         (braf_label_ref_operand): Delete.
24180         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
24181         * sh.md (casesi_jump_2): Operand1 is now the inside of a
24182         label_ref, and has no predicate.
24183         The patten has a predicate to guard against invalid substitutions.
24184         (dummy_jump): Delete.
24185         (casesi): Update use of casesi_jump_2.
24186
24187 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24188
24189         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
24190         *fixinc/fixincl.x: regenerate
24191         *fixinc/inclhack.sh: regenerate
24192
24193 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
24194
24195         * dwarf2out.c (add_incomplete_type): New fn.
24196         (gen_struct_or_union_type_die): Call it.
24197         (retry_incomplete_types): New fn.
24198         (dwarf2out_finish): Call it.
24199
24200 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
24201
24202         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
24203         current block starts with a CODE_LABEL and ends with a CALL and
24204         we can not find all the argument setup instructions for the CALL.
24205
24206 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
24207
24208         Revert this change:
24209         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
24210         something is a candidate for optimize_bit_field_compare.
24211
24212 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24213
24214         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
24215
24216 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
24217
24218         * alpha.c (override_options): Thinko in last patch.
24219
24220         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
24221         (LIB_SPEC): Recognize -pthread.
24222
24223 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
24224
24225         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
24226         definition in config/arm/coff.h
24227         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
24228
24229 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
24230
24231         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
24232         fixes that need "file=xxx\n" prepended before invocation
24233         (start_fixer - new): starting the fixer process is complex enough
24234         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
24235         (process): uses the new routine; omit usage of putenv()
24236         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
24237         * fixinc/fixincl.x: regenerate
24238
24239 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
24240
24241         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
24242         and version #s (1.1 -> 2.96) as needed.
24243         * README.g77: Kill way out of date file in the toplevel directory.
24244
24245 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
24246
24247         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
24248         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
24249         * configure: Rebuilt.
24250         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
24251         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
24252         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
24253         (SWITCH_TAKES_ARG): Likewise.
24254         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
24255         * config/t-freebsd: Moved from config/i386/ so it can used for all
24256         FreeBSD targets.
24257
24258 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
24259
24260         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
24261
24262 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
24263
24264         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
24265         * configure: Rebuilt.
24266
24267 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
24268
24269         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
24270         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
24271         * rs6000/rs6000.c (rs6000_file_start): Use putc.
24272         (rs6000_output_load_toc_table): Same.
24273         (output_prolog, output_mi_thunk): Same.
24274         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
24275         (ASM_GLOBALIZE_LABEL): Use putc.
24276
24277 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
24278
24279         * alpha.md (reload_*_help): New patterns and splitters.
24280         (reload_*): Use them.
24281         (mov[qh]i): Likewise.
24282
24283 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
24284
24285         * cccp.c (handle_directive): Handle backslash-newlines in quoted
24286         strings correctly.
24287
24288 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
24289
24290         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
24291
24292 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
24293
24294         * flow.c (mark_regs_live_at_end, insn_dead_p,
24295         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
24296         and HARD_FRAME_POINTER_REGNUM special treatment if reload
24297         hasn't run or the frame pointer is needed.
24298         * haifa-sched.c (attach_deaths): Likewise.
24299         * sched.c (attach_deaths): Likewise.
24300
24301 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
24302
24303         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
24304         calculate_can_reach_end returns nonzero.
24305
24306         * configure.in (native gas tests): Search for an assembler in the
24307         same manner that the installed compiler will.
24308         * configure: Rebuilt.
24309         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
24310
24311         * alias.c (find_base_term): Improve handling of addresses
24312         constructed from binary operations.
24313
24314 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
24315
24316         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
24317
24318 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
24319
24320         * function.h (cleanup_label, frame_offset): Declare.
24321         (tail_recursion_label, tail_recursion_reentry): Likewise.
24322         (arg_pointer_save_area, rtl_expr_chain): Likewise.
24323         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
24324         (tail_recursion_label, tail_recursion_reentry): Likewise.
24325         (arg_pointer_save_area, rtl_expr_chain): Likewise.
24326
24327 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
24328
24329         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
24330         defined.
24331         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
24332         (MAX_OFILE_ALIGNMENT): Define.
24333
24334 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
24335
24336         * fixincl.c: Replace local include scheme with #includes of
24337         gansidecl.h and system.h.
24338         * procopen.c:  Likewise.
24339         * server.c:  Likewise.
24340
24341 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
24342
24343         * i386/t-dgux (EXTRA_PARTS): Add crti.o
24344         (crti.o): Add build rule and dependencies.
24345         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
24346
24347 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24348
24349         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
24350         (LIB_LINUX_SPEC): Likewise.
24351         (LIB_LINUX_SPEC): Add support for -pthread
24352         (CPP_OS_LINUX_SPEC): Likewise.
24353         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
24354         specified.
24355
24356 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
24357
24358         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
24359         conditional move.
24360         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
24361         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
24362         for IEEE math and CC_FCOMI.
24363         (put_jump_code): No IEEE if CC_FCOMI is set.
24364
24365 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
24366
24367         * fold-const.c (fold_truthop): Make the field reference unsigned
24368         when converting a single bit compare.
24369
24370 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24371
24372         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
24373
24374 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
24375
24376         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
24377         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
24378         version did.
24379
24380         * reload.c (push_reload): Do not call remove_address_replacements
24381         when presented with identical optional reloads.
24382
24383 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
24384
24385         * alpha.h (MASK_FIX, TARGET_FIX): New.
24386         (MASK_*): Reorganize constants.
24387         (CPP_AM_FIX_SPEC): New.
24388         (TARGET_SWITCHES): Add FIX.
24389         (EXTRA_SPECS): Likewise.
24390         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
24391         (SECONDARY_MEMORY_NEEDED): Likewise.
24392         (REGISTER_MOVE_COST): Likewise.
24393         * alpha.c (override_options): Add FIX support.  Always use
24394         ALPHA_TP_PROG for ev6.
24395         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
24396         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
24397         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
24398
24399 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
24400
24401         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
24402         something is a candidate for optimize_bit_field_compare.
24403
24404 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
24405
24406         * gcc.texi (Passes): Document branch-shortening.
24407         * invoke.texi (Debugging Options): Document the fact that `-dp'
24408         outputs length information for instructions.
24409
24410 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
24411
24412         * flow.c: Revert previous delta.
24413
24414 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
24415
24416         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
24417         FRAME_POINTER_REGNUM.
24418         (mark_set_1): Ditto.
24419         (mark_used_regs): Ditto.
24420
24421 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
24422
24423         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
24424         (GOT_PCREL): New macro.  Define to 1 if not already defined.
24425         * arm/elf.h (GOT_PCREL): Define to 0.
24426         * arm.c (arm_finalize_pic): Take into account the setting of
24427         GOT_PCREL.
24428
24429 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
24430
24431         * output.h (STRIP_NAME_ENCODING): Provide default definition.
24432         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
24433
24434         * flow.c (mark_set_1): Do not record BLKmode stores as dead
24435         store elimination candidates.
24436
24437 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24438
24439         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
24440         TARGET_GAS.
24441
24442 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
24443
24444         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
24445         Add use of x-aix41-gld.
24446
24447 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
24448
24449         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
24450         (ASM_OUTPUT_DESTRUCTOR): Define.
24451
24452 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
24453
24454         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
24455         last CODE_LABEL in a loop if we have previously passed a jump
24456         to the top of the loop.
24457
24458 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
24459
24460         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
24461         applying Philip's patch.
24462
24463 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
24464
24465         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
24466         are not VAR_DECLs.
24467
24468 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
24469
24470         * loop.c (strength_reduce): Grow reg_single_usage as needed.
24471
24472 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
24473
24474         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
24475         Also remove a useless comment.
24476
24477 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
24478
24479         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
24480
24481 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
24482
24483         * collect2.c (main): Only generate import or export file and add
24484         to link arguments if non-empty.  Use xmalloc not alloca.
24485         (write_{export,import}_file): Delete.
24486         (write_aix_file): New function.
24487         (locatelib): Use xmalloc not malloc.
24488         (GCC_OK_SYMBOL): Do not check type if aix64.
24489
24490 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
24491
24492         Based on patch by Scott Bambrough and Pat Beirne:
24493         * config/arm/arm.c (making_const_table): New variable.
24494         * config/arm/arm.h (making_const_table): Declare.
24495         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
24496         appropriate.
24497         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
24498         Keep track of when we are building the constant table.
24499
24500 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
24501
24502         * config/arm/arm.c (arm_override_options): Fix erroneous warning
24503         message.
24504
24505 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
24506
24507         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
24508         defined.
24509
24510 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
24511
24512         * tm.texi (FUNCTION_ARG): Correct description of a stack element
24513         in a PARALLEL.
24514
24515 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
24516
24517         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
24518
24519 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24520
24521         * rs6000.c (output_mi_thunk): Enable full support again.
24522
24523 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24524
24525         * sh.h (BRANCH_COST): Define.
24526
24527 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
24528
24529         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
24530
24531 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
24532
24533         * function.c (assign_stack_local): Align stack slot propertly.
24534         (assign_outer_stack_local): Likewise.
24535
24536 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
24537
24538         * expr.h (lang_expand_constant): Declare.
24539         * toplev.c (lang_expand_constant): Define it.
24540         * varasm.c (output_constant): Use it.
24541
24542 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24543
24544         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
24545         Change function definitions to K&R style.
24546
24547 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24548
24549         * fixinc/fixincl.c: We must not ignore SIGCLD now.
24550
24551 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
24552
24553         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
24554         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
24555         (several places): omit static initialization
24556         (process): use single fd, since only the read fd is used
24557         * fixinc/gnu-regex.c: define 'const' away, if not supported
24558         * fixinc/procopen.c(several places): omit static initialization
24559         * fixinc/server.c: define 'volitile' away, if not supported
24560
24561 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
24562
24563         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
24564         asm_fprintf and %L to generate the label name.
24565         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
24566         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
24567
24568 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
24569
24570         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
24571         insn for a conditional jump can not be found.
24572
24573 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
24574
24575         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
24576         on variables in specific sections other than .sbss and .sdata.
24577
24578 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
24579
24580         * stmt.c (expand_return): Call start_cleanup_deferral and
24581         end_cleanup_deferral around conditional code.
24582
24583 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24584
24585         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
24586         filename lists.  Utilizes new "krstr" AutoGen function.
24587         * fixinc/fixincl.x: Rebuilt.
24588
24589 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
24590
24591         * i386.c (output_float_compare): Avoid GNU-C extensions.
24592
24593 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
24594
24595         * version.c: Bump to distinguish mainline tree from the
24596         gcc-2.95 branch.
24597
24598 See ChangeLog.1 for earlier changes.
24599
24600