OSDN Git Service

db9855e67c9b69937bb21128944cd65d98f814d0
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-05-30  Richard Henderson  <rth@cygnus.com>
2
3         * config/alpha/alpha.md (*setne_internal): Use match_operator
4         instead of working down from insn.
5
6 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7
8         * invoke.texi (-Wtraditional): Update WRT function macros.
9
10 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
11
12         * except.c (free_exception_table): Do not free NULL.
13
14 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
15
16         * cpplib.c (do_if): Don't save and restore only_seen_white here.
17         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
18         and skipping here.
19
20 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
21
22         * flow.c (mark_used_reg): If a register is unconditionally live, 
23         remove any conditional death information.
24
25 2000-05-29  Richard Henderson  <rth@cygnus.com>
26
27         * final.c (current_output_insn): New.
28         (final_scan_insn): Set it.
29         * output.h: Declare it.
30
31 2000-05-29  Richard Henderson  <rth@cygnus.com>
32
33         * stor-layout.c (finalize_record_size): Fix typo.
34
35         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
36         if nlabel is null.
37
38 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
39
40         * cpplib.h (cpp_reader): Remove if_stack.  Change
41         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
42         * cpphash.h (struct ihash): Change control_macro to a
43         cpp_hashnode * and shorten name to cmacro.
44         Add NEVER_REINCLUDE constant.
45
46         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
47         Examine the cmacro node directly, no need to call cpp_defined.
48         (_cpp_execute_include, read_include_file): Set cmacro to
49         NEVER_REINCLUDE, not U"".
50         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
51         (cpp_get_token): If pfile->skipping is true, discard text and
52         keep scanning until we hit a directive; don't expand macros.
53
54         * cpplib.c (struct if_stack): Remove if_succeeded, add
55         was_skipping. Change control_macro to a cpp_hashnode * and
56         shorten name to cmacro.  Remove typedef IF_STACK.
57         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
58         (conditional_skip, skip_if_group,
59         consider_directive_while_skipping): Delete.
60         (push_conditional): New.
61         (_cpp_handle_directive): Don't process directives other than
62         conditionals if we are skipping.
63
64         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
65         Update to new scheme.
66         (validate_else): Skip rest of line here, unconditionally.
67         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
68         pfile->skipping off.
69
70         (all): Remove `scare quotes' from error messages.
71
72 2000-05-29  Richard Henderson  <rth@cygnus.com>
73
74         * function.c (emit_return_into_block): New line_note arg; emit it.
75         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
76         for the close brace to accompany HAVE_return.  Move all line notes
77         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
78
79 2000-05-29  Richard Henderson  <rth@cygnus.com>
80
81         * longlong.h [__alpha] (count_leading_zeros): New.
82         (count_trailing_zeros): New.
83         (COUNT_LEADING_ZEROS_0): New.
84
85         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
86         (alpha_split_conditional_move): New.
87         * config/alpha/alpha-protos.h: Prototype them.
88         * config/alpha/alpha.h (PREDICATE_CODES): Update.
89         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
90         * config/alpha/alpha.md: Update ffs cix commentary.
91         (*ze_and_ne): New.
92         (*nabssf2, *nabsdf2): New.
93         (*mov[qhsd]icc_internal): Use add_operand.
94         (if_then_else constant splitters): New.
95         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
96         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
97
98 2000-05-29  Richard Henderson  <rth@cygnus.com>
99
100         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
101         a constant to NEG or NOT when conditions allow.
102
103         * combine.c (combine_simplify_rtx): Don't create an if_then_else
104         unless both args are general_operand.  Don't canonicalize plus
105         to ior unless it helps.
106
107         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
108         instead track register_life_up_to_date.  Toggle no_new_pseudos
109         around if_convert.  
110
111 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
112
113         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
114         so output_operand doesn't see them.
115
116 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
117
118         * lcm.c (make_preds_opaque): Fix comment.
119         (optimize_mode_switching): Use NORMAL_MODE instead of 
120         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
121         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
122         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
123         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
124         (MODE_USES_IN_EXIT_BLOCK): Delete.
125         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
126         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
127         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
128         (MODE_NEEDED): Don't look for USE.
129         (EPILOGUE_USES): Define.
130
131 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
132
133         * mklibgcc.in (all): Variable initialised to `libgcc'.
134
135 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
136
137         * toplev.h (skip_leading_substring): New macro.
138         * toplev.c (decode_f_option): Use skip_leading_substring instead
139         of strncmp.
140         (decode_W_option): Likewise.
141
142 2000-05-28  Nick Clifton  <nickc@cygnus.com>
143
144         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
145         modify reg_names.
146
147 2000-05-28  Richard Henderson  <rth@cygnus.com>
148
149         * regclass.c (record_operand_costs): Protect reg_changes_size
150         with CLASS_CANNOT_CHANGE_SIZE.
151
152         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
153
154 2000-05-28  Richard Henderson  <rth@cygnus.com>
155
156         * function.c (diddle_return_value): A pcc-style struct return
157         returns a pointer.
158
159 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
160
161         * cppfiles.c: Read files in, using mmap if possible, then
162         prescan them separately.
163         (read_file, read_with_read): New functions.
164         * cpplex.c: Don't define UCHAR_MAX.
165         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
166         the file here.
167
168         * cppinit.c (handle_option): Automatically define __cplusplus,
169         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
170         the respective -lang switch.
171
172         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
173         prototype): Move to...
174         * cpplib.h: ... here.  Rename struct hashnode to struct
175         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
176         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
177
178 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
179
180         * config/rs6000/rs6000.md (movsi): Constify 'name'.
181
182         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
183         (class_can_change_size): New variable.
184         (reg_changes_size): New variable.
185         (init_reg_sets_1): Initialise class_can_change_size.
186         (record_operand_costs): Remove subreg_changes_size.
187         Don't pass it around.  Instead update reg_changes_size.
188         (regclass): Initialise and free reg_changes_size.  If a register
189         changes size, don't preference it to a class that contains
190         registers that can't change size.
191         (record_reg_classes): Don't look at subreg_changes_size.
192
193 2000-05-27  Richard Henderson  <rth@cygnus.com>
194
195         * print-rtl.c (reg_names): Remove const.
196         * regclass.c (reg_names): Likewise.
197         * regs.h (reg_names): Likewise.
198         * hard-reg-set.h (reg_names): Likewise.
199
200 2000-05-27  Richard Henderson  <rth@cygnus.com>
201
202         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
203
204 2000-05-27  Richard Henderson  <rth@cygnus.com>
205
206         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
207         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
208         (alpha_expand_prologue): Emit prologue_mcount if needed.
209         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
210         * config/alpha/alpha.md (prologue_mcount): New.
211         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
212         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
213         * config/alpha/netbsd.h: Likewise.
214
215 2000-05-27  Richard Henderson  <rth@cygnus.com>
216
217         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
218         change to config/elfos.h.
219
220 2000-05-27  Richard Henderson  <rth@cygnus.com>
221
222         * Makefile.in (resource.o): Depend on except.h.
223         * except.h (output_exception_table_data): Prototype.
224         * genconfig.c (gen_peephole2): Prototype.
225         * genemit.c (main): Include ggc.h.
226         * genoutput.c: Revert parts of last change: include errors.h
227         (main): Set progname.
228         * recog.c: Include hard-reg-set.h before recog.h.
229         * resource.c: Include except.h.
230
231         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
232         with RTX_CODE.
233         (alpha_write_linkage): Protect with BUFSIZ.
234         (alpha_need_linkage): Update prototype.
235         * config/alpha/alpha.c (function_arg): Move VMS code here.
236         (alpha_links_base): Remove.
237         (alpha_links): New.
238         (mark_alpha_links_node, mark_alpha_links): New.
239         (alpha_write_one_linkage): New.
240         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
241         (alpha_write_linkage): Use splay_tree_foreach.
242         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
243         to get the linkage symbol.
244         (call_value_vms): Likewise.
245         * config/alpha/elf.h (output_file_directive): Remove decl.
246         (ctors_section, dtors_section): Prototype.
247         (sbss_section, sdata_section): Prototype.
248         * config/alpha/vms.h (FUNCTION_ARG): Remove.
249         (readonly_section, link_section, literals_section): Prototype.
250         (ctors_section, dtors_section): Prototype.
251         (vms_valid_decl_attribute_p): Remove decl.
252         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
253
254 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
255
256         * reload.c (get_secondary_mem): Don't widen floating-point modes.
257
258         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
259         substituting the REG in a (subreg:X (reg:Y ...)).
260
261 2000-05-28  Neil Booth  <NeilB@earthling.net>
262
263         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
264         first token of a line BOL.  Update EOF code for this.
265         Remove illegal directive check - it appears in the (not
266         yet committed) caller.
267         * cpplib.h (BOL): New flag.
268
269 2000-05-28  Neil Booth  <NeilB@earthling.net>
270
271         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
272         (_cpp_free_toklist): No comment space to free.
273         (expand_comment_space): Remove.
274         (save_comment_space): Place the comment in the current token and
275         not in a separate comment space.
276         (_cpp_lex_line): Save comments during plain code and #define
277         directives only.
278         * cpplib.h (struct _cpp_toklist): Remove comment space.
279
280 2000-05-28  Neil Booth  <NeilB@earthling.net>
281
282         * cppexp.c (parse_assertion): Supply extra argument to
283         _cpp_init_toklist.
284         * cpplib.c (do_assert, do_unassert): Similarly.
285         * cpphash.h (_cpp_init_toklist) Update.
286         (_cpp_expand_token_space): New.
287         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
288         * cpplex.c (_cpp_init_toklist): New argument.
289         (parse_string2): New argument multiline_ok.
290         (spell_token): Take a const cpp_token *.
291         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
292         (SPELL_ macros): Replace with enum.
293         (expand_token_space): Replace with _cpp_expand_token_space.
294         Take COUNT argument.
295         (IS_DIRECTIVE): Update.
296         (_cpp_lex_line): Update token structure before parsing number.
297         Don't assume start at beginning of token list.
298         (save_comment): Use INIT_TOKEN_NAME.
299
300 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
301
302         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
303         -Wmissing-prototypes.
304         * configure: Regenerate.
305         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
306
307         * builtins.c, calls.c: Change all instances of gen_call_* or
308         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
309         * calls.c (struct_value_size_rtx): Separate definition from
310         initialization to avoid unused variable warning.
311
312         * genflags.c (gen_macro): New function.
313         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
314         (gen_nonproto): Delete.
315         (gen_insn): Put all insns on the same obstack.
316         (main): Generate prototypes for everything unconditionally.
317
318         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented 
319         out check for wchar_t.
320         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
321         * system.h: Add infrastructure for defining missing   
322         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback  
323         definitions of UCHAR_MAX and SSIZE_MAX.
324         * configure: Regenerate.
325         * config.in: Regenerate.
326
327         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
328         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
329         headers.
330         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
331         libgcc2.a, or libgcc1.null.
332
333 2000-05-27  Richard Henderson  <rth@cygnus.com>
334
335         * Makefile.in (recog.o): Don't depend on resource.h.
336         * recog.c: Don't include resource.h.
337         (recog_last_allowed_insn): Remove.
338         (recog_next_insn): Remove.
339         (struct peep2_insn_data): New.
340         (peep2_insn_data, peep2_current): New.
341         (peep2_next_insn): New.
342         (peep2_regno_dead_p, peep2_reg_dead_p): New.
343         (peep2_find_free_register): New.
344         (peephole2_optimize): Track life information by insn as we go.
345         * recog.h: Update declarations.
346         * resource.c (find_free_register, reg_dead_p): Remove.
347         * resource.h: Remove their declarations.
348         * toplev.c: Include hard-reg-set.h before recog.h.
349
350         * genconfig.c (max_insns_per_peep2): New.
351         (gen_peephole2): New.
352         (main): Call it.
353         * genemit.c (output_peephole2_scratches): Generate calls to
354         peep2_find_free_register; adjust surrounding code.
355         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
356         * genrecog.c (change_state): Don't track last_insn.
357         (write_action): Write into *_pmatch_len before accepting.
358         (write_tree): Adjust peephole2_insns and subroutines to match.
359
360         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
361
362         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
363         (hard_int_register_operand): New.
364         * config/alpha/alpha-protos.h: Declare it.
365         * config/alpha/alpha.h (PREDICATE_CODES): Update.
366         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
367         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
368
369 2000-05-27  Richard Henderson  <rth@cygnus.com>
370
371         * function.c (thread_prologue_epilogue_insns): Don't move the
372         line note at the head of the chain.  Only force a lineno note
373         before the end of block 0.
374
375 2000-05-27  Richard Henderson  <rth@cygnus.com>
376
377         * gensupport.c (collect_insn_data): Record the maximum number
378         of alternatives, not the last seen.
379
380         * genoutput.c: Don't include errors.h.
381         (struct data): Add lineno member.
382         (have_error): New.
383         (scan_operands): Use message_with_line instead of error.
384         (validate_insn_alternatives): Likewise.
385         (gen_insn): Accept and store the pattern's line number.
386         (gen_peephole, gen_expand, gen_split): Likewise.
387         (main): Don't set progname.  Pass line_no to gen_foo.
388
389 2000-05-27  Richard Henderson  <rth@cygnus.com>
390
391         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
392         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
393         * config/d30v/d30v.md (attr predicable): New.
394         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
395         (andsi3*): Unify into one pattern.
396         (iorsi3*, xorsi3*): Likewise.
397         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
398         conditional return.
399         (old cond_exec patterns): Remove.
400         (define_cond_exec): New.
401
402 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
403
404         * tree.h (TREE_CODE_LENGTH): New macro.
405         * c-common.c (c_find_base_decl): Use it.
406         * expr.c (safe_from_p): Likewise.
407         * print-tree.c (print_node): Likewise.
408         * tree.c (make_node, copy_node, get_identifier): Likewie.
409         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
410         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
411         * fold-const.c (make_range): Likewise.
412         (fold): Likewise; also use first_rtl_op.
413         * c-iterate.c (collect_iterators): Use first_rtl_op.
414         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
415         Use IS_EXPR_CODE_CLASS.
416         (preexpand_calls): Likewise.
417         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
418         and TREE_CODE_LENGTH.
419         * stmt.c (warn_if_unused_value): If no operands, no unused value.
420
421 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
422
423         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
424         than '%1(%*)'.
425         (movdi_internal64): Likewise.
426
427         * config/rs6000/rs6000.md: Correct order of operands for DImode
428         boolean patterns.
429
430         * config/rs6000/rs6000.c (boolean_or_operator): New function.
431         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
432         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
433         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
434         boolean_operator for the boolean patterns without NOTs.
435
436         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
437         from reg_or_u_cint_operand.  Change comment and behaviour.
438         (logical_operand): Clean up, add assertion.
439         (non_logical_cint_operand): Also check for
440         reg_or_logical_cint_operand.
441         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
442         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
443         in the expander.
444         (xorsi3): Likewise.
445         (iordi3): Likewise.
446         (xordi3): Likewise.
447
448 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
449
450         * tree.h (struct record_layout_info): Rename to (struct
451         record_layout_info_s).
452         * stor-layout.c (start_record_layout): Replace
453         `record_layout_info' with `record_layout_info_s'.
454
455 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
456
457         * flow.c (find_label_refs): New function.
458         (find_basic_blocks_1): Call it for each alternative of a call 
459         placeholder.
460
461 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
462
463         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
464         of get_pc.
465
466 2000-05-25  Richard Henderson  <rth@cygnus.com>
467
468         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
469         so strict about DImode.
470         (alpha_swapped_comparison_operator): Likewise.
471         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
472         any integer output mode.
473         (*setcc_internal): Likewise.
474         (*setcc_swapped_internal): Likewise.
475         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
476         (*mov[qhs]icc_internal): New.
477         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
478
479 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
480
481         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
482
483 2000-05-25  Richard Henderson  <rth@cygnus.com>
484
485         * bb-reorder.c (reorder_block_def): Reorder elements for size.
486         Remove add_jump; add next; replace flags with visited.
487         (rbd_init): Remove.
488         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
489         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
490         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
491         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
492         (RBI): New.
493         (reorder_index, reorder_last_visited): Remove.
494         (skip_insns_after_block): Rewrite to use a switch.
495         (get_common_dest): Remove.
496         (chain_reorder_blocks): Remove.
497         (record_effective_endpoints): Split out from reorder_basic_blocks.
498         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
499         (make_reorder_chain_1): Renamed from old make_reorder_chain.
500         Only construct the reorder chain, do not move insns.  Try harder
501         to tail recurse.
502         (label_for_bb, emit_jump_to_block_after): New.
503         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
504         and adjust the jump insns appropriately.  Fixup basic_block_info.
505         (verify_insn_chain): Always define.
506         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
507         in allocation size.
508         (make_new_scope): Don't write zeros to calloc'd space.
509         (build_scope_forest): Rely on xrealloc to DTRT.
510         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
511         profile_arc_flag.  Streamline EH test.
512
513         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
514         * basic-block.h: Declare them.
515
516 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
517
518         * emit-rtl.c (reset_used_decls): New function.
519         (unshare_all_rtl_again): Call it.
520
521 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
522
523         * cpplex.c (maybe_macroexpand): Warn about function-like
524         macros used in non-function context, if -Wtraditional.
525
526 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
527
528         * recog.c (peephole2_optimize): Use INSN_P.
529
530 2000-05-25  Richard Henderson  <rth@cygnus.com>
531
532         * ifcvt.c (seq_contains_jump): New.
533         (noce_try_store_flag_constants): Use it to fail conversion.
534         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
535
536 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
537
538         * except.h (can_throw): Declare it.
539         * except.c (can_throw): Give it external linkage.
540         * resource.c (find_dead_or_set_registers): Use can_throw.
541         
542 2000-05-25  Richard Henderson  <rth@cygnus.com>
543
544         * flow.c (mark_set_1): Don't record conditionally dead memory.
545
546 2000-05-25  Jan Hubicka  <jh@suse.cz>
547
548         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
549         and pc_set at the place of simplejump_p and condjump_p.
550         * cse.c (record_jump_equiv): Likewise.
551         * emit-rtl.c (emit): Likewise.
552         * explow.c (find_next_ref): Likewise.
553         * flow.c (tidy_fallthru_edge): Likewise.
554         (init_propagate_block_info): Likewise.
555         * gcse.c (delete_null_pointer_checks): Likewise.
556         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
557         dead_or_predicable): Likewise.
558         * integrate.c (copy_insn_list): Likewise.
559         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
560         for_each_insn_in_loop, check_dbra_loop, get_condition,
561         insert_bct, load_mems): Likewise.
562         * resource.c (find_dead_or_set_registers): Likewise.
563         * sibcalls.c (simplejump_p): Likewise.
564         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
565
566 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
567
568         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
569         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
570         when unaligned.
571         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
572         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
573         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
574         * rs6000.md: Name various internal patterns.
575
576 2000-05-25  Jan Hubicka  <jh@suse.cz>
577
578         * jump.c (invert_exp_1): Remove first argument, use pc_set
579         to get the expression.
580         (redirect_exp): Make static; redirect only the pc_set expression,
581         remove first argument.
582         (invert_exp): Remove first argument, make static.
583         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
584         any_onlyjump at most places where we originaly did condjump_p
585         and simplejump_p.
586         (jump_back_p, follow_jumps, thread_jumps): Likewise.
587         (delete_barrier_succesors): Use pc_set.
588         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
589         calls of invert_exp and redirect_exp.
590         * rtl.h (redirect_exp, invert_exp): Remove.
591         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
592
593 2000-05-25  Richard Henderson  <rth@cygnus.com>
594
595         * stmt.c (expand_end_bindings): Fix thinko last change.
596
597 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
598             Andrew Haley  <aph@cygnus.com>
599
600         * except.c  (func_eh_entry): Add emitted field.
601         (new_eh_region_entry): Set emitted field to 0;
602         (output_exception_table_entry): Only emit previously un-emitted data,
603         and send it to the eh_data section.
604         (output_exception_table): Break out common parts. Output
605         exception table for entire compilation unit to eh_data section.
606         (output_exception_table_data): Common parts of output_exception_table.
607         Send output to eh_data section.
608         (output_function_exception_table): Output exception table data for
609         a single function to eh_data section.
610         (free_exception_table): New external to free the table.
611         * except.h (free_exception_table): Add prototype.
612         (output_function_exception_table): Add prototype.
613         * final.c (final_end_function): Output function exception table
614         for IA64_UNWIND_INFO.
615         (final_scan_insn): Emit any unwind directives for an insn.
616
617         * frame-dwarf2.c: New file containing all DWARF 2 specific code
618         from frame.c.
619         * frame.c: Remove all DWARF 2 specific code.
620         * config/ia64/frame-ia64.c: New file.
621         (gthread_stuff): Make all gthread available with 
622         IA64_UNWIND_INFO.
623         (dwarf_fde): Define an IA64 struct for dwarf_fde.
624         (__register_frame_info, __register_frame): Move to common area of file.
625         (__register_frame_info_table, __register_frame_table): Move to common i
626         area.
627         (__deregister_frame_info, __deregister_frame): Move to common area.
628         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
629         (read_uleb128): New version for ia64.
630         (get_unwind_record): Read the next IA-64 unwind record.
631         (read_R_record): Read a region header record.
632         (process_a_b_reg_code): X record helper.
633         (read_X_record): Read an X format record.
634         (read_B_record): Read a B format record.
635         (P3_record_types): List of record types matching the P3 format.
636         (P7_record_types): List of record types matching the P7 format.
637         (P8_record_types): List of record types matching the P8 format.
638         (read_P_record): Read a P format record.
639         (init_ia64_reg_loc): Set default fields for a register.
640         (init_ia64_unwind_frame): Set defaults for all register records.
641         (execute_one_ia64_descriptor): Execute one descriptor record.
642         (rse_address_add): Calculate the position of a local reg in memory.
643         (normalize_reg_loc): Turn a location descriptor into a memory address.
644         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls 
645         within a specified PC offset range.
646         (get_real_reg_value): Given a register location, retrieve its value.
647         (set_real_reg_value): Change the value of a register location.
648         (copy_reg_value): Copy reg values, if needed.
649         (copy_saved_reg_state): Copy all registers that need to be copied.
650         (process_state_between): Normalize all frame register records that
651         fall within the specified PC range.
652         (frame_translate): Take a processed frame description, and turn 
653         everything into addresses.
654         (build_ia64_frame_state ): Find and create frame state record for a PC.
655         (get_personality): Get the personality routine for a given frame.
656         (get_except_table): Get the exception table for a given frame.
657         (record_name): Unwind record names for debugging.
658         (print_record): Print and unwind record.
659         (print_all_records): Print an entire unwind image.
660         (__ia64_backtrace): Print a backtrace.
661         (ia64_backtrace_helper): New function.
662         (__register_frame_info_aux): New function.
663         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
664
665         * frame.h (enum unw_record_type): New unwind record types.
666         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
667         (struct unw_r_record, unwind_record): New unwind record structs.
668         (struct unwind_info_ptr): Unwind information layout.
669         (IA64_UNW_LOC_TYPE_*): Macros for different types for location 
670         descriptors.
671         (struct ia64_reg_loc): Register location description.
672         (struct ia64_frame_state): Location of all registers in a frame.
673         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
674         * libgcc2.c (__ia64_personality_v1): Personality routine.
675         (__calc_caller_bsp): Calculate the bsp register for the caller's
676         frame.
677         (ia64_throw_helper): Figure out who to return to and set up the 
678         registers.
679         (__throw): Throw routine.
680
681         * output.h (assemble_eh_align, assemble_eh_label): New functions
682         to generate EH info where we want it.   
683         (assemble_eh_integer): New function.
684         * toplev.c (compile_file): Output module level exception table for
685         non-ia64 targets.
686         (main): Set exceptions_via_longjump and flag_new_exceptions based 
687         on IA64_UNWIND_INFO too.
688
689         * varasm.c (assemble_eh_label): Generate a label via
690         ASM_OUTPUT_EH_LABEL if it has been specified.
691         (assemble_eh_align): Generate an alignment directive via 
692         ASM_OUTPUT_EH_ALIGN if it has been specified.
693         (assemble_eh_label): Generate an integer value via
694         ASM_OUTPUT_EH_type if they have been specified.
695         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
696         (ia64_init_builtins): Add __builtin_ia64_bsp
697         and __builtin_ia64_flushrs.     
698         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
699         IA64_BUILTIN_FLUSHRS.
700         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
701         IA64_BUILTIN_FLUSHRS.
702
703         * config/ia64/ia64.md (flushrs): New insn to flush the register
704         stack.  Add to unspec list.
705
706         * config/ia64/crtbegin.asm (frame_object): Change size.
707         (__do_frame_setup_aux): New function.
708         * config/ia64/crtend.asm: call __do_frame_setup_aux.
709         * config/ia64/t-ia64 (LIB2ADDEH): Add.
710         * Makefile.in (LIB2ADDEH): Add.
711         (LIB2ADD): Use LIB2ADDEH.
712         
713 2000-05-24  Richard Henderson  <rth@cygnus.com>
714
715         * recog.c (offsettable_address_p): If mode size is zero, assume
716         BIGGEST_ALIGNMENT.
717
718 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
719
720         * configure.in: Check for -Wno-long-long option support and improve
721         handling of warning CFLAGS for stages 1 and 2.
722         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
723         * configure: Regenerate.
724
725 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
726
727         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
728         * contrib.texi: New file.
729
730 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
731
732         * loop.c (basic_induction_var): Avoid double recording of an increment.
733
734 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
735
736         * Back out this patch:
737         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
738           * loop.h (struct induction): Add multi_insn_incr.
739           * loop.c (basic_induction_var): New multi_insn_incr argument.
740           Set it if we search back through previous insns for the biv.
741           (record_biv): New multi_insn_incr argument; fill in struct induction.
742           (strength_reduce): Discard an iv with multiple bivs, any of
743           which require multiple insns to increment.
744
745         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
746
747 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
748
749         * rtl.h (loc_mentioned_in_p): Declare.
750         * reload.c (loc_mentioned_in_p): Moved from here...
751         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
752         Fix loop increment for 'E' handling.
753         * loop.c (strength_reduce): When doing biv->giv conversion,
754         take multi-insn biv increments into account.
755
756 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
757
758         * stmt.c (expand_end_bindings): Look through NOTEs to find a
759         BARRIER.
760
761 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
762
763         * calls.c (expand_call): Handle cleanups in tail-recursion
764         arguments analagously to cleanups in sibling calls.
765
766 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
767
768         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
769         All callers changed.
770
771 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
772
773         * expr.c (expand_assignment, store_expr, expand_expr,
774         expand_expr_unaligned): Set in_check_memory_usage while emitting
775         chkr_check_addr libcall.
776
777 2000-05-24  Nick Clifton  <nickc@cygnus.com>
778
779         * fold-const.c (extract_muldiv): When constructing a
780         multiplier/divisor, do not expect const_binop to correctly
781         determine if overflow has occured, so check explicitly.
782
783 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
784
785         * c-decl.c (build_enumerator): Don't modify the value's type,
786         convert it.
787
788 2000-05-24  Andreas Jaeger  <aj@suse.de>
789
790         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
791
792 2000-05-24  Eric Christopher <echristo@cygnus.com>
793
794         * configure.in: Redefine inhibit_libc conditions.
795         * libgcc2.c: Remove inhibit_libc conditional define.
796         * configure: Regenerate.
797
798 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
799
800         * configure.in:  For --enable-languages=LIST, check for empty LIST.
801         * configure:  Regenerate.
802
803 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
804
805         * pdp11.h (STACK_BOUNDARY): Define.
806
807 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
808
809         * ifcvt.c (if_convert): Update life info globally.
810
811 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
812
813         * emit-rtl.c (unshare_all_decls): New function.
814         (unshare_all_rtl): Call it.
815
816 2000-05-23  Nick Clifton  <nickc@cygnus.com>
817
818         * configure.in: Treat 'strongarm' as if it were 'arm' when
819         determining cpu type.
820
821         * configure: Regenerate.
822
823         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
824         where constant strings are involved.
825
826         * config/arm/arm.h (arm_condition_codes): Change type to 'const
827         char *'.
828
829         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
830         cases where constant strings are involved.
831
832 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
833
834         * config/sh/sh.c (gen_far_branch, split_branches): Update
835         to reflect new prototypes for redirect_jump and invert_jump.
836         (sh_insn_length_adjustment): Get rid of const warnings.
837
838 2000-05-23  Kazu Hirata  <kazu@hxi.com>
839
840         * invoke.texi (Options for Debugging Your Program or GCC): Update
841         the names of dump files.
842
843 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
844
845         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
846         * configure: Regenerated.
847
848 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
849
850         * simplify-rtx.c (SIGN_EXTEND): New macro.
851         (simplify_unary_operation, simplify_binary_operation, 
852         simplify_relational_operation): Use SIGN_EXTEND.  Make low
853         halves of (low, high) pairs unsigned if they weren't already.       
854         (simplify_ternary_operation): Cast INTVAL to unsigned before
855         comparing to a MODE_BITSIZE.
856
857 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
858
859         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
860         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
861         
862         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
863         gcc_AC_NEED_DECLARATIONS.
864
865         * dwarfout.c: Don't prototype time().
866
867         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
868
869         * system.h: Likewise.
870
871         * toplev.c: Likewise.
872
873 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
874
875         * c-decl.c (pushdecl): Invert sense of test for non-global types.
876
877 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
878
879         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
880
881 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
882
883         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
884
885 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
886
887         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
888         (alpha_start_function): Never write ..ng label if VMS or NT.
889         (alpha_align_insns): Remove GP_IN_USE arg.
890         Alignment now unsigned.
891         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
892         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
893         and two define_insn's.
894
895 2000-05-22  Richard Henderson  <rth@cygnus.com>
896
897         * combine.c (simplify_comparison): Use trunc_int_for_mode.
898
899 2000-05-22  Richard Henderson  <rth@cygnus.com>
900
901         * stor-layout.c (place_field): Change rli->size to rli->offset.
902
903 2000-05-22  Richard Henderson  <rth@cygnus.com>
904
905         * function.c (thread_prologue_and_epilogue_insns): Make sure 
906         existing line number notes appear after the prologue.
907
908 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
909
910         * config/alpha/alpha.c (alpha_fnname): New static variable.
911         (print_operand, case '~'): New case.
912         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
913         (alpha_start_function): Set alpha_fnname.
914         Write "ng" label if no ldgp; don't write ldgp insn.
915         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
916         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
917
918 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
919
920         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
921         on deleted labels.
922
923 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
924
925         * varasm.c (eh_frame_section): Revert change to argument list.
926
927 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
928
929         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
930         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
931         
932         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
933         dangling "else" that causes "break" to be conditional.
934         Also remove unneeded code at start.
935
936 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
937
938         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
939         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
940         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
941
942 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
943
944         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
945         just one argument.
946
947 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
948
949         * alias.c (record_component_aliases): New function.
950         * tree.h: Clean up some declarations and comments.
951         (record_component_aliases): New declaration.
952         * tree.c (get_alias_set): If type and has alias set, use it.
953
954 2000-05-22  Richard Henderson  <rth@cygnus.com>
955
956         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
957         IF_THEN_ELSE to a setcc form.
958         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
959
960 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
961
962         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
963         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
964
965 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
966
967         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
968         not a PARALLEL.
969
970 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
971
972         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
973         * config/mn10300/mn10300.c (print_operand): Likewise.
974
975         * final.c (split_double): Right shift of negative values is not
976         portable.
977
978         * ifcvt.c (if_convert): Scan and kill dead code.
979
980         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
981
982 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
983
984         * diagnostic.c: Eliminate implicit int.
985         * except.c, gcc.c: Add static prototypes.
986         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
987         * gensupport.c (process_rtx): Use XVEC to initialize vector
988         slot of 'split'.
989
990         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static 
991         debug_reg_names instead of static reg_names.  If not, define
992         global reg_names.
993         * regclass.c: Don't define global reg_names unless
994         DEBUG_REGISTER_NAMES is defined.
995
996         * reload1.c (order_regs_for_reload): Remove unused variable.
997         * varasm.c: Include output.h after defaults.h.  Define
998         eh_frame_section as function of no args, not of unspecified args.
999
1000         * gcc.c: Constify argbuf; arguments to store_arg,
1001         process_command, main; elements of struct command and struct
1002         switchstr; local variables in execute, process_command, main.
1003
1004 2000-05-20  Bruce Korb  <bkorb@gnu.org>
1005
1006         * fixinc/inclhack.def:  many applications of c_fix=format + tests
1007         * fixinc/check.diff:  regenerated
1008         * fixinc/fixincl.x:  regenerated
1009
1010 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1011
1012         * alias.c: Clarify some comments.
1013         (record_base_value): REGNO is unsigned.
1014         * rtl.h (record_base_value): Likewise.
1015
1016         * alias.c (aliases_everything_p): Don't special-case QImode here.
1017         * c-common.c (c_get_alias_set): Do it here.
1018         Handle BIT_FIELD_REF by getting alias info for arg.
1019         Use POINTER_TYPE_P.
1020
1021 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
1022
1023         * mklibgcc.in: Restore rule to create ${dir}.
1024
1025 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
1026
1027         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
1028         GCC_FOR_TARGET used by MULTILIBS.
1029         * mklibgcc.in: Make sure each .o file depends on the
1030         directory it will be in.
1031         Make the multilib directory depends libgcc.
1032
1033 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
1034
1035         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
1036
1037 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
1038
1039         * fold-const.c (make_range): Handle degenerated intervals.
1040         Fixes c-torture/execute/991221-1.c
1041
1042 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1043
1044         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
1045         * reload.c (find_equiv_reg): Likewise.
1046         * alias.c (init_alias_analysis): Likewise.
1047         Only call prologue_epilogue_contains on insns.
1048         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
1049         * bb-reorder.c (hard-reg-set.h): Include earlier.
1050         * haifa-sched.c (hard-reg-set.h): Likewise.
1051         * ifcvt.c (hard-reg-set.h): Likewise.
1052         * local-alloc.c (hard-reg-set.h): Likewise.
1053         * loop.c (hard-reg-set.h): Likewise.
1054         * predict.c (hard-reg-set.h): Likewise.
1055         * regrename.c (hard-reg-set.h): Likewise.
1056         * flow.c (hard-reg-set.h): Likewise.
1057         (reg_set_to_hard_reg_set): New function.
1058         * bitmap.c (regs.h, basic-block.h): No longer include.
1059         (bitmap.h): Now include.
1060         * conflict.c (hard-reg-set.h): Include.
1061         * profile.c (hard-reg-set.h): Likewise.
1062         * print-rtl.c (hard-reg-set.h): Likewise.
1063         * sbitmap.c (hard-reg-set.h): Likewise.
1064         * toplev.c (hard-reg-set.h): Likewise.
1065         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
1066         * hard-reg-set.h (reg_names): Now constant.
1067         * regs.h (reg_names): Likewise.
1068         * regclass.c (reg_names): Likewise.
1069         * loop.h (basic-block.h): No longer include.
1070         (bitmap.h): Now include.
1071         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
1072         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
1073         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
1074
1075 2000-05-19  Jan Hubicka  <jh@suse.cz>
1076             Richard Henderson  <rth@cygnus.com>
1077
1078         * basic-block.h (struct edge_def): New field "count".
1079         (struct basic_block_def): Likewise.
1080         * flow.c (entry_exit_blocks): Add count fileds.
1081         (split_edge): Keep count information up-to-date.
1082         (dump_edge_info, dump_flow_info): Dump count fields.
1083
1084         * final.c (count_instrumented_edges): Rename to edge from arc.
1085         (end_final): Update users.
1086         * profile.c: Include expr.h, basic-block.h.
1087         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
1088         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
1089         (ignore_next_note, return_label_execution_count): Kill.
1090         (bbg_file_name, da_file_name): Kill.
1091         (edge_info, bb_info): New structures.
1092         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
1093         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
1094         (total_num_edges_instrumented): Likewise.
1095         (init_arc, expand_spanning_tree): Kill.
1096         (fill_spanning_tree, tablejump_entry_p): Kill.
1097         (instrument_edges):  Rewrite from instrument_arcs to use
1098         commit_edge_insertions infrastructure.
1099         (compute_branch_probabilities): Remove arguments; rewrite for
1100         CFG infrastructure; use rtl_dump_file directly.
1101         (branch_prob, find_spanning_tree): Likewise.
1102         (union_groups, find_group): New.
1103         (init_branch_prob): Make bbg_file_name and da_file_name local.
1104         (end_branch_prob): Use rtl_dump_file directly.
1105         (init_edge_profiler): Rename to edge from arc.
1106         (output_arc_profiler): Kill.
1107         (gen_edge_profiler): New.
1108         (output_func_start_profiler): Turn off profiling.  Make the
1109         constructor static when we can.
1110         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
1111
1112         * toplev.c (DFI_flow): Remove.
1113         (DFI_cfg, DFI_life): New.
1114         (dump_file): Update accordingly.
1115         (compile_file): Call end_branch_prob if profile_arc_flag too.
1116         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
1117         profiling after the CFG is built.  Move flow1 life analysis to
1118         DFI_life.  Always estimate remaining probabilities.
1119
1120 2000-05-19  Richard Henderson  <rth@cygnus.com>
1121
1122         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
1123
1124         * flow.c (make_edges): The sibling call edge to exit is abnormal.
1125
1126 2000-05-19  Richard Henderson  <rth@cygnus.com>
1127
1128         * jump.c (redirect_jump): Add delete_unused argument.  Don't
1129         remove labels and code following when LABEL_NUSES goes to zero.
1130         (invert_jump): Likewise.
1131         (jump_optimize_1): Fix redirect/invert arguments.
1132         (do_cross_jump, thread_jumps): Likewise.
1133         * flow.c (split_edge): Likewise.
1134         * reorg.c (optimize_skip): Likewise.
1135         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
1136         * profile.c (instrument_arcs): Likewise.
1137         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
1138         * rtl.h: Update prototypes.
1139
1140 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
1141
1142         * ssa.c (convert_from_ssa): Tell life_analysis we need death 
1143         notes.
1144         (make_regs_equivalent_over_bad_edges): Only look at abnormal
1145         critical edges.
1146
1147 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
1148
1149         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
1150         past l1 when deleting whitespace and markers.              
1151
1152         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
1153         * cpplib.c (do_unassert): Put the list to compare against on
1154         the stack.
1155
1156 2000-05-19  Bruce Korb  <bkorb@gnu.org>
1157
1158         * fixinc/README:  cleaned up old documentation
1159         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
1160         * fixinc/check.tpl: compute the list of needed directories
1161         emit "#if defined(name)" because of conflict
1162         omit machine name differences from output differences
1163         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
1164         (machine_name): change test text to use `sed' markers
1165         * fixinc/fixincl.x: regen
1166
1167 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1168
1169         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
1170         a CONSTRUCTOR.
1171
1172 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
1173
1174         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
1175         it to match the current practice.
1176
1177 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
1178
1179         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
1180
1181 2000-05-18  Richard Henderson  <rth@cygnus.com>
1182
1183         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
1184         * rtl.h (insn_dependant_p): Declare it.
1185         * loop.c (strength_reduce): Use it.
1186
1187 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
1188
1189         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
1190         16-bit and 64-bit clean-up.
1191
1192 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
1193
1194         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
1195         * configure: Rebuilt.
1196
1197 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
1198
1199         * genopinit.c: Use $ for escape sequences in optab patterns.
1200         Remove backslashes from optab patterns.  Change $A, $B, $C to
1201         expand to (int) whatever instead of just whatever; remove
1202         explicit (int) from all optab patterns.
1203
1204         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
1205         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
1206         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
1207         genrecog.c: Remove private copies of xmalloc, xrealloc, and
1208         xstrdup.
1209
1210 2000-05-18  Richard Henderson  <rth@cygnus.com>
1211
1212         * jump.c (jump_optimize_1): Base minimum insn count during
1213         find_cross_jump on BRANCH_COST.
1214
1215 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
1216
1217         * print-rtl.c (print_rtx): Only print note line number as string
1218         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
1219         * final.c (final_scan_insn): Do nothing for note line number 0.
1220
1221 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
1222
1223         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
1224         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
1225         NOTE_INSN_DELETED_LABEL.
1226
1227 2000-05-18  Nick Clifton  <nickc@cygnus.com>
1228
1229         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
1230         uninitialised data in .rodata not .bss, and do not interpret an
1231         error in the initialisation value as meaning that the variable
1232         should be placed in the .bss section.
1233
1234 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
1235
1236         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
1237         not `$ac_cv_prog_cc_cc_c_o'.
1238         * configure: Regenerated.
1239
1240 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
1241             Richard Henderson  <rth@cygnus.com>
1242
1243         * c-common.h (enum c_tree_index): Add g77 type entries.
1244         (g77_integer_type_node, g77_uinteger_type_node): New.
1245         (g77_longint_type_node, g77_ulongint_type_node): New.
1246         * c-decl.c (init_decl_processing): Initialize them.
1247
1248 2000-05-18  Richard Henderson  <rth@cygnus.com>
1249
1250         * config/h8300/h8300.md (subs patterns): Use %G to negate.
1251
1252         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
1253         (small_power_of_two): Likewise; use exact_log2.
1254         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
1255         (output_adds_subs): Remove.
1256         (two_insn_adds_subs_operand): New.
1257         (split_adds_subs): New.
1258         * config/h8300/h8300-protos.h: Update.
1259         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
1260         (CONST_OK_FOR_L): Match strict adds operands.
1261         (CONST_OK_FOR_N): Match struct subs operands.
1262         * config/h8300/h8300.md (adds_subs insns): Remove.
1263         (addhi patterns): Output adds/subs directly.
1264         (addsi_h8300h): Likewise.
1265         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
1266
1267 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
1268
1269         * cppexp.c (parse_assertion): New.
1270         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
1271         (_cpp_parse_expr): Remove case '#'.  Don't set
1272         parsing_if_directive.
1273         * cpphash.c (collect_objlike_expansion,
1274         collect_funlike_expansion, collect_params,
1275         _cpp_create_definition): The list no longer has a trailing
1276         VSPACE token.
1277         * cpphash.h (enum node_type): Add T_ASSERTION.
1278         (struct hashnode): Remove aschain, add pred.
1279         (struct predicate): New.
1280         Update prototypes.
1281
1282         * cpplex.c (expand_token_space): Handle both offset and
1283         nonoffset lists.
1284         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
1285         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
1286         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
1287         _cpp_equiv_toklists): New.
1288         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
1289         stop at any single-character token, not just newline.
1290         (_cpp_lex_token): Remove special cases for #define and #if.
1291         (cpp_get_token): Expect # as a separate token type.  Remove
1292         DIRECTIVE case.
1293         (_cpp_get_directive_token): Remove DIRECTIVE case.
1294         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
1295
1296         * cpplib.c (_cpp_check_directive): Set dirno and
1297         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
1298         (_cpp_handle_directive): Run # <number> through the same logic
1299         as normal directives.
1300         (do_define): Don't set parsing_define_directive.  Use
1301         _cpp_scan_until.  The list does not have a VSPACE at the end.
1302         (do_if): Save, clear, and restore only_seen_white around 
1303         _cpp_parse_expr.
1304         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
1305         (do_assert, do_unassert): Rewrite.
1306
1307         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
1308         (LIST_OFFSET): New flag.
1309         (struct cpp_toklist): Replace dir_handler and dir_flags with
1310         dirno and flags.
1311         (struct cpp_reader): Remove parsing_if_directive and
1312         parsing_define_directive.
1313
1314 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1315
1316         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
1317         following the cabs decl which terminate on the following line.
1318         Add the corresponding test_text case.
1319
1320 2000-05-18  Neil Booth  <NeilB@earthling.net>
1321
1322         * cppinit.c (cpp_reader_init): Initialise col_adjust and
1323         default tab stop size.
1324         (no_num, OPT_ftabstop): New.
1325         (handle_option): Handle "ftabstop=" command-line option.
1326         (print_help): Document it.
1327         * cpplex.c (COLUMN): Remove.
1328         (handle_newline): Reset col_adjust.
1329         (skip_whitespace): Update col_adjust as tabs encountered.
1330         (_cpp_lex_line): Update to use col_adjust.  Call
1331         skip_whitespace for all whitespace.
1332         * cpplib.h (struct cpp_options): New member tabstop.
1333         (struct cpp_reader): New member col_adjust.
1334         (CPP_BUF_COL): Update.
1335         (CPP_BUF_COLUMN): New.
1336         * cpp.texi: Document "-ftabstop=" command line option.
1337
1338 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
1339
1340         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
1341         files.
1342         * configure: Rebuilt.
1343
1344 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
1345
1346         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
1347
1348         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
1349         HOST_BITS_PER_WIDE_INT is >= 64.
1350
1351 2000-05-17  Richard Henderson  <rth@cygnus.com>
1352
1353         * jump.c (jump_optimize_1): Remove inactive but real insns
1354         in jump-to-next-insn optimization.
1355
1356 2000-05-17  Richard Henderson  <rth@cygnus.com>
1357
1358         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
1359         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
1360         Don't call recompute_reg_usage if no_new_pseudos is true.
1361         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
1362         Return true if we did work; update global life information.
1363         * basic-block.h (optimize_mode_switching): Update decl.
1364
1365 2000-05-17  Neil Booth  <neilb@earthling.net>
1366
1367         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
1368
1369 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
1370
1371         * cpplib.c: New feature, #pragma system_header.
1372         * cpp.texi: Document special treatment of system headers, and
1373         the various mechanisms to get a header that special treatment.
1374
1375 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1376
1377         * system.h (offsetof): Define at the very end, to ensure we prefer
1378         the platform's definition if available.
1379
1380 2000-05-16  Bruce Korb  <bkorb@gnu.org>
1381
1382         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
1383         * fixinc/server.c: likewise
1384         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
1385         + #ifdef debugging code + use #def constant for
1386         sub-pattern count
1387         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
1388         on C++ math namespace
1389
1390 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1391
1392         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
1393         Don't check the return value of sprintf.  Use asprintf to avoid
1394         buffer overflows.
1395
1396 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
1397
1398         * flags.h (warn_unused_function, warn_unused_label,
1399         warn_unused_parameter, warn_unused_variable, warn_unused_value):
1400         Replace ``warn_unused''.
1401         (set_Wunused): Add declaration.
1402         * toplev.c (set_Wunused): New function.
1403         (warn_unused_function, warn_unused_label, warn_unused_parameter,
1404         warn_unused_variable, warn_unused_value): New variables.
1405         (W_options): Add -Wunused-function, -Wunused-function,
1406         -Wunused-label, -Wunused-parameter, -Wunused-variable and
1407         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
1408
1409         * toplev.c (decode_W_option): Update -Wunused flags by calling
1410         set_Wunused.
1411         * c-decl.c (c_decode_option): Ditto for -Wall.
1412
1413         * stmt.c (expand_expr_stmt, expand_expr_stmt,
1414         warn_about_unused_variables): Replace warn_unused with more
1415         explicit warn_unused_value et.al.
1416         * function.c (expand_function_end): Ditto.
1417         * c-typeck.c (internal_build_compound_expr,
1418         internal_build_compound_expr): Ditto.
1419         * c-decl.c (poplevel, pop_label_level): Ditto.
1420         * toplev.c (check_global_declarations): Replace warn_unused with
1421         check for either warn_unused_function or warn_unused_variable.
1422
1423         * gcc.1, invoke.texi (Warning Options): Document
1424         -Wunused-function, -Wunused-function, -Wunused-label,
1425         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
1426
1427 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
1428
1429         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
1430         $(srcdir), not in the current directory.
1431
1432 2000-05-16  Richard Henderson  <rth@cygnus.com>
1433
1434         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
1435         assembler supports it.
1436         (.fini, .init): Use a gp-relative indirect call.
1437         (__do_global_dtors_aux): Preserve the gp; rebundle.
1438         (__do_frame_setup): Likewise.
1439         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
1440         (.init): Use a gp-relative indirect call.
1441         (__do_global_ctors_aux): Preserve the gp.
1442
1443 2000-05-16  Richard Henderson  <rth@cygnus.com>
1444
1445         * flow.c (commit_one_edge_insertion): Be prepared for a return
1446         insn to be inserted on the edge with a normal jump.
1447         * jump.c (jump_optimize_1): Don't look to create return isns.
1448
1449         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
1450         * jump.c (jump_optimize_1): Likewise.
1451         (returnjump_p): Verify the argument is a JUMP_INSN.
1452         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
1453
1454 2000-05-16  Nick Clifton  <nickc@cygnus.com>
1455
1456         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
1457         GET_RTX_CLASS (GET_CODE ()) == 'i'.
1458         (large_insn_p): Ditto.
1459         (m32r_is_insn): New function: Return true if the insn contains
1460         an executable instruction.
1461         (m32r_adjust_insn): Use m32r_is_insn.
1462         (m32r_sched_reorder): Use m32r_is_insn.
1463         (m32r_sched_variable_issue): Use m32r_is_insn.
1464
1465 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1466
1467         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
1468         VAR_DECL.
1469
1470         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
1471
1472         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
1473         according to given options.
1474
1475 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
1476
1477         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
1478         if X has VOIDmode either.
1479         (LIMIT_RELOAD_CLASS): Similarly.
1480
1481         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
1482         not "general_operand" to match the processor's capabilities.
1483
1484 2000-05-16  Bruce Korb  <bkorb@gnu.org>
1485
1486         * fixinc/README:  corrected return address
1487         * fixinc/check.diff:  regenerate, now that test works
1488         * fixinc/fixfixes.c(format_fix,format_write): reformatted
1489         (char_macro_def_fix,char_macro_use_fix): corrected and
1490         rewrote to use regex to parse the text
1491         * fixinc/inclhack.def: more testing
1492         * fixinc/fixincl.x:  regenerated
1493
1494         * fixinc/inclhack.def: added several "test_text" attributes
1495         changed several fixes to use `c_fix = format'
1496         re-alphabetized the fixes
1497
1498         * fixinc/check.diff: regenerate
1499         * fixinc/fixincl.x: regenerate
1500         * fixinc/check.tpl: added `sparc' and `netinet' to the list
1501         of created dirs
1502
1503
1504 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
1505
1506         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
1507
1508 2000-05-15  Richard Henderson  <rth@cygnus.com>
1509
1510         * toplev.c (rest_of_compilation): Run full jump pass before
1511         find_basic_blocks of flow2.
1512
1513 2000-05-15  Richard Henderson  <rth@cygnus.com>
1514
1515         * jump.c: Fix typos and clarify commentary from last change.
1516         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
1517         (safe_to_remove_jump_p): Remove.
1518         (condjump_label): Use pc_set.
1519
1520 2000-05-15  Richard Henderson  <rth@cygnus.com>
1521
1522         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
1523         that get in the way after reload.
1524         (cond_exec_process_if_block): Skip a label heading THEN block.
1525
1526 2000-05-15  Richard Henderson  <rth@cygnus.com>
1527
1528         * varasm.c (output_constant_pool): Abort instead of converting
1529         (improperly) deleted labels to zero.
1530
1531 2000-05-16  Neil Booth  <NeilB@earthling.net>
1532
1533         * cpplex.c (parse_string2): Update comment.
1534         (cpp_lex_line): No special assertion treatment for '('.
1535         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
1536         * cpplib.h (SYNTAX_ASSERT): Remove.
1537
1538 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1539
1540         * jump.c (condjump_p):  Mark as depreached.
1541         (any_condump_p): New.
1542         (any_uncondump_p): New.
1543         (pc_set): New.
1544         (safe_to_remove_jump_p): New.
1545         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
1546         safe_to_remove_jump_p): Declare.
1547
1548 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1549
1550         * calls.c: Re-install both patches reverted by last patch.
1551         (struct arg_data): New field tail_call_reg.
1552         (initialize_argument_information): Initialize tail_call_reg
1553         (load_register_parameters): New argument flags, use
1554         tail_call_reg when emiting tail call sequence.
1555         (expand_call): Update call of load_register_parameters;
1556         copy unadjusted_args_size to adjusted_args_size.
1557
1558 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1559
1560         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
1561         and bct_p parameters to flags.
1562         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
1563         * rtl.h (loop_optimize): Update prototype.
1564         * toplev.c (rest_of_compilation): Update call of loop_optimize.
1565
1566 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
1567
1568         * calls.c (expand_call): Move expand_start_target_temps call after
1569         start_sequence().
1570
1571 2000-05-15  Neil Booth  <NeilB@earthling.net>
1572
1573         * cpphash.c (trad_stringify, warn_trad_stringify,
1574         collect_params): Make some pointers pointers to const.
1575         * cpplex.c (auto_expand_name_space) Guaranteed to always
1576         expand by at least one character.
1577         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
1578         (struct token_spelling): Use const U_CHAR * rather than PTR.
1579         (expand_name_space): Fix up token pointers if name space
1580         is moved when expanding.
1581         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
1582         parse_string2, save_comment, spell_token, cpp_output_list):
1583         Update so the routines handle tokens with a direct pointer to
1584         their text, rather than an offset into the token's list's namebuf.
1585         (_cpp_lex_line): Rearrange for clarity.
1586
1587         * cpplib.c (_cpp_check_directive): Similarly.
1588         (do_define): Make SYM a pointer to const.
1589         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
1590         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
1591         (TOK_OFFSET): Delete.
1592         (TOK_NAME): Update.
1593
1594 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
1595
1596         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
1597         64-bit ABI.
1598
1599         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE 
1600         into account.
1601         (logical_u_operand): Delete.
1602         (non_logical_cint_operand): Rewrite to take MODE into account.
1603         (non_logical_u_cint_operand): Delete.
1604         (boolean_operator): New function.
1605         (print_operand): Add new %q operand.
1606         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
1607         remove logical_u_operand and non_logical_u_cint_operand,
1608         update logical_operand and non_logical_cint_operand.
1609         * config/rs6000/rs6000.md: Rewrite the patterns for performing
1610         logical operations to use %q.
1611
1612         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
1613         (movdi): Make similar to movsi.
1614         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
1615         is no such thing as a DImode CONST_DOUBLE.
1616         * config/rs6000/rs6000.c (output_toc): Likewise.
1617         
1618         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
1619         codes when old mnemonics are in use.  Print register names
1620         for cc registers when requested.
1621
1622         * optabs.c (expand_float): Don't allow mode widening that causes
1623         double rounding.
1624
1625         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
1626         flags to their current names -maix64 and -maix32.
1627
1628 2000-05-14  Bruce Korb  <bkorb@gnu.org>
1629
1630         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
1631         and/or after current text of file
1632         * fixinc/fixlib.c(must_malloc):
1633         * fixinc/fixlib.h(must_malloc): + reformatting
1634         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
1635         with usages of ``c_fix = wrap;''
1636         Add several tests and use the ``c_fix = format'' fixer more.
1637         * fixinc/fixincl.x: regen
1638         * fixinc/check.diff: regen
1639         * fixinc/check.tpl: emit the associated header with the missing
1640         test message
1641
1642 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
1643
1644         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
1645         variables $src and $dst.
1646         
1647 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
1648
1649         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
1650         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
1651         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
1652         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
1653         fields. 
1654         (set_message_prefixing_rule): Declare.
1655
1656         * diagnostic.c: (current_prefixing_rule): New variable.
1657         (set_message_prefixing_rule): Define.
1658         (output_set_prefix): Adjust buffer->emitted_prefix_p.
1659         (init_output_buffer): Adjust Initialization.
1660         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
1661         
1662 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
1663
1664         * ifcvt.c (if_convert): Do not free NULL.
1665
1666 2000-05-12  Nick Clifton  <nickc@cygnus.com>
1667
1668         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
1669         to move a double word value.
1670         (di_operand): New function: Return true if the operand is suitbale
1671         for a double word move operation.
1672         (nonimmediate_di_operand): New function: Return true if the
1673         operand is a DImode register or MEM.
1674
1675         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
1676         nonimmediate_di_operand.
1677
1678         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
1679         nonimmediate_di_operand.
1680
1681         * config/fr30/fr30.md (movdi): New pattern.  Required because
1682         other patterns generate DImode results.
1683         (movdi_insn): New pattern.
1684
1685 2000-05-12  Richard Henderson  <rth@cygnus.com>
1686
1687         * config/alpha/alpha.c (struct shadow_summary): Define
1688         bitfields as type unsigned int.
1689
1690 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
1691
1692         * config/avr/t-avr: Added definition of FLOAT while generates
1693         fp-bit.c
1694
1695         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
1696         peepholes for tst+jump = sbrs/sbrc optimization.
1697
1698 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
1699
1700         * expr.c (emit_push_insn): Do not adjust stack pointer when
1701         preallocating.
1702
1703 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
1704
1705         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
1706         * system.h (offsetof): ... to here.
1707
1708 2000-05-12  Richard Henderson  <rth@cygnus.com>
1709
1710         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
1711         * final.c (final_end_function): Use app_disable.  Rearrange note
1712         handling into a switch.  Emit deleted labels.
1713         (output_asm_label): Generate label strings for deleted labels.
1714         * flow.c (tail_recursion_label_list): New.
1715         (find_basic_blocks_1): Set label_value_list directly.  Collect list
1716         of tail recursion labels from call_placeholders.  Don't add deleted
1717         labels to the label value list.
1718         (cleanup_cfg): Use free_EXPR_LIST_list.
1719         (flow_delete_insn_chain): Turn non-removable labels into notes.
1720         (flow_delete_block): Don't disable deleting the block because of
1721         a non-removable label.
1722         (tail_recursion_label_p): New.
1723         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
1724         because of a label.
1725         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
1726         jump table.
1727         (merge_blocks): Disable a merge because of tail recursion labels.
1728         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
1729         Use a more accurate measure of not merging the join block.
1730         (find_if_block): Don't disable conversion because of a label.
1731         (find_if_case_1, find_if_case_2): Likewise.
1732         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
1733         element when copying.
1734         (squeeze_notes): Also leave EH notes.
1735         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
1736         REG_LABEL notes.
1737         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
1738         deleting a label.
1739         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
1740         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
1741         referring to a deleted label.  Convert tail handling to a switch.
1742         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
1743         for NOTE_INSN_DELETED_LABEL.
1744         (NOTE): Fix commentary.
1745         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
1746         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
1747         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
1748         (LABEL_NUSES, LABEL_REFS): Likewise.
1749         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
1750
1751 2000-05-12  Bruce Korb  <bkorb@gnu.org>
1752
1753         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
1754         * fixinc/check.diff: updated
1755         * fixinc/inclhack.def: corrected & added some test_text-s
1756         * fixinc/genfixes: removed unneeded options to autogen invocation
1757         * fixinc/fixincl.tpl: Specified the output file
1758         * fixinc/fixfixes.c: visual appearance
1759         * fixinc/fixincl.x: regenerate
1760
1761 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
1762
1763         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
1764         CTRL_defn_fix): Delete.
1765         (fix_char_macro_defines, fix_char_macro_uses): Rename to
1766         char_macro_def_fix and char_macro_use_fix, respectively.  Put
1767         them into the FIXUP_TABLE.  Get the string to search for from
1768         a c_fix_arg.
1769
1770         (format_write): New function.
1771         (format_fix): Use it.
1772
1773         (FIX_PROC_HEAD): Constify text parameter.
1774         (machine_name_fix): Constify all char *s.
1775         * fixtests.c (skip_quote): Remove double static.
1776
1777         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
1778         ctrl_use_quotes): Update for new scheme.
1779         * fixincl.x: Regenerate.
1780
1781 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
1782
1783         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
1784         DWARF2_DEBUG.
1785         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
1786         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
1787
1788 2000-05-11  Robert Lipe <robertlipe@usa.net>
1789
1790         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
1791         * fixincl.x: Regenerate.
1792
1793 2000-05-11  Richard Henderson  <rth@cygnus.com>
1794
1795         * calls.c: Revert both 05-09 patches.
1796
1797 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
1798
1799         * config/mn10300/mn10300.c (print_operand): Print FP constants in
1800         hexadecimal.
1801         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
1802         for FP values.
1803
1804         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
1805         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
1806
1807 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
1808
1809         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
1810
1811 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
1812
1813         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
1814
1815 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
1816
1817         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
1818         * config/avr/avr.c (jump_over_one_insn_p): New function.
1819         * config/avr/avr.md: New peepholes added. Output test and
1820         conditional jump to "sbrc" or "sbrs" command.
1821
1822 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
1823
1824         * cppmain.c (main): Use IS_DIR_SEPARATOR.
1825
1826 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
1827
1828         * except.c (find_exception_handler_labels_1): New function.
1829         (find_exception_handler_labels): Split into two functions, dive
1830         into CALL_PLACEHOLDERs when looking for exception handler labels.
1831
1832 2000-05-11 Stan Cox <scox@cygnus.com>
1833
1834         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
1835         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
1836         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
1837
1838 2000-05-11  Bruce Korb  <bkorb@gnu.org>
1839
1840         * fixinc/fixfixes.c (double_slash_fix):  obsolete
1841         (else_endif_label_fix): obsolete
1842         (format_fix):  new, unused as yet
1843         (main): obsolete
1844         * fixinc/fixlib.h: added fix description struct for use by format_fix
1845         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
1846         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
1847         modules.  Removed the vestiges of the script version.
1848         Added support for "make check".
1849         * fixinc/check.diff: base diff file (needs work!!)
1850         * fixinc/check.tpl: quiet the fixup output
1851         * fixinc/fixtests.c (main): obsolete
1852         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
1853         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
1854
1855 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
1856
1857         * toplev.c (rest_of_compilation): Remove dead code after
1858         combine.
1859
1860 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
1861
1862         * cpphash.c (collect_funlike_expansion): Make "# is not
1863         followed by a macro argument name" a pedwarn, not an error.
1864         Preserve the # in the output.  Suppress the warning if lang_asm.
1865
1866 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
1867
1868         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
1869         * configure: Rebuilt.
1870
1871 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
1872
1873         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
1874
1875 2000-05-10  Kazu Hirata  <kazu@hxi.com>
1876
1877         * combine.c (try_combine): Fix a typo.
1878
1879 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
1880
1881         * config/ia64/ia64.md (insv): Add comment.
1882
1883 2000-05-10  Richard Henderson  <rth@cygnus.com>
1884
1885         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
1886         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
1887         dependancies on FPBIT and DPBIT.
1888
1889 2000-05-10  Nick Clifton  <nickc@redhat.com>
1890
1891         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
1892         when optimising for size.
1893         (mark_used_regs:) Ditto.
1894         (try_pre_increment_1): Ditto.
1895
1896 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
1897
1898         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
1899         Make error message friendlier.
1900
1901         * cpphash.h (struct hashnode): Use struct hack for name
1902         member.
1903         * cpphash.c (struct hashdummy): New.
1904         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
1905         (make_HASHNODE): No need to set ->name pointer.  Correct
1906         setting of p.
1907         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
1908
1909 2000-05-10  Richard Henderson  <rth@cygnus.com>
1910
1911         * flow.c (find_basic_blocks_1): Remove any spare bb_note
1912         after completion.
1913
1914 2000-05-10  Bruce Korb  <bkorb@gnu.org>
1915
1916         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
1917
1918 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
1919
1920         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
1921         after we enter .debug.
1922
1923 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
1924
1925         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
1926         abstract instance of a nested inline function.
1927
1928         * stor-layout.c (finish_record_layout): finalize_type_size
1929         before laying out the pending_statics.
1930
1931 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
1932
1933         * cpplex.c (spell_token): New function.
1934         (spell_string, spell_comment, spell_name): fold into
1935         spell_token.    
1936         (I, S): Add macros.
1937         (E, H): Remove macros.
1938         (save_comment): Save comment opening characters too.
1939         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
1940         handling.
1941         * cpplib.h (I, S): Add macros.
1942         (E, H): Remove macros.
1943         (TTYPE_TABLE): Update entries for new speller.
1944         (SYNTAX_ASSERT): Remove.
1945
1946 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
1947
1948         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
1949         when removing escaped newlines.  Reverse sense of test for
1950         escaped newline.
1951
1952 2000-05-09  Richard Henderson  <rth@cygnus.com>
1953
1954         * flow.c (find_basic_blocks_1): Do not delete the first
1955         bb_note we run across.
1956         (create_basic_block): Use reorder_insns to move an existing
1957         bb_note to the correct place.
1958
1959 2000-05-09  Richard Henderson  <rth@cygnus.com>
1960
1961         * calls.c (expand_call): Increment currently_expanding_call
1962         before calling optimize_tail_recursion.
1963
1964 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1965
1966         * reload1.c (reload_combine): Fix errors in last change.
1967
1968 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
1969
1970         * gcc.c (used_arg): Skip over a semicolon at the end of the
1971         split-up loop; don't break out of it.
1972
1973         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
1974         (tree.o): Depend on output.h.
1975
1976         * c-decl.c (pending_invalid_xref_file,
1977         current_function_prototype_file): Constify.
1978         (pushdecl): Constify a local char *.
1979         (define_label): Constify filename parameter.
1980         * c-lex.c (init_parse): Constify parameter and return value.
1981         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
1982         * c-tree.h: Update prototypes.
1983         * c-parse.in: Constify filename member of %union, and if_stmt_file.
1984         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
1985         objc/objc-parse.c: Regenerate.
1986
1987         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
1988         * dwarfout.h: Update prototypes.
1989         * expr.c (expand_expr): Constify a local char *.
1990         * flags.h: Constify main_input_filename.
1991         * function.c (expand_function_end): Constify filename parameter.
1992         * genrecog.c (make_insn_sequence): Use a character array for
1993         c_test_pos.
1994         (main): Remove unused variables.
1995         * input.h: Constify input_filename, main_input_filename, and
1996         file_stack.name.  Update prototypes.
1997         * output.h: Declare first_global_object_name and
1998         weak_global_object_name here, as const char *.
1999         * stmt.c (expand_asm_operands): Constify filename parameter.
2000         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
2001         Constify filename parameter.
2002         (input_filename, main_input_filename): Constify.
2003         * toplev.h: Update prototypes.
2004         * tree.c: Include output.h.  Don't declare
2005         first_global_object_name or weak_global_object_name.  Clean up string
2006         bashing in get_file_function_name_long.
2007         * tree.h (struct tree_decl): Constify filename member.
2008         (input_filename): Constify.
2009         Update prototypes.
2010         * varasm.c (first_global_object_name, weak_global_object_name):
2011         Constify.
2012         (assemble_start_function, assemble_variable): Clean up string bashing.
2013
2014         * gcc.c: Constify all spec-related strings initialized,
2015         transitively, from string constants.  Constify all strings
2016         and string variables related to multilibs.
2017         (set_spec, read_specs): Cast argument to free to PTR.
2018         (used_arg): Do not modify multilib_matches.  Use strncmp plus
2019         length comparison to compare multilib switches.
2020         * genmultilib: Constify everything declared in multilib.h.
2021
2022 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
2023
2024         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
2025         as deleted.
2026
2027 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
2028
2029         * config/avr/avr-protos.h (extra_constraint): change a type of
2030         second argument from char to int to avoid warnings.
2031         (asm_output_byte): Likewise.
2032         
2033         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
2034         (initial_elimination_offset): Handle elimination from
2035         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
2036         (legitimate_address_p): Use MAX_LD_OFFSET.
2037         (legitimize_address): Likewise.
2038         (out_movqi_r_mr): Likewise.
2039         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
2040         (out_movsi_r_mr): Use MAX_LD_OFFSET.
2041         (out_movsi_mr_r): Likewise.
2042         (out_movqi_mr_r): Likewise.
2043         (out_movhi_mr_r): Likewise.
2044         (notice_update_cc): Correct CC for the ashrqi3 with the shift
2045         count as CONST_INT != 6.
2046         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
2047         shift count is a CONSTANT_P, but not a CONST_INT.
2048         (ashlhi3_out): Coding style modifications.
2049         (ashlsi3_out): Likewise.
2050         (ashrhi3_out): Likewise.
2051         (ashrsi3_out): Likewise.
2052         (lshrhi3_out): Likewise.
2053         (lshrsi3_out): Likewise.
2054         (ashrqi3_out): Generate shift for any known constant count without
2055         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
2056         but not a CONST_INT.
2057         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
2058         shift count is a CONSTANT_P, but not a CONST_INT. 
2059         (extra_constraint): change a type of
2060         second argument from char to int to avoid warnings.
2061         (asm_output_byte): Likewise.
2062         (asm_file_end): Output size generated commands count as a hex
2063         number too.
2064
2065         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
2066
2067         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
2068         removed.
2069         (ashlqi3): Values of "length" attribute changed. Shift count
2070         uses constraints 'n' instead of 'i'.
2071         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
2072         shifts without clobber register.
2073         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
2074         (call_insn): Correct test for which_alternative == 1 (was 0).
2075         (call_value_insn): Likewise.
2076         
2077         * config/avr/t-avr: Remove definition of FLOAT while generates
2078         fp-bit.c
2079
2080 2000-05-09  Bruce Korb  <bkorb@gnu.org>
2081
2082         * fixinc/check.tpl:  Template for checking fixes
2083         * fixinc/inclhack.def:  Added 'test_text' for many fixes
2084         disable hpux8_bogus_inlines on SCO
2085         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
2086
2087 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2088
2089         * calls.c (expand_call): Reorganize somewhat in order
2090         to avoid unnecesary recalculation inside loop and make
2091         tail call failure code cleaner.
2092         
2093 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2094
2095         * alias.c (nonlocal_reference_p): Minor reformatting.
2096         * reload.c (find_equiv_reg): Simplify logic for
2097         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
2098         some some reformatting.
2099         * reload1.c (reload_combine): Don't assume everything in
2100         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
2101
2102 2000-05-08  Richard Henderson  <rth@cygnus.com>
2103
2104         * final.c (current_insn_predicate): New.
2105         (final_scan_insn): Set it.
2106         * output.h (current_insn_predicate): Declare.
2107
2108         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
2109         Attach it to call insns.
2110         (cond_exec_process_if_block): Track probability for true and
2111         false branches.
2112         (dead_or_predicable): Likewise.
2113
2114         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
2115         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
2116         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
2117         (estimate_probability, expected_value_to_br_prob): Use them.
2118
2119         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
2120         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
2121         (ia64_expand_prediction): New.
2122         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
2123         as needed after calls.
2124         (ia64_epilogue_uses): Mark b0 used.
2125         * config/ia64/ia64.md (beq_true, beq_false): Remove.
2126         (bne_true, bne_false): Remove.
2127         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
2128         (br_true, br_false): New.  Use predicate_operator and
2129         ia64_expand_prediction.
2130         (return_true, return_false): Likewise.
2131         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
2132         (call_internal1, call_value_internal): Likewise.
2133         (call_value_internal1, call_multiple_values_internal1): Likewise.
2134
2135         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
2136
2137         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
2138
2139 2000-05-08  Richard Henderson  <rth@cygnus.com>
2140
2141         * rtlanal.c (may_trap_p): Consider old-style and volatile
2142         asms to trap.
2143
2144 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
2145
2146         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
2147
2148 2000-05-08  Richard Henderson  <rth@cygnus.com>
2149
2150         * config/ia64/ia64.h (predicate_operator): Declare.
2151
2152         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
2153         of existance.
2154
2155         * gensupport.c (process_rtx): Copy and post-process each member
2156         of the define_insn rtvec individually.
2157
2158 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
2159
2160         * cpplex.c (spell_token): New function.
2161         (TOKEN_LEN): Add 1 for whitespace.
2162         (_cpp_lex_file): Update to use spell_token.
2163         * cpplib.h (E): Remove.
2164         (TTYPE_TABLE): Update CPP_VSPACE entry.
2165
2166 2000-05-08  Richard Henderson  <rth@cygnus.com>
2167
2168         * flow.c (init_propagate_block_info): Watch out for conditional
2169         branch to next instruction, and thus one outgoing edge.
2170
2171         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
2172         for global register variables; don't special case __[CD]TOR_LIST__;
2173         mind ggc_p for string allocation.
2174
2175 2000-05-08  Nick Clifton  <nickc@cygnus.com>
2176
2177         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
2178
2179 2000-05-08  Bruce Korb  <bkorb@gnu.org>
2180
2181         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
2182         i?86-*-msdosdjgpp* no longer uses fixincludes
2183         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
2184         * fixinc/inclhack.sh:  deleted
2185         * fixinc/hackshell.tpl:  deleted
2186         * fixinc/inclhack.tpl:  deleted
2187         * fixinc/Makefile.in:  Remove dependencies on above
2188         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
2189
2190 2000-05-08  Andreas Jaeger  <aj@suse.de>
2191
2192         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
2193         support.
2194
2195 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
2196
2197         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
2198         substitutions.
2199
2200 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
2201
2202         * cpplex.c: Move new lexer definitions and prototypes
2203         to top.  Conditional include these and the code if
2204         NEW_LEXER is defined.  Rename functions whose names
2205         clash if this code included.
2206
2207 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
2208
2209         * rtl.def (COND_EXEC): Clarify.
2210
2211         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
2212         same fashion as zero_extendsidi2.
2213
2214 2000-05-06  Richard Henderson  <rth@cygnus.com>
2215
2216         * config/ia64/ia64.c (predicate_operator): New.
2217         (ia64_print_operand): Handle 'J'.
2218         (rtx_needs_barrier): Handle COND_EXEC.
2219         * config/ia64/ia64.h (BRANCH_COST): Define.
2220         (PREDICATE_CODES): Update.
2221         * config/ia64/ia64.md: Docuement used unspec values.
2222         (attr predicable): New.
2223         (movxf, movxf_internal): New.
2224         (extendsfdf2): Don't comment out nop.
2225         (floatdidf2): Remove.
2226         (truncxfsf2, truncxfdf2, floatdixf2): New.
2227         (abssi2, absdi2): Put the neg in the "true" slot.
2228         (conditional branch instructions): Mark not predicable.
2229         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
2230         (abs*_internal): Likewise.
2231         (alloc, set_bsp): Mark not predicable.
2232         (barrier, insn_group_barrier, flush_cache): Likewise.
2233         (define_cond_exec): New.
2234
2235 2000-05-06  Richard Henderson  <rth@cygnus.com>
2236
2237         * c-decl.c: Include "tm_p.h".
2238
2239         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
2240         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
2241         (ia64_expand_op_and_fetch): Declare.
2242         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
2243         (setjmp_operand): Constify variables for XSTR.
2244         (ia64_encode_section_info): Likewise.
2245         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
2246         values to int.
2247         (ia64_asm_output_external): Constify name.
2248         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
2249         (process_for_unwind_directive): Provide switch default.
2250         (ia64_expand_compare_and_swap): Remove unused variables.
2251         (ia64_expand_builtin): Likewise.
2252         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
2253         for printing.
2254
2255         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
2256         (symbolic_operand, function_operand, setjmp_operand): Likewise.
2257         (shift_count_operand, shift_32bit_count_operand): Likewise.
2258         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
2259         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
2260         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
2261         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
2262         (ia64_expand_builtin): Likewise.
2263         (call_multiple_values_operation): Make dest_regno unsigned.
2264
2265 2000-05-06  Richard Henderson  <rth@cygnus.com>
2266
2267         * rtl.def (DEFINE_COND_EXEC): New.
2268         * md.texi: Document it.
2269
2270         * gensupport.c (input_file): Remove.
2271         (struct queue_elem): Add lineno.
2272         (rtx_ready_queue): Remove.
2273         (errors): New.
2274         (predicable_default): New.
2275         (predicable_true, predicable_false): New.
2276         (define_attr_queue, define_attr_tail): New.
2277         (define_insn_queue, define_insn_tail): New.
2278         (define_cond_exec_queue, define_cond_exec_tail): New.
2279         (other_queue, other_tail): New.
2280         (queue_pattern): New.
2281         (process_rtx): Add patterns to the appropriate queues.
2282         (is_predicable, identify_predicable_attribute): New.
2283         (n_alternatives, collect_insn_data): New.
2284         (alter_predicate_for_insn, alter_test_for_insn): New.
2285         (shift_output_template, alter_output_for_insn): New.
2286         (process_one_cond_exec, process_define_cond_exec): New.
2287         (init_md_reader): Read the entire file.  Process define_cond_exec.
2288         (read_md_rtx): Return elements from the queues.
2289
2290 2000-05-06  Richard Henderson  <rth@cygnus.com>
2291
2292         * flow.c (mark_set_1): Don't update conditional life info
2293         if the register is not_dead.
2294
2295 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
2296
2297         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
2298         (mostlyclean): Also delete fixincl, fixinc.sh, and
2299         specs.ready, and make clean in the fixinc subdir.
2300
2301 2000-05-06  Richard Henderson  <rth@cygnus.com>
2302
2303         * Makefile.in (gensupport.o): Compile for the host.
2304         (host-prefix gensuuprt.o): Remove.
2305         (genflags.o): Depend on gensupport.h and OBSTACK_H.
2306         (genattrtab.o): Likewise.
2307         (gencodes.o): Depend on gensupport.h.
2308         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
2309         (genpeep.o, genattr.o, genoutput.o): Likewise.
2310
2311         * gensupport.c (obstack, rtl_obstack): New.
2312         (init_md_reader): Initialize rtl_obstack.
2313         * gensupport.h (rtl_obstack): Declare.
2314         (message_with_line): Declare.
2315
2316         * genattr.c: Remove all traces of obstack manipulation.
2317         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
2318         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
2319
2320         * genattrtab.c (obstack, rtl_obstack): Remove.
2321         (main): Don't init rtl_obstack.
2322         * genflags.c: Likewise.
2323
2324         * genrecog.c (message_with_line): Move ...
2325         * gensupport.c: ... here.
2326
2327 2000-05-06  Richard Henderson  <rth@cygnus.com>
2328
2329         * c-typeck.c (build_c_cast): Remove dead code.
2330
2331 2000-05-06  Richard Henderson  <rth@cygnus.com>
2332
2333         * flow.c (split_edge): Don't allocate global_live_at_start for
2334         the new block unless the old blocks had them as well.
2335
2336         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
2337
2338         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
2339         test_bb if a or b uses x.
2340
2341 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
2342
2343         * cpphash.h: Remove conditional #define of __extension__.
2344         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
2345         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
2346         (ENABLE_RTL_CHECKING only).
2347         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
2348         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
2349         (ENABLE_TREE_CHECKING only).
2350         * varray.h: Add __extension__ to VARRAY_CHECK macro
2351         (ENABLE_CHECKING only).
2352
2353 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2354
2355         Use new tail-calling mechanism on ARM.
2356         * arm.md (sibcall, sibcall_value): New expands.
2357         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
2358         (tailcalling peepholes): Delete.
2359         (push_multi): Simplify.
2360         * arm.c (lr_save_eliminated): Delete definition.
2361         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
2362         (output_return_instruction): Remove checks on lr_save_eliminated.
2363         (output_arm_prologue): Remove old tail-calling code.
2364         (arm_output_epilogue): New parameter, really_return.  All callers
2365         changed.  Handle tail-calling epilogues.
2366         * arm.h (lr_save_eliminated): Delete declaration.
2367         (frame_pointer_needed): Delete declaration.
2368         * arm-protos.h (arm_output_epilogue): Adjust prototype.
2369
2370         * arm.md (is_thumb): Examine symbol thumb_code, not expression
2371         TARGET_ARM.
2372         * arm.c (thumb_code): Define it.
2373         (arm_override_options): Set it.
2374         * arm.h (thumb_code): Declare it.
2375         
2376 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2377
2378         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
2379
2380 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2381
2382         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
2383         bogus clobber to insns.
2384         (load_multiple_operation, store_mulitple_operation): Don't check 
2385         for it.
2386         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
2387
2388         * arm.md (and_scc, ior_scc): Add missing mode.
2389
2390         * arm.md (call_value_symbol): Remove predicate from op2.
2391
2392         * arm.h (SPECIAL_MODE_PREDICATES): Define.
2393         
2394 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2395
2396         * expr.c (get_subtarget): New function.
2397         (force_operand, expand_expr, do_store_flag): Use it.
2398
2399         * toplev.c (compile_file): Don't take strlen of NAME if null.
2400
2401 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
2402
2403         * xcoffout.c (xcoff_current_include_file,
2404         xcoff_current_function_file, xcoff_lastfile): Constify char *.
2405         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
2406         char *'.
2407         (xcoffout_declare_function): Make name 'const char *'.
2408         (xcoffout_end_epilogue): Make fname 'const char *'
2409         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
2410         xcoffout_declare_function, xcoffout_source_line): Match above.
2411
2412         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
2413         -maix64 is error.
2414         * rs6000.c (print_operand): Fix lossage typo.
2415         (output_cbranch): Remove "cr" decoration for now.
2416         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'. 
2417
2418 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
2419
2420         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
2421         constant count.
2422
2423 2000-05-05  Bruce Korb  <bkorb@gnu.org>
2424
2425         * fixinc/genfixes: Improve the matching for make target names
2426
2427 2000-05-05  Catherine Moore  <clm@cygnus.com>
2428
2429         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
2430         attribute to the decl.
2431         * c-decl.c (pushdecl): Propagate the USED attribute to the 
2432         type copy.
2433
2434 2000-05-05  Richard Henderson  <rth@cygnus.com>
2435
2436         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
2437         same way emit_group_load does.
2438
2439 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
2440
2441         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
2442
2443         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
2444         (main): Likewise.
2445
2446 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
2447
2448         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
2449
2450 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
2451
2452         * config/openbsd.h (LINK_SPEC): pass correct flags to ld 
2453         to support -shared, on platforms with dynamic libraries.
2454
2455 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
2456
2457         * system.h (S_ISBLK): Provide fallback definition.
2458
2459 2000-05-05  Geoff Berry  <geoffb@bops.com>
2460
2461         * extend.texi (Extended Asm): Document inability to give asm
2462         statements access to condition codes.
2463
2464 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
2465
2466         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
2467         as arg 2 of UNIQUE_SECTION.
2468
2469 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
2470
2471         * predict.c: Remove May 4 change.
2472         * bb-reorder.c (make_reorder_chain): Do not perform block movement
2473         if we have predicted the branch at 50-50 probability.
2474
2475 2000-05-05  Richard Henderson  <rth@cygnus.com>
2476
2477         * flow.c (init_propagate_block_info): Fix merge error
2478         in HAVE_conditional_execution code.
2479
2480 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
2481
2482         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
2483         shift cycle for unknown shift count. Also generates dec + brpl.
2484         (ashlqi3_out): Don't generate dec + brpl which now generates by
2485         `out_shift_with_cnt'.
2486         (ashlhi3_out): Likewise.
2487         (ashlsi3_out): Likewise.
2488         (ashrqi3_out): Likewise.
2489         (ashrhi3_out): Likewise.
2490         (ashrsi3_out): Likewise.
2491         (lshrqi3_out): Likewise.
2492         (lshrhi3_out): Likewise.
2493         (lshrsi3_out): Likewise.
2494
2495 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
2496
2497         * gcc.c (free_split_directories): Correct typo in explanation
2498         of make_relative_prefix.
2499
2500 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
2501
2502         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
2503         comparison codes to branch_comparison_operator.
2504
2505 2000-05-04  Richard Henderson  <rth@cygnus.com>
2506
2507         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
2508
2509 2000-05-04  Richard Henderson  <rth@cygnus.com>
2510
2511         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
2512         (DPBIT_FUNCS): Remove _sf_to_usi.
2513         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
2514
2515         * ifcvt.c (noce_process_if_block): Fail if A or B modified
2516         between condition and jump.
2517
2518         * libgcc2.c (near eh_context_specific): Comment #endif string.
2519         * longlong.h: Don't use strings with embedded newlines.
2520
2521 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
2522
2523         * config/rs6000/rs6000-protos.h: Add output_cbranch.
2524         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
2525         (print_operand): Delete %t and %T codes.
2526         (output_cbranch): New function.  Support branch prediction.
2527         * config/rs6000/rs6000.md: Use output_cbranch for
2528         conditional branches and returns.
2529
2530 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
2531
2532         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
2533         * stor-layout.c (place_field): Likewise.
2534         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
2535         * expr.c (store_expr): Make align unsigned.
2536         * explow.c (plus_constant_wide): Make low words unsigned.
2537         * expmed.c (choose_multiplier): Likewise.
2538         * fold-const.c (fold):  Likewise.
2539         * tree.h (build_int_2): Likewise.
2540         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
2541         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
2542         (init_emit): Change cast to unsigned char*.
2543         * varasm.c (compare_constant_1): Add cast to char*.
2544         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
2545         * reload1.c (reload): Likewise.
2546
2547         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
2548
2549 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
2550
2551         * predict.c (estimate_probability): If no prediction was found, then
2552         predict the successor that is the next physical block (if such a
2553         successor exists).
2554
2555 2000-05-04  Richard Henderson  <rth@cygnus.com>
2556
2557         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
2558
2559 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2560
2561         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
2562
2563 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
2564
2565         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move 
2566         attribute macros from here ...
2567         (CPP_SPEC): to here.
2568         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
2569         (CPP_SPEC): Likewise.
2570         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. 
2571
2572         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
2573         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
2574
2575 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2576
2577         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
2578         
2579         * diagnostic (vbuild_message_string, build_message_string,
2580         build_location_prefix, output_get_prefix, init_output_buffer,
2581         output_notice, vline_wrapper_message_with_location,
2582         v_message_with_decl, default_print_error_function): De-constify.
2583         (set_real_maximum_length): Prototype.
2584
2585         * diagnostic.h (struct output_buffer, init_output_buffer,
2586         output_get_prefix, output_set_prefix): De-constify.
2587
2588         * function.c (init_function_start): Constify.
2589
2590         * gensupport.c (remove_constraints, process_rtx): Prototype.
2591
2592         * gthr-posix.h: Indent uses of #pragma.
2593
2594         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
2595         Prototype.
2596
2597         * predict.c (find_expected_value): Delete prototype.
2598         (expected_value_to_br_prob): Initialize variable `ev_reg'.
2599
2600         * sbitmap.h (debug_sbitmap): Prototype.
2601
2602         * ssa.c (compute_coalesced_reg_partition): Prototype.
2603
2604         * stor-layout.c (debug_rli): Prototype.
2605
2606         * tree.h (round_down): Prototype.
2607         (init_function_start): Constify.
2608
2609 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
2610
2611         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
2612         (overly conservative).  Change extern inline wrappers to
2613         static inline, define them always, use PARAMS properly.
2614         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
2615         whitespace warnings for \f and \v at the beginning of a line.
2616
2617 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
2618
2619         * haifa-sched.c (schedule_insns): Free the flow edge list when it
2620         is no longer needed
2621
2622 2000-05-04  Bruce Korb  <bkorb@gnu.org>
2623
2624         * fixincl/inclhack.def: added broken_cabs -
2625         Remove `extern double cabs' declarations from math.h
2626         * fixincl/inclhack.sh: regen
2627         * fixincl/fixincl.x: regen
2628         * fixincl/fixincl.c: Remove BOGOSITY code
2629         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
2630
2631 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2632
2633         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
2634         MEM_ALIAS_SET.
2635         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
2636         when calling MEM_COPY_ATTRIBUTES.
2637         * emit-rtl.c (operand_subword, change_address): Likewise.
2638         * explow.c (stabilize): Likewise.
2639         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
2640         * integrate.c (copy_rtx_and_substitute): Likewise.
2641         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
2642         when calling MEM_COPY_ATTRIBUTES.
2643         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
2644         Likewise.
2645         * cse.c (gen_lowpart_if_possible): Likewise.
2646         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
2647         * optabs.c (gen_move_insn): Likewise.
2648         * recog.c (validate_replace_rtx_1): Likewise.
2649         * simplify-rtx.c (add_mem_for_addr): Likewise.
2650         * stmt.c (expand_anon_union_decl): Likewise.
2651         * config/arm/arm.md: Likewise.
2652         * config/h8300/h7300.c (fix_bit_operand): Likewise.
2653         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
2654         (block_move_no_loop, block_move_sequence): Likewise.
2655         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
2656         * config/alpha/alpha.c (get_aligned_mem): Likewise.
2657         Clear MEM_ALIAS_SET.
2658         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
2659         MEM_COPY_ATTRIBUTES.
2660
2661 2000-05-03  Robert Lipe <robertlipe@usa.net>
2662         
2663         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
2664         to suppress libgcc1.
2665         (i[34567]86-*-sco3.2v5*) Likewise.
2666         (i[34567]86-*-sco3.2v4*) Likewise.
2667         (i[34567]86-*-sco) Likewise.
2668         (i[34567]86-*-solaris2) Likewise.
2669         (i[34567]86-*-sysv5*) Likewise.
2670         (i[34567]86-*-sysv4*) Likewise.
2671         (i[34567]86-*-udk*) Likewise.
2672         (i[34567]86-*-sysv*) Likewise.
2673
2674 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
2675
2676         * cpphash.h (U): New define, to correct type of string constants.
2677         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
2678         routines, to do casts when passing unsigned strings to libc.
2679         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
2680
2681         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
2682         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
2683         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
2684         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
2685         second argument an U_CHAR *.
2686
2687         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
2688         length field, clean up initializer.
2689         (ISTABLE): Add __extension__ to designated-
2690         initializers version.
2691         * cpplex.c (CHARTAB): Likewise.
2692
2693         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
2694         case so the file won't be empty.
2695
2696 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
2697
2698         * bb-reorder.c (struct reorder_block_def): Member succ removed.
2699         (REORDER_BLOCK_SUCC): Removed.
2700         (enum reorder_skip_type): Removed.
2701         (skip_insns_between_block): Renamed to skip_insns_after_block.
2702         Removed second argument. Removed dead code and cleaned up.
2703         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
2704         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
2705         second parameter to skip_insns_after_block.
2706
2707 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2708
2709         * tree.c (staticp, case LABEL_DECL): New case.
2710
2711 2000-05-03  Richard Henderson  <rth@cygnus.com>
2712
2713         * Makefile.in (start.encap): Do not depend on LIBGCC1.
2714
2715         * mklibgcc1.in: Fix typo last change.
2716
2717 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
2718
2719         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
2720         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
2721         (GCC_CFLAGS): Use it.
2722         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
2723         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
2724         objc/Make-lang.in: Use it.
2725
2726 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
2727
2728         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
2729
2730 2000-05-03  Richard Henderson  <rth@cygnus.com>
2731
2732         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
2733         LIBGCC1 empty with libgcc1.null.
2734
2735 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
2736
2737         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
2738         change.
2739
2740 2000-05-03  Greg McGary  <gkm@gnu.org>
2741
2742         * tree.h (tree_common): Add bounded_flag member.  Remove
2743         inaccurate comment about number of remaining bits.
2744         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
2745         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
2746         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
2747         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
2748         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
2749         (TYPE_QUAL_BOUNDED): New constant.
2750         (TYPE_QUALS): Handle bounded qualifier.
2751         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
2752         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
2753         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
2754         TYPE_AMBIENT_BOUNDEDNESS): New macros.
2755         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
2756         (tree_type): Add pointer_depth member.  Remove
2757         inaccurate comment about number of remaining bits.
2758         (DECL_POINTER_DEPTH): Add macro.
2759         (tree_decl): Add pointer_depth member.
2760
2761 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
2762
2763         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
2764         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
2765         (lshrhi3_out): Likewise.
2766         (ashrsi3_out): bugfix in shift by 8.
2767         (test_hard_reg_class): New function.
2768         * config/avr/avr.md: Bugfix inside conditions in peepholes.
2769         (ashlhi3): removed define_expand of this pattern.
2770         (*ashlhi3_insn): renamed to ashlhi3.
2771         (ashlsi3): removed define_expand of this pattern.
2772         (*ashlsi3_insn): renamed to ashlsi3.
2773         (ashrqi3): removed define_expand of this pattern.
2774         (*ashrqi3_insn): renamed to ashrqi3.
2775         (ashrhi3): removed define_expand of this pattern.
2776         (*ashrhi3_insn): renamed to ashrhi3.
2777         (ashrsi3): removed define_expand of this pattern.
2778         (*ashrsi3_insn): renamed to ashrsi3.
2779         (lshrhi3): removed define_expand of this pattern.
2780         (*lshrhi3_insn): renamed to lshrhi3.
2781         (lshrsi3): removed define_expand of this pattern.
2782         (*lshrsi3_insn): renamed to lshrsi3.
2783
2784 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
2785
2786         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
2787         inclusion of "system.h".
2788
2789 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
2790
2791         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
2792         TREE_ASM_WRITTEN.
2793
2794 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
2795
2796         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
2797         if -mauto-pic is on.
2798         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
2799         -mconstant-gp is in effect and function-descriptors are being used
2800         to make indirect calls.
2801         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
2802         (MASK_AUTO_PIC): Ditto.
2803         (TARGET_CONST_GP): Ditto.
2804         (TARGET_AUTO_PIC): Ditto.
2805         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
2806         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
2807         -mno-pic is in effect.
2808         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
2809         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
2810         -mauto-pic is in effect.
2811         (gprel64_offset): New pattern.
2812         (load_gprel64): Ditto.
2813         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
2814         -mconstant-gp is in effect, no need to preserve gp around direct
2815         calls.
2816         (call_value): Ditto.
2817         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
2818         (FUNCTION_PROFILER): Define.
2819         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
2820         @fptr() directive when -mno-pic or -mauto-pic is in effect.
2821         (ASM_OUTPUT_DESTRUCTOR): Ditto.
2822
2823 2000-05-03  Richard Henderson  <rth@cygnus.com>
2824
2825         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
2826         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
2827         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
2828         (mklibgcc, libgcc.mk): New targets.
2829         (libgcc.a): Use libgcc.mk.
2830         (stmp-multilib): Likewise.
2831         (stmp-multilib-sub): Remove.
2832         (mostlyclean): Don't delete libgcc2 temp files.
2833         * configure.in (AC_PROG_CC_C_O): Add.
2834         (NO_MINUS_C_MINUS_O): Substitute it.
2835         (all_outputs): Add mklibgcc.
2836         * mklibgcc.in: New file.
2837
2838 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
2839
2840         * cppexp.c (op_t): Make an int.
2841
2842         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
2843
2844         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
2845
2846         * gensupport.c (process_rtx): Fix macros used.
2847
2848 2000-05-03  Richard Henderson  <rth@cygnus.com>
2849
2850         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
2851         call-clobbered registers of a call.
2852
2853 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
2854
2855         * gensupport.c: New file.
2856         * gensupport.h: New file.
2857         * Makefile.in (HOST_RTL): Depend on gensupport.
2858         (gensupport.o) New rule.
2859         * genattr.c: Use gensupport for reading .md files.
2860         * genattrtab.c: Ditto. 
2861         * gencodes.c: Ditto. 
2862         * genconfig.c: Ditto. 
2863         * genemit.c: Ditto. 
2864         * genextract.c: Ditto. 
2865         * genflags.c: Ditto. 
2866         * genopinit.c: Ditto. 
2867         * genoutput.c: Ditto. 
2868         * genpeep.c: Ditto. 
2869         * genrecog.c: Ditto.
2870         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
2871         * md.texi (Insn Splitting): Document define_insn_and_split.
2872
2873 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
2874
2875         * flow.c (verify_flow_info): Added two more sanity checks. The
2876         first checks that the blocks are numbered consecutively. The second
2877         checks that n_basic_blocks is actually equal to the number of
2878         basic blocks in the insn chain.
2879
2880 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
2881
2882         * cpplib.h: Add accessor macros for token lists.
2883         * cpplib.c, cpphash.c, cpplex.c: Use them.
2884
2885 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2886
2887         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
2888         memory usage if not in a function.
2889         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
2890         return address if static.
2891
2892 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2893
2894         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
2895         whether address may trap.
2896
2897 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
2898
2899         * bb-reorder (chain_reorder_blocks): Changed code to test for
2900         EDGE_FALLTHRU rather than making erroneous assumption that the
2901         first outgoing edge is the fall-through edge.
2902
2903 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
2904
2905         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new 
2906         ABI for varargs, across all MIPS. This is incompatible because the
2907         va_list (__builtin_va_list) structure is different, so a compilation
2908         unit passing a va_list and a compilation unit being passed one, should
2909         both be compiled with the same ABI. (The old structure had two 
2910         pointers, now it has three.)
2911
2912 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
2913
2914         * bb-reorder.c (struct reorder_block_def): Remove members end,
2915         block_begin, and block_end.
2916         (REORDER_BLOCK_OLD_END): Delete.
2917         (REORDER_BLOCK_BEGIN): Delete.
2918         (REORDER_BLOCK_END): Delete.
2919         (chain_reorder_blocks): Remove dead code.
2920
2921 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
2922
2923         * bb-reorder.c (remove_scope_notes): Check for both types of scope
2924         notes as the end of a basic block before deleting.
2925
2926 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
2927
2928         * final.c (final_start_function): Fix spelling of "necessary".
2929
2930 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
2931
2932         * toplev.c (debug_ignore_block): Return int.
2933         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
2934         * toplev.h, dwarf2out.h: Adjust.
2935         * emit-rtl.c (remove_unnecessary_notes): Test return value.
2936
2937         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
2938         * toplev.c, final.c, rtl.h: Adjust.
2939
2940 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
2941
2942         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
2943         * configure.in: Look for makeinfo in the unified tree, then
2944         for a system makeinfo which is sufficiently new.
2945         * Makefile.in: If configure says makeinfo is too old, don't
2946         build or install Info documentation.
2947
2948 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
2949
2950         * cpphash.c (collect_params): Fix off-by-one error.
2951         (dump_hash_helper): Dump all four macro nodetypes.
2952
2953 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
2954
2955         * cpphash.c (trad_stringify): Adjust p after stringification as
2956         well.
2957
2958 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
2959
2960         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
2961         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
2962
2963         * cppfiles.c (file_cleanup): Delete.
2964         * cpphash.c (macro_cleanup): Delete.
2965         (collect_objlike_expansion, collect_funlike_expansion,
2966         macarg, scan_arguments): Remove CPP_POP case.
2967
2968         * cpplex.c (null_cleanup): Delete.
2969         (cpp_pop_buffer): Do the work that was done in the cleanups
2970         here.  Call _cpp_unwind_if_stack from here.
2971         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
2972         cpp_scan_buffer): Run until we see CPP_EOF and the top of
2973         stack is the buffer _below_ the one we stacked.
2974         (cpp_get_token): Always pop an exhausted buffer.  Return
2975         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
2976         * cpplib.c (skip_if_group): Don't call cpp_get_token to
2977         increment the line number.
2978         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
2979
2980         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
2981         we see CPP_EOF and the top of stack is the buffer _below_ the
2982         one we stacked.
2983         * scan-decls.c: Likewise.
2984
2985 2000-05-02  Andrew Haley  <aph@cygnus.com>
2986
2987         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
2988         where this function is called for the second time on a decl that
2989         has had its section info changed in such a way as to move it out
2990         of small data/bss.  
2991         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
2992
2993 2000-05-01  Richard Henderson  <rth@cygnus.com>
2994
2995         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
2996         the sequence we're moving, not to merge_bb->head.
2997
2998 2000-05-01  Richard Henderson  <rth@cygnus.com>
2999
3000         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
3001         reference to alpha/t-linux.
3002         (alpha*-*-linux-gnu*): Likewise.
3003         * configure: Rebuild.
3004
3005         * calls.c (expand_call): Don't emit reg notes for a sibcall.
3006
3007         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
3008         if not in SSA form.
3009
3010         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
3011
3012 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
3013
3014         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
3015         TREE_THIS_VOLATILE.
3016
3017 2000-05-01  Richard Henderson  <rth@cygnus.com>
3018
3019         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
3020         emit_conditional_move.
3021
3022 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
3023
3024         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
3025         as the dynamic linker.
3026
3027 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
3028
3029         * cppfiles.c (open_include_file): Open file in blocking mode.
3030         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
3031         Only exclude block devices and directories.
3032
3033         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
3034         static.  Allocate the hashnode and its string in the same
3035         block of memory.
3036         (del_HASHNODE): Don't free h->name.
3037         (_cpp_lookup): If there is no entry for this string, create
3038         one, of type T_VOID.
3039         (_cpp_lookup_slot): Delete.
3040         * cpphash.h: Update prototypes.
3041
3042         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
3043         not hp == NULL.
3044         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
3045         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
3046         node here, just fill in the value field properly.  "Delete"
3047         entries by setting the value field to T_VOID.  Check for
3048         hp->type == T_VOID, not hp == NULL.
3049
3050         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
3051         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
3052         hashtab.h.
3053
3054 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
3055
3056         * config/mn10300/mn10300.c (print_operand_address): Do not add
3057         zero to SP.
3058
3059         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
3060         adjusted by less than 256 bytes, use ret regardless of having any
3061         callee-saved register to restore.
3062
3063 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
3064
3065         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
3066
3067 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
3068
3069         * config/i386/djgpp.h (INT_ASM_OP): Define.
3070         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
3071         (ASM_WEAKEN_LABEL): Define.
3072         (MASK_BNU210): Define.
3073         (SUBTARGET_SWITCHES): Define.
3074         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
3075         (MAKE_DECL_ONE_ONLY): Define.
3076         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
3077
3078 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
3079
3080         * i386/cygwin.h (INT_ASM_OP): Define.
3081
3082 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
3083
3084         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
3085         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
3086
3087 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
3088
3089         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
3090         __tmp_reg__ and __zero_reg__ initialization.
3091
3092 2000-04-30  Richard Henderson  <rth@cygnus.com>
3093
3094         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
3095
3096         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
3097         referenced bewteen the condition and the jump.  Don't delete
3098         anything but the jump.
3099
3100 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
3101
3102         * bb-reorder.c (scope_def): New struct.
3103         (scope_forest_info): New struct.
3104         (struct reorder_block_def): New member "scope".
3105         (REORDER_BLOCK_SCOPE): New macro.
3106         (relate_bbs_with_scopes): New function and prototype.
3107         (make_new_scope): Likewise.
3108         (build_scope_forest): Likewise.
3109         (remove_scope_notes): Likewise.
3110         (insert_intra_1): Likewise.
3111         (insert_intra_bb_scope_notes): Likewise.
3112         (insert_inter_bb_scope_notes): Likewise.
3113         (rebuild_scope_notes): Likewise.
3114         (free_scope_forest_1): Likewise.
3115         (free_scope_forest): Likewise.
3116         (dump_scope_forest): Likewise.
3117         (dump_scope_forest_1): Likewise.
3118         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
3119         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
3120         block.
3121         (reorder_basic_blocks): Added calls to build_scope_scope_forest
3122         and remove_scope_notes before reordering is done. Added calls to
3123         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
3124         after reordering is done.
3125
3126 2000-40-30  Bruce Korb  <bkorb@gnu.org>
3127
3128         * fixinc/inclhack.def:  Added definitions needed by OSR5,
3129         removed two stale entries (defined away with OLD_CPP).
3130         * fixinc/inclhack.sh: regen
3131         * fixinc/fixincl.x: regen
3132
3133 2000-04-30  Richard Henderson  <rth@cygnus.com>
3134
3135         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
3136         from the last insn in the sequence.
3137
3138 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
3139
3140         * cpplex.c (cpp_idcmp): New function.
3141         * cpplib.h: Prototype it.
3142         * scan_decls.c (scan_decls): Use it to inspect token names.
3143         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
3144         the file being run through the preprocessor.
3145         (check_macro_names): Provide length of token to cpp_defined.
3146
3147         * Makefile.in: Remove stale warning message.
3148
3149         * cppfiles.c (redundant_include_p): Provide length of token to
3150         cpp_defined.
3151         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
3152         values are unsigned int.
3153         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
3154         (_cpp_lookup_slot): Do not calculate the hash, either.
3155         * cpphash.h: Update prototypes.
3156         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
3157         Hashes are unsigned int.  Calculate hash here, pass by value
3158         to _cpp_lookup_slot.
3159
3160 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
3161
3162         * simplify-rtx.c (check_value_useless): Delete function.
3163         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
3164         by hand.
3165         (cselib_invalidate_regno): Likewise.
3166         (cselib_invalidate_mem_1): Likewise.
3167         (references_value_p): Recognize useless values by the fact that they
3168         have no locations.
3169         (discard_useless_values): Likewise.
3170         (cselib_record_set): This may turn a useless value
3171         into a useful one.
3172
3173 2000-04-30  Richard Henderson  <rth@cygnus.com>
3174
3175         * config/d30v: New port.
3176
3177         * configure.in (d30v-*): Set fp format.
3178         * configure: Rebuild.
3179
3180 2000-04-30  Richard Henderson  <rth@cygnus.com>
3181
3182         * ifcvt.c: New file.
3183         * Makefile.in (OBJS): Add it.
3184         (ifcvt.o): New target.
3185         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
3186         and conditional arithmetic.
3187         (find_insert_position): Remove.
3188         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
3189         * toplev.c (DFI_ce, DFI_ce2): New.
3190         (dump_file): Add ce and ce2 dumps.
3191         (rest_of_compilation): Run if_convert a couple o times.  Set
3192         cse_not_expected after cse2.  Don't set no_new_pseudos until
3193         after sched1 or recompute_reg_usage.
3194
3195 2000-04-30  Richard Henderson  <rth@cygnus.com>
3196
3197         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
3198         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
3199
3200 2000-04-30  Richard Henderson  <rth@cygnus.com>
3201
3202         * flow.c (struct reg_cond_life_info): New.
3203         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
3204         (init_propagate_block_info): Initialize them.
3205         (free_propagate_block_info): Destruct them.
3206         (mark_set_1): Consider conditional life before killing a register.
3207         (mark_regno_cond_dead): New.
3208         (free_reg_cond_life_info): New.
3209         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
3210         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
3211         (mark_used_reg): Record conditional life.
3212
3213         * haifa-sched.c (schedule_insns): Disable death counting
3214         sanity check for HAVE_conditional_execution.
3215
3216 2000-04-30  Richard Henderson  <rth@cygnus.com>
3217
3218         * Makefile.in (TIMEVAR_H): New.
3219         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
3220         (timevar.h): Remove rule.
3221
3222 2000-04-29  Richard Henderson  <rth@cygnus.com>
3223
3224         * config/alpha/crtend.asm: Use C comments instead of #.
3225         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
3226
3227         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
3228
3229 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
3230
3231         * cpphash.h (enum node_type: Take out T_MCONST.
3232         (union hashval): Move into struct hashnode.
3233         (struct hashnode): Pack tighter.  Remove file, line, col
3234         members.
3235         * cpphash.c: Constify most of the macro-definition structures.
3236         (struct definition): Replace by struct object_defn
3237         and struct funct_defn.  Put file, line, column information
3238         here.  All users updated to match.
3239         (_cpp_create_definition, _cpp_macroexpand): Remove special
3240         case for #define WORD OTHERWORD.
3241         * cpplib.c (do_undef): Remove T_MCONST case.
3242
3243         * cpphash.h: Move struct reflist, struct definition, and the
3244         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
3245         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
3246         * cpphash.c (_cpp_free_definition): Free data pointed to by
3247         MCONST, XCONST, MACRO, and FMACRO nodes properly.
3248         (_cpp_create_definition, del_HASHNODE): Just call
3249         _cpp_free_definition to clear out a hashnode.
3250         * cpplib.c (do_pragma_poison): Likewise.
3251
3252 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
3253
3254         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
3255         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
3256         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
3257         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
3258         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
3259         REGNO_AM33_P): Redefine in terms of the new macros.
3260         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
3261         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
3262         STRUCT_VALUE): Likewise.
3263         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
3264         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
3265
3266 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3267
3268         * regmove.c (struct record_stack_memrefs_data): New.
3269         (record_stack_memrefs): New function.
3270         (combine_stack_adjustments_for_block): Use it.
3271
3272 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3273
3274         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
3275         use special_function_p to detect alloca.
3276
3277 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
3278
3279         * gcc.texi: Fixes for makeinfo 4.0 --html.
3280
3281 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
3282
3283         * pcp.h: Delete file.
3284
3285 2000-04-28  Kazu Hirata  <kazu@hxi.com>
3286
3287         * h8300.c (function_epilogue): Clean up flags when the last insn
3288         in a function is a barrier.
3289
3290 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
3291
3292         * configure.in (sparc-hal-solaris2*): protect [] glob from
3293         my expansion.
3294         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
3295         rather than hard-coded constants in target_cpu_default2.
3296         * configure: Regenerate.
3297
3298 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
3299
3300         * tree.c (get_callee_fndecl): Extract the initial value from
3301         a readonly decl.
3302
3303 2000-04-28  Richard Henderson  <rth@cygnus.com>
3304
3305         * varasm.c (record_constant_1): Record the CODE_LABEL when
3306         taking the address of a LABEL_REF.
3307
3308 2000-04-28  Richard Henderson  <rth@cygnus.com>
3309             Jan Hubicka  <jh@suse.cz>
3310
3311         * calls.c (combine_pending_stack_adjustment_and_call): Return the
3312         adjustment; don't do the stack adjust.
3313         (expand_call): Call compute_argument_block_size right before
3314         allocating the block; update comment; don't do alignment sanity
3315         checking for sibling call; use args_size instead of
3316         unadjusted_args_size before args_size is adjusted.  Use
3317         combine_pending_stack_adjustment_and_call to compute stack adjust
3318         for must_preallocate case.
3319
3320         * expr.c (push_block): Remove shadow `temp' in inner scope.
3321
3322 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
3323
3324         * toplev.c (rest_of_compilation): Call
3325         note_deferral_of_defined_inline_function even if the function
3326         can't be inlined.
3327
3328 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
3329
3330         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
3331
3332 2000-04-28  Richard Henderson  <rth@cygnus.com>
3333
3334         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
3335
3336 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3337
3338         * timevar.c (init_timevar): DeANSIfy function definition.
3339
3340 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
3341
3342         * Makefile.in (timevar.o): Depend on flags.h.
3343         * timevar.c (unused_stack_instances): New variable.
3344         (timevar_push): Take a timevar_stack_def from
3345         unused_stack_instances if available.
3346         (timevar_pop): Push the popped timevar_stack_def onto
3347         unused_stack_instances.
3348         (TIMEVAR_ENABLE): New macro.
3349         (timevar_def): Make standalone a 1-bit field.  Add field used.
3350         (get_time): Rename parameter to now.  Return after clearing it if
3351         not TIMEVAR_ENABLE.
3352         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
3353         (timevar_pop): Likewise.
3354         (timevar_stop): Likewise.
3355         (timevar_push): Likewise.  Mark the timing variable as used.
3356         (timevar_start): Likewise.
3357         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
3358         timevars that were never used.
3359
3360 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
3361
3362         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
3363         always TREE_READONLY.
3364
3365 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
3366
3367         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
3368         for call instruction with mode QImode.
3369
3370 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
3371
3372         * Makefile.in (OBJS): Add timevar.o.
3373         (toplev.o): Depend on timevar.h.
3374         (ggc-simple.o): Likewise.
3375         (ggc-page.o): Likewise.
3376         (timevar.o): New rule.
3377         (timevar.h): New rule.
3378
3379         * timevar.h: New file.
3380         * timevar.c: Likewise.
3381         * timevar.def: Likewise.
3382
3383         * toplev.h (gc_time, parse_time, varconst_time): Remove.
3384         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
3385         throughout.
3386         (TIMEVAR): Remove macro.
3387         (gc_time, parse_time, varconst_time, integration_time, jump_time,
3388         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
3389         flow_time, combine_time, regmove_time, sched_time,
3390         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
3391         sched2_time, dbr_sched_time, reorder_blocks_time,
3392         rename_registers_time, shorten_branch_time, stack_reg_time,
3393         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
3394         all_time): Remove.
3395         (compile_file): Don't initialize time variables.  Call
3396         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
3397         of many calls to print_time.
3398         (rest_of_compilation): Add timing for reload_cse_regs.
3399         (get_run_time): Removed to timevar.c.
3400         (print_time): Likewise.
3401         (get_run_time): Implement using TV_TOTAL time variable.
3402         (print_time): Get total run time from get_run_time.
3403         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
3404         computing elapsed time explicitly.
3405         * ggc-simple.c (ggc_collect): Likewise.
3406         (gc_time): Remove declaration.
3407
3408 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
3409
3410         * calls.c (combine_pending_stack_adjustment_and_call): New function.
3411         (expand_call): Use it.
3412
3413 2000-04-27  Jan Hubicka  <jh@suse.cz>
3414
3415         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
3416         fields.
3417
3418 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
3419
3420         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
3421         registers.
3422
3423 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3424
3425         * function.c (epilogue_done): Pass whole insn to record_insns.
3426
3427 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3428
3429         * cse.c (CSE_ADDRESS_COST): Remove.
3430         (find_best_addr): Add new parameter "MODE", use address_cost instead
3431         of CSE_ADDRESS_COST
3432         (address_cost): New.
3433         (fold_rtx): Update call of find_best_addr.
3434         * rtl.h (address_cost): Declare.
3435         * loop.c (general_induction_var): Add new parameter "MODE", use
3436         address_cost instead of ADDRESS_COST
3437         (init_loop): Use address_cost instead of ADDRESS_COST.
3438         (check_insn_for_givs): Update call of general_induction_var.
3439         (find_mem_givs): Likewise.
3440         (consec_sets_giv): Likewise.
3441         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
3442         * i386.c (ix86_address_cost): New.
3443         * i386-protos.h (ix86_address_cost): Declare.
3444
3445 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
3446
3447         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
3448         registers.
3449
3450 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3451
3452         * expr.c (store_expr): Use clear_storage instead of direct memset
3453         libcall.
3454
3455 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
3456
3457         * config/mn10300/mn10300.c (mn10300_address_cost): Test
3458         ASHIFT, AND and LABEL_REF.
3459
3460 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3461
3462         * invoke.texi (-foptimize-sibling-calls): Fix.
3463
3464 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3465
3466         * loop.c (load_mems)  Don't use hard registers for the hoisting.
3467
3468         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
3469         calculation; rename const_equiv array in the preconditioning code
3470         from loop_unroll to loop_unroll_precondition
3471
3472 2000-04-27  Richard Henderson  <rth@cygnus.com>
3473
3474         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
3475         add new_set.
3476         (propagate_one_insn): Clear it.  Don't update reg_live here.
3477         (init_propagate_block_info): Update for pbi member changes.
3478         (free_propagate_block_info): Likewise.
3479         (mark_set_1): Know that zero_extract, sign_extract, and
3480         strict_low_part don't kill their argument.  Alter hard subregs.
3481         Update new_set for non-CLOBBER sets.  Update reg_live.
3482         (find_auto_inc): Update reg_live, not new_dead.
3483         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
3484         to determine if the reg in question was set this insn.  Only update
3485         reg info with PROP_REG_INFO.
3486
3487 2000-04-26  Richard Henderson  <rth@cygnus.com>
3488
3489         * flow.c (allocate_reg_life_data): Set max_regno here ...
3490         (life_analysis): ... not here.
3491
3492         * flow.c (calculate_global_regs_live): Force stack pointer
3493         live at end.
3494
3495 2000-04-26  Richard Henderson  <rth@cygnus.com>
3496
3497         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
3498         commit change group changes.
3499         (invert_exp_1): Similarly.
3500         (redirect_exp, invert_exp): Use them.
3501         (redirect_jump_1): New.
3502         (invert_jump_1): New.
3503         (jump_optimize_1): Remove code subsumed by condexec.c.
3504         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
3505
3506 2000-04-26  Richard Henderson  <rth@cygnus.com>
3507
3508         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
3509
3510         * genconfig.c (main): Set all HAVE_foo to 1.
3511
3512         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
3513
3514 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
3515
3516         * invoke.texi: Document -fssa flag.
3517
3518 2000-04-26  Richard Henderson  <rth@cygnus.com>
3519
3520         * flow.c (count_reg_sets_1): Remove.
3521         (count_reg_sets, count_reg_references): Remove.
3522         (recompute_reg_usage): Implement with update_life_info.
3523         Reallocate life data.
3524
3525 2000-04-26  Richard Henderson  <rth@cygnus.com>
3526
3527         * flow.c (update_life_info): Consider blocks null to mean the
3528         universal set.
3529         (calculate_global_regs_live): Likewise.
3530         (life_analysis): Do that instead of collecting all_blocks.
3531
3532 2000-04-26  Richard Henderson  <rth@cygnus.com>
3533
3534         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
3535         a still-valid conditional jump.
3536
3537 2000-04-26  Richard Henderson  <rth@cygnus.com>
3538
3539         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
3540
3541         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
3542         * flow.c (calculate_loop_depth): Remove.
3543         * output.h (calculate_loop_depth): Don't declare.
3544         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
3545         inline; run estimate_probability at the same time.
3546
3547 2000-04-26  Neil Booth  <NeilB@earthling.net>
3548
3549         * cpplib.h: "~=" is not a single pp-token.
3550         * cpplex.c: Correct commentary.
3551
3552 2000-04-26  Richard Henderson  <rth@cygnus.com>
3553
3554         * flow.c (mark_set_1): New arguments code and flags; update all
3555         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
3556         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
3557         loop_depth when optimizing for size.  Do new_dead update after
3558         emitting REG_UNUSED notes.  Merge mark_set_reg code.
3559         (mark_set_reg): Remove.
3560         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
3561         arrange to not emit REG_UNUSED notes.
3562
3563 2000-04-26  Richard Henderson  <rth@cygnus.com>
3564
3565         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
3566         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
3567
3568 2000-04-26  Richard Henderson  <rth@cygnus.com>
3569
3570         * flow.c (propagate_one_insn): Break out from propagate_block.
3571         (init_propagate_block_info): Likewise.
3572         (free_propagate_block_info): Likewise.
3573         (propagate_block): Use them.  Export.
3574         * basic-block.h: Declare them all.
3575
3576 2000-04-26  Richard Henderson  <rth@cygnus.com>
3577
3578         * basic-block.h (life_analysis): Declare here ...
3579         * output.h: ... not here.
3580         * flow.c (life_analysis): Remove nregs parameter; replace
3581         remove_dead_code with flags.  Remove ssa dead code check.
3582         Only init alias analysis if we'll use it.
3583         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
3584         * ssa.c (convert_to_ssa): Likewise.
3585         (convert_from_ssa): Likewise.
3586         * toplev.c (rest_of_compilation): Likewise.
3587
3588 2000-04-26  Richard Henderson  <rth@cygnus.com>
3589
3590         * flow.c (flow_delete_block): Rename from delete_block.  Export.
3591         * basic-block.h (flow_delete_block): Declare.
3592
3593 2000-04-26  David S. Miller  <davem@redhat.com>
3594
3595         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
3596         taking a PATTERN of it.
3597
3598 2000-04-26  <NeilB@earthling.net>
3599
3600         * cpplex.c (spell_other, spell_char): Remove.
3601         (SPELL_CHAR): New.
3602         (token_spelling, trigraph_map): Use unsigned chars.
3603         (_cpp_lex_line): Tidy up the switch statement.
3604         * cpplib.h: Implement spell_char with spell_string.
3605         (C): New.
3606
3607 2000-04-26  <RodneyBrown@pmsc.com>
3608
3609         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3610         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3611
3612 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3613
3614         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
3615         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
3616         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
3617         dwarf2out_return_save, dwarf2out_return_reg,
3618         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
3619         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
3620         gen_compile_unit_die, dwarf2out_init): Constify a char*.
3621
3622         * dwarf2out.h (dwarf2out_init): Likewise.
3623
3624         * dwarfout.c (filename_entry, primary_filename, last_filename,
3625         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
3626
3627         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
3628         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
3629         dwarf2out_return_reg): Likewise.
3630
3631 2000-04-26  Andreas Jaeger  <aj@suse.de>
3632
3633         * extend.texi (Function Attributes): Fix description of pure
3634         attribute.
3635
3636 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
3637
3638         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
3639         before calling rest_of_compilation.
3640
3641 2000-04-26  Andreas Jaeger  <aj@suse.de>
3642
3643         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
3644         last patch.
3645
3646 2000-04-25  Richard Henderson  <rth@cygnus.com>
3647
3648         * cse.c (cse_insn): Emit barrier after unconditional jump.
3649
3650         * calls.c (expand_call): Disable tail call generation once
3651         rtx_equal_function_value_matters is false.
3652
3653         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
3654         like EDGE_EH edges.
3655
3656 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
3657
3658         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
3659
3660         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
3661
3662         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
3663         is the primary DIE for a member function.
3664         (gen_decl_die): Call set_decl_origin_self here.
3665         * dwarfout.c (output_decl): And here.
3666         * integrate.c (output_inline_function): Not here.
3667         Don't clear DECL_INLINE until after calling rest_of_compilation.
3668         (set_decl_origin_self): No longer static.
3669         * tree.h: Add prototype.
3670         * toplev.c (note_deferral_of_defined_inline_function): Only write
3671         out abstract instance for actual inlines.
3672
3673 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
3674
3675         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
3676         EXTENDED_REGS only if TARGET_AM33.
3677         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
3678         SP_REGS to register allocation and reloading unless absolutely
3679         necessary.
3680         (movsi3): Remove special-case of adding non-constants to SP.
3681
3682 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3683
3684         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
3685         INCLUDES to search and does not provide any of its own.  Also it
3686         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
3687         parameters.  Also it does not call AC_DEFINE.
3688         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
3689         AC_DEFINE and provides for automatic entries for autoheader.
3690         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
3691
3692         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
3693         so we can pass -I flags and include gansidecl.h/system.h in this
3694         test.
3695
3696         * acconfig.h: Delete all NEED_DECLARATION_* entries.
3697
3698 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3699
3700         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3701         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3702         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
3703
3704         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3705         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3706         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
3707         for these macros.  Clean up spacing and linewraps.
3708
3709 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
3710
3711         * calls.c (expand_call): Use get_callee_fndecl.
3712
3713         * print-tree.c (print_node): Print the chain of an _EXPR.
3714
3715 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
3716                           Jim Wilson  <wilson@cygnus.com>
3717                           Andrew Haley  <aph@cygnus.com>
3718
3719         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
3720         and gp save/restore problems.
3721         * config/ia64/crtend.asm: Add IA-64 unwind support.
3722         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
3723         in fr_pad_size calculation.
3724         (save_restore_insns): Move PR save area.  Correct uses of
3725         RTX_FRAME_RELATED_P.
3726         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
3727         (ia64_expand_epilogue): Add eh_epilogue support.
3728         (ia64_function_prologue): Emit .prologue directive.
3729         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
3730         (ia64_override_options): Set init_machine_status and
3731         mark_machine_status.
3732         (rtx_needs_barrier): Handle bsp reads and writes.
3733         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
3734         New static variables.
3735         (process_set, process_for_unwind_directive): New functions.
3736         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
3737         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
3738         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
3739         macros.
3740         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
3741         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
3742         (struct machine_function): Define.
3743         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
3744
3745 2000-04-25  Bruce Korb  <bkorb@gnu.org>
3746
3747         * fixinc/Makefile.in: make the removal of old programs more
3748         robust
3749         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
3750         install-bin and install-sh
3751
3752 2000-04-25  Nick Clifton  <nickc@cygnus.com>
3753
3754         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
3755         defined, define to return zero.
3756         (function_cannot_inline_p): If a function has any target
3757         specific attributes, then use the macro
3758         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
3759         whether it can be inlined.  If it cannot, issue a suitable
3760         explanation.
3761
3762         * tm.texi: Add a new node 'Inlining' to document the new macro
3763         FUNCTION_ATTRIBUTE_INLINABLE_P.
3764
3765 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
3766
3767         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
3768         commentary.
3769
3770 2000-04-25  Neil Booth  <NeilB@earthling.net>
3771
3772         Restore previous patch, plus the following fixes:
3773
3774         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
3775         flags, not CPP_OPEN_PAREN.
3776         * cpplex.c (expand_token_space, init_token_list,
3777         cpp_free_token_list): Put the dummy token at list->tokens[-1].
3778         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
3779
3780 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3781
3782         * config/i386/freebsd.h (INT_ASM_OP): Define.
3783
3784 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3785
3786         * loop.c (strength_reduce): Fix typo in the last checkin.
3787
3788 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3789
3790         * stor-layout.c (finalize_record_size): Simplify to use existing
3791         functions.
3792         (compute_record_mode): No longer static.
3793         * tree.h (compute_record_mode): New declaration.
3794
3795 2000-04-25  Neil Booth  <NeilB@earthling.net>
3796
3797         * Revert my patch below until cause of build failures
3798         determined.
3799
3800 2000-04-25  Richard Henderson  <rth@cygnus.com>
3801
3802         * combine.c (combine_instructions): Add missing argument
3803         to try_combine.
3804
3805         * toplev.c (rest_of_compilation): Delay sibcall optimization
3806         until after emit_eh_context.
3807
3808 2000-04-24  Nick Clifton  <nickc@redhat.com>
3809
3810         * combine.c (combine_instructions): Do not try to combine a
3811         sequence of insns when the second insn has been replaced by a
3812         note.
3813
3814 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
3815
3816         * gcc.c (load_specs): New static function.
3817         (read_specs): Use it.
3818
3819         * gcc.c (lookup_compiler): Make multiple passes for case
3820         insensitive filesystems.
3821
3822 2000-04-24  Neil Booth  <NeilB@earthling.net>
3823
3824         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
3825         * cpphash.h (_cpp_check_directive): new.
3826         * cpplex.c (handle_newline, cpp_free_token_list,
3827         init_trigraph_map, trigraph_ok, trigraph_replace,
3828         backslash_start, skip_block_comment, skip_line_comment,
3829         skip_whitespace, parse_name, parse_number, parse_string,
3830         copy_comment, _cpp_lex_line, spell_char, spell_string,
3831         spell_comment, spell_name, spell_other, _cpp_lex_file,
3832         _cpp_output_list): new.
3833         (expand_name_space): take length argument.
3834         (init_token_list): add comment list initialisation.
3835         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
3836         instead of HSPACE_BEFORE.
3837
3838         * cpplib.c (_cpp_check_directive): new
3839         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
3840         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
3841         (HSPACE_BEFORE): delete.
3842         (TTYPE_TABLE): rearrange.
3843         (struct cpp_toklist): update.
3844
3845 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3846
3847         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
3848         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
3849         argument form of AC_DEFINE.
3850
3851         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
3852         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
3853         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
3854         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
3855         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
3856
3857         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
3858
3859 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3860
3861         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
3862         deduced.h): Use -isystem, not -I, for including system headers.
3863
3864 2000-04-24  Nick Clifton  <nickc@cygnus.com>
3865
3866         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
3867         the source register is the frame pointer or arg pointer.
3868         (addsi3_small_int): Disallow if source register is the frame
3869         pointer or arg pointer.
3870
3871 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3872
3873         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
3874         call to AC_MSG_RESULT.
3875
3876 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3877
3878         * invoke.texi: Correct grammatical errors, document
3879         -fno-gnu-keywords as identical to -fno-asm for C++.
3880
3881 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3882
3883         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
3884         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
3885         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
3886         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
3887         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
3888
3889         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
3890         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
3891         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
3892         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
3893         new macros names.
3894
3895 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
3896
3897         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
3898         (pop_alignment): Likewise.
3899         (handle_pragma_token): Likewise.
3900
3901 2000-04-24  Robert Lipe <robertlipe@usa.net>
3902
3903         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
3904
3905 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
3906
3907         * combine.c (try_combine): Update reg_nonzero_bits of
3908         newi2pat before newpat.
3909
3910 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3911
3912         * loop.c (strength_reduce): Simplify test to INSN_P.
3913         (record_giv): Attempt to simplify the add value, use CONSTANT_P
3914         expressions instead of CONST_INT.
3915         (express_from_1): Likewise.
3916
3917 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
3918
3919         * regs.h (reg_n_max): Don't declare.
3920         * flow.c (reg_n_max): Don't define.
3921         * regclass.c (renumber): Don't initialize to zero.
3922         (regno_allocated): Likewise.
3923         (reg_n_max): Define.
3924         (allocate_reg_info): Don't initialize unnecessarily.
3925
3926 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
3927
3928         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
3929         and blockage_p in the newly allocated attribute.
3930
3931 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
3932
3933         * config/mn10300/mn10300.md (addsi): `inc4' on address
3934         registers does not modify cc, but `inc' on an extended
3935         register does.
3936
3937 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
3938
3939         * reload.c (find_equiv_reg): Checks all valueno regs
3940         as a reload_reg_p regs.
3941
3942 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
3943
3944         * cpphash.c (collect_objlike_expansion): Add sanity check.
3945         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
3946         the buffer is the empty string, return.  Mark __DATE__ and
3947         __TIME__ as XCONST nodes, not MCONST.
3948         (_cpp_macroexpand): Avoid pushing an empty buffer.
3949         (funlike_macroexpand): Don't pop token_buffer here.
3950
3951 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
3952
3953         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
3954         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
3955         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
3956         (REGNO_OK_FOR_BASE_P): Define in terms of them.
3957         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
3958         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
3959         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
3960
3961 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3962
3963         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
3964         constant MULT givs.
3965
3966 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
3967
3968         * cpphash.h (struct definition): Move file, line, col members...
3969         (struct hashnode): ... here.  Also add 'disabled' flag.
3970         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
3971         T_IDENTITY.  Remove T_DISABLED.
3972         Update prototypes.
3973
3974         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
3975         (collect_expansion): Split into collect_objlike_expansion and
3976         collect_funlike_expansion.
3977         (_cpp_macroexpand): Split out scan_arguments, stringify, and
3978         funlike_macroexpand.
3979         (_cpp_compare_defs): Rename compare_defs, make static.
3980         (_cpp_make_hashnode): Initialize hp->disabled.
3981         (macro_cleanup): Adjust for new token types.  Clear
3982         m->disabled.
3983         (_cpp_create_definition): Move code here to determine what
3984         sort of macro it is, and code to check for redefinitions, from
3985         do_define.  Implement a few simple cases without creating a
3986         full DEFINITION.
3987         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
3988         Handle the simple cases.
3989         (push_macro_expansion): Set buf->has_escapes and hp->disabled
3990         here.
3991
3992         * cppinit.c (builtin_array): Change MCONST to XCONST
3993         everywhere.
3994         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
3995         fix check for disabled and function-like macros.
3996         * cpplib.c (do_define): Move most logic to
3997         _cpp_create_definition.
3998         (do_undef): Handle new special token types.
3999
4000 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4001
4002         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
4003         of CONSTANT_P for mult_val; always use validate_change to update insn.
4004
4005 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
4006
4007         * cpphash.c (trad_stringify, add_pat): New functions.
4008         (collect_expansion): Restore support for -traditional syntax.
4009         Use trad_stringify and add_pat.
4010         (_cpp_macroexpand): Restore support for -traditional semantics.
4011         * cpplex.c (_cpp_scan_line): Don't change space_before if we
4012         get a COMMENT token.
4013         (_cpp_lex_token): Provide COMMENT tokens to caller if
4014         traditional and parsing_define_directive.
4015         (skip_comment): Warn about // comments if -Wtraditional.
4016         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
4017         proper node type.
4018         (do_undef): Don't warn about undefining EMPTY nodes.
4019
4020 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4021
4022         * loop.c (strength_reduce): Fix biv removal code.
4023
4024 2000-04-22  Richard Henderson  <rth@cygnus.com>
4025
4026         * predict.c (estimate_probability): Examine both sides of
4027         a branch for no exits.  Use 90% not 50% for predict taken.
4028         Reorg for one copy of note generation code.
4029
4030 2000-04-22  Richard Henderson  <rth@cygnus.com>
4031
4032         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
4033
4034 2000-04-22  Richard Henderson  <rth@cygnus.com>
4035
4036         * diagnostic.c (init_output_buffer): Don't initialize format_args.
4037         (output_clear): Likewise.
4038         (output_printf): Use va_copy.
4039         (vline_wrapper_message_with_location): Likewise.
4040         (v_message_with_decl): Likewise.
4041         (line_wrapper_printf): VA_START infor buffer.format_args directly.
4042         * system.h (va_copy): Provide default implementation.
4043
4044 2000-04-22  Richard Henderson  <rth@cygnus.com>
4045
4046         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
4047         the collected condition is not a constant.
4048
4049 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
4050
4051         * diagnostic.h: New file.
4052
4053         * Makefile.in (diagnostic.o): Depends on diagnostic.h
4054
4055         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
4056         various function prototypes.
4057         (diagnostic.h): #include.
4058         (struct output_buffer): Move into diagnostic.h.
4059         (get_output_prefix): Rename to output_get_prefix.  Export.
4060         (init_output_buffer): Export. Break out.  Ajust intialization.
4061         (output_space_left, output_append): Export.
4062         (output_newline): Rename to output_add_newline.  Export.
4063         (output_clear): Nullify additional output_buffer fields.
4064         (output_puts): Rename to output_add_string.  Export.
4065         (dump_output): Rename to output_flush_on.  Export.
4066         (build_location_prefix): Constify return-type.
4067         (emit_output_prefix): Rename to output_emit_prefix. Export.
4068         (set_real_maximum_length): New function.
4069         (output_set_maximum_length): Ditto
4070         (output_clear): Ditto.
4071         (output_add_character): Ditto.
4072         (output_add_integer): Ditto.
4073         (output_add_space): Ditto.
4074         (output_format): Ditto.
4075         (output_printf): Adjust buffer initialization.
4076         (vline_wrapper_message_with_location): Ditto.
4077         (v_message_with_decl): Ditto.  Adjust call to output_puts
4078         and get_output_prefix.
4079         (default_print_error_function): Adjust buffer intialization.
4080
4081 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4082
4083         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
4084         of VOID_TYPE.
4085
4086 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
4087
4088         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
4089         of explicit 0.
4090
4091 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
4092
4093         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
4094         accurate data about SP moves.
4095
4096 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
4097
4098         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
4099         aliases to AM33 registers.
4100
4101 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
4102
4103         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
4104         to all EXTENDED bitmaps.
4105
4106 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
4107
4108         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
4109         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
4110         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
4111
4112 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
4113
4114         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
4115         the operand is not constant.
4116
4117 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
4118
4119         * reload.c (find_equiv_reg): Checks all valueno and regno regs
4120         as a call-clobbered regs.
4121
4122 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4123
4124         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
4125         * rtl.h: Likewise.
4126         * rtl.def: Update comment.
4127         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
4128         * integrate.c (expand_inline_function): Likewise.
4129         * profile.c (branch_prob): Likewise.
4130         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
4131         * print-rtl.c (print_rtx): Likewise.
4132         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
4133         (reemit_notes): Likewise; also use enum insn_note.
4134
4135         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
4136         (place_field): Properly compute know and actual alignment.
4137
4138         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
4139         in proper format.
4140
4141         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
4142         note for REG1.
4143
4144 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
4145
4146         * cpphash.c (struct arg, struct arglist): Const-ify strings.
4147         (warn_trad_stringify, duplicate_arg_p): New helper functions.
4148         (collect_expansion): Rewrite to scan over a token list.
4149         Remove -traditional support.
4150         (collect_formal_parameters): Rename to collect_params; rewrite
4151         to scan over a token list.
4152         (_cpp_create_definition): Adjust to scan a token list.
4153         (_cpp_macroexpand): Remove -traditional support.
4154         (_cpp_compare_defs): Whitespace is now canonicalized.
4155         (comp_def_part): Delete function.
4156
4157         * cpphash.h: Update prototypes.
4158         * cpplex.c (init_token_list): Don't set lineno if there is no
4159         buffer.
4160         (pedantic_whitespace): New function.
4161         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
4162         consume a newline.  Use pedantic_whitespace.
4163         (_cpp_lex_token): Remove support for -traditional macros.
4164         (_cpp_get_define_token): Delete.
4165         (_cpp_get_directive_token): Do the real work here.  Use
4166         pedantic_whitespace.
4167         (_cpp_init_input_buffer): Initialize pfile->directbuf.
4168
4169         * cpplib.c (get_macro_name): Delete.
4170         (do_define): Read the entire line into pfile->directbuf, then
4171         feed the token list to _cpp_create_definition.
4172         * cpplib.h (HSPACE_BEFORE): new define.
4173         (struct cpp_reader): Add a toklist member, "directbuf".
4174
4175         * predict.c (estimate_probability): New heuristic: if a jump
4176         branches around a block with no successors, predict it taken.
4177         Disentangle control flow.
4178
4179 2000-04-20  Richard Henderson  <rth@cygnus.com>
4180
4181         * loop.c (emit_iv_add_mult): Revert last change.
4182
4183 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
4184
4185         * cpplib.h (enum cpp_ttype): Add token types for all
4186         punctuators.  Distinguish pp-numbers from valid C numbers.
4187         Give some tokens better names.  Initialize from macro.
4188         (struct cpp_name, cpp_token, cpp_toklist): New data
4189         structures.
4190         Update prototypes.
4191         * cpplex.c (bump_column, expand_name_space,
4192         expand_token_space, init_token_list, cpp_output_list,
4193         _cpp_scan_line):  New functions.
4194         (output_line_command): Add third argument, new line number.
4195         * cpphash.h: Update prototypes.
4196         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
4197         token names.
4198
4199 2000-04-20  Richard Henderson  <rth@cygnus.com>
4200
4201         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
4202
4203 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
4204
4205         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
4206         object pointed to.
4207
4208 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4209
4210         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
4211         REG_EQUAL note explaining the calculated value.
4212
4213         * calls.c (expand_call): Avoid unnecesary precalculation
4214         and outgoing parameters space guarding for sibling calls.
4215         (store_one_arg): Likewise.
4216
4217 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4218
4219         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
4220         (rest_of_compilation): Write sibling dump file and account
4221         for time as jump time.
4222         * invoke.texi: Update documentation on dump flags.
4223
4224 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
4225
4226         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
4227
4228 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
4229
4230         * cpphash.c (special_symbol): Represent an empty macro with
4231         "\r \r " not just "\r ".
4232         (_cpp_macroexpand): Correct condition for the foo ( ) special
4233         case.
4234         (unsafe_chars): Handle EOF as second argument.
4235         (push_macro_expansion): Simplify test for removing escape at
4236         end.  Do not trim both escapes if there is no text in between.
4237
4238 2000-04-19  Jim Blandy  <jimb@redhat.com>
4239
4240         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
4241         of PTR_SIZE, when appropriate.
4242
4243 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
4244
4245         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
4246         (USE_ENUM_BITFIELDS): Fix typo.
4247
4248 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4249
4250         * stor-layout.c (place_field): Set rli->offset_align properly.
4251
4252 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4253
4254         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
4255         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
4256         PARM_BOUNDARY): Remove unnecessary casts.
4257
4258 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4259
4260         * calls.c (precompute_arguments): Remove must_preallocate and
4261         args_size calls.
4262         (expand_call): Update call of precompute_arguments.
4263
4264         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
4265         check_insn_for_givs): Break out from ...
4266         (strength_reduce) ... here; use for_every_insn_in_loop to call
4267         check_insn_for_givs.
4268         * loop.h (for_every_insn_in_loop): Declare.
4269         (loop_insn_callback): New type.
4270
4271 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
4272
4273         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
4274         not nul-terminated.
4275
4276 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
4277
4278         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
4279         flag_pic and RELOC.
4280
4281 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
4282
4283         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
4284
4285         * configure.in: Delete --disable-cpplib option and all
4286         references to cpp_main.
4287         * configure: Regenerate.
4288         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
4289         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
4290         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
4291         cpp$(exeext).  Add --no-headers to makeinfo command line when
4292         generating INSTALL.  Install and uninstall cpp.1 manpage, not
4293         cccp.1.
4294         * install.texi: Delete all references to cexp.y/cexp.c.
4295         Delete ancient instructions for compiling GCC on 3b1.
4296         * INSTALL: Regenerate.
4297
4298         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
4299         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
4300         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
4301         cexp.c/cexp.y.
4302         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
4303         which is no longer tested anywhere.
4304
4305         * cppinit.c (handle_option): Don't run error message through
4306         gettext twice.
4307
4308 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4309
4310         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
4311         * cpperror.c (hashtab.h): Now include.
4312         * cppexp.c (hashtab.h): Likewise.
4313         * cpplex.c (hashtab.h): Likewise.
4314         * cppfiles.c (hashtab.h): Likewise.
4315         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
4316         to htab_find_slot_with_hash.
4317         * cpphash.c (hashtab.h): Now include.
4318         (_cpp_lookup_slot): INSERT is now enum insert_option.
4319         * cpphash.h (_cpp_lookup_slot): Likewise.
4320         * cppinit.c (hashtab.h): Include earlier.
4321         (initialize_builtins): Pass enum to htab_find_slot.
4322         * cpplib.c (hashtab.h): Now include.
4323         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
4324         (do_pragma_poison, do_assert): Likewise.
4325         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
4326         htab_find_slot_with_hash.
4327         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
4328         * tree.c (type_hash_add): Likewise.
4329         (build1): Minor cleanup.
4330
4331         * ggc-common.c: Add missing blanks.
4332         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
4333         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
4334
4335         * stmt.c (mark_case_node): New function.
4336         (mark_case_nesting): Call it.
4337
4338         * expmed.c (emit_store_flag): If comparing two-word integer
4339         with zero, can optimize NE, EQ, GE, and LT.
4340
4341         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
4342         * conflict.c: Minor cleanups.
4343         * optabs.c: Add blank line
4344         * simplify-rtx.c: Minor cleanups.
4345
4346 2000-04-18  Stan Cox  <scox@cygnus.com>
4347
4348         * gengenrtl.c (genlegend): Fix misspelling.
4349
4350 2000-04-18  Robert Lipe  <robertlipe@usa.net>
4351
4352         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
4353         bitfields of the host compiler are not signed quantities.
4354         * config.in: Regenerate.
4355         * configure: Regenerate.
4356         * system.h (USE_ENUM_BITFIELDS): Added.
4357         (ENUM_BITFIELDS): Added.
4358         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
4359         (SHORT_ENUM_BUG): Deleted.
4360         * tree.h (tree_common): Members `code', `mode', `built_in_class',
4361         now ENUM_BITFIELD.
4362         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
4363         (CODE_FIELD_BUG): Likewise.
4364         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
4365         (OLD_CC): Likewise.
4366         * config/m68k/x-ccur (X_CFLAGS): Likewise.
4367
4368 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
4369
4370         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
4371         mark is active.
4372
4373 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
4374
4375         * cppexp.c (lex): Don't assume tokens are NUL terminated.
4376         * cpplib.c (do_include, do_import, do_include_next,
4377         read_line_number, detect_if_not_defined): Likewise.
4378         * cpphash.c (collect_expansion): Likewise.
4379         (special_symbol, _cpp_macroexpand): Check return from
4380         cpp_file_buffer.
4381         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
4382         macros.  Delete all uses.
4383
4384         * gcc.dg/cpp-mi.c: Add two more test cases.
4385         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
4386
4387 2000-04-17  Richard Henderson  <rth@cygnus.com>
4388
4389         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
4390         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
4391
4392 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
4393
4394         * function.c (expand_function_start): Use hard_function_value to
4395         compute the RTL to use for DECL_RESULT.
4396
4397 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4398
4399         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
4400         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
4401          x86_memory_mismatch_stall): New global variables.
4402         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
4403         alloved; fix load penalties for Athlon.
4404         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
4405         x86_memory_mismatch_stall): Declare.
4406         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
4407          TARGET_MEMORY_MISMATCH_STALL): New.
4408         * i386.md (athlon scheduling parameters): Fix latencies according to
4409         Athlon Optimization Manual.
4410         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
4411         vector.
4412         (fsqrt instruction patterns): Set athlon_decode to direct.
4413         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
4414         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
4415         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
4416         and TARGET_PARTIAL_REGISTER_STALL machines.
4417         (pushdf_nointeger): New pattern.
4418         (pushdf_integer): Rename from pushdf.
4419         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
4420         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
4421
4422 2000-04-17  Richard Henderson  <rth@cygnus.com>
4423
4424         * loop.c (canonicalize_condition): Add WANT_REG argument.
4425         Stop the search if we match it.
4426         * expr.h (canonicalize_condition): Update decl.
4427         * predict.c (expected_value_to_br_prob): Use it.  Track last
4428         expected value note.
4429         (find_expected_value): Remove.
4430
4431         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
4432
4433 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
4434
4435         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
4436         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
4437         a plain file.
4438         * configure.in: Call AC_FUNC_MMAP_FILE.
4439         * configure: Regenerate.
4440         * config.in: Regenerate.
4441
4442         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
4443         * fixinc/fixincl.c: Likewise.
4444
4445 2000-04-17  Richard Henderson  <rth@cygnus.com>
4446
4447         * builtins.c (expand_builtin_expect): New.
4448         (expand_builtin): Call it.
4449         * builtins.def (BUILT_IN_EXPECT): New.
4450         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
4451         * extend.texi: Document it.
4452
4453         * predict.c (expected_value_to_br_prob): New.
4454         (find_expected_value): New.
4455         * basic-block.h (expected_value_to_br_prob): Declare.
4456         * toplev.c (rest_of_compilation): Invoke it.
4457
4458         * rtl.h (NOTE_EXPECTED_VALUE): New.
4459         (NOTE_INSN_EXPECTED_VALUE): New.
4460         * rtl.c (note_insn_name): Update.
4461         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
4462         cases; handle NOTE_INSN_EXPECTED_VALUE.
4463
4464 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
4465
4466         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
4467         leaf sibcall delay slot if flag_pic.
4468         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
4469
4470 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4471
4472         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
4473
4474         * fixproto: If fix-header fails, exit with an error.
4475
4476 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4477
4478         * cse.c (struct check_depdendence_data): New.
4479         (check_dependence): New function.
4480         (invalidate): Use check_depdenence.
4481
4482 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
4483
4484         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
4485         UNITS_PER_WORD is unsigned.
4486
4487         * tree.h (struct tree_common): Remove misleading comment.
4488
4489 2000-04-16  Dave Pitts  <dpitts@cozx.com>
4490
4491         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
4492         message in quotes. Otherwise, IBM's make program treats the '#' as the
4493         start of a comment and ignores the remainder of the line.
4494
4495         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
4496         upper case.
4497         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
4498         * cexp.y (initialize_random_junk): Likewise.
4499         * cppfiles.c (find_include_file): Cast alloca return value.
4500         * cppinit.c (initialize_standard_includes): Likewise.
4501         * cpplib.c (cpp_define, cpp_undef): Likewise.
4502         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
4503         * final.c (output_asm_insn): Allow for holes in EBCDIC.
4504         * fold-const.c (CHARMASK): New.
4505         (real_hex_to_f): Use it.
4506         * real.c (CHARMASK): New.
4507         (etoasc, asctoeg): Use it.
4508         (asctoeg): EBCDIC lower case characters preceed upper case.
4509
4510         * i370.c (mvs_add_label): Change spacing for coding conventions.
4511         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
4512         outputing case vectors.
4513         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
4514         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
4515         since vector in in the data CSECT.
4516         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
4517         * i370.md (Many patterns): Put the length in the XL directives.
4518         (movdi): Put back STM and MVC in definition.
4519         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
4520         pattern using the TCA.
4521         * oe.h (CPP_SPEC): Added to allow trigraphs.
4522         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
4523         not support the "long long" type.
4524
4525 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
4526
4527         * config/mips/mips-protos.h (mips_legitimate_address_p): New
4528         function.
4529         (mips_reg_mode_ok_for_base_p): Likewise.
4530         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
4531         (REG_OK_FOR_INDEX_P): Define unconditionally.
4532         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
4533         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
4534         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
4535         that GET_MODE_SIZE is unsigned.
4536         (mips_reg_mode_ok_for_base_p): Define.
4537         (mips_legitimate_address_p): Likewise.  Adjust now
4538         that GET_MODE_SIZE is unsigned.
4539         (block_move_loop): Make the number of bytes unsigned.
4540         (expand_block_move): Likewise.
4541         (function_arg): Make the loop counter unsigned to match the
4542         boundary condition.
4543
4544 2000-04-16  Richard Henderson  <rth@cygnus.com>
4545
4546         * rtl.h (enum insn_note): New enumeration.  Subsume
4547         NOTE_INSN_DELETED and friends.
4548         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
4549         * rtl.c (note_insn_name): Tweak string order.
4550
4551 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
4552
4553         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
4554         to offset * 2.
4555
4556         * cpplex.c (output_line_command): Remove debugging prints.
4557         (cpp_output_tokens): Don't write out a zero-length buffer or
4558         try to see if it has a newline in it.
4559         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
4560         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
4561         the end of the loop.  Use memmove.  Don't read past the end of
4562         the buffer.  Remove trailing newlines from error messages.
4563
4564 2004-04-16  Neil Booth  <NeilB@earthling.net>
4565
4566         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
4567         * cpplib.c: Add new syntax flags to directive table, and
4568         supporting macros.
4569
4570 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
4571
4572         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
4573         using ret $N.
4574
4575 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
4576
4577         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
4578         * haifa-sched.c: Update -fsched-verbose comments to use "=".
4579
4580 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4581
4582         * Makefile.in (ggc-page.o): Now includes toplev.h.
4583         * ggc-page.c (toplev.h): Now included.
4584         (gc_time): Remove declaration.
4585         (ggc_collect): TIME now long.
4586         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
4587         others static.
4588         * toplev.h (gc_time, parse_time, gc_time): New declarations.
4589
4590         * toplev.c: Make *_time variable long to reduce chance of overflow.
4591         (TIMEVAR): Likewise for `otime'.
4592         (print_time): Arg is now long; compute percentage in FP and round.
4593         * toplev.h (print_time): Arg is long.
4594
4595         * tree.c: Minor whitespace changes.
4596
4597         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
4598         * configure: Rebuilt.
4599         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
4600         (__fixunsxfDI): Renamed from __fixunsxfdi.
4601         (__fixunsdfDI): Renamed from __fixunsdfdi.
4602         (__fixunssfDI): Renamed from __fixunssfdi.
4603         (__floatdisf): Use proper type in REP_BIT macro.
4604         (__fixunsxfSI): Renamed from __fixunsxfsi.
4605         (__fixunsdfSI): Renamed from __fixunsdfsi.
4606         (__fixunssfSI): Renamed from __fixunssfsi.
4607         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
4608         Change location of macros and upper-case some names as above.
4609         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
4610         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
4611
4612         * varasm.c (assemble_variable): Add cast to remove warning.
4613         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
4614
4615         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
4616         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
4617         region number to -1.
4618
4619 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
4620
4621         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
4622         call unshare_all_rtl.
4623
4624         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
4625
4626 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
4627
4628         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
4629         Use .s1 not .s0 for all FP instructions.
4630
4631 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
4632
4633         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
4634         interfaces.
4635         (safe_fwrite, output_line_command): New static functions.
4636         (cpp_expand_to_buffer): Now private to cpplib.
4637         (cpp_scan_buffer): Take a printer.
4638
4639         * cpphash.h: Update prototypes.
4640         * cpplib.h: Update prototypes.
4641         (cpp_printer): New.
4642         (cpp_buffer): Remove last_nominal_fname.
4643         (cpp_reader): Remove lineno.
4644
4645         * cppmain.c: Use a cpp_printer.
4646         * fix-header.c: No need to inhibit line commands.  Call
4647         cpp_start_read with no printer.
4648
4649         * cpperror.c (cpp_notice_from_errno): Provide default name.
4650         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
4651         (find_include_file, cpp_read_file): Use make_IHASH.
4652         (file_cleanup): Set control_macro and clear
4653         input_stack_listing_current here.
4654         (_cpp_execute_include): Don't output entering-file marker.
4655         * cpphash.c (special_symbol): Look for the line number in the
4656         buffer, not the reader.
4657         (_cpp_macroexpand): No need to disable line commands.
4658         (_cpp_dump_definition): No need to generate line commands.
4659         (dump_hash_helper): Remove excess newline from output.
4660         * cppinit.c (dump_special_to_buffer): No need to generate line
4661         commands.
4662         (cpp_printer_init): New.
4663         (cpp_start_read): Take a printer, and start it up if it's not
4664         NULL.  No need to generate line commands.
4665         (cpp_finish): Expect no buffers stacked at all.  Take a
4666         printer argument, and flush the output buffer if it's not
4667         NULL.
4668         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
4669         Don't put two hashes at the beginning of an assertion.
4670         (cpp_get_token): Don't increment pfile->lineno or emit line
4671         commands here.  Return EOF if there's no buffer when we get
4672         EOF.
4673         * cpplib.c (do_define, skip_if_group):
4674         No need to disable line commands.
4675         (_cpp_output_line_command): Delete function.
4676         (do_line): Don't emit line commands here, but set things up so
4677         they will be emitted if necessary.  Use _cpp_fake_ihash to
4678         make unique nominal_fnames if necessary.
4679         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
4680         with 0 for column, not -1.
4681         (_cpp_handle_eof): Don't set the control macro here.  Don't
4682         clear input_stack_listing_current here.  Don't emit line
4683         commands.
4684
4685 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
4686
4687         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
4688         always, use the default SVR4 start address.
4689
4690         * config/rs6000/linux.h (LINK_SPEC): Don't define.
4691         (LINK_SHLIB_SPEC): Define.
4692         (LINK_START_DEFAULT_SPEC): Define.
4693         (LINK_OS_DEFAULT_SPEC): Define.
4694
4695         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
4696
4697         * config/rs6000/eabi.asm (__eabi): Call __init rather than
4698         __do_global_ctors to handle constructors.
4699         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
4700         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
4701         (STARTFILE_MVME_SPEC): Likewise.
4702         (STARTFILE_SIM_SPEC): Likewise.
4703         (ENDFILE_ADS_SPEC): Use crtend.
4704         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
4705         (ENDFILE_MVME_SPEC): Likewise.
4706         (ENDFILE_SIM_SPEC): Likewise.
4707         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
4708         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
4709         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
4710         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
4711         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
4712         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
4713         (CRTSTUFF_T_CFLAGS_S): Define.
4714         * config/rs6000/eabi-ctors.c: Delete.
4715
4716         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
4717         boundary.
4718         (__fini): Likewise.
4719         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
4720         boundary.
4721         (__fini): Likewise.
4722
4723 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
4724
4725         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
4726         plus mask size is smaller or equal to the mode size.
4727
4728 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4729
4730         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
4731         not yet set.
4732
4733         * expr.c (reload.h): Now included.
4734         (emit_block_move): Set volatile_ok when checking for movstr.
4735         (emit_move_1): Check for replacements in addresses in multi-word case.
4736         * Makefile.in (expr.o): Now includes reload.h.
4737
4738         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
4739         Never have a LIBCALL end a basic block.
4740         (find_basic_blocks_1): Likewise.
4741         Reorganize CALL_INSN cases.
4742
4743         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
4744
4745 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
4746
4747         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
4748         completers from mov.ret instruction.
4749
4750 2000-04-14  Richard Henderson  <rth@cygnus.com>
4751
4752         * fold-const.c (extract_muldiv): Don't distribute and widen
4753         multiply across plus for non-sizetype unsigned types.
4754
4755 2000-04-14  Richard Henderson  <rth@cygnus.com>
4756
4757         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
4758         If the original source is dead in the incr insn, it's dead now.
4759
4760 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4761
4762         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
4763         see if DECL_BIT_FIELD needs to still be set.
4764
4765         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
4766
4767         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
4768         print_int_cst_octal with something that's not an INTEGER_CST.
4769
4770         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
4771         and not a SUBREG to a FLOAT rtl.
4772
4773 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
4774
4775         * emit-rtl.c (try_split): Avoid infinite loop if the split
4776         results in a sequence that contains the original insn.
4777
4778 2000-04-13  Andreas Jaeger  <aj@suse.de>
4779
4780         * config/mips/mips.c (expand_block_move): Pass alignment
4781         argument to move_by_pieces in bits, not bytes.
4782
4783         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
4784         __pic__ for little endian.
4785
4786 2000-04-13  Andreas Jaeger  <aj@suse.de>
4787
4788         * config/i386/i386-protos.h: Add prototype for
4789         uno_comparison_operator.
4790
4791 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4792
4793         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
4794         * calls.c (ECF_PURE): New flag.
4795         (emit_call_1): Handle ECF_PURE calls.
4796         (initialize_argument_information): Unset ECF_PURE flag too.
4797         (precompute_arguments): Precompute for ECF_PURE too.
4798         (expand_call): Handle ECF_PURE calls too.
4799         (emit_library_call_value_1): Rename no_queue argument to fn_type,
4800         accept value of 2 as pure function.
4801         (emit_library_call_value, emit_library_call): Rename no_queue argument
4802         to fn_type.
4803         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
4804
4805         * tree.h (DECL_IS_PURE): New macro.
4806         (struct tree_decl): Add pure_flag.
4807         * c-common.c (enum attrs): Add attribute "pure".
4808         (init_attributes): Initialize attribute "pure"
4809         (decl_attributes): Handle attribute "pure".
4810         * extend.texi (Attribute "pure"): Document.
4811         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
4812         in pure function.
4813         (flags_from_decl_or_type): Support attribute "pure".
4814
4815 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
4816
4817         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
4818         the token except for numbers and identifiers.
4819
4820 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
4821
4822         * i386.c (ix86_expand_binary_operator,
4823         ix86_expand_unary_operator): Check no_new_pseudos
4824         instead of reload_in_progress and reload_completed.
4825         (ix86_split_ashldi, ix86_split_ashrdi,
4826         ix86_split_lshrdi): Check no_new_pseudos instead
4827         of reload_completed.
4828
4829 2000-04-12  Jeffrey A Law  (law@cygnus.com)
4830
4831         * function.c (purge_addressof): Unshare any shared rtl created by
4832         purge_addressof and its children.
4833
4834 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
4835
4836         * function.c (aggregate_value_p): VOID_TYPE nodes are never
4837         aggregates.
4838
4839 2000-04-05  Andreas Jaeger  <aj@suse.de>
4840
4841         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
4842         not compiling PIC code, add flags for mabi=64.
4843         (SUBTARGET_CPP_SIZE_SPEC): New.
4844         (SUBTARGET_CPP_SPEC): New.
4845         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
4846         for MIPS/Linux and lots of code needs these defines.
4847
4848 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
4849
4850         * reorg.c (fill_slots_from_thread): Check side_effects_p when
4851         trying the "opposite arithmetic" approach.
4852
4853 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4854
4855         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
4856         (struct sh_args): Add new field force_mem.
4857         (INIT_CUMULATIVE_ARGS): Initialize it.
4858         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
4859
4860 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4861
4862         * calls.c (expand_call): Do not reverse args in "equal from" field.
4863         (emit_library_call_value_1): Emit_libcall_block for const and pure
4864         function.
4865
4866 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4867
4868         * reload1.c (reload_combine): Don't enable optimization for fixed
4869         registers when encountering a BARRIER.
4870
4871 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4872
4873         * builtins.c (expand_builtin_memcmp): Do expansion even with
4874         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
4875
4876         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
4877         stack is propertly aligned; add sanity checking for aligned
4878         stack pointer.
4879         (expand_library_call_value_1): Add sanity checking for aligned
4880         stack pointer.
4881
4882 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
4883
4884         * calls.c (emit_library_call_value_1): Change 3rd arg to
4885         locate_and_pad_parm to disregard the setting of partial.
4886
4887 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4888
4889         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
4890
4891         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
4892         CALL_INSN from the normal case.
4893
4894 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4895
4896         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
4897         New global variables.
4898         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
4899         adjustment.
4900         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
4901         Declare,
4902         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
4903          TARGET_ADD_ESP_8): New macros.
4904         * i386.md: Add peep2s to convert esp adjustments to push and pop
4905         instructions.
4906         (pushsi_prologue, popsi_epilogue): New patterns.
4907
4908 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
4909
4910         * real.c (toe64): Remove stale #endif from the last change.
4911
4912 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
4913
4914         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
4915         * real.c (toe64): Revert previous change.
4916
4917 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
4918
4919         * objc/objc-act.c: Include ggc.h.
4920         (objc_tree_index, objc_global_trees): Convert most of the
4921         static tree variables into a static array with previous names
4922         as defines.
4923         (objc_ellipsis_node): New variable.
4924         (lang_init): Call objc_act_parse_init and c_parse_init.
4925         Create objc_ellipsis_node.
4926         (build_selector_translation_table): Use objc_ellipsis_node instead
4927         of (tree)1.
4928         (hack_method_prototype): Likewise.
4929         (get_arg_type_list): Likewise.
4930         (start_method_def): Likewise.
4931         (continue_method_def): Likewise.
4932         (gen_method_decl): Likewise.
4933         (ggc_mark_imp_list): New function.
4934         (ggc_mark_hash_table): New function.
4935         (objc_act_parse_init): New function.
4936         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
4937         * c-parse.in (c_parse_init): For objc add roots of objc specific
4938         local tree variables.
4939         * objc/objc-parse.y: Rebuilt.
4940         * objc/objc-parse.c: Rebuilt.
4941         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
4942
4943 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
4944
4945         * cse.c (delete_trivially_dead_insns): Also delete insns
4946         that copy a register to itself where the destination is
4947         a strict_low_part.
4948
4949 2000-04-11  Richard Henderson  <rth@cygnus.com>
4950
4951         * flow.c (struct propagate_block_info): Add new_dead, new_live.
4952         (propagate_block): Initialize them.  Use them in parallel instead
4953         of one tmp variable, ie revert much of the 0408 and 0407 functional
4954         changes, but keep the structural changes.
4955         (mark_set_regs): Take new_dead from propagate_block_info instead.
4956         (mark_set_1, mark_set_reg): Likewise.
4957         (mark_used_regs): Likewise with new_live.
4958         (mark_used_reg): Likewise.  Revert 0408 change.
4959
4960 2000-04-11  Nick Clifton  <nickc@cygnus.com>
4961
4962         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
4963         restriction.
4964         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
4965
4966 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4967
4968         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
4969         const section to output a CONSTRUCTOR based on the same conditions
4970         used for VAR_DECLs.
4971
4972 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
4973
4974         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
4975         * pa/pa-protos.h (output_call): Add additional argument indicating
4976         if the call is a sibling/tail call.
4977         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
4978         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
4979         (function_arg, function_arg_partial_nregs): Likewise
4980         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
4981         (emit_move_sequence): Zero extend certain constants as needed
4982         for TARGET_64BIT.
4983         (compute_zdepdi_operands, output_64bit_and): New functions.
4984         (output_64bit_ior, function_arg): Likewise.
4985         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
4986         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
4987         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
4988         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
4989         (output_bvb): Likewise.
4990         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
4991         (output_call): New argument 'sibcall'.  Generate sibcall sequences
4992         as needed.
4993         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
4994         (ouput_arg_descriptor): Do not emit argument descriptors for
4995         TARGET_64BIT.
4996         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
4997         defined.
4998         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
4999         (FUNCTION_OK_FOR_SIBALL): Define.
5000         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
5001         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
5002         (CPP_SPEC): Use new spec infrastructure.
5003         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
5004         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
5005         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
5006         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
5007         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
5008         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
5009         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
5010         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
5011         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
5012         (FUNCTION_ARG); Call out to C code.
5013         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
5014         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
5015         (MIN_UNITS_PER_WORD): Likewise.
5016         * pa/pa.md (cmpdi): New expander.
5017         (scc patterns, movstrsi): Not available for TARGET_64BIT.
5018         (64bit conditional arithmetic): New patterns.
5019         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
5020         (movsicc): Not available if modes on all the operands to not match.
5021         (movdicc): New expander and associated patterns.
5022         (64bit branches): New patterns.
5023         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
5024         (pre_ldd, post_std): New patterns.
5025         (64bit addil, load low part): New patterns.
5026         (special movsf constant): Not available for TARGET_64BIT.
5027         (movsf, movdf expanders): Force constants into memory.
5028         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
5029         (64bit movdf/movdi patterns): New patterns.
5030         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
5031         for TARGET_64BIT.
5032         (extendqidi2, extendhidi2, extendsidi2): Similarly.
5033         (adddi3 expander): Allow "arith_operand" for second input.
5034         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
5035         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
5036         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
5037         (muldi3): New expander for TARGET_64BIT.
5038         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
5039         for TARGET_64BIT.
5040         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
5041         patterns for TARGET_64BIT.
5042         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
5043         patterns for TARGET_64BIT.
5044         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
5045         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
5046         (sibcall_epilogue): New expander.
5047         (casesi): Tweak for TARGET_64BIT.
5048         (call expanders): Set & use the outgoing argument pointer.  Use the
5049         64bit call patterns as needed. Add additional arg to output_call.
5050         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
5051         (sibcall, sibcall_internal_symref): New expanders.
5052         (sibcall_value, sibcall_value_internal_symref
5053         (interspace_jump): Turn into an expander + matching patterns.
5054         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
5055         * pa/pa64-regs.h: Eliminate trigraph sequences.
5056         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
5057
5058 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
5059
5060         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
5061         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
5062         cpp_token with cpp_ttype everywhere.
5063         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
5064         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
5065         CPP_BUF_COL.  Line and column numbers are unsigned int, not
5066         long.
5067         * cpplex.c (cpp_buf_line_and_col): Delete.
5068         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
5069         'long lineno' to 'unsigned int lineno'.
5070         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
5071
5072 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5073
5074         * extend.texi: ISO C99 is not a draft anymore.
5075         * invoke.texi: ISO C++ is not a draft anymore.
5076         * cpp.texi: __cplusplus is required by the ISO standard.
5077
5078         * extend.texi (-fthis-is-variable): Undocument.
5079         * flags.h (warn_template_debugging): Remove declaration.
5080         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
5081         -Wenum-clash, -Wtemplate-debugging): Undocument.
5082
5083 2000-04-10  Nick Clifton  <nickc@cygnus.com>
5084
5085         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
5086         integer.
5087         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
5088         integer.
5089         (ARM_SIGN_EXTEND): Use HOST_UINT.
5090         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
5091         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
5092         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
5093         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
5094
5095         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
5096         (arm_gen_constant): Use HOST_UINT.
5097         (arm_canonicalize_constant): Use HOST_UINT.
5098         (arm_reload_in_hi): Use HOST_UINT.
5099         (arm_reload_out_hi): Use HOST_UINT.
5100         (output_multi_immediate): Use HOST_UINT.
5101         (int_log2): Use HOST_UINT.
5102         (arm_poke_function_name): Use HOST_UINT.
5103         (arm_output_epilogue): Use arm_volatile_func().
5104         (output_thumb_prologue): Use arm_strip_name_encoding().
5105
5106 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5107
5108         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
5109         of sequence point problems.
5110
5111 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
5112
5113         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
5114         Recomment.
5115         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
5116
5117 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5118
5119         * sbitmap.h: Whitespace changes and use upper-case macro args.
5120         (struct simple_bitmap_def): All sizes now unsigned.
5121         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
5122         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
5123         (sbitmap_vector_alloc): Parms and local vars now unsigned.
5124         (sbitmap_zero): Cast bzero arg to PTR.
5125         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
5126         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
5127         loop to make structure clearer.
5128         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
5129         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
5130         (sbitmap_a_and_b_or_c): Likewise.
5131         (sbitmap_intersection_of_succs): Minor cleanups.
5132         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
5133         (sbitmap_union_of_preds): Likewise.
5134         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
5135         (debug_sbitmap): New function.
5136
5137         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
5138         * c-typeck.c (convert_for_assignment): Likewise.
5139
5140         * expmed.c (init_expmed): Don't free objects we make.
5141         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
5142
5143         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
5144         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
5145
5146         * gcse.c (expr_hash_table_size): Now unsigned.
5147         (compute_ae_gen): Local variable `i' now unsigned.
5148         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
5149         (compute_transout, hoist_code): Likewise.
5150         (compute_local_properties): Likewise, also hash_table_size.
5151         (alloc_expr_hash_table): N_INSNS now unsigned.
5152         (delete_null_pointer_checks): Mark arg F as unused.
5153
5154         * regrename.c: Minor cleanups, including chang some variables
5155         to unsigned int.
5156
5157 2000-04-10  Neil Booth  <NeilB@earthling.net>
5158
5159         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
5160         than GETC ().
5161         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
5162
5163 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5164
5165         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
5166         __classof__, and __headof__ from the list of gnu keywords.
5167         (-ansi): Remove -foperator-names from list of implied options.
5168         Do not call it ANSI C++.
5169         (-foperator-names): Document as -fno-operator-names.
5170
5171 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
5172
5173         * cpphash.c (timestamp): Delete.
5174         (del_HASHNODE): If type is T_MCONST, free value.cpval.
5175         (special_symbol): Remove unnecessary braces.  Remove
5176         T_VERSION.  Treat T_STDC like T_CONST unless
5177         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
5178         when one is encountered, then convert them into T_MCONST
5179         nodes.
5180         * cppinit.c (builtin_array): version_string is T_MCONST.
5181         __STDC__ has a "1" in its cpval.  Don't have a terminator
5182         entry.  Clean up which entries are dumped.
5183         (initialize_builtins): Only __STDC__ gets the special
5184         -traditional treatment.  Count the length of builtin_array.
5185         Render version_string here.
5186         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
5187         * cpplib.h (struct cpp_reader): Remove timebuf.
5188
5189 2000-04-09  Richard Henderson  <rth@cygnus.com>
5190
5191         * genrecog.c (pred): Update comparison_operator for the unordered
5192         operators.
5193
5194         * config/i386/i386.c (no_comparison_operator): Disallow unordered
5195         operators.
5196         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
5197         (uno_comparison_operator): New.
5198         (put_condition_code): Handle UNORDERED/ORDERED.
5199         (unsigned_comparison): Likewise.
5200         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
5201         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
5202         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
5203         update all callers.  Handle all 8 unordered operators.
5204         (ix86_expand_setcc): Lose the unordered argument, update all callers.
5205         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
5206         * config/i386/i386.h (PREDICATE_CODES): Update.
5207         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
5208         (ix86_expand_branch, ix86_expand_setcc): Update.
5209         * config/i386/i386.md (sunordered, sordered): New.
5210         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
5211         (bunordered, bordered): New.
5212         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
5213         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
5214         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
5215
5216 2000-04-09  Philip Blundell  <philb@gnu.org>
5217
5218         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
5219
5220 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
5221
5222         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
5223         fix_truncxfhi2): New patterns.
5224         * i386.c (output_fix_trunc): Handle converting to HImode.
5225
5226 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
5227
5228         * ssa.c (convert_to_ssa): Eliminate dead code when calling
5229         life_analysis.
5230         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
5231         (for_each_successor_phi): Change parameter to basic_block.
5232         (coalesce_regs_in_successor_phi_nodes): Likewise.
5233         (coalesce_regs_in_copies): Likewise.
5234         (compute_coalesced_reg_partition): Use basic_block instead of index.
5235         * rtl.h (convert_to_ssa): Delete.
5236         (convert_from_ssa): Likewise.
5237         (successor_phi_fn): Likewise.
5238         (for_each_successor_phi): Likewise.
5239         (in_ssa_form): Likewise.
5240         * basic-block.h (convert_to_ssa): Moved from rtl.h.
5241         (convert_from_ssa): Likewise.
5242         (successor_phi_fn): Likewise.
5243         (in_ssa_form): Likewise.
5244         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
5245         * flow.c (calculate_global_regs_live): Pass a basic_block to
5246         for_each_successor_phi.
5247
5248 2000-04-08  Richard Henderson  <rth@cygnus.com>
5249
5250         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
5251         was modified in the current insn.
5252
5253 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5254
5255         * arm/thumb.md: Delete.
5256         * arm/thumb-protos.h: Delete.
5257
5258 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5259
5260         Merge changes from merged-arm-thumb-backend-branch onto trunk.
5261
5262         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5263
5264         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
5265         into branch.
5266
5267         * arm.md (nop): Use the standard RTL expression.  Don't code as a
5268         define_expand.
5269         (*arm_nop, *thumb_nop): Delete.
5270
5271         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
5272         constants.  Use casts instead.
5273         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
5274         output_multi_immediate, arm_poke_function_name): Likewise.
5275         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
5276         MASK_RETURN_ADDDR): Likewise.
5277
5278         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
5279
5280         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
5281         into branch.
5282
5283         * arm.md (eh_epilogue): New function.
5284         * arm.h (struct machine_function): Move to here ...
5285         * arm.c: ... from here.
5286         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
5287         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
5288         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
5289
5290         2000-03-30  Nick Clifton  <nickc@cygnus.com>
5291
5292         * config/arm/semi.h (ASM_SPEC): Restore definition.
5293         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
5294
5295         * config/arm/elf.h (ASM_SPEC): Restore definition.
5296         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
5297
5298         * config/arm/arm.h (ASM_SPEC): Remove definition.
5299         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
5300
5301         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
5302
5303         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
5304
5305         2000-03-24  Nick Clifton  <nickc@cygnus.com>
5306
5307         Various formating tidyups, elimination of compile time
5308         warnings and synchronisation with internal sources:
5309
5310         * config/arm/arm-protos.h (assemble_align): Add prototype.
5311         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
5312         (gen_comapre_reg): Rename to arm_gen_compare_reg.
5313         (arm_return_addr_rtx): Rename to arm_return_addr.
5314
5315         * config/arm/arm.c: Include except.h.
5316         Define shorter typenames for strict minipool_node and struct
5317         minipool_fix.
5318         (arm_return_in_memory): For WinCE return all structures <= 32 bits
5319         in memory.
5320         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
5321         (gen_comapre_reg): Rename to arm_gen_compare_reg.
5322
5323         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
5324         already defined.
5325         (ASM_SPEC): Define if not already defined.
5326         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
5327
5328         * config/arm/arm.md: Rename references to gen_rotated_half_load to
5329         arm_gen_rotated_half_load, and references to gen_comapre_reg to
5330         arm_gen_compare_reg.
5331         (indirect_jump):  Only accept register operands.
5332         (load_indirect_jump): Keep this pattern since combine can generate
5333         it.
5334
5335         * config/arm/coff.h: Include aout.h.
5336         (MULTILIB_DEFAULTS): Only define if not already defined.
5337
5338         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
5339         into arm.h (so that COFF ports can support thumb based aliases).
5340         (ASM_SPEC): Move definition into arm.h
5341
5342         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
5343         redundant apcs spec.
5344         (ASM_SPEC): Move definition to arm.h
5345
5346         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
5347
5348         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
5349         for entries in the .bss section
5350
5351         2000-03-23  Nick Clifton  <nickc@cygnus.com>
5352
5353         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
5354         to thumb_far_jump_used_p.
5355
5356         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
5357         single integer parameter.
5358
5359         * config/arm/arm.c (struct machine_function): Add two new
5360         fields, 'far_jump_used' and 'arg_pointer_live'.
5361         (thumb_far_jump_used_p): Once the decision has been made that
5362         far jumps might be used, always return true.
5363         If being called from the initial elimination offset macro then
5364         do not bother to perform the test if the arg pointer is not
5365         being used.
5366         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
5367         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
5368
5369         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
5370
5371         * arm.c (output_return_instruction): Handle more cases where we can
5372         return from a function with an ldr instruction.
5373         (arm_output_epilogue): Likewise.
5374
5375         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
5376         if we need to push a large stack frame and there are no callee-saved
5377         registers.
5378
5379         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
5380         in ARM code if the frame pointer has been eliminated.
5381
5382         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
5383         unspec_volatile arguments to avoid duplicates.
5384         (consttable_1, consttable_2): Fixes for big-endian mode.
5385
5386         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
5387         as appropriate.
5388
5389         Re-write constant pool code.
5390         * arm.c (minipool_node, minipool_fix): New types.
5391         (minifix): Delete type.
5392         (arm_add_minipool_constant): Delete.
5393         (arm_compute_minipool_offsets, arm_find_barrier,
5394         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
5395         (get_jump_table_size): Now returns HOST_WIDE_INT.
5396         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
5397         functions.
5398         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
5399         (assign_minipool_offsets, arm_print_value): Likewise.
5400         (dump_minipool): Rewrite.
5401         (arm_barrier_cost): New function.
5402         (create_fix_barrier): New function.
5403         (push_minipool_barrier): New function.
5404         (push_minipool_fix): Record additional information about the fixup
5405         required.
5406         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
5407         check the mode of what needs fixing.
5408         (arm_reorg): Rewrite.
5409
5410         2000-03-08  Nick Clifton  <nickc@cygnus.com>
5411
5412         * config/arm/arm.md (indirect_jump): Force constant addresses into
5413         a register.
5414
5415         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
5416
5417         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
5418
5419         2000-02-24  Nick Clifton  <nickc@cygnus.com>
5420
5421         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
5422         adjust is word aligned.
5423         (thumb_expand_epilogue): Make sure that stack adjust is word
5424         aligned.
5425
5426         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
5427
5428         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
5429
5430         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
5431         pointer relative addresses.
5432
5433         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
5434
5435         * arm.c (find_barrier): Find the last barrier within the allowed
5436         range.
5437
5438         2000-02-09  Nick Clifton  <nickc@cygnus.com>
5439
5440         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
5441
5442         2000-02-09  Nick Clifton  <nickc@cygnus.com>
5443
5444         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
5445         ARM_FUNCTION_PROFILER.
5446
5447         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
5448         ARM_FUNCTION_PROFILER.
5449
5450         * config/arm/linux-oldld.h: Imported from mainline sources.
5451
5452         2000-02-07  Nick Clifton  <nickc@cygnus.com>
5453
5454         * config/arm/lib1funcs.asm: Merge in thumb functions from
5455         lib1thumb.asm.
5456
5457         * config/arm/lib1thumb.asm: Delete.
5458
5459         2000-02-04  Nick Clifton  <nickc@cygnus.com>
5460
5461         * config/arm/arm.c: Sychronised with current Red hat local
5462         sources.
5463         * config/arm/arm.h: Ditto.
5464         * config/arm/arm-protos.h: Ditto.
5465
5466         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
5467
5468         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
5469
5470         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
5471         byte stores.
5472
5473         2000-02-02  Nick Clifton  <nickc@cygnus.com>
5474
5475         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
5476
5477         * config/arm/arm.md (epilogue): Fix rtl checking abort because
5478         (return) was emited using an emit_insn() call.
5479
5480         2000-01-31  Nick Clifton  <nickc@cygnus.com>
5481
5482         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
5483         thumb stack frame.
5484         (thumb_exit): Move frame pointer back into hard frame pointer
5485         register if backtracing is being used.
5486
5487         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
5488
5489         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
5490         into branch.
5491
5492         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
5493
5494         * config/arm/arm.md (neg_pool_offset): Provide default for new
5495         attribute.
5496         (arm_movsi_insn): Add neg_pool_offset attribute.
5497         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
5498         rtx for the insn that starts the scan and an unsigned long for its
5499         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
5500         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
5501         instructions in *PINSERTED.
5502         (struct minipool_fixup): Add MIN_ADDRESS elt.
5503         (sort_fixups): Compute it.
5504         (arm_reorg): Changes to support inserting pools before the insn to be
5505         fixed up.
5506
5507         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
5508
5509         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
5510         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
5511         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
5512
5513         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
5514
5515         * config/arm/semi.h (TARGET_VERSION): Do not define if already
5516         defined.
5517         (TARGET_DEFAULT): Do not define if already defined.
5518
5519         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
5520
5521         * config/arm/arm.md (anddi3): Allow disjoint source operands.
5522         (iordi3): Allow disjoint source operands.
5523         (xordi3): Allow disjoint source operands.
5524         (negdi2): Permit construction for ARM and Thumb.
5525         (arm_negdi2): Renamed version of old negdi2 pattern.
5526         (thumb_negdi2): New pattern: Only permit non-overlapping
5527         source and destination.
5528
5529         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
5530
5531         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
5532         scratch low register so that it will not be deleted.
5533
5534         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
5535
5536         * config/arm/pe.h (ARM_PE): Define.
5537
5538         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
5539         interfacearm attribute if this is a PE toolchain.
5540         (output_return_instruction): Do not emit anything if the function
5541         has the naked attribute set.
5542         (is_called_in_ARM_mode): If the function has the interfacearm
5543         attribute then return true.
5544         (thumb_expand_prologue): Do not generate a prologue for naked
5545         functions.
5546         (thumb_expand_epilogue): Do not generate an epilogie for a naked
5547         function.
5548         (output_thumb_prologue): Do not bother if the function is naked.
5549         Strip PE encoding from function name before emitting.
5550
5551         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
5552
5553         * arm.md (pic_load_addr): Fix constraints.
5554
5555         * arm.md (casesi_insn): Fix mis-applied patch.
5556
5557         * arm.md ("core" function unit): Add rules for single- and
5558         multi-cycle insns.
5559         (All TARGET_THUMB patterns): Add "type" attribute information
5560         where needed.
5561         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
5562         the following insn is a CALL.
5563
5564         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
5565         pointer.
5566         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
5567         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
5568         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
5569
5570         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
5571
5572         * config/arm/linux-gas.h: oops - this file was missed out when the
5573         branch was created...
5574
5575         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
5576
5577         * thumb.c: Deleted.  Move contents to ...
5578         * arm.c: ... here.
5579         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
5580         rule for thumb.o
5581         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
5582         * configure: Regen.
5583
5584         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
5585         declare a prototype for asm_output_align();
5586
5587         * arm.c (thumb_condition_code): Delete.
5588         (arm_print_operand): Always use arm_condition_code array.
5589
5590         * arm.c (thumb_return_addr_rtx): Delete.
5591         (arm_save_machine_status, arm_restore_machine_status): Delete.
5592         (arm_init_machine_status, arm_mark_machine_status): New functions.
5593         (arm_init_expanders): Update accordingly.
5594         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
5595         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
5596         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
5597
5598         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
5599
5600         * configure.in : Fix arm-*-aout target to use new t-arm-aout
5601         script.
5602         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
5603         targets.
5604
5605         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
5606
5607         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
5608         stack backtrace structure.
5609
5610         * config/arm/arm-protos.h: Add prototypes for functions defined in
5611         arm/pe.h.
5612
5613         * config/arm/arm.c (arm_override_options): Fix selection of
5614         attributes of default processor.
5615
5616         * config/arm/coff.h: Delete needless #include.
5617
5618         * config/arm/pe.c: Delete unused code.
5619
5620         * config/arm/pe.h (CPP_DEFINES): Delete
5621         (SUBTARGET_CPP_SPEC): Define.
5622         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
5623
5624         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
5625
5626         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
5627
5628         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
5629         updated.
5630         (CAN_DEBUG_WITHOUT_FP): Define.
5631         (FIXED_REGISTERS): Make r11 call-saved.
5632         (CALL_USED_REGISTERS): Likewise.
5633         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
5634         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
5635         frame-pointer is required.
5636         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
5637         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
5638         if the target normally needs a stack frame in non-leaf functions.
5639         (use_return_insn): Correct logic for determining when a return
5640         instruction can be used.
5641         (output_return_instruction): Handle the frame-pointer register as
5642         a normal register when not TARGET_APCS_FRAME.
5643         (arm_output_prologue): Likewise.
5644         (arm_output_epilogue): Likewise.
5645         (output_func_epilogue): Likewise.
5646         (arm_expand_prologue): Likewise.
5647         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
5648
5649         * arm.c (use_return_insn): No need to check floating point regs if
5650         TARGET_SOFT_FLOAT.
5651         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
5652         the code of value stored in the minipool array.
5653         (arm_add_minipool_constant): Likewise.
5654
5655 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5656
5657         * basic-block.h (conflict_graph_enum_fn): K&R fix.
5658
5659 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5660
5661         * tree.c (tree_expr_nonnegative_p): New function.
5662
5663         * tree.h (tree_expr_nonnegative_p): Declare.
5664
5665         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
5666         elide some sign_compare warnings.
5667         (build_conditional_expr): Likewise.
5668
5669 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
5670
5671         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
5672
5673         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
5674         * i386.c (print_operand): Use the proper suffix for a 387 HImode
5675         operand.  Abort if a 387 operand has an unsupported size.
5676
5677 2000-04-08  Neil Booth  <NeilB@earthling.net>
5678
5679         * cppexp.c (parse_charconst): Null does not end character
5680         constants.
5681         * cppinit.c (ISTABLE): Null character handled as whitespace.
5682         * cpplex.c (null_warning):  new function.
5683         (skip_string): Emit warning if nulls encountered.
5684         (_cpp_skip_hspace): Emit warning if nulls encountered.
5685         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
5686         them.
5687         * cpp.texi: Update.
5688
5689 2000-04-07  Richard Henderson  <rth@cygnus.com>
5690
5691         * flow.c (loop_depth): Remove.
5692         (reg_next_use, cc0_live, mem_set_list): Replace with ...
5693         (struct propagate_block_info): New.
5694         (life_analysis): Don't allocate reg_next_use.
5695         (propagate_block_delete_insn): Break out of propagate_block.
5696         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
5697         (propagate_block_delete_libcall): Likewise.
5698         (propagate_block): Create a propagate_block_info struct to pass
5699         to subroutines.  Allocate one not two temporary regsets.  Don't
5700         clobber memory for const calls.  Look for clobbers in
5701         CALL_INSN_FUNCTION_USAGE.
5702         (mark_set_regs): Recognize COND_EXEC.
5703         (mark_set_reg): Break out of mark_set_1.
5704         (mark_used_reg): Break out of mark_used_regs.
5705         (mark_used_regs): Recognize COND_EXEC.
5706         (insn_dead_p): Use propagate_block_info struct.
5707         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
5708         (find_auto_inc, try_pre_increment_1): Likewise.
5709         (print_rtl_with_bb): Dump regs live at end too.
5710         (count_reg_sets_1): Pass in loop_depth.
5711         (count_reg_sets, count_reg_references): Likewise.
5712         (recompute_reg_usage): Provide it.
5713
5714 2000-04-07  Richard Henderson  <rth@cygnus.com>
5715
5716         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
5717         not the raw files.
5718
5719 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
5720
5721         * cpplib.c (do_elif): Skip the rest of the line if we're
5722         not going to bother evaluating it.
5723         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
5724         to avoid pointless calls to the lexer.
5725
5726 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
5727
5728         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
5729
5730 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
5731
5732         * calls.c (expand_call): emit_queue if we're trying a sibcall.
5733
5734 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
5735
5736         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
5737
5738 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
5739
5740         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
5741         crtend so they can be multilibbed.
5742         (STAGESTUFF): Remove s-crt and s-crtS.
5743
5744 2000-04-07  Richard Henderson  <rth@cygnus.com>
5745
5746         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
5747         if we discover we need a pseudo and no_new_pseudos is true.
5748         * config/alpha/alpha.md (ne:DI insn): New.
5749         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
5750
5751 2000-04-07  Richard Henderson  <rth@cygnus.com>
5752
5753         * rtl.def (COND_EXEC): New.
5754         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
5755         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
5756
5757         * genconfig.c (have_cond_arith_flag): Remove.
5758         (have_cond_exec_flag): New.
5759         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
5760         (main): Print HAVE_conditional_execution.
5761
5762         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
5763         (sched_analyze_insn, print_pattern): Likewise.
5764         * reload.c (find_equiv_reg): Likewise.
5765         * rtlanal.c (reg_referenced_p): Likewise.
5766         (note_stores, dead_or_set_regno_p): Likewise.
5767         (reg_overlap_mentioned_p): Rewrite to use a switch.
5768
5769         * ggc.h (struct rtx_def): Forward declare.
5770
5771         * print-rtl.c (debug_rtx_range): New.
5772         * rtl.h (debug_rtx_range): Declare.
5773
5774         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
5775
5776         * gcse.c (gcse_main): Don't rebuild the CFG here.
5777         (delete_null_pointer_checks): Likewise.
5778         * ssa.c (convert_to_ssa): Likewise.
5779         * toplev.c (rest_of_compilation): Do it here instead.  Combine
5780         sequential calls to TIMEVAR.  Consistently use `insns' instead of
5781         `get_insns()'.  Always split insns after reload when optimizing.
5782
5783         * basic-block.h (merge_blocks_nomove): Declare.
5784         (tidy_fallthru_edge): Declare.
5785         * flow.c (merge_blocks_nomove): Document as merging into previous
5786         blocks.  Remove cruft from between blocks; remove all edges out of A.
5787         (tidy_fallthru_edge): Export.
5788
5789 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
5790
5791         * ssa.c (compute_conservative_reg_partition): Declare with
5792         void arguments.
5793         * toplev.c (clean_dump_file): Remove previously-deleted function
5794         inadvertantly merged back in.
5795         * conflict.c (conflict_graph_add): Use a single call to
5796         htab_find_slot to look up and insert.
5797
5798 2000-04-06  Richard Henderson  <rth@cygnus.com>
5799
5800         * genrecog.c (*): Rename _last_insn to last_insn.
5801         (make_insn_sequence): Set the position of the peephole2 C test
5802         to be at the last insn.
5803
5804 2000-04-06  Richard Henderson  <rth@cygnus.com>
5805
5806         * flow.c (compute_flow_dominators): Free worklist.
5807
5808 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
5809
5810         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
5811
5812 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
5813
5814         * rtl.h (INSN_P): New macro.
5815         (successor_phi_fn): New typedef.
5816         (for_each_successor_phi): New prototype.
5817         (in_ssa_form): New variable.
5818         (PHI_NODE_P): Likewise.
5819         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
5820         phi nodes in successors.
5821         (mark_used_regs): Add PHI case.
5822         (set_phi_alternative_reg): New function.
5823         (life_analysis): Assert that dead code elimination is not selected
5824         when in SSA form.
5825         * toplev.c (to_ssa_time): New variable.
5826         (from_ssa_time): Likewise.
5827         (compile_file): Zero to_ssa_time and from_ssa_time.
5828         Print time to convert to and from SSA.
5829         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
5830         (print_time): Compute percent fraction as integer.
5831         * ssa.c (PHI_NODE_P): Moved to rtl.h.
5832         (convert_to_ssa): Check if we're already in SSA.
5833         Don't eliminate dead code in life_analysis.
5834         Rerun flow and life analysis at bottom.
5835         (eliminate_phi): Use canonical regnos when adding nodes.
5836         (mark_reg_in_phi): New function.
5837         (mark_phi_and_copy_regs): Likewise.
5838         (convert_from_ssa): Rerun life analysis at top.
5839         Use coalesced partition.
5840         Check for removing a phi node at the end of the block.
5841         (compute_coalesced_reg_partition): New function.
5842         (coalesce_regs_in_copies): Likewise.
5843         (coalesce_reg_in_phi): Likewise.
5844         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
5845         (for_each_successor_phi): Likewise.
5846         (rename_context): New struct.
5847         (rename_block): Use a rename_context with rename_insn_1.  When
5848         renaming sets of a subreg, emit a copy of the entire reg first.
5849         (rename_insn_1): Treat data as a rename_context *.  Save current
5850         insn in set_data.
5851         (rename_set_data): Add field set_insn.
5852         * Makefile.in (HASHTAB_H): Move up in file.
5853         (OBSTACK_H): New macro.
5854         (collect2.o): Use OBSTACK_H in dependencies.
5855         (sdbout.o): Likewise.
5856         (emit-rtl.o): Likewise.
5857         (simplify-rtx.o): Likewise.
5858         (fix-header.o): Likewise.
5859         (OBJS): Add conflict.o.
5860         (conflict.o): New rule.
5861         * basic-block.h: Include partition.h.
5862         (conflict_graph): New typedef.
5863         (conflict_graph_enum_fn): Likewise.
5864         (conflict_graph_new): New prototype.
5865         (conflict_graph_delete): Likewise.
5866         (conflict_graph_add): Likewise.
5867         (conflict_graph_conflict_p): Likewise.
5868         (conflict_graph_enum): Likewise.
5869         (conflict_graph_merge_regs): Likewise.
5870         (conflict_graph_print): Likewise.
5871         (conflict_graph_compute): Likewise.
5872         * conflict.c: New file.
5873
5874 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
5875
5876         * tlink.c (read_repo_files): Don't look for .rpo info for
5877         linker flags.
5878
5879 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5880
5881         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
5882
5883 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5884
5885         * config/sh/lib1funcs.asm (___udivsi3_i4):
5886         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
5887         only depends on FMOVD_WORKS.
5888
5889 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5890
5891         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
5892         make double constant 8-byte aligned.
5893
5894 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
5895
5896         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
5897         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
5898         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
5899         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
5900         Accept storing GENERAL_REGS into offsetable memory.
5901         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
5902         building a TFmode constant other than 0.0L into GENERAL_REGS.
5903
5904 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
5905
5906         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
5907
5908 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
5909
5910         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
5911         (macro_cleanup): No need to cast pbuf->macro.
5912         (collect_expansion): Use _cpp_get_define_token.  Goto done if
5913         it returns VSPACE.  Remove check for trailing space after
5914         CPP_COMMENT.
5915         (_cpp_create_definition): Don't diddle flags here.  Return
5916         directly on error.
5917         (unsafe_chars): Handle c1 being EOF.
5918         (push_macro_expansion): Use unsafe_chars for both accidental-paste
5919         checks.  Don't push the buffer till after we're done with
5920         them.
5921         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
5922         (PEEKN, FORWARD, GETC, PEEKC): Use them.
5923         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
5924         appropriately.
5925         (_cpp_parse_assertion): Don't NUL terminate.
5926         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
5927         hspace before calling _cpp_parse_assertion.  Remove all sets
5928         of only_seen_white. Treat '\f' as hspace.  Don't do anything
5929         special with '\n' here.
5930         (maybe_macroexpand): Handle T_EMPTY hash entries without
5931         pushing a buffer at all.
5932         (cpp_get_token): Handle clearing only_seen_white here.  Handle
5933         incrementing the line number here.  Clear
5934         potential_control_macro as well as only_seen_white, if
5935         appropriate.
5936         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
5937         (_cpp_get_define_token): New function, basically like
5938         _cpp_get_directive_token was but doesn't eat horizontal space.
5939         Don't do anything with only_seen_white here.
5940         (_cpp_get_directive_token): Just call _cpp_get_define_token
5941         repeatedly till it returns non-hspace.
5942
5943         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
5944         (conditional_skip, skip_if_group): Return int.
5945         (DIRECTIVE_TABLE): Change origin of all conditional directives
5946         to "COND".
5947         (TRAD_DIRECT_P): New macro.
5948         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
5949         an error for a bogus directive, unless -lang-asm.  Use
5950         TRAD_DIRECT_P. Loop calling handler functions till one returns
5951         zero.
5952         (get_macro_name): Don't diddle flags here.
5953         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
5954         Create T_EMPTY nodes for #define macro /* nothing */.
5955         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
5956         Use hp->name when calling pass_thru_directive.
5957         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
5958         Return the result of conditional_skip and/or skip_if_group.
5959         Don't call _cpp_output_line_command.
5960         (consider_directive_while_skipping): Use _cpp_get_directive_token.
5961         Issue -Wtraditional warnings as appropriate.  Don't complain
5962         about unrecognized directives.  If we are to stop skipping,
5963         return the number of the directive that ended the skip.
5964         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
5965         expansion and line commands while skipping.  Return the result
5966         of consider_directive_while_skipping, if nonzero.
5967         (do_endif): Just set potential_control_macro here.
5968         (validate_else): Use _cpp_get_directive_token.
5969         (do_assert, do_unassert): Don't save pointers into the
5970         token_buffer across calls to the lexer.  Use
5971         _cpp_get_directive_token.
5972
5973         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
5974         pointer, not an offset.  Replace 'data', which was a generic
5975         pointer, with 'macro', which points to a struct hashnode.
5976         (cpp_reader): Add 'potential_control_macro' pointer.
5977         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
5978         (CPP_BUF_GET, CPP_FORWARD): Delete.
5979         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
5980         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
5981         ACTIVE_MARK_P): Update.
5982         (_cpp_get_define_token): New internal function.
5983         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
5984
5985 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
5986
5987         * configure.in: And here.
5988         * configure: Regenerate.
5989         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
5990         --enable-libstdcxx-v3 is passed at configure time.
5991         * config.h.in: Regenerate.
5992
5993 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
5994
5995         * final.c (final): Use xcalloc to allocate line_note_exists.
5996         * function.c (free_after_compilation): Free the temp_slots.
5997         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
5998         (combine_temp_slot): Free temp_slots when they get combined.
5999         (purge_addressof): Fix typo in comment.
6000         * stmt.c (mark_goto_fixup): Mark the fixup itself.
6001         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
6002
6003         * ggc.h: Include varray.h.
6004         (ggc_pending_trees): Declare.
6005         (ggc_mark_tree_children): Remove declaration.
6006         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
6007         * ggc-common.c (ggc_pending_trees): New variable.
6008         (ggc_mark_roots): Call ggc_mark_trees.
6009         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
6010         the ggc_pending_trees.
6011         * Makefile.in (GGC_H): New variable.  Use it throughout in place
6012         of ggc.h.
6013
6014 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6015
6016         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
6017         GET_MODE_SIZE.
6018
6019 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6020
6021         * sh.c (sh_insn_length_adjustment): New function.
6022         * sh-protos.h (sh_insn_length_adjustment): Declare.
6023         * sh.h (ADJUST_INSN_LENGTH): Use it.
6024
6025 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
6026
6027         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
6028         from the insn where REG_RETVAL is added.
6029         (emit_no_conflict_block): Ditto.
6030
6031         * md.texi (Standard Names): Clarify when movX is needed.
6032
6033         * combine.c (simplify_comparison) [MINUS]: Do not replace
6034         all (op (minus A B) 0) with (op A B).
6035
6036 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
6037                           J"orn Rennecke <amylaar@cygnus.co.uk>
6038
6039         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
6040         (block_lump_real): Likewise.
6041
6042 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
6043
6044         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
6045         remaining non-zero debugging masks.
6046
6047 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
6048
6049         * basic-block.h (verify_flow_info): Declare.
6050         (flow_loop_outside_edge_p): Declare.
6051         * flow.c (verify_flow_info): Remove declaration.
6052         (clear_log_links, flow_loop_outside_edge_p): Likewise.
6053
6054 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
6055
6056         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
6057         not C++ comments.
6058
6059 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
6060
6061         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
6062         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
6063         seqdi_zero_trunc+1): Allow splits only if registers are
6064         different.
6065
6066 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
6067
6068         * acconfig.h: Add HAVE_GAS_HIDDEN.
6069         * config.in: Regenerated.
6070         * configure.in: Add test for .hidden pseudo-op in gas.
6071         * configure: Regenerated.
6072         * crtstuff.c: Include auto-host.h.
6073         Emit additional .hidden pseudo-op for __dso_handle if the
6074         assembler knows about it.
6075
6076 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
6077
6078         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
6079         before freeing argnames.
6080         * cpplib.c (do_ifndef): Cast return value of xstrdup.
6081
6082 2000-04-05  Michael Meissner  <meissner@redhat.com>
6083
6084         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
6085         Walton <jonboy@gordian.com> to make memory references with update
6086         work wtih -mregnames.
6087
6088 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6089
6090         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
6091         (regrename_optimize): Rename variables `def_uses' and
6092         `ext_basic_blocks' to avoid conflicts with similarly named
6093         typedefs in traditional C.
6094
6095         * calls.c (initialize_argument_information): Fix typo in previous
6096         change.
6097
6098 2000-04-04  Richard Henderson  <rth@cygnus.com>
6099
6100         * regrename.c (consider_available): Test fixed_regs not
6101         PIC_OFFSET_TABLE_REGNUM.
6102
6103 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
6104
6105         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
6106         crtend.
6107         (CRTSTUFF_T_CFLAGS_S): Delete definition.
6108         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
6109         (ENDFILE_LINUX_SPEC): Always use crtend.
6110         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
6111         (powerpc-*-linux-gnu): Likewise.
6112         * configure: Regenerate.
6113
6114         * config/rs6000/eabi.h: Don't include sysv4.h.
6115         (MULTILIB_DEFAULTS): Don't define.
6116         * config/rs6000/eabiaix.h: Don't include eabi.h.
6117         * config/rs6000/eabile.h: Delete.
6118         * config/rs6000/eabilesim.h: Delete.
6119         * config/rs6000/eabisim.h: Don't include eabi.h.
6120         * config/rs6000/linux.h: Don't include sysv4.h.
6121         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
6122         (MULTILIB_DEFAULTS): Don't redefine.
6123         * config/rs6000/rtems.h: Don't include eabi.h.
6124         * config/rs6000/sol2.h: Don't include sysv4le.h.
6125         * config/rs6000/sysv4le.h: Don't include sysv4.h.
6126         * config/rs6000/t-ppc: Delete.
6127         * config/rs6000/t-ppcgas: Correct comment.
6128         * config/rs6000/t-ppcos: Correct comment.  Don't build
6129         multilibs for -fPIC, rather use -fPIC -mstrict-align
6130         as default.
6131         * config/rs6000/t-ppc: Delete.
6132         * config/rs6000/vxppc.h: Don't include sysv4.h.
6133         * config/rs6000/vxppcle.h: Delete.
6134         * configure.in: Use multiple header files for p2pc ELF targets
6135         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
6136         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
6137         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
6138         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
6139         always available for these platforms.
6140
6141 2000-04-04  Richard Henderson  <rth@cygnus.com>
6142
6143         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
6144
6145 2000-04-04  Stan Cox  <scox@cygnus.com>
6146
6147         * Makefile.in: Add rules for regrename.o
6148         * regrename.c: New file.
6149         * rtl.h (regrename_optimize): Add prototype.
6150         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
6151         (compile_file, decode_d_option): Add support for -frename-registers.
6152         (rest_of_compilation): Call regrename_optimize.
6153         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
6154         New macros.
6155
6156 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6157
6158         * Makefile (gccbug): New target.
6159         (doc): Depend on it.
6160         * gcc.texi (Bugs): Link subnodes.
6161         (gccbug): New node.
6162         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
6163         Document severities, priorities, and classes in bug form.
6164
6165 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
6166
6167         * cpplex.c (trigraph_map, speccase): Combine into single
6168         table, chartab.
6169         (NORMAL, NONTRI): New macros.
6170         (_cpp_read_and_prescan): Change to use unified table.  Use
6171         is_hspace to test for whitespace.
6172
6173         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
6174         definition that doesn't provoke the "empty body in an
6175         if-statement" warning.
6176
6177 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
6178
6179         * builtins.c (expand_builtin_strlen): Force the source to
6180         be a memory address.
6181
6182 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6183
6184         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
6185
6186 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6187
6188         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
6189          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
6190         (ECF_IS_CONST): Rename to ECF_CONST.
6191         (special_function_p): Make static, change interface.
6192         (flags_from_decl_or_type, try_to_integrate): Break out from ...
6193         (expand_call) ... here; convert number of variables to flags.
6194         (emit_library_call_vlue_1): Likewise.
6195         (setjmp_call_p): New function.
6196         (initialize_argument_information): Accepts flags as argument;
6197         return flags.
6198         (precompute_arguments): Likewise.
6199         * tree.h (special_function_p): Remove.
6200         (setjmp_call_p): Add prototype.
6201
6202 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
6203
6204         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
6205         so that addresses are offsetable by up to 16 bytes.
6206         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
6207         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
6208         offsetable.
6209
6210         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
6211         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
6212         (movsf): Don't force any constant to memory if target is integer
6213         hard register.
6214         Move fp_zero_operand check below the const0_rtx check.
6215         (movtf): Likewise. Also allow fp_zero_operand for stores into
6216         memory.
6217         (movdf): Likewise. Also allow fp_zero_operand for stores into
6218         memory and into integer hard registers.
6219         (clear_df, clear_dfp, movdf_const_intreg_sp32,
6220         movdf_const_intreg_sp64): Remove.
6221         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
6222         conditions.
6223         (movdf_no_e_insn_v9_sp32): New pattern.
6224         (movdf_insn_v9only): Remove.
6225         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
6226         (movdf_insn_sp64): Remove.
6227         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
6228         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
6229         (following splits): Rewrite conditions. Add two new splits
6230         for storing 0.0 into memory and registers.
6231         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
6232         (movtf_insn_sp32): Redo constraints and conditions.
6233         (movtf_insn_vis_sp32): New pattern.
6234         (movtf_no_e_insn_sp32): Redo constraints and conditions.
6235         (movtf_insn_hq_sp64): Likewise.
6236         (movtf_insn_hq_vis_sp64): New pattern.
6237         (movtf_insn_sp64): Redo constraints and conditions.
6238         (movtf_insn_vis_sp64): New pattern.
6239         (movtf_no_e_insn_sp64): Redo constraints and conditions.
6240         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
6241         or memory.
6242         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
6243         -mvis or -m64 to take down the number of various reload patterns.
6244
6245 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
6246
6247         * pa/pa-64.h: New file.
6248         * pa/pa64-regs.h: New file.
6249         * pa/pa64-start.h: New file.
6250         * pa/t-pa64: New file.
6251         * pa/xm-pa64hpux.h: New file.
6252
6253 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6254
6255         * sparc.c (output_restore_regs): Prototype.
6256         (sparc_emit_float_lib_cmp): Constification.
6257
6258         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
6259
6260         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
6261         Prototype.
6262
6263         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
6264         (get_value_hash, hash_rtx): Likewise.
6265
6266         * ssa.c (compute_conservative_reg_partition): Prototype.
6267
6268         * tree.c (mark_hash_entry): Prototype.
6269
6270 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
6271
6272         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
6273         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
6274         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
6275
6276         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
6277         * objc/lang-specs.h: Likewise.
6278
6279 2000-04-03  Neil Booth  <NeilB@earthling.net>
6280
6281         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
6282         and SYNTAX_ERROR2. Replace `' in messages with ''.
6283         (op_to_str): Make re-entrant.
6284         (_cpp_parse_expr): Implement new error macros. Use | rather
6285         than || to logically or 2 boolean integers.  Simply expression
6286         checking we have a left operand iff needed.
6287
6288 2000-04-03  Nick Clifton  <nickc@cygnus.com>
6289
6290         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
6291
6292 2000-04-03  Philip Blundell  <philb@gnu.org>
6293
6294         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
6295
6296 2000-04-03  Felix Lee  <flee@cygnus.com>
6297
6298         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
6299         (run_shell): Use it.
6300
6301 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
6302
6303         * Makefile.in (stmp-int-hdrs): Make include subdir here...
6304         (stmp-fixproto): ...rather than here.
6305
6306 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
6307
6308         * pa.c (print_operand): Compute 'base' only inside the code paths
6309         that use it.
6310
6311 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
6312
6313         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
6314         CEIL_DIV_EXPR.
6315
6316 2000-04-03  Philipp Thomas  <pthomas@suse.de>
6317
6318         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
6319
6320 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
6321
6322         * Makefile.in (alias.o): Depend on $(TREE_H).
6323
6324 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
6325
6326         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
6327         processing C++.
6328         * cpplib.c (_cpp_handle_directive): Improve warnings for
6329         traditional C and indented directives.
6330
6331         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
6332         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
6333         fixinc/inclhack.def: Indent the # of #include_next one space.
6334         * cp/rtti.c: Un-indent #if and #endif.
6335
6336         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
6337         syntax error, but an error has already been printed.
6338         * cpplex.c (_cpp_parse_assertion): Give a more specific error
6339         message when called with nothing remaining on the line.
6340         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
6341         OTHER token, not an ASSERTION.
6342         * cpplib.c (do_assert): When we create a 'base' node, clear
6343         its aschain pointer.
6344
6345 2000-04-02  Neil Booth <NeilB@earthling.net>
6346
6347         * cppexp.c:  New typedef op_t.  struct operation and struct
6348         token updated to use it.
6349         (op_to_str): New function.
6350         (_cpp_parse_expr): Error messages modified to use op_to_str.
6351
6352 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6353
6354         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
6355         before checking MUST_PASS_IN_STACK.
6356
6357 2000-04-02  Neil Booth <NeilB@earthling.net>
6358
6359         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
6360         flags and initial priority into a single constant.  New
6361         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
6362         (_parse_cpp_expr): Implement new constants.  Take left operand
6363         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
6364         parse indicated by reducing FINISHED token.  Remove new lines
6365         from cpp_error messages.
6366
6367 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
6368
6369         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
6370         permanent obstack.
6371
6372 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
6373
6374         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
6375         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
6376         the strings and function names on the fly.  Take the #sccs
6377         entry out of the table if SCCS_DIRECTIVE is not defined.
6378         (_cpp_handle_directive): Decide if the # was at the beginning
6379         of the line here.  Issue -pedantic warnings for extended
6380         directives here.  Warn about K+R directives with the #
6381         indented, and C89/extended directives with the # not indented,
6382         here.
6383         (do_import, do_include_next, do_warning, do_ident, do_sccs,
6384         do_assert, do_unassert): Don't issue pedantic warning here.
6385
6386         * cpphash.h: Add CPP_WTRADITIONAL macro.
6387         * cpplib.h (struct cpp_options): Rename warn_stringify to
6388         warn_traditional; update comments.
6389         * cppinit.c (handle_option): Set warn_traditional not
6390         warn_stringify.
6391         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
6392         CPP_WTRADITIONAL (pfile).
6393         * cpplex.c (_cpp_lex_token): Don't decide if directives should
6394         be ignored in -traditional mode here.
6395
6396         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
6397         to initialize speccase[] and trigraph_map[].  Delete all
6398         references to pfile->input_speccase.  Always treat '?' as a
6399         special character.  Remove table-initialization code from
6400         _cpp_init_input_buffer.
6401
6402         * cpplib.h (struct cpp_reader): Remove input_speccase field.
6403         * cppinit.c (cpp_cleanup): Don't free input_speccase.
6404
6405 2000-04-01  Richard Henderson  <rth@cygnus.com>
6406
6407         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
6408         (mostlyclean): Likewise.
6409
6410         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
6411         (struct dump_file_info, enum dump_file_index, dump_file): New.
6412         (open_dump_file): Take a dump_file_index not a suffix, and a decl
6413         not a string.  Clean out file if we havn't yet done so.  Do nothing
6414         if the dump isn't enabled.
6415         (close_dump_file): Do nothing if the dump isn't open.  Dump
6416         graph data if requested.
6417         (dump_rtl, clean_dump_file): Remove.
6418         (compile_file): Don't clean the dump files.  Only finalize .bp dump
6419         if flag_test_coverage or flag_branch_probabilities.  Only finalize
6420         .combine dump if optimizing.  Iterate over dump_file to finalize the
6421         graph dumps.
6422         (rest_of_compilation): Update for open_dump_file/close_dump_file.
6423         Convert all uses of dump_rtl.
6424         (decode_d_option): Iterate over dump_file to implement 'a' and to
6425         locate pass-specific dumps.
6426
6427 2000-04-01  Neil Booth <NeilB@earthling.net>
6428
6429         * cppexp.c: Redefine priority constants.
6430         (_cpp_parse_expr): Replace left and right priority scheme with
6431         single priority logic.  Move LOGICAL to same place as COMPARE.
6432         Remove bogus check for multiple unary +/- operators.
6433
6434 2000-04-01  Neil Booth <NeilB@earthling.net>
6435
6436         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
6437         within the switch statement.  Binary operations break out of
6438         the switch naturally.  '(' tokens handled by forcing
6439         immediate shift.  ')' handled by forcing immediate reduce to
6440         the previous '('.  New error messages.
6441
6442 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
6443
6444         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
6445         part', it's already in use.  Use %K instead.  Add a return at the
6446         end of what is now %K.
6447         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
6448
6449 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6450
6451         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
6452         allocate_dynamic_stack_space.
6453         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
6454         update stack_pointer_delta; do not update arg_size_so_far.
6455         (compute_argument_block_size): Use stack_delta instead of
6456         stack_pointer_pending and arg_size_so_far.
6457         (expand_call): Add sanity checking for stack_pointer_delta;
6458         save and restore stack_pointer_delta for SIB, use
6459         stack_pointer_delta for alignment; do not update arg_space_so_far.
6460         (emit_library_call_value): Use stack_pointer_delta for alignment.
6461         (store_one_arg): Do not update arg_space_so_far.
6462         * explow.c (adjust_stack, anti_adjust_stack): Update
6463         stack_pointer_delta.
6464         (allocate_dynamic_stack_space): Add sanity checking for
6465         stack_pointer_delta.
6466         * expr.c (init_expr, clear_pending_stack_adjust): Clear
6467         stack_pointer_delta.
6468         (emit_push_insn): Update stack_pointer_delta.
6469         * function.h (struct expr_status): Add x_stack_pointer_delta;
6470         remove x_arg_space_so_far.
6471         (arg_space_so_far): Remove.
6472         (stack_pointer_delta): New macro.
6473
6474 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
6475
6476         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
6477         Reorder struct cpp_options and struct cpp_reader for better
6478         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
6479         takes two args.  Change all 'char' flags to 'unsigned char'.
6480         Move show_column flag into struct cpp_options.  Don't
6481         prototype cpp_options_init.
6482         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
6483         cppinit.c, cpplex.c, cpplib.c:
6484         Replace CPP_OPTIONS (pfile)->whatever with
6485         CPP_OPTION (pfile, whatever), and likewise for
6486         opts = CPP_OPTIONS (pfile); ... opts->whatever;
6487
6488         * cppinit.c (merge_include_chains): Take a cpp_reader *.
6489         Extract CPP_OPTION (pfile, pending) and work with that
6490         directly.
6491         (cpp_options_init): Delete.
6492         (cpp_reader_init): Turn on on-by-default options here.
6493         Allocate the pending structure here.
6494         (cl_options, enum opt_code): Define these from the same table,
6495         kept in a large macro.  Add -fshow-column and -fno-show-column
6496         options.
6497
6498         * cpperror.c (v_message): If show_column is off, don't print
6499         the column number.
6500
6501         * cppmain.c: Update for new interface.
6502         * fix-header.c: Likewise.
6503
6504 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
6505
6506         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
6507         definition.
6508         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
6509         are passed to any invocation of AR_FOR_TARGET.
6510         (AR_CREATE_FOR_TARGET): New macro.
6511         (AR_EXTRACT_FOR_TARGET): New macro.
6512         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
6513         AR_EXTRACT_FOR_TARGET.
6514         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
6515         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
6516         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
6517         AR_EXTRACT_FOR_TARGET to sub-makes.
6518
6519 2000-03-31  Neil Booth <NeilB@earthling.net>
6520
6521         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
6522         PAREN_INNER_PRIO.
6523         (_cpp_parse_expr): Check for multiple unary +/- operators.
6524         Correct priorities of ':' and '?'.  Treat ')' as having a
6525         value.  Ensure conditional expression is not void.
6526
6527 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
6528
6529         * alias.c (canon_rtx): Make it global.
6530         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
6531         equality.
6532         * cse.c (struct table_elt): Add canon_exp.
6533         (insert): Clear it.
6534         (invalidate): Canonicalize expressions only once.
6535         * rtl.h (canon_rtx): Declare.
6536
6537 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
6538
6539         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
6540         * alias.c (reg_known_value): Add comments.
6541         (init_alias_analysis): Likewise.
6542         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
6543         address.
6544         (cse_basic_block): Fix typo in comment.
6545         * emit-rtl.c: Include hashtab.h.
6546         (const_int_htab): New variable.
6547         (const_int_htab_hash): New function.
6548         (const_int_htab_eq): Likewise.
6549         (rtx_htab_mark_1): Likewise.
6550         (rtx_htab_mark): Likewise.
6551         (gen_rtx_CONST_INT): Cache all CONST_INTs.
6552         (unshare_all_rtx): Fix formatting.
6553         (init_emit_once): Initialize const_int_htab.
6554         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
6555         address.
6556         * rtl.texi: Document the fact that all CONST_INTs with the same
6557         value are shared.
6558
6559 2000-03-30  Richard Henderson  <rth@cygnus.com>
6560
6561         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
6562
6563 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
6564
6565         * configure.in: Comment out --enable-c-cpplib stanza.
6566         * configure: Regenerate.
6567
6568 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6569
6570         * expr.c (store_constructor): Properly compute displacement and
6571         alignment when offset is variable.
6572
6573         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
6574         cases of alignment in bytes.
6575
6576 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
6577
6578         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
6579         since it is used to generate c-parse.y.
6580         * objc-parse.c, objc-parse.y: Regenerated.
6581
6582         * function.c (expand_function_end): Pass alignment argument to
6583         emit_block_move in bits, not bytes.
6584
6585 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6586
6587         * expr.c (move_by_pieces_ninsns): Fix one more missing align
6588         correction.
6589
6590         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
6591
6592         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
6593         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
6594         * function.c (assign_parms): Likewise.
6595         * integrate.c (expand_inline_function): Likewise.
6596         * stmt.c (expand_decl): Likewise.
6597         (copy_rtx_and_substitute): Likewise.
6598         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
6599         (clear_by_pieces): Fix error in last change.
6600         * emit-rtl.c (init_emit): Set known registers alignment in bits.
6601         * function.h (regno_pointer_align): Now unsigned.
6602         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
6603         is in bits.
6604         * config/i386/i386.c (aligned_operand): Likewise.
6605         * config/sparc/sparc.c (mem_min_alignment): Likewise.
6606         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
6607         (unaligned_memory_operand): Likewise.
6608         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
6609         Also make alignments and sizes unsigned and some whitespace cleanup.
6610         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
6611
6612         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
6613         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
6614         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
6615         (expand_builtin_memset): Likewise, but to clear_storage.
6616         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
6617         (restore_fixed_argument_area): Likewise.
6618         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
6619         (load_register_parameters): Likewise, to emit_group_load.
6620         (expand_call): Likewise, to emit_group_store and emit_block_move.
6621         (emit_library_call_value_1): Likewise, to emit_block_move.
6622         (store_one_arg): Likewise, and to emit_push_insn.
6623         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
6624         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
6625         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
6626         (emit_block_move, emit_group_load, emit_group_store): Likewise.
6627         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
6628         (expand_assigment, store_expr, store_constructor_field): Likewise.
6629         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
6630         (store_constructor, store_field, get_inner_reference): Likewise.
6631         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
6632         (expand_expr, case COMPONENT_REF): Likewise.
6633         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
6634         and positions; reindent code.
6635         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
6636         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
6637         (assign_parms): Likewise to emit_group_store.
6638         * optabs.c (prepare_cmp_insn): Alignment is in bits.
6639         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
6640         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
6641         (expand_return): Likewise to {extract,store}_bit_field.
6642         * stor-layout.c (get_mode_alignment): Minor cleanup.
6643         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
6644         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
6645
6646 2000-03-29  Nick Clifton  <nickc@cygnus.com>
6647
6648         * config/arm/arm.h: Undo effects of previous delta:
6649         (ASM_SPEC): Do not define.
6650         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
6651
6652         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
6653         typo.
6654
6655 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
6656
6657         * cppinit.c (cpp_start_read): Call initialize_dependency_output
6658         only after reading in the primary source file.
6659
6660 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
6661
6662         * c-common.c (c_common_nodes_and_builtins): The first parameter to
6663         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
6664         or a reference to a va_list.
6665         * builtins.c (stabilize_va_list): Simplify now we don't have to
6666         work around C array address decay.
6667         * c-typeck.c (convert_for_assignment): Handle assignment to
6668         a reference parameter by taking the address of the RHS.
6669         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
6670         (va_copy): Likewise.
6671         (__va_copy): Likewise.
6672         * ginclude/varargs.h (va_start): Likewise.
6673         (__va_copy): Likewise.
6674
6675 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
6676
6677         * i386/djgpp.h: Remove extraneous "+".
6678
6679         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
6680
6681         * calls.c (expand_call): Fix typo in last change.
6682
6683 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
6684
6685         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
6686         been expanded.
6687
6688 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6689
6690         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
6691         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
6692         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
6693         * tree.c (bit_position, byte_position): Likewise.
6694         * tree.h: Declare new functions.
6695
6696 2000-03-29  Nick Clifton  <nickc@cygnus.com>
6697
6698         * config/arm/arm.c: Minor formatting changes/
6699         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
6700         already defined.
6701         (ASM_SPEC): Define if not already defined.
6702
6703 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
6704
6705         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
6706         _cpp_calc_hash.
6707
6708 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
6709
6710         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
6711         value, don't output it as unsigned.
6712
6713 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
6714
6715         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
6716
6717 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6718
6719         * c-common.c (c_common_nodes_and_builtins): Don't special case
6720         cplus_mode when declaring builtin bzero/bcmp, always avoid
6721         prototype arguments.
6722
6723 2000-03-29  Bruce Korb  <bkorb@gnu.org>
6724
6725         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
6726         to a non-file
6727
6728 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6729
6730         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
6731         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
6732         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
6733         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
6734         (save_fixed_argument_area, restore_fixed_argument_area):
6735         conditionize by #ifdef REG_PARM_STACK_SPACE only.
6736         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
6737         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
6738         (precompute_register_parameters): Avoid #ifdefs on
6739         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
6740         (stire_one_args): Likewise.
6741         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
6742         (emit_library_call_value_1): Likewise.
6743         (compute_argument_block_size): Align to STACK_BOUNDARY only for
6744         ACCUMULATE_OUTGOING_ARGS.
6745         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
6746         value.
6747         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
6748         (use_crosses_set_p): Likewise.
6749         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
6750         #define ACCUMULATE_OUTGOING_ARGS 1.
6751         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
6752         frames.
6753         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
6754         constants.
6755         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
6756         (TARGET_SWITCHES): Add push-args, no-push-args,
6757         accumulate-outgoing-args and no-accumulate-outgoing-args.
6758         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
6759         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
6760         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
6761         and PUSH_ROUNDING.
6762         (emit_push_insn): Likewise.
6763         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6764         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
6765         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6766         (STACK_DYNAMIC_OFFSET): Define correctly for both
6767         ACCUMULATE_OUTGOING_ARGS and normal mode.
6768         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
6769         * tm.texi (PUSH_ARGS): Document.
6770         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
6771
6772 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6773
6774         * flags.h (flag_optimize_sibling_calls): Declare.
6775         * calls.c (expand_call): Fail sibcall when
6776         !flag_optimize_sibling_calls
6777         * invoke.texi (flag_optimize_sibling_calls): Document.
6778         * toplev.c (flag_optimize_sibling_calls): New global variable.
6779         (f_options): Add flag_optimize_sibling_calls.
6780         (rest_of_compilation): Conditionize
6781         optimize_sibling_and_tail_recursive_calls by
6782         flag_optimize_sibling_calls.
6783         (main): Set flag_optimize_sibling_calls for -O2.
6784         * stmt.c (expand_return): Conditionize tail recursion by
6785         flag_optimize_sibling_calls.
6786
6787 2000-03-29  Richard Henderson  <rth@cygnus.com>
6788
6789         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
6790         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
6791
6792 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
6793
6794         * except.c (add_eh_table_entry): Mark type_info's as referenced.
6795
6796 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6797
6798         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
6799         is given.
6800         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
6801         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
6802         * config/rs6000/aix.h: then modified likewise.
6803
6804 2000-03-28  Richard Henderson  <rth@cygnus.com>
6805
6806         * rtl.h: Redistribute enum reg_note documentation.
6807         Kill trailing whitespace.
6808         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
6809         Kill trailing whitespace.
6810
6811 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
6812
6813         * cppfiles.c (hash_IHASH): Just return i->hash.
6814         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
6815         htab_find_with_hash.
6816         (cpp_read_file): Likewise.
6817         (find_include_file): Likewise.  Properly initialize
6818         ih->nshort.  Share ih->name and ih->nshort if possible.
6819         * cpphash.c (_cpp_calc_hash): New function.
6820         (hash_HASHNODE): Just return h->hash.
6821         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
6822         htab_find_with_hash.
6823         * cpphash.h: Prototype _cpp_calc_hash.
6824         * cppinit.c (initialize_builtins): Provide a valid hash
6825         to _cpp_make_hashnode, using _cpp_calc_hash.
6826
6827         * cpphash.c (collect_expansion): # is not a special character
6828         in object-like macros.  In -traditional mode, /**/ is not
6829         token paste at the beginning or end of the line.
6830         * cpplib.c (do_include, do_import, do_include_next): If
6831         parse_include fails, return immediately.
6832
6833 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
6834
6835         * config/arm/arm.md (return peepholes): Update to reflect the new
6836         call insn patterns.
6837         * config/arm/arm.c (arm_volatile_func): Also check
6838         current_function_nothrow.
6839         (output_return_instruction, output_func_prologue): Use it.
6840         (arm_output_epilogue, arm_expand_prologue): Likewise.
6841
6842 2000-03-27  Tom Tromey  <tromey@cygnus.com>
6843
6844         * gcc.c (handle_braces): In {x*...} case, break out of loop if
6845         switch is found.
6846
6847 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6848
6849         * expr.c (store_constructor): SIZE now signed.
6850         For EXPR_SIZE, don't evaluate size; just needed if constant.
6851         * fold-const.c (fold): Fix a number of cases when folded tree is
6852         wrong type.
6853         * function.c (flush_addressof): Reenable.
6854         * tree.h (flush_addressof): Likewise.
6855         * toplev.c (independent_decode_option): Look at strings_processed.
6856         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
6857
6858 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
6859
6860         * sibcall.c (indentify_call_return_value): Find last call in the chain;
6861         Allow stack adjustment after function call.
6862
6863         * regmove.c (struct csa_memlist): Make mem field rtx *.
6864         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
6865         (try_apply_stack_adjustment): Replace whole MEM rtx.
6866         (combine_stack_adjustments_for_block): Update calls
6867         to record_one_stack_ref.
6868
6869 2000-03-28  Neil Booth  <NeilB@earthling.net>
6870
6871         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
6872         '\\' rather than a null character, so nulls are not special.  Fix
6873         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
6874         speed trigraph conversion.
6875         (_cpp_init_input_buffer): Initialize trigraph map.
6876
6877 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
6878
6879         * config/i386/i386.c (output_387_binary_op): Correct intel
6880         mode assembly output, and add spaces after commas in AT&T
6881         output.  Correct Unixware assembler comment.  Document input
6882         constraints.  Comment fp operations.  Reduce profligate buffer
6883         size.  Remove extraneous abort.  Localize temp var.
6884         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
6885         (output_fix_trunc): Add spaces after commas in assembly output.
6886
6887 2000-03-27  Richard Henderson  <rth@cygnus.com>
6888
6889         * i386-protos.h (ix86_match_ccmode): Declare.
6890         * i386.c (ix86_match_ccmode): New.
6891         (ix86_expand_fp_compare): Update for pattern renames.
6892         (ix86_expand_strlensi_unroll_1): Likewise.
6893         * i386.h (EXTRA_CC_MODES): Add CCZ.
6894         (SELECT_CC_MODE): Use it for EQ/NE zero.
6895         * i386.md (cmpsi_ccz_1): New.
6896         (cmpqi_ccz_1): New.
6897         (*testsi_ccz_1): New.
6898         (testqi_ccz_1): New.
6899         (cmpsi_ccno_1): Rename from cmpsi_0.
6900         (testsi_ccno_1): Rename from testsi_1.
6901         (testqi_ccno_1): Rename from testqi_1.
6902         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
6903         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
6904         (*cmphi_0): Use ix86_match_ccmode.
6905         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
6906         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
6907         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
6908         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
6909         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
6910         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
6911         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
6912         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
6913         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
6914         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
6915         (appropriate peepholes): Likewise.
6916         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
6917         (*subsi_3, *subhi_3, *subqi_3): Remove.
6918         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
6919         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
6920         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
6921         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
6922         (x86_shift_adj_1): Use CCZ.
6923         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
6924
6925 2000-03-27  Stan Cox  <scox@cygnus.com>
6926
6927         * resource.h (mark_resource_type): New.
6928         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
6929         find_free_register): Use mark_resource_type.
6930         (mark_set_resources): Change include_delayed_effects
6931         to mark_resource_type.
6932         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
6933         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
6934         Use mark_resource_type.
6935
6936 2000-03-27  Richard Henderson  <rth@cygnus.com>
6937
6938         * i386.md (call_pop_0, call_value_pop_0): New.
6939         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
6940         (call_value_pop_1): Likewise.
6941         (call_0, call_value_0): New.
6942         (call_1, call_value_1): Remove constraint from unused arg.
6943
6944 2000-03-27  Nick Clifton  <nickc@cygnus.com>
6945
6946         * invoke.texi (Spec Files): Document new spec % command created by
6947         Tom Tromey's recent patch.
6948
6949 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
6950
6951         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
6952         if not defined.
6953
6954 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6955
6956         * expr.c (expand_assignment): Fix typo in last change.
6957
6958         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
6959
6960 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6961
6962         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
6963         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
6964         and DECL_INLINE if FUNCTION_DECL.
6965         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
6966         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
6967         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
6968         (combine_parm_decls): Likewise.
6969         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
6970         * print-tree.c (print_node): Likewise.
6971         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
6972         DECL_TRANSPARENT_UNION on proper decl types.
6973         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
6974         * stor-layout.c (layout_decl): Only check DECL_PACKED and
6975         DECL_BIT_FIELD of FIELD_DECL.
6976         * tree.h (DECL_RESULT_FLD): New macro.
6977
6978         * expr.c (expand_assignment): Add code to handle variable-sized
6979         BLKmode case.
6980
6981 2000-03-26  Richard Henderson  <rth@cygnus.com>
6982
6983         * calls.c (expand_call): Pass parms not original exp to
6984         optimize_tail_recursion.  Mind return value instead of looking
6985         for a barrier.
6986         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
6987         call_expr.  Move checks for call_expr and current_function_decl ...
6988         (expand_return): ... here.
6989
6990 2000-03-26  Tom Tromey  <tromey@cygnus.com>
6991
6992         * gcc.c (handle_braces): Recognize `%{<S}' construct.
6993         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
6994         defines.
6995         (process_command): Use them.
6996         (check_live_switch): Likewise.
6997         (give_switch): Skip ignored switches.
6998
6999 2000-03-26  Jan Hubicka  <jh@suse.cz>
7000
7001         * jump.c (jump_optimize_1): Fix typo in elide optimizations
7002         for minimal jump pass test.
7003
7004 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
7005
7006         * integrate.c (function_cannot_inline_p): Do inline functions that
7007         return `void'.
7008
7009 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7010
7011         * stor-layout.c (layout_type, set_sizetype): early_type_list is
7012         now a list of TREE_LIST entries, not types.
7013         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
7014
7015         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
7016         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
7017         int_bit_position.
7018         * config/mips/mips.c (function_arg): Likewise; also remove cast
7019         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
7020         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
7021         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
7022         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
7023         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
7024         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
7025         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
7026         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
7027         num_adjusts now unsigned.
7028         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
7029         * config/sparc/sparc.c (struct function_arg_record_value_parms):
7030         NREGS now unsigned.
7031         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
7032         as is BITPOS variable; use host_integerp and int_bit_position.
7033         (function_arg_record_value_2): Likewise.
7034         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
7035         Variable REGNO now unsigned.
7036         (function_arg_record_value): NREGS now unsigned.
7037
7038 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
7039
7040         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
7041
7042 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7043
7044         * Rework fields used to describe positions of bitfields and
7045         modify sizes to be unsigned and use HOST_WIDE_INT.
7046         * alias.c (reg_known_value_size): Now unsigned.
7047         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
7048         (really_start_incremental_init): Use bitsize_zero_node.
7049         (push_init_level, pop_init_level, output_init_element): Likewise.
7050         Use bitsize_unit_node and bitsize_one_node.
7051         (output_pending_init_elements, process_init_element): Likewise.
7052         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
7053         (make_extraction): Position and length HOST_WIDE_INT and unsigned
7054         HOST_WIDE_INT, respectively.
7055         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
7056         (num_sign_bit_copies): Returns unsigned.
7057         BITWIDTH now unsigned; rework arithmetic.
7058         Remove recursive call from arg to MAX.
7059         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
7060         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
7061         REGNO now unsigned.
7062         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
7063         (find_split_point, expand_compound_operation, make_extraction): LEN
7064         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
7065         (make_field_assignment): Likewise.
7066         (combine_simplify_rtx): Add cast.
7067         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
7068         (force_to_mode): WIDTH now unsigned; add cast.
7069         (if_then_else_cond): SIZE now unsigned.
7070         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
7071         (extended_count): Now returns unsigned.
7072         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
7073         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
7074         (simplify_comparison): MODE_WIDTH now unsigned.
7075         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
7076         (mark_used_regs_combine): Likewise; rework arithmetic.
7077         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
7078         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
7079         (record_promoted_value): REGNO now unsigned.
7080         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
7081         (get_last_value): REGNO now unsigned.
7082         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
7083         (reg_dead_regno, reg_dead_endregno): Now unsigned.
7084         (remove_death): Arg REGNO now unsigned.
7085         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
7086         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
7087         now unsigned.
7088         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
7089         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
7090         (struct cse_reg_info): REGNO now unsigned.
7091         (cached_regno): Now unsigned.
7092         (REGNO_QTY_VALID_P): Add cast.
7093         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
7094         (remove_invalid_regs): Likewise.
7095         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
7096         as are variables END and I.
7097         (get_cse_reg_info, insert): Likewise.
7098         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
7099         (canon_hash): Likewise.
7100         (insert_regs, lookup_for_remove): REGNO now unsigned.
7101         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
7102         New variable RN.
7103         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
7104         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
7105         * emit-rtl.c (subreg_realpart_p): Add cast.
7106         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
7107         (operand_subword_force): Arg I is now unsigned.
7108         * except.c (eh_regs): Variable I is now unsigned.
7109         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
7110         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
7111         length is unsigned HOST_WIDE_INT; likewise for internal variables.
7112         (store_split_bit_field, extract_fixed_bit_field): Likewise.
7113         (extract_split_bit_field, store_bit_field, extract_bit_field):
7114         Likewise.
7115         * expr.c (store_constructor_fields, store_constructor, store_field):
7116         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
7117         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
7118         (do_jump): Likewise.
7119         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
7120         MAX_SIZE is now unsigned.
7121         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
7122         (emit_group_store): Likewise.
7123         (emit_move_insn): I now unsigned.
7124         (store_constructor): Use host_integerp, tree_low_cst, and
7125         bitsize_unit_node.
7126         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
7127         Rework all calculations to use trees and new fields.
7128         * expr.h (promoted_input_arg): Regno now unsigned.
7129         (store_bit_field, extract_bit_field): Adjust types of pos and size.
7130         (mark_seen_cases): Arg is HOST_WIDE_INT.
7131         * flow.c (verify_wide_reg_1): REGNO now unsigned.
7132         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
7133         precisions and alignments are unsigned.
7134         (optimize_bit_field_compare, fold_truthop): Likewise.
7135         (int_const_binop): Adjust threshold for size_int_type_wide call.
7136         (fold_convert): Likewise.
7137         (size_int_type_wide): Make table larger and fix thinko that only
7138         had half of table used.
7139         (all_ones_mask_p, fold): Precisions are unsigned.
7140         * function.c (put_reg_info_stack): REGNO is unsigned.
7141         (instantiate_decl): Size is HOST_WIDE_INT.
7142         (instantiate_virtual_regs): I is unsigned.
7143         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
7144         (promoted_input_arg): REGNO is unsigned.
7145         * function.h (struct function): x_max_parm_reg is now unsigned.
7146         * gcse.c (max_gcse_regno): Now unsigned.
7147         (struct null_pointer_info): min_reg and max_reg now unsigned.
7148         (lookup_set, next_set): REGNO arg now unsigned.
7149         (compute_hash_table): REGNO and I now unsigned.
7150         (handle_avail_expr): regnum_for_replacing now unsigned.
7151         (cprop_insn): REGNO now unsigned.
7152         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
7153         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
7154         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
7155         * hard-reg-set.h (reg_class_size): Now unsigned.
7156         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
7157         * jump.c (mark_modified_reg): I now unsigned; add cast.
7158         (rtx_equal_for_thread_p): Add cast.
7159         * loop.c (max_reg_before_loop): Now unsigned.
7160         (struct_movable): REGNO now unsigned.
7161         (try_copy_prop): REGNO arg unsigned.
7162         (regs_match_p): XN and YN now unsigned.
7163         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
7164         (strength_reduce): Likewise; NREGS also unsigned.
7165         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
7166         * loop.h (struct iv_class): REGNO now unsigned.
7167         (max_reg_before_loop, first_increment_giv, last_increment_giv):
7168         Now unsigned.
7169         * machmode.h (mode_size, mode_unit_size): Now unsigned.
7170         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
7171         * optabs.c (expand_binop): I and NWORDS now unsigned.
7172         (expand_unop): I now unsigned.
7173         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
7174         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
7175         * real.c (significand_size): Now returns unsigned.
7176         * real.h (significand_size): Likewise.
7177         * regclass.c (reg_class_size): Now unsigned.
7178         (choose_hard_reg_mode): Both operands now unsigned.
7179         (record_reg_classes): REGNO and NR now unsigned.
7180         (reg_scan): NREGS now unsigned.
7181         (reg_scan_update): old_max_regno now unsigned.
7182         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
7183         * reload.c (find_valid_class): BEST_SIZE now unsigned.
7184         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
7185         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
7186         Likewise for variable R.
7187         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
7188         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
7189         (find_equiv_reg): Add casts.
7190         (regno_clobbered_p): Arg REGNO now unsigned.
7191         * reload.h (struct reload): NREGS now unsigned.
7192         (refers_to_regno_for_reload_p): Regno args are unsigned.
7193         (regno_clobbered_p): Likewise.
7194         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
7195         (compute_use_by_pseudos): REGNO now unsigned.
7196         (find_reg): I and J now unsigned, new variable K, and change loop
7197         variables accordingly; THIS_NREGS now unsigned.
7198         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
7199         (spill_hard_reg): REGNO arg now unsigned; add casts.
7200         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
7201         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
7202         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
7203         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
7204         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
7205         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
7206         (emit_reload_insns): REGNO now unsigned.
7207         (reload_cse_move2add): Add cast.
7208         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
7209         and rework loop.
7210         * resource.c (mark_referenced_resources, mark_set_resources): New
7211         variable R; REGNO and LAST_REGNO now unsigned.
7212         (mark_target_live_regs): J and REGNO now unsigned.
7213         * rtl.c (mode_size, mode_unit_size): Now unsigned.
7214         * rtl.h (union rtunion_def): New field rtuint.
7215         (XCUINT): New macro.
7216         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
7217         (operand_subword, operand_subword_force): Word number is unsigned.
7218         (choose_hard_reg_mode): Operands are unsigned.
7219         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
7220         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
7221         (regno_use_in, combine_instructions, remove_death): Likewise.
7222         (reg_scan, reg_scan_update): Likewise.
7223         (extended_count): Return is unsigned.
7224         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
7225         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
7226         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
7227         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
7228         (reg_reg_last_1): FIRS and LAST now unsigned.
7229         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
7230         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
7231         now unsigned.
7232         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
7233         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
7234         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
7235         (replace_regs): Arg NREGS now unsigned.
7236         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
7237         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
7238         (simplify_binary_operation): Likewise.
7239         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
7240         THIS_LAST now unsigned.
7241         (cselib_record_set): Add cast.
7242         * ssa.c (ssa_max_reg_num): Now unsigned.
7243         (rename_block): REGNO now unsigned.
7244         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
7245         sizes now unsigned.
7246         (all_cases_count): Just return -1 not -2.
7247         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
7248         Rework tests to use trees whenever possible.
7249         Use host_integerp and tree_low_cst.
7250         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
7251         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
7252         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
7253         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
7254         (smallest_mode_for_size): Likewise.
7255         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
7256         KNOWN_ALIGN is now an alignment, so simplify code.
7257         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
7258         (start_record_layout): Renamed from new_record_layout_info.
7259         Update to new fields.
7260         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
7261         New functions.
7262         (place_union_field): Renamed from layout_union_field.
7263         Update to use new fields in rli.
7264         (place_field): Renamed from layout_field.
7265         Major rewrite to use new fields in rli; pass alignment to layout_decl.
7266         (finalize_record_size): Rework to use new fields in rli and handle
7267         union.
7268         (compute_record_mode): Rework to simplify and to use new DECL fields.
7269         (finalize_type_size): Make rounding more consistent.
7270         (finish_union_layout): Deleted.
7271         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
7272         (layout_type, case RECORD_TYPE): Call new function names.
7273         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
7274         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
7275         (get_best_mode): UNIT is now unsigned; remove casts.
7276         * tree.c (bit_position): Compute from new fields.
7277         (byte_position, int_byte_position): New functions.
7278         (print_type_hash_statistics): Cast to remove warning.
7279         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
7280         (build_index_type): Likewise; make subtype of sizetype.
7281         (build_index_2_type): Pass sizetype to build_range_type.
7282         (build_common_tree_nodes): Use size_int and bitsize_int to
7283         initialize nodes; add bitsize_{zero,one,unit}_node.
7284         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
7285         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
7286         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
7287         (DECL_FIELD_BITPOS): Deleted.
7288         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
7289         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
7290         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
7291         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
7292         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
7293         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
7294         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
7295         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
7296         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
7297         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
7298         (DECL_ALIGN): Adjust to new field in union.
7299         (DECL_OFFSET_ALIGN): New field.
7300         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
7301         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
7302         (union tree_decl): Add struct for both aligns.
7303         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
7304         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
7305         (struct record_layout_info): Rework fields to have offset
7306         alignment and byte and bit position.
7307         (start_record_layout, place_field): Renamed from old names.
7308         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
7309         (byte_position, int_byte_position): Likewise.
7310         (get_inner_reference): Change types of position and length.
7311         * unroll.c (unroll_loop): New variable R; use for some loops.
7312         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
7313         (calculate_giv_inc): Arg REGNO now unsigned.
7314         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
7315         * varasm.c (assemble_variable): Clean up handling of size using
7316         host_integerp and tree_low_cst.
7317         (decode_addr_const): Use byte, not bit, position.
7318         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
7319         use tree_low_cst and int_bit_position.
7320         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
7321
7322 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
7323
7324         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
7325         (reorder_block_def): New members eff_head and eff_end.
7326         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
7327         (verify_insn_chain): New function.
7328         (skip_insns_between_block): Add code to skip deleted insns.
7329         Check for note before using.
7330         (chain_reorder_blocks): Replace calls to skip_insns_between_block
7331         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
7332         Check for note before using.
7333         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
7334         (fixup_reorder_chain): Restructure, clean up, defect removal.
7335         (reorder_basic_blocks): Remove last_insn and references to it.
7336         Moved insn chain verification code into a new function (see above).
7337         Delete defective code that sets last insn.
7338         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
7339         all blocks.
7340
7341 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7342
7343         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
7344
7345 2000-03-24  Richard Henderson  <rth@cygnus.com>
7346
7347         * tree.c (lang_safe_for_unsave): Remove.
7348         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
7349         allowing for two levels of unsafeness.  Remove lang hook.
7350         * tree.h: Update declarations.
7351         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
7352         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
7353         Always fail sibcalls when there are pending cleanups.
7354
7355 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
7356
7357         * flow.c (propagate_block): When we delete an ADDR_VEC,
7358         also delete the BARRIER following it if there is one.
7359
7360 2000-03-24  Richard Henderson  <rth@cygnus.com>
7361
7362         * builtins.c (expand_builtin_bzero): Convert `length' argument
7363         to sizetype.
7364
7365 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
7366
7367         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
7368         comparison if regno's are equal.
7369         * calls.c (initialize_argument_informat): Add ecf_flags argument.
7370         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
7371         (expand_call): Update caller.
7372         Avoid making a sibling call if argument size of the callee is larger
7373         than argument size of the caller.
7374         Call hard_function_value with outgoing set if in sibcall pass.
7375         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
7376
7377         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
7378         Change LEAF_REGISTERS from an array initializer to actual array
7379         identifier. Move static global variable into the function.
7380         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
7381         sequences for leaf functions.
7382         * global.c (global_alloc): Likewise.
7383         * tm.texi (LEAF_REGISTERS): Update documentation.
7384
7385         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
7386         TARGET_FLAT leaf disabling hack.
7387         (LEAF_REGISTERS): Changed from an array initializer to actual array
7388         identifier to avoid duplication and remove the above hack.
7389         (FUNCTION_OK_FOR_SIBCALL): Define.
7390         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
7391         always like call attribute.
7392         (eligible_for_sibcall_delay): New attribute.
7393         (sibcall): New delay type.
7394         (sibcall, sibcall_value, sibcall_epilogue): New expands.
7395         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
7396         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
7397         * config/sparc/sparc.c (sparc_leaf_regs): New array.
7398         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
7399         New functions.
7400         (output_function_epilogue): Move part of the code into
7401         output_restore_regs.
7402         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
7403         TYPE_SIBCALL.
7404         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
7405         prototypes.
7406
7407         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
7408         until infrastructure is finished.
7409
7410 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
7411
7412         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
7413         (save_parm_insns): Not here.
7414
7415 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7416
7417         * builtins.c (expand_builtin_bzero): New function.
7418         (expand_builtin): Handle bzero.
7419
7420         * builtins.def: Add BUILT_IN_BZERO.
7421
7422         * c-common.c (c_common_nodes_and_builtins): Provide builtin
7423         prototype & function for bzero.
7424
7425 2000-03-23  Michael Meissner  <meissner@redhat.com>
7426
7427         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
7428         change adding TARGET_FP to the TF floating point insns, except for
7429         trunctfsf2, which generates direct calls to truncdfsf2.
7430
7431 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
7432
7433         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
7434         try to protect against middle-end changes that break binary
7435         compatibility.
7436         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
7437
7438 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7439
7440         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
7441
7442 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7443
7444         * calls.c (expand_call): If TARGET is passed by reference and
7445         is readonly, write a CLOBBER.
7446
7447 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7448
7449         * builtins.c (expand_builtin): Handle bcmp.
7450
7451         * builtins.def: Add BUILT_IN_BCMP.
7452
7453         * c-common.c (c_common_nodes_and_builtins): Provide builtin
7454         prototype & function for bcmp.
7455
7456 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
7457
7458         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
7459         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
7460         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
7461
7462 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
7463
7464         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
7465         alternative when using -fp64 -gp32.
7466
7467 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
7468
7469         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
7470         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
7471         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
7472
7473         * frame.h (frame_state): Revert last change.
7474         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
7475         * libgcc2.c (throw_helper): Revert last change.
7476
7477 2000-03-22  Richard Henderson  <rth@cygnus.com>
7478
7479         * stmt.c (expand_asm_operands): Don't promote the temporary.
7480
7481 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7482
7483         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
7484         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
7485           c_get_alias_set): Likewise.
7486         * c-decl.c (duplicate_decls): Likewise.
7487         * c-typeck.c (default_conversion,build_unary_op): Likewise.
7488         * calls.c (initialize_argument_information): Likewise.
7489         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
7490         Likewise.
7491         * dwarfout.c (decl_class_context,output_type): Likewise.
7492         * expr.c (get_inner_reference): Likewise.
7493         * fold-const.c (simple_operand_p,fold): Likewise.
7494         * function.c (aggregate_value_p): Likewise.
7495         * stmt.c (expand_asm_operands): Likewise.
7496         * varasm.c (named_section): Likewise.
7497
7498 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
7499
7500         Implement dwarf2 exception handling for the ARM.
7501         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
7502         (DWARF_FRAME_RETURN_COLUMN): Define.
7503         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
7504         REG_FRAME_RELATED_EXPR note.
7505         (emit_sfm): Likewise.
7506         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
7507         * dwarf2out.c (reg_save): Handle saving a register to itself.
7508         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
7509         * except.c (eh_regs): Don't use the static chain reg if it's
7510         callee-saved.
7511         * frame.h (frame_state): Add cfa_saved field.
7512         * frame.c (execute_cfa_insn): Set it.
7513         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
7514         the epilogue.
7515         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
7516         Now takes a parm.
7517         (instantiate_virtual_regs): Adjust.
7518         * tm.texi: Adjust.
7519         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7520         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7521         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
7522
7523         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
7524         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
7525
7526 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7527
7528         * builtins.def: New file.
7529
7530         * Makefile.in (TREE_H): Depend on builtins.def.
7531
7532         * builtins.c (built_in_names): Use builtins.def.
7533
7534         * tree.h (built_in_function): Likewise.
7535
7536 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
7537
7538         * tree.c (size_in_bytes): Return size_zero_node, not
7539         integer_zero_node.
7540
7541 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
7542
7543         * config/fp-bit.c (pack_d): Correct the case when a denormal
7544         is rounded up and stops being denormal.
7545
7546 2000-03-21  Richard Henderson  <rth@cygnus.com>
7547
7548         * config/alpha/alpha.c (function_arg): Check for void_type_node
7549         before using MUST_PASS_IN_STACK.
7550
7551 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
7552
7553         * regmove.c (combine_stack_adjustments_for_block): Check that
7554         the stack pointer is a valid memory address.
7555
7556 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
7557
7558         * calls.c: re-install Mar 16 emit_library_call merge.
7559
7560 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
7561
7562         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
7563         we cannot be sure that if reload_completed base register will
7564         be properly aligned.
7565
7566 2000-03-21  Richard Henderson  <rth@cygnus.com>
7567
7568         * flow.c (delete_block): Fix typo last change.
7569
7570 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
7571
7572         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
7573         not COMPLETE_TYPE_P, to check the type of the expression.
7574
7575 2000-03-21  Michael Meissner  <meissner@redhat.com>
7576
7577         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
7578         all floating point insns that just tested the macro
7579         TARGET_HAS_XFLOATING_LIBS.
7580         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
7581         used to only use the gprs.
7582
7583 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
7584
7585         * tree.h (COMPLETE_TYPE_P): New macro.
7586         (COMPLETE_OR_VOID_TYPE_P): New macro.
7587         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
7588         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
7589         * c-aux-info.c (gen_type): Use them.
7590         * c-common.c (c_expand_expr_stmt): Likewise.
7591         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
7592         grokdeclarator, grokparms, finish_struct, start_function,
7593         store_parm_decls, combine_parm_decls): Likewise.
7594         * c-parse.y (cast_expr): Likewise.
7595         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
7596         c_size_in_bytes, c_alignof, build_component_ref,
7597         build_indirect_ref, build_array_ref, convert_arguments,
7598         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
7599         * calls.c (initialize_argument_information): Likewise.
7600         * convert.c (convert_to_integer): Likewise.
7601         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
7602         * dwarfout.c (location_or_const_value_attribute,
7603         output_enumeration_type_die, output_structure_type_die,
7604         output_union_type_die, output_type): Likewise.
7605         * expr.c (safe_from_p, expand_expr): Likewise.
7606         * function.c (assign_parms): Likewise.
7607         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
7608         * tree.c (build_array_type, build_function_type,
7609         build_method_type, build_offset_type, build_complex_type): Likewise.
7610         * c-parse.c, c-parse.h: Regenerated.
7611
7612 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7613
7614         * config/c4x/rtems.h: Include config/rtems.h.
7615
7616 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
7617
7618         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
7619         decl is a FUNCTION_DECL
7620
7621 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
7622
7623         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
7624         function uses output registers.  Don't save RP for leaf functions.
7625         Do save RP even if no epilogue.
7626         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
7627         (CALL_USED_REGISTERS): Unmark in registers.
7628         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
7629         to near the middle.
7630
7631 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
7632
7633         * config/rs6000/rs6000.md (bunordered): New expander.
7634         (bordered): New expander.
7635         (buneq): New expander.
7636         (bunge): New expander.
7637         (bungt): New expander.
7638         (bunle): New expander.
7639         (bunlt): New expander.
7640         (bltgt): New expander.
7641
7642         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
7643         (ccr_bit_negated_p): New function.
7644         (print_operand): For %C, generate appropriate cror for UNEQ,
7645         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
7646
7647 2000-03-20  Andreas Jaeger  <aj@suse.de>
7648
7649         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
7650         warning.
7651
7652         * tree.h (safe_for_unsave): Prototype.
7653
7654 2000-03-20  Richard Henderson  <rth@cygnus.com>
7655
7656         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
7657         (combine_stack_adjustments_for_block): Don't allow sp references
7658         in the side of a set we're not fixing up.
7659         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
7660         after life_analysis.
7661
7662 2000-03-20  Richard Henderson  <rth@cygnus.com>
7663
7664         * calls.c (expand_call): Don't bother generating tail call
7665         sequences if there are pending cleanups.  Use
7666         expand_start_target_temps/expand_end_target_temps to elide
7667         cleanups created during sibcall expansion.
7668
7669 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
7670
7671         * configure.in: Set $IFS to a value if it doesn't already have one
7672         in the --enable-checking handling.
7673         * configure: Regenerate.
7674
7675 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7676
7677         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
7678         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
7679         Regenerated.
7680
7681 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
7682
7683         * jump.c (delete_noop_moves): Remove code attempting to
7684         combine stack adjustments.
7685
7686 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7687
7688         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
7689         * except.c (emit_cleanup_handler): Use them.
7690         (expand_end_all_catch): Likewise.
7691         * function.c (fixup_var_refs): Likewise.
7692         (expand_function_end): Clear catch_clauses_last.
7693         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
7694         * except.h (struct eh_status): New field x_catch_clauses_last.
7695         (catch_clauses_last): New define.
7696
7697         * Makefile.in (tree.o): Depend on HASHTAB_H.
7698         * tree.c: Include hashtab.h.
7699         (struct type_hash): Remove next field.
7700         (TYPE_HASH_SIZE): Remove.
7701         (TYPE_HASH_INITIAL_SIZE): New define.
7702         (type_hash_table): Change type to htab_t.
7703         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
7704         mark_hash_entry): New functions.
7705         (init_obstacks): Allocate type hash.
7706         (type_hash_lookup): Use htab functions.
7707         (type_hash_add, mark_type_hash): Likewise.
7708         (dump_tree_statistics): Call print_type_hash_statistics.
7709
7710 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7711
7712         * rs6000/t-aix41: New file.
7713
7714         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
7715
7716 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
7717
7718         * tm.texi (Driver): Fix typos and tweak entry for
7719         INCLUDE_DEFAULTS.
7720         Move misplaced STRUCT_FORCE_BLK entry ...
7721         (Storage Layout): ... to here.
7722         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
7723
7724 2000-03-19  Richard Henderson  <rth@cygnus.com>
7725
7726         * flow.c (delete_block): Delete the addr_vec along with the block.
7727         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
7728         reference labels.
7729
7730         * fold-const.c (extract_muldiv): Apply type check for defined
7731         overflow to multiply as well as divide.
7732
7733         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
7734
7735 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
7736
7737         * emit-rtl.c (remove_unncessary_notes): Check that all
7738         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
7739         associated NOTE_BLOCK.
7740         * function.h (identify_blocks): Update comments.
7741         (reorder_blocks): Declare.
7742         * function.c (identify_blocks): Don't take paramters.
7743         (reorder_blocks): Don't take parameters.
7744         * loop.h (find_loop_tree_blocks): Remove.
7745         (unroll_block_trees): Likewise.
7746         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
7747         reorder_blocks instead of unroll_block_trees.h
7748         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
7749         * stmt.c (find_loop_tree_blocks): Remove.
7750         (unroll_block_trees): Likewise.
7751         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
7752         in whole-function mode.
7753         * tree.h (reorder_blocks): Remove declaration.
7754
7755         * expr.c: Include intl.h.
7756         * Makefile.in (expr.o): Depend on intl.h.
7757
7758 2000-03-18  Richard Henderson  <rth@cygnus.com>
7759
7760         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
7761
7762 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
7763
7764         * tree.h (tree_index): Remove enumerals for integer types.
7765         (integer_type_kind): New type.
7766         (integer_types): New variable.
7767         (char_type_node): Adjust.
7768         (signed_char_type_node): Likewise.
7769         (unsigned_char_type_node): Likewise.
7770         (short_integer_type_node): Likewise.
7771         (short_unsigned_type_node): Likewise.
7772         (integer_type_node): Likewise.
7773         (unsigned_type_node): Likewise.
7774         (long_integer_type_node): Likewise.
7775         (long_unsigned_type_node): Likewise.
7776         (long_long_integer_type_node): Likewise.
7777         (long_long_unsigned_type_node): Likewise.
7778         * tree.c (integer_types): New variable.
7779         (init_obstacks): Register it as a root.
7780
7781 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
7782
7783         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
7784         NEXT_INSN. Update last insn in chain.
7785
7786 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
7787
7788         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
7789         with TYPE_DECL_SUPPRESS_DEBUG set.
7790
7791 2000-03-18  Richard Henderson  <rth@cygnus.com>
7792
7793         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
7794
7795 2000-03-18  Richard Henderson  <rth@cygnus.com>
7796
7797         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
7798         care for HALF_PIC_P.
7799         (expander_call_insn_operand): Remove.
7800         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
7801         * i386.h (PREDICATE_CODES): Update.
7802         * i386.md (all call expanders): Remove predicates, remove special
7803         handling for half-pic.
7804         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
7805         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
7806         (sibcall_epilogue): New.
7807
7808 2000-03-17  Richard Henderson  <rth@cygnus.com>
7809
7810         * rtlanal.c (single_set): Reject if the parallel has anything
7811         except SET or USE or CLOBBER.
7812
7813 2000-03-17  Jeff Law  <law@cygnus.com>
7814             Richard Henderson  <rth@cygnus.com>
7815
7816         * Makefile.in (OBJS): Add sibcall.o.
7817         (sibcall.o): New.
7818         * sibcall.c: New file.
7819         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
7820         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
7821         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
7822         Emit sibcall patterns when requested.  Update all callers.
7823         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
7824         elimination seems feasable.
7825         * final.c (leaf_function_p): Sibling calls don't discount being
7826         a leaf function.
7827         * flow.c (HAVE_sibcall_epilogue): Provide default.
7828         (find_basic_blocks_1): Sibling calls don't throw.
7829         (make_edges): Make edge from sibling call to EXIT.
7830         (propagate_block): Don't remove sibcall_epilogue insns.
7831         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
7832         (sibcall_epilogue): New.
7833         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
7834         (identify_blocks_1): Likewise.  Break out from ...
7835         (identify_blocks): ... here.
7836         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
7837         (reorder_blocks): ... here.
7838         (init_function_for_compilation): Zap prologue/epilogue as varrays.
7839         (record_insns): Extend a varray instead of mallocing new memory.
7840         (contains): Read a varray not array of ints.
7841         (sibcall_epilogue_contains): New.
7842         (thread_prologue_and_epilogue_insns): Emit and record
7843         sibcall_epilogue patterns.
7844         (init_function_once): Allocate prologue/epilogue varrays.
7845         * genflags.c (gen_insn): Treat sibcall patterns as calls.
7846         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
7847         Broken out from ...
7848         (save_for_inline_nocopy): ... here.
7849         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
7850         Broken out from ...
7851         (expand_inline_function): ... here.
7852         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
7853         (subst_constants): Handle 'n' formats.
7854         * jump.c (jump_optimize_minimal): New.
7855         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
7856         optimizations if it's set.
7857         * rtl.c (copy_rtx): Do copy jump & call for insns.
7858         * rtl.h (struct rtx_def): Document use of jump and call for insns.
7859         (SIBLING_CALL_P): New.
7860         (sibcall_use_t): New.
7861         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
7862         Invoke optimize_sibling_and_tail_recursive_calls.
7863         * tree.c (lang_safe_for_unsave): New.
7864         (safe_for_unsave): New.
7865         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
7866
7867         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
7868         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
7869         (*sibcall_osf_1, *sibcall_value_osf_1): New.
7870
7871 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
7872
7873         * objc/objc-act.c (encode_method_prototype): Pass types, not
7874         PARM_DECLs, to int_size_in_bytes.
7875
7876 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
7877
7878         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
7879
7880         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
7881         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
7882
7883 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7884
7885         * Clean up usages of TREE_INT_CST_LOW.
7886         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
7887         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
7888         Regenerated.
7889         * c-tree.h (min_precision): Move declaration to here.
7890         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
7891         (build_unary_op, add_pending_init): Use bit_position.
7892         (pending_init_member, process_init_element): Likewise.
7893         (really_start_incremental_init, push_init_level, pop_init_level):
7894         Don't make copies of nodes or modify them in place, use consistent
7895         types when tracking positions, and use tree routines computations.
7896         (set_init_index, output_init_element): Likewise.
7897         (output_pending_init_elements, process_init_element): Likewise.
7898         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
7899         tree_low_cst and int_bit_position; also minor cleanup.
7900         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
7901         (print_cst_octal): Precision is unsigned.
7902         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
7903         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
7904         (simple_type_align_in_bits): Result is unsigned int.
7905         Use tree_int_low_cst and host_integerp.
7906         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
7907         (field_byte_offset): Result is HOST_WIDE_INT.
7908         Change types of internal variables so alignments are unsigned int,
7909         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
7910         Use host_integerp, tree_low_cst, and int_bit_position.
7911         (add_bit_offset_attribute): Likewise.
7912         (add_data_member_location_attribute): Use tree_cst_low.
7913         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
7914         (add_bit_size_attribute): Use tree_low_cst.
7915         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
7916         * dwarfout.c: Similar changes to dwarf2out.c.
7917         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
7918         * genoutput.c (n_occurences): Return -1 for null string.
7919         (strip_whitespace): Accept null string and make into function.
7920         (scan_operands): Reflect above changes.
7921         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
7922         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
7923         * ssa.c (rename_registers): Add missing cast of arg to bzero.
7924         * tree.c (int_size_in_bytes): Check for too big to represent.
7925         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
7926         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
7927         New declarations.
7928         (min_precision): Delete from here.
7929         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
7930         and int_bit_position.
7931         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
7932         (encode_method_def): Likewise.
7933         (build_ivar_list_initializer): Use int_bit_position.
7934         (generate_shared_structures): Convert size.
7935         (encode_type, encode_complete_bitfield): Use integer_zerop.
7936         (encode_bitfield): Use tree_low_cst and int_bit_position.
7937
7938 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7939
7940         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
7941
7942 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7943
7944         * call.c (special_function_p): It is only malloc if it returns
7945         Pmode.
7946
7947 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7948
7949         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
7950         (C33_FLAG, TARGET_C3X): Add macros.
7951         (TARGET_SWITCHES): Add -m33 option.
7952         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
7953
7954 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7955
7956         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
7957         (PARALLEL_PACK_FLAG): Delete.
7958         (TARGET_SWITCHES): Update.
7959         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
7960
7961 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7962
7963         * fold-const.c (fold): Fix a few cases when the returned result
7964         is not of the same type as the input.
7965
7966 2000-03-16  Nick Clifton  <nickc@cygnus.com>
7967
7968         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
7969         warning.
7970
7971 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7972
7973         * libgcc2.h: Move prototypes above macros with the same name.
7974         Wrap some function prototypes in the conditional which indicates
7975         whether they are supported, i.e. "BITS_PER_UNIT == 8".
7976
7977 2000-03-16  Richard Henderson  <rth@cygnus.com>
7978
7979         * calls.c: Revert last two changes.
7980
7981 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
7982
7983         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
7984         has exponent 0 is a zero.
7985
7986         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
7987         HASH may already be nonzero.  Add code/mode into hash value
7988         immediately after repeat label.
7989         (cselib_lookup): Don't leave the hash table in an inconsistent
7990         state before a hash lookup operation.
7991
7992 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
7993
7994         * i386.md (all HI and QI mode non-move patterns):  Conditionize
7995         by TARGET_[HQ]IMODE_MATH.
7996         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
7997         x86_promote_qi_regs): Declare.
7998         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
7999         TARGET_PROMOTE_QI_REGS): New macros.
8000         (PROMOTE_MODE): New macro.
8001         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
8002         x86_promote_qi_regs): New global variables.
8003
8004 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
8005
8006         * calls.c (emit_library_call_value_1): Break out from ...; handle
8007         VOIDmode function calls too.
8008         (emit_library_call_value): ... here.
8009         (emit_library_call): Implement by calling emit_library_call_value_1.
8010
8011 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
8012
8013         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
8014         Update arg_space_so_far on stack adjustments.
8015         (emit_library_call, emit_library_call_value): Likewise; take into
8016         account arg_space_so_far and pending_stack_adjust when calculcating
8017         the boundary.
8018
8019 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
8020
8021         * flow.c: Move all basic block reordering code into its own file.
8022         (create_basic_block): Externalize.
8023         * bb-reorder.c: New file. Copy all basic block reordering code from
8024         flow.c to this file.
8025         (reorder_basic_blocks): Fix fencepost error in for-loop.
8026         (reorder_basic_blocks): Remove braces from single statement for-loops.
8027         * basic-block.h: Add declaration for create_basic_block.
8028         * Makefile.in: Add rules for bb-reorder.o.
8029
8030 2000-03-16  Neil Booth  <NeilB@earthling.net>
8031
8032         * cppinit.c (handle_option):  Implement #unassert directive
8033         as -A- command line option.
8034         (print_help):  Update.
8035         * cpptexi.c:  Update.
8036
8037 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8038
8039         * md.texi (Standard Names): Document `jump'.
8040
8041 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
8042
8043         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
8044         gotos.
8045
8046 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
8047
8048         Merge changes from newppc-branch onto trunk.
8049
8050         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
8051
8052         * rs6000.c (toc_hash_table): Update for new hash table functions.
8053         (toc_hash_function): Likewise.
8054         (toc_hash_eq): Likewise.
8055         (toc_hash_mark_entry): Likewise.
8056         (toc_hash_mark_table): Likewise.
8057         (output_toc): Likewise.
8058         (rs6000_add_gc_roots): Likewise.
8059
8060         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8061
8062         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
8063         (AR_FLAGS_FOR_TARGET): here.  New macro.
8064
8065         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
8066
8067         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
8068         fpmem_operand) Delete.
8069         (xer_operand) New.
8070         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
8071         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
8072         (rs6000_save_machine_status, rs6000_restore_machine_status,
8073         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
8074         references to above variables.
8075         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
8076         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
8077         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
8078         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
8079         (XER_REGNO_P, XER_REGNO): New.
8080         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
8081         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
8082         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
8083         XER_REGNO_P.
8084         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
8085         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
8086         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
8087
8088         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8089
8090         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
8091         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
8092         * rs6000.h: from here.
8093
8094         * rs6000-protos.h (rs6000_select_section): Provide prototype.
8095         (rs6000_select_rtx_section): Likewise.
8096         (rs6000_encode_section_info): Likewise.
8097         (sdata_section): Likewise.
8098         (sdata2_section): Likewise.
8099         (sbss_section): Likewise.
8100         * sysv4.h (rs6000_select_section): Delete prototype.
8101         (rs6000_select_rtx_section): Likewise.
8102         (rs6000_encode_section_info): Likewise.
8103         (sdata_section): Likewise.
8104         (sdata2_section): Likewise.
8105         (sbss_section): Likewise.
8106         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
8107
8108         * sysv4.h: Delete various unnecessary #undef's and put a comment
8109         on the remaining ones.
8110         Change various comments according to coding standard.
8111
8112         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
8113
8114         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
8115         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
8116         (CR0_REGNO_P) Remove.
8117         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
8118         setup_incoming_varargs, mtcrf_operation, print_operand,
8119         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
8120         Use the above macros.
8121
8122         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
8123
8124         * config/rs6000/rs6000.md: Added a new alternative for each
8125         pattern that had a 'x' alternative but no 'y' alternative.
8126         Added a new split for each of the above patterns.
8127
8128         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
8129
8130         * aix41.h (ASM_CPU_SPEC): Delete.
8131         (CPP_CPU_SPEC): Delete.
8132
8133         * aix.h (RS6000_OUTPUT_BASENAME): Define.
8134         (ASM_OUTPUT_LABEL): Define.
8135         (ASM_GLOBALIZE_LABEL): Define.
8136         (STRIP_NAME_ENCODING): Define.
8137         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
8138         (STRIP_NAME_ENCODING): Don't define.
8139         (ASM_OUTPUT_LABEL): Don't define.
8140         (ASM_GLOBALIZE_LABEL): Don't define.
8141         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
8142         names, and ASM_OUTPUT_LABEL to output labels, rather than
8143         asm_fprintf.
8144         (ASM_OUTPUT_LABEL): Define.
8145         (ASM_OUTPUT_INT): Use assemble_name.
8146         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
8147         (STRIP_NAME_ENCODING): Don't undefine first.
8148         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
8149         ELF.
8150         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
8151         specified with 'asm' even with -fleading-underscore.
8152         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
8153         (output_epilog): Likewise.
8154         (output_toc): Likewise.
8155         * tramp.asm: Handle -fleading-underscore correctly.
8156
8157         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
8158         -mminimal-toc.
8159         (nonlocal_goto_receiver): Delete.
8160         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
8161
8162         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
8163         (SET_ASM_OP): Define.
8164         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
8165
8166         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
8167         (ASM_LONG): Define.
8168
8169         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
8170         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
8171
8172         * rs6000.h: Add 'u' to more constants.
8173
8174         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
8175
8176         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
8177
8178         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
8179
8180         * rs6000.c (reg_or_u_cint_operand): New function.
8181         (logical_operand): Handle 64-bit hosts.
8182         (logical_u_operand): New function.
8183         (non_logical_cint_operand): Handle 64-bit hosts.
8184         (non_logical_u_cint_operand): New function.
8185         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
8186         (PREDICATE_CODES): Define new functions.
8187         * rs6000-protos.h: Declare new functions.
8188         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
8189         (movdi_64): Bracket code intended for 64-bit hosts.  Create
8190         CONST_DOUBLE for 32-bit values.
8191         (scc insns): Generate DImode compares.
8192         (mfcr insns): Create DImode versions.
8193         (sge matchers): New patterns.
8194
8195         2000-02-15  Gabriel Paubert  <paubert@iram.es>
8196
8197         * rs6000.md: Correct instructions length attributes and
8198         constraints on unsigned compare instructions.
8199         (*ne0): Disable for PowerPC64.
8200
8201         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
8202
8203         * rs6000.c (output_function_profiler): Use .long for a 32-bit
8204         quantity, fix profile1.C test failure under -fPIC.
8205
8206         * rs6000.c: Add 'u' to many constants to suppress warnings.
8207         (constant_pool_expr_1): Make static.
8208         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
8209         * rs6000.h: Add 'u' to many constants to suppress warnings.
8210
8211         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
8212         for the start of the TOC, instead of LCTOC..0.
8213         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
8214         of the TOC.
8215         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
8216         (load_toc_aix_di): Use LCTOC..1.
8217
8218         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
8219         * rs6000.c (rs6000_legitimize_address): New function from
8220         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
8221         symbols in the constant pool that really are TOC references.
8222         (print_operand_address): For ELF, write TOC offsets under
8223         -fPIC as subtractions in the insn.
8224         (output_toc): For ELF, define symbols in TOC as normal labels,
8225         to match RTL.
8226         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
8227         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
8228         (create_TOC_reference): Prototype only when RTX_CODE is defined.
8229         * rs6000.md (movsi): Only use create_TOC_reference on
8230         symbols in the constant pool that really are TOC references.
8231
8232         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
8233         * rs6000.c (rs6000_reorg): Delete.
8234         * rs6000-protos.h (rs6000_reorg): Delete.
8235
8236         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
8237
8238         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
8239
8240         * aix.h (SETUP_FRAME_ADDRESSES): Define.
8241         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
8242         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
8243         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
8244         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
8245         rs6000_aix_emit_builtin_unwind_init.
8246         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
8247         rs6000_emit_eh_toc_restore on AIX.
8248         (return_eh_si): Use r2.
8249         (return_eh_di): Use r2.
8250
8251         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
8252         since we're breaking binary compatibility anyway.
8253
8254         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
8255
8256         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
8257         constant_pool_expr_p): Declare them.
8258         (constant_pool_expr_p): Declare it.
8259         * config/rs6000/rs6000.c (toc_label_name): Define.
8260         (rs6000_override_options): Set toc_label_name.
8261         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
8262         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
8263         uses_TOC): New functions.
8264         (print_operand): Delete old '*' case.
8265         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
8266         and strip off rtl for TOC before calling output_addr_const.
8267         (rs6000_emit_load_toc_table): Use toc_label_name.
8268         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
8269         the default.
8270         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
8271         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
8272         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
8273         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
8274         into explicit TOC_REGISTER offsets.
8275         (TOC_REGISTER): New macro.
8276         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
8277         TARGET_TOC to reference TOC_REGISTER.
8278         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
8279         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
8280         uses_TOC before emitting label references.
8281
8282         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
8283
8284         * rs6000.md (stack_tie): Fix warning.
8285
8286         * eabi-ctors.c: Use 'asm' names for the start/end variables,
8287         to handle -fleading-underscore.
8288         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
8289         (USER_LABEL_PREFIX): New macro.
8290         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
8291         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
8292         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
8293         call-linux can use the same multilibs.
8294         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
8295         and call-linux multilibs.  Do multilib with -fleading-underscore.
8296         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
8297         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
8298         to call-aix.
8299
8300         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
8301         have MASK_SOFT_FLOAT set.
8302         (CPP_FLOAT_DEFAULT_SPEC): New macro.
8303         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
8304         CPP_FLOAT_DEFAULT_SPEC.
8305
8306         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
8307         * rs6000.md: Whitespace change.
8308         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
8309         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
8310
8311         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
8312
8313         * rs6000.md (eh_epilogue): New expander.
8314         (eh_reg_restore): New expand/split/insn combination.
8315         (return_eh_si): New insn.
8316         (return_eh_di): New insn.
8317
8318         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
8319         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
8320         * eabi-ctors.c (__do_global_ctors): Register this object's
8321         frame.  Clean up.  Call atexit() after the constructors.
8322         (__do_global_dtors): Deregister this object's frame.  Clean up.
8323         Allow for recursive calls to exit().
8324         * rs6000.c (fixuplabelno): New variable.
8325         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
8326         TARGET_RELOCATABLE, it slows down exec() under linux.
8327         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
8328
8329         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
8330         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
8331         (ASM_OUTPUT_DWARF_DELTA2): New macro.
8332         (ASM_OUTPUT_DWARF_DELTA4): New macro.
8333         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
8334         (ASM_OUTPUT_DWARF_ADDR): New macro.
8335         (ASM_OUTPUT_DWARF_DATA4): New macro.
8336         (ASM_OUTPUT_DWARF_DATA2): New macro.
8337         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
8338         (ASM_OUTPUT_DWARF_OFFSET): New macro.
8339         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
8340
8341         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
8342
8343         * rs6000.c (rs6000_sr_alias_set): New variable.
8344         (rs6000_override_options): Initialise rs6000_sr_alias_set.
8345         (rs6000_emit_stack_tie): New function.
8346         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
8347         in a way that dwarf2out can understand.
8348         (rs6000_frame_related): New function.
8349         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
8350         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
8351         Use rs6000_emit_stack_tie when needed.
8352         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
8353         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
8354         * rs6000.md (stack_tie): New insn.
8355         (return_internal_si): Allow return value to be in the count
8356         register.
8357         (return_internal_di): Likewise.
8358
8359         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
8360
8361         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
8362
8363         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
8364
8365         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
8366
8367         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
8368
8369         * rs6000.md (stmw): Use the right POWER opcode.
8370         (lmw): Likewise.
8371
8372         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8373
8374         * rs6000-protos.h: New file.
8375
8376         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
8377
8378         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
8379         warnings.
8380
8381         * sysv4.h: Likewise.
8382
8383         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
8384
8385         * ../../configure.in: Delete powerpcle-*-winnt*
8386         and powerpcle-*-pe|powerpcle-*-cygwin*.
8387         * ../../configure: Regenerated.
8388         * cygwin.h: Delete.
8389         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
8390         (TARGET_WINDOWS_NT): Delete.
8391         (ABI_NT): Delete.
8392         (CALL_NT_DLLIMPORT): Delete.
8393         Delete NT-specific code.
8394         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
8395         * win-nt.h: Delete.
8396         * t-winnt: Delete.
8397         * nt-ci.asm: Delete.
8398         * nt-cn.asm: Delete.
8399         * ntstack.asm: Delete.
8400
8401         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8402
8403         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
8404         (ASM_FILE_START): Likewise.
8405         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8406         (ASM_OUTPUT_LABELREF): Likewise.
8407         (ASM_OUTPUT_SKIP): Likewise.
8408         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
8409         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
8410         (ASM_OUTPUT_CASE_LABEL): Likewise.
8411         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8412         (ASM_OUTPUT_ASCII): Likewise.
8413
8414         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
8415
8416         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
8417         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
8418         increment rs6000_pic_labelno here.
8419         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
8420         and increment rs6000_pic_labelno here.
8421
8422         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
8423
8424         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
8425         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
8426         allocation knows (reg) is dead before the insn.
8427
8428         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
8429
8430         * rs6000.md (movsi_to_cr): Correct typo in output template.
8431
8432         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
8433
8434         * rs6000.c (rs6000_pic_labelno): Always define.
8435         (rs6000_pic_func_labelno): Delete.
8436         (lmw_operation): Check for a zero base register,
8437         which doesn't mean what we want.
8438         (stmw_operation): New function.
8439         (print_operand): Define new 'l' modifier.
8440         (rs6000_stack_info): We must save all 64 bits of the registers
8441         if TARGET_POWERPC64.
8442         (rs6000_output_load_toc_table): Delete.
8443         (rs6000_emit_load_toc_table): New function.
8444         (rs6000_allocate_stack_space): Delete.
8445         (rs6000_emit_allocate_stack): New function.
8446         (rs6000_emit_prologue): New function.
8447         (output_prolog): Use rs6000_emit_prologue.
8448         (rs6000_emit_epilogue): Change a few variable names to be
8449         more accurate.  Restore all 64 bits of the registers if
8450         TARGET_POWERPC64.  Only restore the FP registers which were used
8451         if they are being saved/restored one-at-a-time.
8452         (output_mi_thunk): Delete inefficient code generation.
8453         (output_function_profiler): Don't use rs6000_output_load_toc_table.
8454         * rs6000.h: Declare rs6000_emit_load_toc_table,
8455         rs6000_allocate_stack_space, stmw_operation.  Don't declare
8456         rs6000_output_load_toc_table.
8457         * rs6000.md (elf_high): Allow register 0, but discourage it
8458         heavily.
8459         (elf_low): Support loading into register 0.
8460         (load_toc_aix_si): New pattern.
8461         (load_toc_aix_di): New pattern.
8462         (load_toc_v4_pic_si): New pattern.
8463         (load_toc_v4_pic_di): New pattern.
8464         (load_toc_v4_PIC_1): New pattern.
8465         (load_toc_v4_PIC_1b): New pattern.
8466         (load_toc_v4_PIC_2): New pattern.
8467         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
8468         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
8469         (prologue): New expander.
8470         (movesi_from_cr): New pattern.
8471         (stmw): New pattern.
8472         (save_fpregs_si): New pattern.
8473         (save_fpregs_di): New pattern.
8474
8475         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8476
8477         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
8478         (movdi): Likewise.
8479         (movhi): Likewise.
8480         (movqi): Likewise.
8481
8482         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8483
8484         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
8485         at present.
8486         (movsi_got_internal): Likewise.
8487         (movsi_got_internal+1): Likewise.
8488         (set_sp): 'unspec 7' does a SImode clobber.
8489
8490         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8491
8492         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
8493         allocate a stack temporary.
8494         (floatsidf2_internal): Likewise.
8495         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
8496         with unspec.
8497         (floatunssidf2): Don't use the fpmem "register", just
8498         allocate a stack temporary.
8499         (floatunssidf2_internal): Likewise.
8500         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
8501         with unspec.
8502         (floatsidf2_loadaddr): Delete.
8503         (floatsidf2_store1): Delete.
8504         (floatsidf2_store2): Delete.
8505         (floatsidf2_load): Delete.
8506         (fix_truncdfsi2): Don't use the fpmem "register", just
8507         allocate a stack temporary.
8508         (fix_truncdfsi2_internal_si): Delete.
8509         (fix_truncdfsi2_internal_di): Delete.
8510         (fix_truncdfsi2_internal): New insn.
8511         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
8512         (fix_truncdfsi2_store): Delete.
8513         (fix_truncdfsi2_load): Delete.
8514         (fctiwz): Produce gen_fctiwz.
8515
8516         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
8517
8518         * eabi.h (INVOKE__main): Define.
8519         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
8520         specially.
8521         (rs6000_emit_prologue): Likewise.
8522         * rs6000.h (struct rs6000_stack): Don't keep track of whether
8523         this is the main program.
8524
8525         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8526
8527         * rs6000.c (rs6000_va_arg): Delete some unused variables.
8528
8529         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8530
8531         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
8532         goes after the argument.
8533
8534         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8535
8536         * rs6000.md: Document 'unspec' values used.
8537         (epilogue): New expander.
8538         (movesi_to_cr_one): New expander.
8539         (movesi_to_cr and following): New pattern.
8540         (lmw): New pattern.
8541         (return_internal_si): New pattern.
8542         (return_internal_di): New pattern.
8543         (return_and_restore_fpregs_si): New pattern.
8544         (return_and_restore_fpregs_di): New pattern.
8545         * rs6000.h: Declare new functions.
8546         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
8547         rather than rs6000_calls_p.
8548         (rs6000_makes_calls): Delete.
8549         (lmw_operation): New function.
8550         (mtcrf_operation): New function.
8551         (rs6000_emit_epilogue): New function.
8552         (output_epilog): Call rs6000_emit_epilogue and final if
8553         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
8554
8555         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8556
8557         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
8558         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
8559         * aix.h (SUBTARGET_SWITCHES): Document switches.
8560         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
8561         sched-prolog and sched-epilog the same.  Document all the
8562         switches.
8563         (TARGET_OPTIONS): No longer allow -mdebug-.
8564
8565         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8566
8567         * rs6000.h (ASM_FILE_END): Move to aix.h.
8568         (EXTRA_SECTIONS): Move to aix.h.
8569         (READONLY_DATA_SECTION): Move to aix.h.
8570         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
8571         (SELECT_SECTION): Move to aix.h.
8572         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
8573         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
8574         (LINK_REGISTER_REGNUM): New definition.
8575         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
8576         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
8577         AIX and SVR4.
8578         * sysv4.h: Delete the code between the inclusion of rs6000.h
8579         and svr4.h.
8580         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
8581         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
8582         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
8583         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
8584         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
8585         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
8586         (fix_truncdfsi2_internal_di): New pattern.
8587         (fix_truncdfsi2_store): The second arg here is Pmode too.
8588         (fix_truncdfsi2_load): The second arg here is Pmode too.
8589         (tablejumpdi): Now that switch tables hold only SImode values,
8590         gcc needs to know how to add them to the pc which is DImode.
8591         * rs6000.c (rs6000_stack_info): Use symbolic name for
8592         LINK_REGISTER_REGNUM.
8593         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
8594         (output_toc): Delete unused variables s1 and s2.
8595         (output_ascii): Use fputs not fprintf on a variable string.
8596
8597         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
8598
8599         * rs6000.c (processor_target_table): Add power3 as alias for 630.
8600         * aix43.h: Revert Aug 2 change.
8601         (HAS_INIT_SECTION): Define, not visible yet.
8602         (LD_INIT_SWITCH): Define, not visible yet.
8603         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
8604
8605         2000-01-04  Joel Sherrill (joel@OARcorp.com>
8606
8607         * config/rs6000/rtems.h: Include config/rtems.h.
8608
8609         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
8610
8611         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
8612         (SLOW_UNALIGNED_ACCESS): Define.
8613         (CASE_VECTOR_MODE): Always use 32-bit offsets.
8614         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
8615         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
8616         (toc_section): Likewise and .toc pseudo-op.
8617         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
8618         64-bit mode.
8619         (TEXT_SECTION_ASM_OP): Likewise.
8620         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
8621         32-bit offsets.
8622
8623         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
8624
8625         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
8626         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
8627         compiling libgcc2.
8628
8629         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8630
8631         * rs6000.h: Move more stuff from here...
8632         * aix.h: to here.
8633         * sysv4.h: Cleanup accordingly.
8634         * netware.h: Likewise
8635
8636         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8637
8638         * rs6000.h: Continue cleanup.
8639         * aix.h: Likewise.
8640         * lynx.h: Likewise.
8641         * netware.h: Likewise.
8642         * sol2.h: Likewise.
8643         * sysv4.h: Likewise.
8644         * win-nt.h: Likewise.
8645
8646         * rs6000.h (TARGET_SWITCHES): Add descriptions.
8647         (TARGET_OPTIONS): Likewise.
8648
8649         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
8650         (SUBTARGET_OPTIONS): Likewise.
8651
8652         * rs6000.md: Fix compile time warnings.
8653
8654         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8655
8656         vxworks patches from the Cygnus tree originally by
8657         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
8658         <vmakarov@cygnus.com>.
8659         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
8660         (ENDFILE_SPEC): Likewise.
8661         (LIB_VXWORKS_SPEC): New macro.
8662         (STARTFILE_VXWORKS_SPEC): New macro.
8663         (ENDFILE_VXWORKS_SPEC): New macro.
8664         (LINK_START_VXWORKS_SPEC): New macro.
8665         (LINK_OS_VXWORKS_SPEC): New macro.
8666         (CPP_OS_VXWORKS_SPEC): New macro.
8667         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
8668         * vxppc.h: Rewrite to use proper configuration method.
8669         * vxppcle.h: New file.
8670         * ../../configure.in: Add powerpcle-wrs-vxworks*.
8671         * ../../configure: Rebuilt.
8672
8673         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8674
8675         Lots of changes to rs6000.h, sysv4.h, aix.h,
8676         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
8677         with the aim that rs6000.h is the first header
8678         included and the others override it.
8679         * aix.h: New file.
8680
8681         * x-aix41-gld: Remove.
8682         * x-aix43: Remove.
8683         * x-aix41: Remove target-specific switches, and don't specify
8684         -Wl,-bbigtoc as we don't need it any more.
8685         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
8686         Use t-aix43 for AIX 4.3 and above.
8687         * ../../configure: Regenerated.
8688
8689         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
8690         options, that don't do anything yet.
8691         (MASK_SCHED_PROLOG): New macro.
8692         (MASK_SCHED_EPILOG): New macro.
8693         (TARGET_SCHED_PROLOG): New macro.
8694         (TARGET_SCHED_EPILOG): New macro.
8695
8696         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8697
8698         * rs6000.c: Correct comment, the `minimal' TOCs are actually
8699         one per translation unit, not one per function.
8700         (output_toc): Also do duplicate constant elimination
8701         for per-translation-unit TOCs.
8702
8703         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
8704         a comment explaining _exactly_ when this pattern gets used.
8705         (builtin_setjmp_receiver): New pattern for better clarity.
8706         (init_v4_pic): Move it into a section dealing with TOC registers.
8707
8708         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
8709
8710         * rs6000.c (toc_hash_table): New variable.
8711         (rs6000_hash_constant): New function.
8712         (toc_hash_function): New function.
8713         (toc_hash_eq): New function.
8714         (toc_hash_mark_entry): New function.
8715         (toc_hash_mark_table): New function.
8716         (output_toc): Don't output duplicate TOC entries in
8717         a single file.
8718         (rs6000_add_gc_roots): Add the hash table as a GC root.
8719         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
8720         where they clearly shouldn't be.  This may need to be fixed
8721         later when there is a GNU ar for AIX.
8722         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
8723         Don't define BOOT_LDFLAGS as it is now not necessary.
8724
8725         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
8726
8727         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
8728         for va_list on AIX.  Use unsigned_char_type_node rather than
8729         constructing our own version on svr4.
8730
8731         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
8732
8733         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
8734         since patently it's not.
8735
8736         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
8737
8738         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
8739         define_expand/define_insn pair, and handle restore of the
8740         SVR4 -fpic register.
8741
8742 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
8743
8744         * acconfig.h (HAVE_GAS_WEAK): New define.
8745         * configure.in (assembler weak support): Check for .weak support.
8746         * config.in, configure: Rebuilt.
8747         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
8748         HAVE_GAS_WEAK is defined.
8749
8750 2000-03-15  Nick Clifton  <nickc@cygnus.com>
8751
8752         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
8753         asm_fprintf().
8754
8755 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
8756
8757         * cppfiles.c (open_include_file): New function.
8758         (find_include_file, cpp_read_file): Use it.
8759
8760 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
8761
8762         * cpphash.c (dump_hash_helper): Take the slot, not the element.
8763
8764 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
8765
8766         * flow.c (verify_flow_info): Check for unconditional return.
8767
8768 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
8769
8770         * config/ia64/ia64.md (restore_stack_nonlocal): New.
8771         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
8772         (__ia64_restore_stack_nonlocal): New.
8773         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
8774
8775 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8776
8777         * cpphash.c (collect_formal_parameters): Do not complain about
8778         parameter names that just start with `__VA_ARGS__'.
8779
8780 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
8781
8782         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
8783         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
8784         * i386.c (pentiumpro_cost): Set mul cost to 4.
8785         (x86_use_movx): Set for PPro.
8786
8787 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
8788
8789         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
8790         STACK_BOUNDARY for empty frames now.
8791
8792 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
8793
8794         * stor-layout.c (layout_union): Remove.
8795         (layout_union_field): New function, split out from layout_union.
8796         (finish_union_layout): Likewise.
8797         (layout_field): Handle unions by calling layout_union_field.
8798         (finish_record_layout): Handle unions.
8799         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
8800         QUAL_UNION_TYPE handling.
8801
8802 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
8803
8804         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
8805         end of basic block is jump_insn, not barrier; use create_basic_block
8806         instead of creating basic block by hand.
8807
8808 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
8809
8810         * flow.c (reorder_basic_blocks): Account for barriers when writing
8811         over NEXT_INSN (last_bb->end).
8812         (verify_flow_info): Add check for missing barriers.
8813
8814 2000-03-14  Greg McGary  <gkm@gnu.org>
8815
8816         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
8817         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
8818         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
8819         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
8820         __unbounded, __unbounded__): New keywords.
8821         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
8822         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
8823         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
8824
8825 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
8826
8827         * cselib.h: New file.
8828         * alias.c: Include "cselib.h".
8829         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
8830         MEMs as two new arguments.
8831         (get_addr): New static function.
8832         (find_base_term): Handle VALUEs.
8833         (memrefs_conflict_p): Likewise.
8834         (true_dependence): Call get_addr on the addresses.
8835         Call fixed_scalar_and_varying_struct_p with addresses that have been
8836         passed through get_addr and canon_rtx.
8837         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
8838         with true_dependence.
8839         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
8840         * loop.c: Include "cselib.h".
8841         (load_mems): Process extended basic block that enters the loop with
8842         cselib.  Use that information to change initialization of the shadow
8843         register so that a constant equivalence is seen by later passes.
8844         * reload1.c: Include "cselib.h".
8845         (reload_cse_invalidate_regno): Delete function.
8846         (reload_cse_mem_conflict_p): Likewise.
8847         (reload_cse_invalidate_mem): Likewise.
8848         (reload_cse_invalidate_rtx): Likewise.
8849         (reload_cse_regno_equal_p): Likewise.
8850         (reload_cse_check_clobber): Likewise.
8851         (reload_cse_record_set): Likewise.
8852         (reg_values): Delete static variable.
8853         (invalidate_regno_rtx): Likewise.
8854         (reload_cse_delete_noop_set): New static function.
8855         (reload_cse_simplify): New static function, broken out of
8856         reload_cse_regs_1.
8857         (reload_cse_noop_set_p): Delete unused argument INSN.
8858         Just call rtx_equal_for_cselib_p on set source and destination.
8859         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
8860         reload_cse_delete_noop_set.  Delete code to keep track of values; use
8861         cselib functions instead.  Delete code to push/pop obstacks.
8862         (reload_cse_simplify_set): Use cselib to find equivalent values.
8863         Delete code to push/pop obstacks.
8864         (reload_cse_simplify_operands): Likewise.
8865         * rtl.def (VALUE): New rtx code.
8866         * rtl.h (union rtunion_def): New elt rt_cselib.
8867         (X0CSELIB, CSELIB_VAL_PTR): New macros.
8868         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
8869         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
8870         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
8871         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
8872         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
8873         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
8874         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
8875         cselib_record_set, cselib_record_sets): New static functions.
8876         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
8877         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
8878         references_value_p): New functions.
8879         (MAX_USELESS_VALUES, REG_VALUES): New macros.
8880         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
8881         n_useless_values, reg_values, callmem, cselib_obstack,
8882         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
8883         New static variables.
8884         * varray.h (union varray_data_tag): New elt te.
8885         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
8886         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
8887         dependencies.
8888
8889 2000-03-14  Nick Clifton  <nickc@cygnus.com>
8890
8891         * gcc.c (do_spec_1): Catch the case where %* is used in a
8892         substitution pattern, but it has not been initialised.
8893         Issue a meaningful error message if an unrecognised operator
8894         is encountered in a spec string.
8895
8896 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
8897
8898         * function.c (prepare_function_start): Correctly initialize
8899         cfun->stack_alignment_needed.
8900
8901 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
8902
8903         * cppfiles.c (find_include_file): Don't assume nshort is a
8904         substring of name.
8905
8906 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
8907
8908         * configure.in (hppa configurations): Add pa32-regs.h to the
8909         list of tm files as appropriate.
8910         * configure: Rebuilt.
8911         * pa.c (compute_frame_size): Remove explicit knowledge about FP
8912         register numbering.
8913         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
8914         (fmpyaddoperands, fmpysuboperands): Likewise.
8915         * pa.h: Remove various definitions which depend on knowing
8916         how registers are numbered.
8917         * pa32-regs.h: New file with PA32 register numbering specific
8918         definitions.
8919
8920 2000-03-14  Richard Henderson  <rth@cygnus.com>
8921
8922         * regmove.c (combine_stack_adjustments): New.
8923         (stack_memref_p, single_set_for_csa): New.
8924         (free_csa_memlist, record_one_stack_memref): New.
8925         (try_apply_stack_adjustment): New.
8926         (combine_stack_adjustments_for_block): New.
8927         * rtl.h (combine_stack_adjustments): Declare.
8928         * toplev.c (rest_of_compilation): Call it.
8929
8930         * i386.md: Revert 2000-01-16 change.
8931
8932 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8933
8934         * gccbug.in: Add web category, gcc specific classes.
8935
8936 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
8937
8938         * stor-layout.c (finalize_record_size): Fix typo.
8939
8940 2000-03-14  Stan Shebs  <shebs@apple.com>
8941
8942         * c-typeck.c (c_alignof): Error on incomplete types.
8943         * extend.texi (Alignment): Document this.
8944
8945 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
8946
8947         * cppfiles.c: Include mkdeps.h.
8948         (find_include_file, read_include_file): Remove _cpp_ prefix
8949         from name, make static.
8950         (_cpp_execute_include): New function, broken out of
8951         do_include.
8952
8953         * cpplib.c: Don't include mkdeps.h.
8954         (struct directive): Remove type field. Reorder entries.  The
8955         function takes only one argument.
8956         (struct if_stack): Make type field an int.
8957         (directive_table): Rename to dtable.  Generate it, the
8958         prototypes of the directive handlers, and the enum for the
8959         directive numbers, from a template macro.
8960         (do_ifndef, do_include_next, do_import): New functions.
8961         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
8962         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
8963         do_ident, do_assert, do_unassert, do_sccs): Take only one
8964         argument.
8965         (do_sccs): Define always, but alter behavior based on
8966         SCCS_DIRECTIVE.
8967         (_cpp_handle_directive, consider_directive_while_skipping):
8968         Restructure for new directive table layout.
8969
8970         (pass_thru_directive): Take a directive number, not a pointer
8971         to a struct directive.
8972         (parse_include): New function, broken out of do_include.
8973         (do_include, do_import, do_include_next): Use parse_include
8974         and _cpp_execute_include.
8975         (do_elif, do_else): Test for T_ELSE specifically when checking
8976         for #elif/#else after #else.
8977         (parse_ifdef): New function, broken out of do_ifdef.
8978         (validate_else): Expect a name arg without a leading #.
8979         (if_directive_name): Delete.
8980         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
8981         directive handlers with only one argument.
8982
8983         * cpphash.h: Update prototypes.
8984         (enum node_type): Remove entries for directives.
8985         * Makefile.in: Update dependencies.
8986
8987         * cpphash.c (dump_hash_helper): Only dump nodes of type
8988         T_MACRO.  Emit a newline after each definition.
8989
8990 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8991
8992         * gccbug.in: New file.
8993         * configure.in (all_outputs): Add gccbug.
8994         * Makefile.in (install-common): Install gccbug.
8995         (GCCBUG_INSTALL_NAME): New variable.
8996         * configure: Rebuilt.
8997
8998 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
8999
9000         * function.c (put_var_into_stack): Use type_for_mode to calculate
9001         part_type.  Use MEM_SET_IN_STRUCT_P.
9002         * expr.c (store_field): Handle CONCAT.
9003         (store_constructor): Use fields_length.
9004         * tree.c (fields_length): New fn.
9005         * tree.h: Declare it.
9006
9007 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
9008
9009         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
9010         (cpplex.o): New target.
9011         * po/POTFILES.in: Add cpplex.c.
9012
9013         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
9014         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
9015         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
9016         skip_block_comment, skip_line_comment, skip_comment,
9017         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
9018         _cpp_parse_name, skip_string, parse_string,
9019         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
9020         _cpp_get_directive_token, find_position,
9021         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
9022         (maybe_macroexpand, _cpp_lex_token): New functions.
9023
9024         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
9025         parse_goto_mark): Delete.
9026         (_cpp_handle_eof): New function.
9027         (_cpp_handle_directive): Rename from handle_directive.
9028         (_cpp_output_line_command): Rename from output_line_command.
9029         (do_if, do_elif): Call _cpp_parse_expr directly.
9030         * cppfiles.c (_cpp_read_include_file): Don't call
9031         init_input_buffer here.
9032         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
9033         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
9034         here; pop the token_buffer and skip the rest of the line here.
9035         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
9036         here.
9037
9038         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
9039         Define here.
9040         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
9041         CPP_GOTO_MARK): New macros.
9042         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
9043         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
9044         _cpp_read_and_prescan, _cpp_init_input_buffer,
9045         _cpp_grow_token_buffer, _cpp_get_directive_token,
9046         _cpp_handle_directive, _cpp_handle_eof,
9047         _cpp_output_line_command): Prototype them here.
9048         * cpplib.h (enum cpp_token): Add CPP_MACRO.
9049         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
9050         quote_string, output_line_command): Remove.
9051
9052 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
9053
9054         * stmt.c (expand_end_case): RANGE may be signed, and when checking
9055         whether it is too large we must also verify that it isn't negative.
9056
9057 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
9058
9059         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
9060         (movsi_zero_liveg0): Remove.
9061         (movsf_insn_novis_liveg0): Remove.
9062         (negsi2): Remove.
9063         (negsi2_not_liveg0): Rename to negsi2.
9064         (one_cmplsi2): Remove.
9065         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
9066         (one_cmplsi2_liveg0): Remove.
9067         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
9068         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
9069         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
9070         (PREDICATE_CODES): Remove zero_operand.
9071         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
9072         TARGET_BROKEN_SAVERESTORE.
9073         (zero_operand): Remove.
9074         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
9075         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
9076         options.
9077         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9078         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
9079         TARGET_BROKEN_SAVERESTORE): Remove.
9080         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9081         Remove.
9082         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9083         Remove.
9084         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9085         Remove.
9086
9087         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
9088
9089 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
9090
9091         * cpplib.c (do_pragma_implementation): Fix off-by-one error
9092         truncating a string.  Don't assume tokens are nul terminated.
9093         Problem noted by Andreas Jaeger <aj@suse.de>
9094
9095 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
9096
9097         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
9098         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
9099         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
9100
9101 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
9102
9103         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
9104         STRUCTURE_SIZE_BOUNDARY.
9105
9106 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
9107
9108         * tree.h (record_layout_info_s): New structure.
9109         (record_layout_info): New type.
9110         (new_record_layout_info): New function.
9111         (layout_field): Likewise.
9112         (finish_record_layout): Likewise.
9113         * stor-layout.c (layout_record): Remove.
9114         (new_record_layout_info): New function.
9115         (layout_field): New function, broken out from layout_record.
9116         (finalize_record_size): Likewise.
9117         (compute_record_mode): Likewise.
9118         (finalize_type_size): New function, broken out from layout_type.
9119         (finish_record_layout): Likewise.
9120         (layout_type): Use them.
9121
9122 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
9123
9124         * cpphash.c: Don't include version.h.
9125         (special_symbol) [case T_VERSION]: Look for the string in
9126         hp->value.cpval; don't use version_string.
9127         * cppinit.c (initialize_builtins): Set hp->value.cpval for
9128         __VERSION__ to version_string.
9129         * Makefile.in (cpphash.o): Update deps.
9130
9131 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
9132
9133         Convert cpplib to use libiberty/hashtab.c.
9134
9135         * cpplib.h (struct cpp_reader): Make hashtab and
9136         all_include_files of type 'struct htab *'.  Delete HASHSIZE
9137         and ALL_INCLUDE_HASHSIZE macros.
9138
9139         * cpphash.h: Update prototypes.
9140         (struct hashnode): Remove next, prev, and bucket_hdr members.
9141         Make length a size_t.  Add hash member.
9142         (struct ihash): Remove next member.  Add hash member.  Make
9143         name a flexible array member.
9144
9145         * cppfiles.c: Include hashtab.h.
9146         (include_hash): Delete.
9147         (IHASHSIZE): New macro.
9148         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
9149         (cpp_included): Do the hash lookup here.
9150         (_cpp_find_include_file): Rewrite.
9151         (cpp_read_file): Put the "fake" hash entry into the hash
9152         table.  Honor the control_macro, if it turns out we've seen
9153         the file before.  Don't push the buffer here.
9154         (_cpp_read_include_file): Push the buffer here.
9155         (OMODES): New macro.  Use it whenever we call open(2).
9156
9157         * cpphash.c: Include hashtab.h.
9158         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
9159         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
9160         _cpp_lookup_slot): New functions.
9161         (HASHSIZE): new macro.
9162         (hashf, _cpp_install, _cpp_delete_macro): Delete.
9163         (_cpp_lookup): Use hashtab.h routines.
9164
9165         * cppinit.c: Include hashtab.h.
9166         (cpp_reader_init): Call _cpp_init_macro_hash and
9167         _cpp_init_include_hash.  Don't allocate hashtab directly.
9168         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
9169         pfile->all_include_files.
9170         (initialize_builtins): Use _cpp_make_hashnode and
9171         htab_find_slot to add hash entries.
9172         (cpp_finish): Just call _cpp_dump_macro_hash.
9173         * cpplib.c: Include hashtab.h.
9174         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
9175         create hash entries.
9176         (do_pragma_poison, do_assert): Likewise.
9177         (do_include): Don't push the buffer here.  Don't increment
9178         system_include_depth unless _cpp_read_include_file succeeds.
9179         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
9180         or htab_remove_elt.
9181         (do_pragma_implementation): Use alloca to create copy.
9182
9183         * Makefile.in: Update dependencies.
9184
9185 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9186
9187         * cppinit.c (cl_directive_handler): More K&R fixing.
9188
9189 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
9190
9191         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
9192         STACK_BOUNDARY.
9193         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
9194
9195 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9196
9197         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
9198         Change from char[] to macros.
9199
9200 2000-03-12  Neil Booth  <NeilB@earthling.net>
9201
9202         * cppinit.c (cpp_start_read): Update indirect function
9203         call to K&R C.
9204
9205 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
9206
9207         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
9208         entry.
9209
9210         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
9211         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
9212
9213 2000-03-11  Neil Booth  <NeilB@earthling.net>
9214
9215         * cppinit.c (struct pending option): Replace undef with a
9216         pointer to a directive handling routine.
9217         (struct cpp_pending): Replace separate assert_ and define_
9218         lists with one directive_ list.
9219         (new_pending_define): Rename new_pending_directive. Extra
9220         argument is the directive's handling routine.
9221         (handle_option): Update to use new_pending_directive.
9222
9223 2000-03-11  Neil Booth  <NeilB@earthling.net>
9224
9225         * cppfiles.c (file_cleanup, _cpp_find_include_file,
9226         remap_filename, _cpp_read_include_file, actual_directory,
9227         hack_vms_include_specification): Replace bcopy(), index() etc
9228         calls.  Add casts to some allocations.  Make some variables
9229         pointers to const [unsigned] char.
9230         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
9231         collect_formal_parameters): Similarly.
9232         * cppinit.c (struct pending_option, append_include_chain,
9233         cpp_options_init, cpp_reader_init, initialize_standard_includes,
9234         cpp_start_read, new_pending_define, handle_option): Similarly.
9235         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
9236         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
9237         do_pragma_implementation, detect_if_not_defined,
9238         do_ifdef, skip_if_group, cpp_get_token, parse_string,
9239         do_assert, do_unassert): Similarly.
9240         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
9241         function prototypes.
9242         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
9243
9244 2000-03-10  Richard Henderson  <rth@cygnus.com>
9245
9246         * builtins.c (expand_builtin_strlen): Revert last change.
9247         Use emit_insn_before if we're at the beginning of a sequence.
9248
9249 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
9250
9251         * builtins.c (expand_builtin_strlen): Make sure that we have something
9252         at the beginning of the sequence.
9253
9254         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
9255         deferred inlines.
9256
9257         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
9258
9259 2000-03-10  Richard Henderson  <rth@cygnus.com>
9260
9261         * except.c (can_throw): Use INTVAL on a CONST_INT.
9262         (reachable_handlers): Likewise.
9263         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
9264
9265 2000-03-10  Andreas Jaeger  <aj@suse.de>
9266
9267         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
9268         MD_STARTFILE_PREFIX since those are not needed on linux.
9269         (ASM_FILE_START): New, from mips/gnu.h.
9270
9271 2000-03-09  Richard Henderson  <rth@cygnus.com>
9272             Alex Samuel  <samuel@codesourcery.com> and others
9273
9274         * Makefile.in (ssa.o): New rule.
9275         (OBJS): Add ssa.o.
9276         (STAGESTUFF): Add *.ssa and *.ussa.
9277         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
9278         * rtl.def (PHI): New RTL expression.
9279         * rtl.h (clear_log_links): New declaration.
9280         (convert_to_ssa): Likewise.
9281         (convert_from_ssa): Likewise.
9282         * flow.c (split_edge): If the entry node falls through to the
9283         split edge's source block, split the entry edge.
9284         (clear_log_links): New function.
9285         * toplev.c (ssa_dump): New variable.
9286         (flag_ssa): Likewise.
9287         (f_options): Add "ssa".
9288         (compile_file): Create SSA dump files.
9289         (rest_of_compilation): Go to and from SSA if enabled.
9290         (decide_d_option): Handle -de for SSA dump files.
9291         * ssa.c: New file.
9292
9293 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
9294
9295         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
9296         same as VAR_DECL.
9297
9298 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
9299
9300         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
9301
9302 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
9303
9304         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
9305         (MD_STARTFILE_PREFIX_1): New macro.
9306
9307 2000-03-09  Robert Lipe  <robertl@sco.com>
9308
9309         * config/ia64/ia64.c: Include system.h.
9310
9311 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
9312
9313         * except.c (nothrow_function_p): If -fno-exceptions, just return.
9314         (init_eh_nesting_info): Likewise.
9315
9316         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
9317         (TREE_NOTHROW): Rename from TREE_RAISES.
9318         * toplev.c (rest_of_compilation): Set it.
9319         * print-tree.c (print_node): Adjust.
9320         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
9321         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
9322         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
9323         REG_EH_REGION note as appropriate.
9324         (libfunc_nothrow): New fn.
9325         (emit_library_call, emit_library_call_value): Use it.
9326         (expand_call): Check TREE_NOTHROW.
9327
9328         * varasm.c (make_decl_rtl): Skip initial '*' when setting
9329         DECL_ASSEMBLER_NAME.
9330
9331 2000-03-09  Andreas Jaeger  <aj@suse.de>
9332
9333         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
9334         (TARGET_MEM_FUNCTIONS): Define.
9335
9336 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
9337
9338         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
9339
9340         * except.c (can_throw): See through a SEQUENCE.
9341         (nothrow_function_p): New fn.
9342         * except.h: Declare it.
9343         * function.c (current_function_nothrow): New var.
9344         (prepare_function_start): Initialize it.
9345         * output.h: Declare it.
9346         * toplev.c (rest_of_compilation): Set it.
9347         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
9348
9349 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
9350
9351         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
9352         match.  (cpp_compare_defs): Count the nul separator when
9353         advancing over argument names.
9354
9355 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
9356
9357         * recog.c (preprocess_constraints): Matching constraints affect
9358         same alternative/different operand, not same operand/different
9359         alternative.
9360
9361         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
9362         register and a constant specially.
9363
9364 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9365
9366         * libgcc2.h: New file.
9367         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
9368
9369 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
9370
9371         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
9372         * configure: Regenerate.
9373         * config/ia64: New.
9374
9375 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
9376
9377         * Makefile.in (LIBCPP_DEPS): New macro.
9378         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
9379         it to declare deps.
9380         * cpperror.c: Include cpphash.h.
9381         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
9382         dingleberry.
9383         (lex): Don't use CPP_WARN_UNDEF.
9384         (_cpp_parse_expr): Return an int, the truth value.
9385         * cppfiles.c: Include cpphash.h.
9386         (_cpp_merge_include_chains): Move to cppinit.c and make static.
9387         * cppinit.c (include_defaults_array): Disentangle.
9388         (cpp_cleanup): Don't free the if stack here.
9389         (cpp_finish): Pop off all buffers, not just one.
9390         * cpplib.c (eval_if_expr): Return int.
9391         (do_xifdef): Rename do_ifdef.
9392         (handle_directive): Don't use CPP_PREPROCESSED.
9393         (cpp_get_token): Don't use CPP_C89.
9394         * fix-header.c: Don't use CPP_OPTIONS.
9395
9396         * cpplib.h: Move U_CHAR, enum node_type, struct
9397         file_name_list, struct ihash, is_idchar, is_idstart,
9398         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
9399         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
9400         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
9401         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
9402         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
9403         of _cpp_simplify_pathname, _cpp_find_include_file,
9404         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
9405         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
9406         cppinit.c.
9407         Change all uses of U_CHAR to be unsigned char instead.
9408         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
9409
9410 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
9411
9412         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
9413         (dwarf2out_begin_prologue): Set it.
9414         (output_call_frame_info): Don't emit EH unwind info for leaves.
9415
9416         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
9417         can occur outside of an EH region.
9418         * except.c: Correct comments about rethrow behavior.
9419         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
9420
9421 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
9422
9423         * flow.c (make_edges): Always call make_eh_edge for calls.
9424
9425 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
9426
9427         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
9428         (struct cpp_buffer): Remove fname and underflow fields.
9429         (struct cpp_reader): Remove get_token field.
9430         (struct include_hash): Rename to struct ihash.  Add typedef to
9431         IHASH.
9432         (struct if_stack): Remove fname field.
9433         (IF_STACK_FRAME): Rename to IF_STACK.
9434
9435         * cpperror.c (print_containing_files): Trust that there are no
9436         macro buffers below the top file buffer.
9437         * cppfiles.c: Replace all references to 'struct include_hash'
9438         with 'IHASH'.  Rename initialize_input_buffer to
9439         init_input_buffer.  Don't set or reference cpp_buffer->fname,
9440         use buffer->ihash->name instead.
9441         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
9442         not CPP_NULL_BUFFER.
9443         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
9444         IF_STACK_FRAME, IHASH not struct include_hash.
9445         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
9446         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
9447         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
9448         references to cpp_buffer->fname (delete entirely, or use
9449         ->ihash->name instead) and IF_STACK->fname.
9450         (cpp_push_buffer): Don't set new->underflow.
9451         (do_include): Use cpp_file_buffer.
9452
9453         * cpphash.c (collect_formal_parameters): Remove duplicate
9454         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
9455         used as a macro argument name.  Don't append "..." to namebuf
9456         for varargs macros.  After we're done scanning, go through
9457         namebuf and make it NUL separated, not comma separated.
9458         (_cpp_compare_defs): Remove register tag from variables.
9459         Expect defn->argnames to be NUL separated.
9460         (_cpp_dump_definition): Expect defn->argnames to be NUL
9461         separated and in forward order.
9462         * cpphash.h: Update documentation of argnames field.
9463
9464 2000-03-08  Richard Henderson  <rth@cygnus.com>
9465
9466         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
9467         to fail.  Don't pre-expand the source operand.
9468
9469         * i386.md (strlensi): Initialize eoschar and align before use.
9470
9471 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
9472
9473         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
9474         CONSTRUCTOR element.
9475
9476 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
9477
9478         * mips.c (mips_expand_prologue): If the last
9479         named argument is the vararg marker "va_list", treat it as
9480         an unnamed argument.
9481
9482 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
9483
9484         * dbxout.c (dbxout_parms): When correcting for promoted
9485         big-endian parameters, use the mode of the DECL_RTL rather
9486         than UNITS_PER_WORD.
9487
9488 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
9489
9490         * c-common.h (make_fname_decl): Declare.
9491         * c-common.c (make_fname_decl): Define.
9492         (declare_hidden_char_array): Remove.
9493         (declare_function_name): Use make_fname_decl.
9494         * c-decl.c (c_make_fname_decl): New function.
9495         (init_decl_processing): Set make_fname_decl.
9496
9497 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
9498
9499         * cccp.c (handle_directive): Initialize backslash_newlines_p.
9500
9501 2000-03-07  Philipp Thomas  <pthomas@suse.de>
9502
9503         * po/POTFILES.in: Remove cppalloc.c from file list.
9504
9505 2000-03-07  Steve Chamberlain  <sac@pobox.com>
9506
9507         * pj.c (pj_expand_prologue): current_function->args_info is
9508         now current_function_args_info.
9509
9510         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
9511         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
9512         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
9513
9514 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9515
9516         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
9517         output as hexadecimal rather than the default octal.
9518
9519 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
9520
9521         * cpphash.c (special_symbol): Fix thinko in previous commit.
9522
9523 2000-03-07  Neil Booth  <NeilB@earthling.net>
9524
9525         * cppexp.c (struct operation, left_shift, right_shift,
9526         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
9527         "int"s to "unsigned int"s.
9528         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
9529         Similarly.
9530         * cpplib.h: Update for above.
9531         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
9532         returned from allocations.
9533
9534         * cppinit.c (opt_comp, parse_options): New functions.
9535         (handle_option): Use parse_option to parse a single command
9536         line option, that possibly takes an argument.
9537         (cpp_handle_options): Sort the array of command line options on
9538         first invocation (non-ASCII hosts only).
9539         (print_help): Update.
9540
9541 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
9542
9543         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
9544         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
9545
9546         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
9547         initialized.
9548         * cppinit.c (cpp_cleanup): Free imp->nshort also.
9549
9550         * cpperror.c (cpp_print_containing_files,
9551         cpp_print_file_and_line, v_cpp_message): Rename to
9552         print_containing_files, print_file_and_line, and v_message.
9553         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
9554         to _cpp_parse_expr, parse_escape, and lex.
9555         (parse_charconst): Remove broken multibyte support.
9556         * cppfiles.c (include_hash): Make static.
9557         (cpp_included): New function.
9558         (merge_include_chains, find_include_file, finclude,
9559         simplify_pathname): Rename to _cpp_merge_include_chains,
9560         _cpp_find_include_file, _cpp_read_include_file, and
9561         _cpp_simplify_pathname.
9562         * cpphash.c (cpp_lookup, free_definition, delete_macro,
9563         cpp_install, create_definition, macroexpand, compare_defs,
9564         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
9565         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
9566         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
9567         * cppinit.c (cpp_handle_option): Rename to handle_option, make
9568         static.
9569         * cpplib.c: Remove extern prototype of cpp_parse_expr.
9570
9571         * cpphash.h: Update prototypes.
9572         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
9573
9574 2000-03-07  Andrew Haley  <aph@cygnus.com>
9575
9576         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
9577         PTRDIFF_TYPE should be based solely on Pmode.
9578         (SIZE_TYPE): ditto.
9579
9580 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9581
9582         * rtl.h (rtunion_def): Constify member `rtstr'.
9583         (emit_line_note_after, emit_line_note, emit_line_note_force,
9584         emit_note, decode_asm_operands): Constify.
9585
9586         * cse.c (canon_hash): Likewise.
9587
9588         * dbxout.c (dbxout_block): Likewise.
9589
9590         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
9591         v_warning_for_asm): Likewise.
9592
9593         * dwarfout.c (function_start_label): Likewise.
9594
9595         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
9596         emit_line_note_force): Likewise.
9597
9598         * final.c (last_filename, asm_insn_count, final_scan_insn,
9599         output_source_line): Likewise.
9600
9601         * function.h (struct emit_status): Likewise.
9602
9603         * gcse.c (hash_expr_1): Likewise.
9604
9605         * genattr.c (gen_attr, main): Likewise.
9606
9607         * genattrtab.c (struct function_unit, current_alternative_string,
9608         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
9609         attr_numeral, check_attr_test, check_attr_value,
9610         convert_set_attr_alternative, convert_set_attr,
9611         compute_alternative_mask, simplify_by_exploding, gen_attr,
9612         gen_unit): Likewise.
9613
9614         * genflags.c (gen_insn): Likewise.
9615
9616         * gengenrtl.c (type_from_format): Likewise.
9617
9618         * genopinit.c (gen_insn): Likewise.
9619
9620         * genoutput.c (n_occurrences, process_template, process_template):
9621         Likewise.
9622
9623         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9624         Likewise.
9625
9626         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9627         Likewise.
9628
9629         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
9630         ggc_set_mark, ggc_get_size): Likewise.
9631
9632         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
9633
9634         * optabs.c (init_one_libfunc): Likewise.
9635
9636         * output.h (assemble_start_function): Likewise.
9637
9638         * recog.c (decode_asm_operands): Likewise.
9639
9640         * toplev.c (rest_of_compilation): Likewise.
9641
9642         * tree.h (emit_line_note_after, emit_line_note,
9643         emit_line_note_force): Likewise.
9644
9645         * varasm.c (asm_output_bss, asm_output_aligned_bss,
9646         asm_emit_uninitialised, assemble_start_function,
9647         assemble_variable, const_hash, compare_constant_1,
9648         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
9649
9650         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
9651
9652         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
9653
9654         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
9655
9656         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
9657
9658         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
9659         arm_dllimport_name_p): Likewise.
9660
9661         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
9662         Likewise.
9663
9664         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
9665
9666         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9667
9668         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
9669         arm_mark_dllexport, arm_mark_dllimport,
9670         arm_pe_encode_section_info): Likewise.
9671
9672         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
9673         ASM_FINISH_DECLARE_OBJECT): Likewise.
9674
9675         * arm/thumb.c (thumb_function_prologue): Likewise.
9676
9677         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
9678
9679         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9680
9681         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
9682
9683         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
9684
9685         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
9686
9687         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9688
9689         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
9690         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
9691
9692         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
9693
9694         * i386/i386.c (asm_output_function_prefix): Likewise.
9695
9696         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
9697
9698         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9699
9700         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
9701
9702         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
9703         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
9704         ASM_OUTPUT_SECTION_NAME): Likewise.
9705
9706         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
9707
9708         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
9709
9710         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
9711
9712         * m32r/m32r.c (m32r_encode_section_info): Likewise.
9713
9714         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9715
9716         * mcore/mcore.c (mcore_encode_section_info): Likewise.
9717
9718         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9719
9720         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9721
9722         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9723
9724         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
9725
9726         * mips/mips.md (movdi, movsi): Likewise.
9727
9728         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9729
9730         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9731
9732         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9733
9734         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
9735         ASM_OUTPUT_ASCII): Likewise.
9736
9737         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
9738         output_mi_thunk, output_toc): Likewise.
9739
9740         * rs6000/rs6000.md (movsi): Likewise.
9741
9742         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
9743
9744         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
9745
9746         * v850/v850.c (print_operand, print_operand_address,
9747         v850_encode_data_area): Likewise.
9748
9749 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
9750
9751         * config/mips/mips.md (zero_extendsidi2): Always force operand
9752         one to memory for mips16.
9753
9754 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9755
9756         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
9757         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
9758         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
9759         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
9760         (min_precision): Result is unsigned.
9761         (add_double, neg_double, mul_double): Low word is unsigned.
9762         (lshift_double, rshift_double, lrotate_double): Likewise.
9763         (rrotate_double, div_and_round_double): Likewise.
9764         (tree_floor_log2, compare_tree_int): New functions.
9765         (preserve_rtl_expr_temps): New declaration.
9766         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
9767         (decl_attributes): Use tree_log2 to find alignment.
9768         Check for TREE_INT_CST_HIGH for format args.
9769         (min_precision): Now unsigned.
9770         Use tree_floor_log2.
9771         (truthvalue_conversion): Delete long-disabled code.
9772         * c-decl.c (finish_struct): Clean up tests on field width.
9773         (finish_function): Use compare_tree_int.
9774         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
9775         * c-typeck.c (comptypes): Use tree_int_cst_equal.
9776         (default_conversion, digest_init): Use compare_tree_int.
9777         (build_binary_op): Use integer_all_onesp and compare_tree_int.
9778         Fix type errors in forming masks.
9779         * calls.c (initialize_argument_information): Use compare_tree_int.
9780         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9781         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
9782         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
9783         (store_field): Use compare_tree_int.
9784         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
9785         (expand_expr, case ARRAY_REF): Use compare_tree_int.
9786         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
9787         (do_store_flag): Use compare_tree_int.
9788         * fold-const.c (encode, decode): Low part is always unsigned.
9789         (force_fit_type, add_double, neg_double, mul_double): Likewise.
9790         (lshift_double, rshift_double, lrotate_double): Likewise.
9791         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
9792         (fold_convert): Use compare_tree_int.
9793         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
9794         (invert_truthvalue, case INTEGER_CST): Likewise.
9795         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
9796         * mkdeps.c (deps_dummy_targets): Make I unsigned.
9797         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
9798         (lshift_double, rshift_double, lrotate_double, rrotate_double):
9799         Likewise.
9800         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
9801         (expand_end_case): Use compare_tree_int.
9802         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9803         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
9804         (layout_decl): Likewise.
9805         (layout_record, layout_union): Make sizes unsigned.
9806         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
9807         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
9808         * tree.c (struct type_hash): hashcode is unsigned.
9809         (build_type_attribute_variant, type_hash_list): Likewise.
9810         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
9811         (attribute_hash_list, build_array_type, build_method_type): Likewise.
9812         (build_complex_type): Likewise.
9813         (real_value_from_int_cst): Remove unneeded casts.
9814         (integer_all_onesp): Add casts.
9815         (tree_floor_log2, compare_tree_int): New functions.
9816         (build_index_type): Use tree_int_cst_sgn.
9817         * varasm.c (assemble_variable): Use compare_tree_int.
9818
9819 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
9820
9821         * cpphash.c (collect_expansion): Also catch ## at start of macro.
9822
9823         * varasm.c (make_decl_rtl): Don't add a number to members of
9824         local classes.
9825         (make_function_rtl): Likewise.
9826
9827 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9828
9829         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
9830         patch from 2000-01-28.
9831
9832 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
9833
9834         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
9835         filled with an insn from the jump target.
9836
9837 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9838
9839         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
9840         (c4x_external_ref): Likewise.
9841         * config/c4x/c4x.c (struct name_list): Likewise.
9842
9843 1999-12-16  Ben Collins  <bcollins@debian.org>
9844
9845         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
9846         argument to genmultilib.
9847         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
9848         the contents into the multilib.h header.
9849         * gcc.c: Declare multilib_exclusions for the specs file.
9850         (set_multilib_dir): Use it.
9851         (print_multilib_info): Likewise.
9852         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
9853         to pass to genmultilib.
9854
9855 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9856
9857         * builtins.c (built_in_class_names, built_in_names): Constify a
9858         char*.
9859
9860         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
9861         int.
9862         (_mcleanup): Ensure value matches format specifier in sprintf.
9863
9864         * cpphash.c (special_symbol): Don't needlessly cast away
9865         const-ness.
9866
9867         * cppinit.c (base_name): Delete unused prototype.
9868
9869         * mkdeps.c (deps_init): Make definition K&R safe.
9870
9871         * tree.h (built_in_class_names, built_in_names): Constify a
9872         char*.
9873
9874 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
9875
9876         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
9877         floating point instructions for epilogue delay.
9878
9879         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
9880         to gas if it supports .register pseudo.
9881
9882         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
9883         LONG_DOUBLE_TYPE_SIZE if not defined.
9884         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
9885         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
9886         * real.c: Likewise.
9887         * gengenrtl.c: Likewise.
9888         * print-rtl.c: Likewise.
9889         * rtl.c: Likewise.
9890         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
9891         MASK_LONG_DOUBLE_128.
9892         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
9893         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
9894         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
9895         (SUBTARGET_SWITCHES): Define.
9896         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
9897         with -mlong-double-128.
9898         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
9899         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
9900         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
9901         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
9902         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
9903         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
9904         with -mlong-double-128.
9905         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
9906         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
9907         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
9908         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
9909         TARGET_LONG_DOUBLE_128): Define.
9910         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9911         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
9912         long double on TARGET_ARCH64.
9913
9914 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
9915
9916         * function.c (free_temps_for_rtl_expr): Don't free slots
9917         that have been pushed into a higher level.
9918
9919         Revert this patch:
9920         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9921
9922 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9923
9924         * basic-block.h (ALLOCA_REG_SET): Remove.
9925         (INITIALIZE_REG_SET): New macro.
9926         * flow.c (update_life_info): Use it.
9927         (calculate_global_regs_live): Likewise.
9928         (propagate_block): Likewise.
9929         * global.c (build_insn_chain): Likewise.
9930         * haifa-sched.c (schedule_region): Likewise.
9931
9932 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
9933
9934         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
9935         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
9936         (DWARF_ARANGES_PAD_SIZE): New define.
9937         (output_aranges): Use it to pad the address range header.
9938         (DWARF_ROUND): Fix for non power of 2 rounding.
9939
9940 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
9941
9942         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
9943
9944 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9945
9946         * tree.def (RTL_EXPR): Update documentation.
9947         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
9948         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
9949         * function.c (preserve_rtl_expr_temp): New function.
9950         (preserve_rtl_expr_temps): Likewise.
9951         (preserve_rtl_expr_result): Use it.
9952
9953         Revert this patch:
9954         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
9955
9956 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
9957
9958         * regmove.c (copy_src_to_dest)  Do not create src->dest move
9959         for unchanging destination.
9960
9961 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
9962
9963         * function.h (struct sequence_stack): Remove rtl_expr.
9964         (struct emit_staus): Likewise.
9965         (seq_rtl_expr): Remove.
9966         * tree.h (free_temps_for_rtl_expr): Don't declare.
9967         (start_sequence_for_rtl_expr): Likewise.
9968         * rtl.h (preserve_rtl_expr_result): Likewise.
9969         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
9970         (start_sequence_for_rtl_expr): Remove.
9971         (push_topmost_sequence): Don't save sequence_rtl_expr.
9972         (pop_topmost_sequence): Remove comment about not restoring it.
9973         (end_sequence): Don't set seq_rtl_expr.
9974         (init_emit): Don't initialize it.
9975         (mark_sequence_stack): Don't mark it.
9976         (mark_emit_status): Likewise.
9977         * except.c (protect_with_terminate): Use
9978         start_sequence_for_rtl_expr, not start_sequence.
9979         * expr.c (expand_expr, case RTL_EXPR): Don't call
9980         preserve_rtl_expr_result or free_temps_for_rtl_expr.
9981         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
9982         (preserve_rtl_expr_result): Remove.
9983         (free_temps_for_rtl_expr): Likewise.
9984         (pop_temp_slots): Likewise.
9985         (mark_temp_slot): Don't mark the rtl_expr.
9986         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
9987         start_sequence_for_rtl_expr.
9988
9989 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
9990
9991         * mkdeps.c, mkdeps.h: New files.
9992         * po/POTFILES.in: Add them.
9993         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
9994         (cpplib.o, cppinit.o): Depend on mkdeps.h.
9995         (mkdeps.o): New target.
9996
9997         * cppfiles.c: Delete deps_output.
9998         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
9999         OBJECT_SUFFIX, and base_name.
10000         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
10001         the include hash.
10002         (initialize_dependency_output): Use deps_init,
10003         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
10004         all the unnecessary string bashing.
10005         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
10006         level.
10007         * cpplib.c (do_include): Use deps_add_dep.
10008         * cpplib.h (struct cpp_reader): Replace deps_buffer,
10009         deps_allocated_size, deps_size, deps_column members with
10010         single pointer to a struct deps.  Delete prototype of
10011         deps_output.
10012
10013         * cppinit.c: Fix thinko in previous patch.
10014
10015 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10016
10017         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
10018         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
10019         (mode_for_size_tree): New function.
10020         (layout_decl, layout_type): Call it and clean up BLKmode checks.
10021         * tree.h (mode_for_size_tree): New declaration.
10022
10023         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
10024
10025 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
10026
10027         * stmt.c (is_body_block): Move...
10028         * dwarfout.c, dwarf2out.c: ...from here.
10029         * tree.h: Declare it.
10030         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
10031         * final.c (final_start_function): Do call remove_unnecessary_notes
10032         when scheduling.
10033
10034 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
10035
10036         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
10037
10038         * cpplib.h (_dollar_ok): New macro.
10039         (is_idchar, is_idstart): Use it.
10040         (IStable): Rename to _cpp_IStable.  Declare it const if
10041         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
10042         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
10043         is_space): Update for renamed IStable.
10044
10045         * cppinit.c: Delete all references to FAKE_CONST and CAT
10046         macros. Define init_IStable as empty macro if gcc >=2.7 or
10047         C99. Change TABLE() to ISTABLE and hardcode name of table.
10048         (cpp_start_read): Don't change the IStable based on
10049         dollars_in_ident.
10050
10051         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
10052         changed.  Handle '$' for char1 correctly.
10053         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
10054
10055         * cppexp.c (tokentab2): Make const.
10056         (cpp_lex): Make toktab const.
10057         * cppinit.c (include_defaults_array): Make const.
10058         (initialize_standard_includes): Make default_include const.
10059
10060 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
10061
10062         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
10063         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
10064         (gen_decl_die): Likewise.
10065         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
10066         (output_decl): Likewise.
10067
10068         * varasm.c (make_function_rtl): If we change the name used in the
10069         rtl, update DECL_ASSEMBLER_NAME accordingly.
10070         (make_decl_rtl): Likewise.
10071
10072         * toplev.c (rest_of_compilation): Tweak formatting.
10073
10074         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
10075         remove_unnecessary_notes.
10076         (debug_ignore_block): New fn.
10077         * toplev.h: Declare it.
10078         * emit-rtl.c (remove_unncessary_notes): Call it.
10079         * dwarf2out.c (dwarf2out_ignore_block): New fn.
10080         * dwarf2out.h: Declare it.
10081         * final.c (final_start_function): Don't call remove_unnecessary_notes
10082         if we did insn scheduling.
10083
10084 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
10085
10086         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
10087         * cpplib.h: Delete SET_CPP_PEDANTIC.
10088
10089 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10090
10091         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
10092         result is a RECORD_TYPE.
10093
10094 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
10095
10096         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
10097
10098 2000-03-03  Richard Henderson  <rth@cygnus.com>
10099
10100         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
10101         addition over compliments over shifts.
10102
10103 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10104
10105         * reload1.c (reload_combine_note_use): Handle return register USEs.
10106         REG case: Handle multi-hard-register hard regs.
10107
10108 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10109
10110         * md.texi: Document use of '*' in insn pattern name.
10111
10112 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
10113
10114         * calls.c (special_function_p): operator new may not be malloc-like.
10115
10116         * gcse.c (dump_hash_table): Really fix error in last change.
10117
10118 2000-03-02  Denis Chertykov  <denisc@overta.ru>
10119
10120         * avr.c (print_operand): Use print_operand_address instead of
10121         output_addr_const.
10122         * avr/libgcc.S: Cleanup code.
10123
10124 2000-03-02  Richard Henderson  <rth@cygnus.com>
10125
10126         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
10127
10128 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
10129
10130         * tree.h (TYPE_ALIGN_UNIT): New macro.
10131
10132 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
10133
10134         * i386.c: (constant_call_address_operand): Reject CONST_INT.
10135
10136 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
10137
10138         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
10139         for the buffer.
10140         (SET_CPP_PEDANTIC): New macro.
10141         * cpplib.c (do_include): Don't bother checking system_header_p.
10142         (do_warning, do_ident, do_assert, do_unassert): Likewise.
10143         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
10144
10145         * function.h (struct expr_status): Add x_arg_space_so_far.
10146         (arg_space_so_far): New macro.
10147         * expr.c (init_expr): Initialize it.
10148         * calls.c (emit_call_1): Reset it.
10149         (compute_argument_block_size, expand_call): Use it.
10150         (expand_call, store_one_arg): Increment it.
10151
10152 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10153
10154         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
10155         a UNION_TYPE.
10156
10157 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
10158
10159         * cppfiles.c (cpp_read_file): New function.
10160
10161         * cpphash.c (collect_expansion): Make sure to reset last_token
10162         to NORM when we hit a string.  Handle trailing whitespace
10163         properly when the expansion is empty.
10164         (create_definition): Disable line commands while parsing the
10165         directive line.
10166         (dump_definition): If pfile->lineno == 0, output a line
10167         command ahead of the dump, and add a trailing newline.
10168
10169         * cppinit.c (append_include_chain): Add fifth argument, which
10170         indicates whether or not system headers are C++ aware.
10171         (initialize_standard_includes): New function,
10172         broken out of read_and_prescan.  Pass 'cxx_aware' value from
10173         the include_defaults_array on to append_include_chain.
10174         (dump_special_to_buffer): Const-ify char array.
10175         (builtin_array): Don't dump __BASE_FILE__.
10176         (cpp_start_read): Use cpp_read_file.  Reorder code for
10177         clarity.  Don't output line commands here for -D/-A/-U
10178         switches.  Don't call deps_output for files included with
10179         -include or -imacros.
10180
10181         * cpplib.c (do_define): Don't pay any attention to the second
10182         argument.
10183         (cpp_expand_to_buffer): Disable line commands while scanning.
10184         (output_line_command): Work in the file buffer.
10185         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
10186         Fix formatting of comments.  Prototype cpp_read_file.
10187
10188 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10189
10190         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
10191         reference the language-equivalent of sizetype.
10192         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
10193         * fold-const.c (size_binop, size_diffop): Put back checks.
10194         * gcse.c (dump_hash_table): Fix minor error in last change.
10195         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
10196         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
10197         all sizetypes.
10198
10199 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
10200
10201         * calls.c (expand_call)  Do not attempt to combine stack adjustments
10202         with inhibit_defer_pop set.
10203
10204 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
10205
10206         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
10207         the DECL_SIZE for a FIELD_DECL.
10208
10209 2000-03-01  Bruce Korb  <bkorb@gnu.org>
10210
10211         * fixinc/inclhack.tpl: remove unused symlinks
10212         * fixinc/README: GCC Maintainer info
10213         * fixinc/inclhack.sh: regen
10214         * fixinc/fixincl.sh: regen
10215
10216 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
10217
10218         * cpphash.c (collect_expansion): Trim trailing white space
10219         from macro definitions, but don't go past the last insertion
10220         point.
10221
10222 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
10223
10224         * i386.md (mulqi3): New pattern.
10225
10226 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
10227
10228         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
10229         token types.
10230         (struct cpp_reader): Add parsing_if_directive and
10231         parsing_define_directive flags.
10232         (struct cpp_options): Remove output_conditionals flag.
10233         (check_macro_name): Delete prototype.
10234
10235         * cpphash.h (struct macrodef): Delete.
10236         (struct reflist): Separate from struct definition.
10237         (struct definition): Remove unused fields.  Add column number.
10238         (create_definition): Returns a DEFINITION *.  Takes a
10239         cpp_reader * and an int.
10240
10241         * cpphash.c (SKIP_WHITE_SPACE): Delete.
10242         (PEEKC): Copy defn from cpplib.c.
10243         (rest_extension, REST_EXTENSION_LENGTH): Delete.
10244         (struct arg): New.
10245         (struct arglist): Simplify.
10246         (collect_expansion): Rewrite.  Get tokens by calling
10247         cpp_get_token.  Add more error checking.
10248         (collect_formal_parameters): New function, broken out of
10249         create_definition and reworked to use get_directive_token.
10250         (create_definition): All real work is now in collect_expansion
10251         and collect_formal_parameters.  do_define handles finding the
10252         macro name.  Return a DEFINITION, not a MACRODEF.
10253         (macroexpand): Replace bcopy with memcpy throughout.  Replace
10254         character-at-a-time copy loop with memcpy and pointer increments.
10255         (compare-defs): d1->argnames / d2->argnames might be null.
10256
10257         * cpplib.c (copy_rest_of_line): Delete function.
10258         (skip_rest_of_line): Do all the work ourselves.
10259         (skip_string): New function.
10260         (parse_string): Use skip_string.
10261         (get_macro_name): New function.
10262         (check_macro_name): Delete.
10263         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
10264         (cpp_skip_hspace): Use CPP_BUMP_LINE.
10265         (handle_directive): ICE if we're called on a macro buffer.
10266         (do_define): Determine macro name and type (funlike/objlike)
10267         here.  Expunge all uses of MACRODEF.
10268         (cpp_push_buffer): Set line_base to NULL.
10269         (do_undef, read_line_number): Don't worry about getting a POP token.
10270         (eval_if_expression): Set/reset parsing_if_directive around
10271         cpp_parse_expr. Don't clear only_seen_white.
10272         (skip_if_group): Remove output_conditionals logic.  Use
10273         skip_rest_of_line.
10274         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
10275         tokens under appropriate conditions.
10276         (cpp_unassert): Call do_unassert not do_assert.  Oops.
10277
10278         * cppexp.c (parse_defined): New function, break out of
10279         cpp_lex.
10280         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
10281         ourselves, with cpp_defined.
10282         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
10283
10284         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
10285         * gcc.dg/strpaste-2.c: New.
10286
10287 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
10288
10289         * fold-const.c (size_binop): Don't asert inputs are the same and
10290         have TYPE_IS_SIZETYPE set.
10291         (size_diffop): Likewise.
10292
10293 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
10294
10295         * dwarfout.c (output_block): Output abstract blocks even if they
10296         don't have TREE_ASM_WRITTEN set.
10297
10298         * calls.c (emit_library_call): Check for null REG.
10299
10300 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
10301
10302         * c-decl.c (current_function_decl): Move to toplev.c.
10303         (init_decl_processing): Don't add current_function_decl as a ggc
10304         root here.
10305         * dbxout.c (dbxout_symbol): Change return type to int.
10306         (dbxout_symbol_location, dbxout_syms): Likewise.
10307         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
10308         any locals. Use current_function_func_begin_label if set.
10309         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
10310         * dwarf2out.c (dwarf2out_begin_prologue): Set
10311         current_function_func_begin_label.
10312         * final.c (final_start_function): Reset it.
10313         * toplev.c (current_function_decl): Define it here.
10314         (current_function_func_begin_label): New variable.
10315         (main): Add both as ggc roots.
10316         * tree.h (current_function_func_begin_label): Declare.
10317
10318 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10319
10320         * gcse.c: Cleanups throughout: mostly white-space, but also
10321         some minor rearrangement of code.
10322
10323 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
10324
10325         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
10326         returns a PARALLEL.  Use emit_group_load and use_group_regs
10327         as needed.
10328         (emit_library_call_value): Similarly.
10329
10330         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
10331         * pa/quadlib.asm: Remove.
10332         * pa/quadlib.c: New file.
10333
10334         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
10335         * configure: Rebuilt.
10336
10337 2000-02-29  Philip Blundell  <pb@futuretv.com>
10338
10339         * config/arm/conix-elf.h: New file.
10340         * configure.in (arm*-*-conix*): New configuration.
10341         * configure: Regenerate.
10342
10343 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
10344
10345         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
10346         don't have TREE_ASM_WRITTEN set.
10347
10348 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10349
10350         * Eliminate DECL_FIELD_SIZE.
10351         * builtins.c (built_in_class_names, built_in_names): New variables.
10352         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
10353         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
10354         DECL_SIZE, not DECL_FIELD_SIZE.
10355         * print-tree.c (print_node): Remove code that prints extra blank
10356         lines in some cases.
10357         Properly handle inline and builtin function cases.
10358         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
10359         * tree.h (built_in_class_named, built_in_names): New declarations.
10360         (union tree_decl): Rename internal unions to u1 and u2 and change
10361         some of their components.
10362         Add new field built_in_class.
10363         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
10364         Reflect above changes.
10365         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
10366         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
10367         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
10368         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
10369
10370 2000-02-28  Dmitri Makarov  <dim@windriver.com>
10371
10372         * extend.texi: Document ARM's support for long/short calls.
10373
10374         * invoke.texi: Document ARM's -mlong-calls command line switch.
10375
10376         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
10377         (arm_encode_call_attribute): Add prototype.
10378         (arm_set_default_type_attribute): Add prototype.
10379         (arm_strip_name_encoding): Add prototype.
10380
10381         * config/arm/arm.c (arm_init_cumulative_args): replace
10382         initialisation og 'long_calls' field with initialisation of
10383         'call_cookie' field.
10384         (enum arm_pragma_enum): New enum.
10385         (arm_pragma_long_calls): New static variable.
10386         (arm_process_pragma): Also process "#pragma long_calls_off".
10387         (arm_valid_type_attribute_p): Accept short_call attribute.
10388         (arm_comp_type_attributes): Check long/short call attributes.
10389         (arm_encode_call_attribute):  New function:  Encode long_call
10390         or short_call attribute in function name.
10391         (arm_set_default_type_attributes): New function: Assign
10392         default attributes to newly defined type.
10393         (current_file_function_operand): New function: Return true if
10394         the symbol is a function which has already been compiled.
10395         (arm_is_longcall_p): New function: Return true if the
10396         indicated function should be called via a long call.
10397         (arm_get_strip_length): New function.  Returns number of
10398         prefix characters to be stripped from a function's name.
10399         (arm_strip_name_encoding): New function.  Strip prefix characters
10400         from a function's name.
10401
10402         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
10403         with 'call_cookie'.
10404         (SHORT_CALL_FAG_CHAR): Define.
10405         (LONG_CALL_FAG_CHAR): Define.
10406         (ENCODED_SHORT_CALL_ATTR_P): Define.
10407         (ENCODED_LONG_CALL_ATTR_P): Define.
10408         (ARM_NAME_ENCODING_LENGTHS): Define.
10409         (STRIP_NAME_ENCODING): Define.
10410         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
10411         (ARM_ENCODE_CALL_TYPE): Define.
10412         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
10413         (ARM_DECLARE_FUNCTION_SIZE): Define.
10414         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
10415
10416         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
10417         if a long call is needed.
10418         (call_value): Ditto.
10419         (call_symbol): Ditto.
10420
10421         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
10422         ARM_DECLARE_FUNCTION_SIZE.
10423
10424         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
10425         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
10426         (ARM_STRIP_NAME_ENCODING): Undefine.
10427         (STRIP_NAME_ENCODING): Undefine.
10428         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
10429         (ASM_DECLARE_FUNCTION_NAME): Ditto.
10430         (ASM_OUTPUT_COMMON): Ditto.
10431         (ASM_DECLARE_OBJECT_NAME): Ditto.
10432
10433         * config/arm/pe.c (arm_dllexport_name_p): Check for
10434         ARM_PE_FLAG_CHAR.
10435         (arm_dllimport_name_p): Ditto.
10436         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
10437         (arm_mark_dllimport): Ditto.
10438
10439 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10440
10441         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
10442
10443 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
10444
10445         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
10446
10447 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
10448
10449         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
10450         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
10451         NO_BUILTIN_WCHAR_TYPE is not defined.
10452         (CPP_WCHAR_TYPE): Delete.
10453         * cccp.c (main): Don't change wchar_type if cplusplus.
10454         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
10455
10456 2000-02-28  Nick Clifton  <nickc@cygnus.com>
10457
10458         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
10459
10460 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
10461
10462         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
10463         (ASM_WEAKEN_LABEL): Define.
10464
10465 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
10466
10467         * expr.c (store_constructor): Do not emit USE.
10468         * rtl.h (stupid_life_analysis): Remove.
10469
10470 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10471
10472         * function.c (number_blocks): Reset next_block_index based on
10473         what debugging format is used, not what is defined.
10474
10475         * lcm.c: Minor reformatting throughout.
10476         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
10477
10478         * toplev.c (rest_of_compilation): Account for time in
10479         optimize_mode_switching.
10480
10481         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
10482         if only marking labels.
10483
10484 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
10485
10486         * calls.c (expand_call): Attempt to combine stack adjustments with
10487         pending stack adjustments.
10488
10489 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10490
10491         * loop.c (reg_in_basic_block_p): Don't abort when falling through
10492         to the end of the function.
10493
10494 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
10495
10496         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
10497         blocks.
10498         * final.c (next_block_index): Remove.
10499         (max_block_depth): Likewise.
10500         (pending_blocks): Likewise.
10501         (init_final): Don't initialize them.
10502         (final_start_function): Don't set next_block_index.  Set up
10503         BLOCK_NUMBER.
10504         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
10505         * function.h (number_blocks): New function.
10506         * function.c (get_block_vector): New function.
10507         (identify_blocks): Use it.
10508         (reorder_blocks): Set NOTE_BLOCK.
10509         (number_blocks): New function.
10510         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
10511         * tree.h (BLOCK_NUMBER): New macro.
10512         (tree_block): Add block_num field.
10513         * dbxout.c (next_block_number): Remove.
10514         (dbxout_init): Don't set it.
10515         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
10516         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
10517         block numbers.
10518         * toplev.c (rest_of_compilation): Always call
10519         find_loop_tree_blocks.  Fix indentation.
10520         * dwarf2out.c (next_block_number): Remove.
10521         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10522         to determine block numbers.
10523         (gen_inlined_subroutine_die): Likewise.
10524         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
10525         (decls_for_scope): Don't increment next_block_number.
10526         * dwarfout.c (next_block_number): Remove.
10527         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10528         to determine block numbers.
10529         (output_inlined_subroutine_die): Likewise.
10530         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
10531         (output_decls_for_scope): Don't increment next_block_number.
10532         * sdbout.c (next_block_number): Remove.
10533         (sdbout_block): Use BLOCK_NUMBER.
10534         (sdbout_begin_block): Simplify.
10535         * xcoffout.c (next_block_number): Remove.
10536         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
10537         (xcoffout_begin_block): Don't set next_block_number.
10538         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
10539         next_block_number.
10540
10541 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10542
10543         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
10544         (expand_builtin_strcpy): Pass correct type to size_binop.
10545         (expand_builtin_strcmp): Likewise.
10546         Clean up conditional structure.
10547         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
10548         (complete_array_type): Don't use size_binop for MAXINDEX.
10549         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
10550         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
10551         (c_alignof): Use size_one_node.
10552         (build_unary_op): Pass arg of proper type to size_binop.
10553         (really_start_incremental_init, push_init_level): Use sizetype for
10554         constructor{,_bit,_unfilled}_index.
10555         (pop_init_label, output_init_element): Likewise.
10556         (output_pending_init_elements, process_init_element): Likewise.
10557         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
10558         * expr.c (store_expr): Use size_int.
10559         (store_constructor): Use proper types for size_binop args.
10560         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
10561         (expand_expr_unaligned): Likewise.
10562         (string_contant): Return object of sizetype.
10563         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
10564         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
10565         (ARGS_SIZE_TREE): Pass proper types to size_binop.
10566         * fold-const.c (int_const_binop): Refine when size_int is called.
10567         (fold_convert): Likewise.
10568         (size_int_wide): Rework to take KIND as arg, only take low order
10569         bits, handle new sizetype_tab datatype, and chain entries in
10570         size_table.
10571         (size_int_type_wide): New function.
10572         (size_binop): Validate types of arguments.
10573         (ssize_binop): Deleted.
10574         (size_diffop): New function.
10575         (extract_muldiv): Only fold division into multiplication for sizetypes.
10576         * function.c (assign_parms): Use size_diffop and make sure
10577         VAR field is of ssizetype; also pass proper type to size_binop.
10578         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
10579         (round_down): Deleted from here.
10580         * store-layout.c (sizetype_tab): Now an array.
10581         (sizetype_set, early_root_list): New variables.
10582         (variable_size): Use size_one_node.
10583         (round_up): Pass proper type to size_binop.
10584         (round_down): Moved to here and corrected as above.
10585         (layout_record): Pass proper arg types to size_binop.
10586         (layout_type): Likewise.
10587         If sizetype_set is zero, record the type just laid out.
10588         (make_unsigned_type): Don't call set_sizetype;
10589         (make_signed_type): Likewise; also, call fixup_signed_type.
10590         (initialize_sizetypes): New function.
10591         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
10592         set name of bitsizetype to "bit_size_type".
10593         Fix up type of sizes of all types made before call.
10594         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
10595         * tree.c (fix_sizetype): Deleted.
10596         (build_common_tree_nodes): Call initialize_sizetypes.
10597         (build_common_tree_nodes_2): Don't call fix_sizetype.
10598         * tree.h (TYPE_IS_SIZETYPE): New macro.
10599         (initialize_sizetype): New declaration.
10600         (enum size_type_kind): New type.
10601         (struct sizetype_tab): Deleted.
10602         (sizetype_tab): Now array; adjust sizetype macros.
10603         (size_diffop, size_int_type_wide): New functions.
10604         (size_int_wide): Change number of args and type; access macros changed.
10605         (ssize_int, sbitsize_int): New macros.
10606         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
10607         (ROUND_TYPE_SIZE_UNIT): New macro.
10608
10609 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
10610
10611         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
10612
10613 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10614
10615         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
10616         Mark as possibly unused.
10617
10618         * cse.c (cse_insn): Delete dead code involving tablejump.
10619         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
10620
10621         * Makefile.in (libcpp.a): Start by deleting it.
10622
10623 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10624
10625         * cpplib.h (enum file_change_code): Added rename_file.
10626         * cpplib.c (do_line): If a filename is given, set file_change to
10627         rename_file.
10628         (output_line_command): If file_change is rename_file, always
10629         output a # directive with the file name.
10630
10631         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
10632
10633 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
10634
10635         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
10636         when copying a PARM_DECL or RESULT_DECL.
10637
10638 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10639
10640         * fix-header.c (recognized_function): Also fix prototypes for
10641         functions taking "void".
10642
10643 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
10644
10645         * reload1.c (do_output_reload): Check reg_reloaded_valid before
10646         looking at reg_reloaded_contents.
10647
10648 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
10649
10650         * Makefile.in (STMP_FIXINC): New toggle.
10651         (LIBGCC2_DEPS): Delete all references.
10652         (stmp-headers): Delete target.  All references either deleted
10653         or changed to stmp-int-headers.
10654         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
10655         (LIBCPP_OBJS): Take out cppalloc.o.
10656         (cppalloc.o): Delete target.
10657         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
10658         (gen-protos, fix-header): Link with libiberty.a.
10659         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
10660         to empty.
10661
10662         * configure.in: Remove refs to strerror.
10663         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
10664         * system.h: Take out strerror stanza.
10665
10666         * cpperror.c (my_strerror): Delete function.
10667         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
10668         * cppmain.c (main): Call xmalloc_set_program_name first thing.
10669         * cppalloc.c: Delete file.
10670         * gen-protos.c: Don't provide xrealloc.
10671
10672         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
10673         xstrerror throughout.
10674
10675 2000-02-26  Bruce Korb  <bkorb@gnu.org>
10676
10677         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
10678         match for DOS headers, too.
10679         * fixinc/inclhack.sh,fixincl.x: Regenerate.
10680
10681 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
10682
10683         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
10684         is right for most ELF targets.
10685         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
10686         Let the default file use %U properly.
10687         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
10688         default.
10689
10690         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
10691         numbers.
10692
10693 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10694
10695         * toplev.c (documented_lang_options): Correct spelling error.
10696         (decode_d_option, decode_f_option, main): Likewise.
10697
10698         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
10699
10700         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
10701         to tell assembler it is permitted to expand large constants.
10702
10703 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
10704
10705         * protoize.c: (AUX_INFO_SUFFIX): New macro.
10706         (aux_info_suffix): Use.
10707         (SAVE_SUFFIX): New macro.
10708         (save_suffix): Use.
10709         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
10710         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
10711         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
10712
10713         * invoke.texi (Running Protoize): Update documentation.
10714
10715 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
10716
10717         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
10718
10719 2000-02-25  John Wehle  (john@feith.com)
10720
10721         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
10722
10723 2000-02-25  Anthony Green  <green@cygnus.com>
10724
10725         * toplev.c (rest_of_compilation): Rebuild jump labels if
10726         combine_instructions has created a new direct jump.
10727         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
10728         when appropriate.
10729         (combine_instructions): Call try_combine with new argument.
10730         Return non-null value when new direct jump instruction is created.
10731         * rtl.h: combine_instructions returns an int.
10732
10733 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
10734
10735         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
10736         jump when changing a computed jump into a jump to a known
10737         target.
10738
10739 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
10740
10741         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
10742         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
10743
10744         * i386.md (define_expand "clrstrsi"): Fix typo.
10745
10746 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
10747
10748         * rtl.texi: Fix typo.
10749
10750 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10751
10752         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
10753         UNITS_PER_WORD.  Change caller initial_elimination_offset.
10754         (rounded_frame_size): Take into account that argument pushed has
10755         changed.  Fix TARGET_ALIGN_DOUBLE problem.
10756
10757 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
10758
10759         * haifa-sched.c (schedule_block): Explain the real reason
10760         we delete REG_SAVE_NOTEs on the first insn of a block.
10761         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
10762
10763 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
10764
10765         * input.h (push_srcloc): New function.
10766         (pop_srcloc): Likewise.
10767         * toplev.c (push_srcloc): Define it.
10768         (pop_srcloc): Likewise.
10769
10770 2000-02-24  Richard Henderson  <rth@cygnus.com>
10771
10772         * flow.c (life_analysis): When collecting reg info, clear
10773         regs_ever_live.
10774
10775 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10776
10777         Fix bug exposed by reload.c no longer rounding the frame
10778         size to BIGGEST_ALIGNMENT:
10779         * sh.c (rounded_frame_size): New function.
10780         (sh_expand_prologue, sh_expand_epilogue): Use it.
10781         (initial_elimination_offset): Likewise.
10782
10783 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10784
10785         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
10786         * sh-protos.h (sh_need_epilogue): Declare.
10787         * sh.c (sh_need_epilogue_known): New static variable.
10788         (sh_need_epilogue): New function.
10789         (function_epilogue): Clear need_epilogue_known.
10790         * sh.md (return): Split into expander / insn pattern.
10791         Make the expander conditional on ! sh_need_epilogue ().
10792
10793 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
10794
10795         * machmode.h (get_mode_alignment): Declare.
10796         (GET_MODE_ALIGNMENT): Call it.
10797         * stor-layout.c (get_mode_alignment): New function. Make
10798         sure alignment is always power of 2.
10799
10800 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10801
10802         * i386.h: Remove useless definition of "I386" and misleading
10803         comment above it.
10804
10805 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10806
10807         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
10808         under which TREE_PERMANENT will be set.
10809         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
10810         build1): Use TREE_SET_PERMANENT.
10811         * print-tree.c (print_node): Don't report value of
10812         TREE_PERMANENT if ggc_p is true.
10813
10814         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
10815         decide whether to give a type a new alias set.
10816         * objc/objc-act.c (build_objc_string_object): Never copy the string.
10817         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
10818         of value of 'obstack'.
10819
10820
10821 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10822
10823         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
10824
10825 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10826
10827         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
10828         * cpplib.c (cpp_get_token): Produce them.
10829         * cppexp.c (cpp_lex): Handle them.
10830
10831 2000-02-23  Nick Clifton  <nickc@cygnus.com>
10832
10833         * config/arm/arm.c (arm_comp_type_attributes): Simply and
10834         comment tests on type attributes.
10835
10836 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10837
10838         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
10839         conform to documentation.
10840         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
10841         to check for special cases.
10842         * sh-protos.h (sh_loop_align): Declare.
10843         * sh.c (sh_loop_align): Define.
10844
10845 2000-02-22  Andrew Haley  <aph@cygnus.com>
10846
10847         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
10848         (SIZE_TYPE): Is 32 bits when using -mgp32.
10849         (PTRDIFF_TYPE): Ditto.
10850
10851 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10852
10853         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
10854
10855 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10856
10857         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
10858         BIGGEST_FIELD_ALIGNMENT a constant.
10859
10860 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
10861
10862         * dwarf2out.c (output_line_info): Put the marker for the end of
10863         the line number info at the actual end.
10864         (gen_struct_or_union_type_die): Use decl_function_context
10865         to check for local classes.
10866         * dwarfout.c (output_type): Likewise.
10867
10868 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
10869
10870         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
10871         for arguments with a mode, but no type.
10872         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
10873         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
10874         * pa/long_double.h: New file.
10875         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
10876         both have 128bit wide long doubles.
10877         * configure: Rebuilt.
10878
10879 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10880
10881         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
10882
10883         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
10884         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
10885         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
10886
10887         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
10888
10889         * integrate.c (compare_blocks, find_block): Likewise.
10890
10891         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
10892
10893         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
10894
10895         * stmt.c (stmt_status, set_file_and_line_for_stmt,
10896         expand_asm_operands): Likewise.
10897
10898 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
10899
10900         * predict.c (estimate_probability): Added the pointer heuristic to
10901         the collection of static branch predictors.
10902
10903 2000-02-21  Catherine Moore  <clm@cygnus.com>
10904
10905         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
10906         * invoke.texi (-mfix7000): Document.
10907
10908 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
10909
10910         * diagnostic.c (init_output_buffer): Make it possible to output at
10911         least 32 characters if we're given a too long prefix.
10912
10913 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
10914
10915         * varasm.c (initializer_constant_valid_p): Call
10916         lang_expand_constant to simplify the constant.
10917
10918 2000-02-20  Bruce Korb  <bkorb@gnu.org>
10919
10920         * fixinc/inclhack.def(stdio_va_list):
10921         typedef needs to be disabled.
10922         * fixinc/inclhack.sh: regen
10923         * fixinc/fixincl.x: regen
10924
10925 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
10926
10927         * print-rtl.c (print_rtx): Don't print addresses when
10928         flag_dump_unnumbered.
10929
10930 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10931
10932         * sparc.c (sparc_output_scratch_registers): Mark parameter with
10933         ATTRIBUTE_UNUSED.
10934         (sparc_va_arg, sparc_flat_output_function_prologue,
10935         sparc_flat_output_function_epilogue): Cast value to unsigned in
10936         comparison.
10937         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
10938
10939         * sparc.md: Add default case in switch.
10940
10941 2000-02-19  Richard Henderson  <rth@cygnus.com>
10942
10943         * c-typeck.c (add_pending_init): Don't abort for multiple
10944         fields at the same offset.
10945         (pending_init_member): Test the correct member.
10946
10947 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10948
10949         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
10950         instead of SImode.
10951         (start_catch_handler) : Same.
10952
10953 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
10954
10955         * Makefile.in: Have flow.o depend on $(EXPR_H)
10956
10957 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10958
10959         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
10960         * c-decl.c (duplicate_decls, finish_enum): Likewise.
10961         (finish_decl): Remove -Wlarger-than code from here.
10962         * flags.h (id_clash_len): Now int.
10963         (larger_than_size): Now HOST_WIDE_INT.
10964         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
10965         Clean up checking to see if in table.
10966         (make_bit_field_ref): Remove extra parm to bitsize_int.
10967         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
10968         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
10969         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
10970         and for computing size of decl.
10971         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
10972         Move -Wlarger-than code to here.
10973         (layout_record): Remove extra arg to bitsize_int.
10974         Set TYPE_BINFO_SIZE_UNIT.
10975         (layout_union): Remove extra arg to bitsize_int.
10976         Use proper type for size of QUAL_UNION.
10977         (layout_type): Remove extra arg to bitsize_int.
10978         * toplev.c (id_clash_len): Now int.
10979         (larger_than_size): Now HOST_WIDE_INT.
10980         (decode_W_option): Clean up id-clash and larger-than- cases.
10981         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
10982         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
10983         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
10984         (struct tree_decl): New field size_unit.
10985         (size_int_wide): No HIGH operand; NUMBER is now signed.
10986         (size_int_2): Deleted.
10987         (size_int, bitsize_int): Don't use it and rework args.
10988         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
10989
10990 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
10991
10992         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
10993
10994 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
10995
10996         * invoke.texi (Warning Options): Add an explanation of why
10997         you might want the -Wfloat-equal flag.
10998
10999 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11000
11001         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
11002         * cppinit.c (new_pending_define): Add cast to avoid warning.
11003         * expmed.c (extract_bit_field): Likewise.
11004         * flow.c (enum reorder_skip_type): New type.
11005         (skip_insns_between_blcok): New it.
11006         Rework to avoid warning about possibly undefined variable.
11007         * function.c (assign_parms): Make thisparm_boundary unsigned.
11008         * genrecog.c (write_switch): Cast XWINT result to int.
11009         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
11010         * mips-tfile.c (init_file): Make two versions of FDR intializer:
11011         one for MIPS and one for Alpha.
11012         (get_tag, copy_object): Add casts to avoid warnings.
11013         * optabs.c (init_one_libfunc): Cast NAME to (char *).
11014         * reload.c (find_reloads): Make TYPE enum reload_type.
11015         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
11016         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
11017         * varasm.c (compare_constant_1): Add cast to avoid warning.
11018         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
11019         to (char *).
11020         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
11021         Cast switch operand of size to int.
11022         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
11023         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
11024         in unhandled case.
11025
11026 2000-02-18  Nick Clifton  <nickc@cygnus.com>
11027
11028         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
11029         anything for an alignment of zero.
11030
11031         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
11032         anything for an alignment of zero.
11033
11034 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
11035
11036         * gcc.texi (Bug Reporting): Refer to bugs.html.
11037         (Bug Lists): Likewise.
11038         * system.h (GCCBUGURL): New preprocessor define.
11039         * rtl.c (fancy_abort): Use it.
11040         * gcc.c (main): Likewise.
11041
11042 2000-02-18  Richard Henderson  <rth@cygnus.com>
11043
11044         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
11045         (life_analysis_1): Subsume into ...
11046         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
11047         Use update_life_info for the relaxation.
11048         (update_life_info): Update REG_BASIC_BLOCK for registers live on
11049         entry and regs_live_at_setjmp.
11050         (set_noop_p): Simplify.
11051         (notice_stack_pointer_modification_1): Renamed from s/_1//.
11052         (record_volatile_insns): Split into ...
11053         (delete_noop_moves): ... here,
11054         (notice_stack_pointer_modification): ... here,
11055         (insn_dead_p): ... and here.
11056         (propagate_block): Don't query INSN_VOLATILE.
11057         (mark_used_regs): Mind !PROP_REG_INFO.
11058         * toplev.c (rest_of_compilation): Call mark_constant_function here,
11059         not in life_analysis.
11060
11061 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
11062
11063         * loop.c (canonicalize_condition): New function,
11064         broken out of get_condition.
11065         (get_condition): Use it.
11066         * expr.h (canonicalize_condition): Prototype it.
11067
11068         * tree.h (tree_int_cst_msb): Declare.
11069         * tree.c (tree_int_cst_msb): New function.
11070
11071 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
11072
11073         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
11074         isn't set.
11075
11076         * invoke.texi (-fmessage-length=n): Document.
11077
11078 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
11079
11080         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
11081
11082 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
11083
11084         * function.c (thread_prologue_and_epilogue_insns): Put a line note
11085         after the prologue.
11086
11087 2000-02-17  Nick Clifton  <nickc@cygnus.com>
11088
11089         * config/arm/thumb.c: Replace includes of system headers with
11090         #include "system.h".
11091
11092 2000-02-16  Richard Henderson  <rth@cygnus.com>
11093
11094         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
11095         Add crtbeginS.o and crtendS.o.
11096         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
11097         (ENDFILE_SPEC): Use crtendS.o.
11098         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
11099
11100         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
11101         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
11102         shared and present.
11103         (__dso_handle): New variable.
11104         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
11105         bias to __CTOR_END__.
11106
11107 2000-02-16  Richard Henderson  <rth@cygnus.com>
11108
11109         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
11110
11111 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11112
11113         * longlong.h (__clz_tab): Declare as static to match definition.
11114
11115 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
11116
11117         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
11118         (XREF_FILE_NAME): Define.
11119
11120         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
11121         (EH_FRAME_SECTION_ASM_OP): Define.
11122         (IDENT_ASM_OP): Define.
11123         (TEXT_SECTION_ASM_OP): Define.
11124         (CPP_SPEC): Define.
11125         (CTORS_SECTION_ASM_OP): Define.
11126         (CTOR_SECTION_FUNCTION): Use it.
11127         (DTORS_SECTION_ASM_OP): Define.
11128         (DTOR_SECTION_FUNCTION): Use it.
11129
11130 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
11131
11132         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
11133         NOTE_BASIC_BLOCK.
11134
11135         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
11136         debug_bb_n): New functions.
11137         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
11138         * basic-block.h: Prototype new functions.
11139
11140 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
11141
11142         * configure.in: Add support for avr target.
11143         * configure: Rebuilt.
11144
11145         * invoke.texi: Add AVR invocation docs.
11146         * install.texi: Add information about AVR.
11147         * md.texi: Add AVR constraint letters description.
11148         * extend.texi: Add description for AVR specific attributes.
11149
11150 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
11151
11152         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
11153
11154 2000-02-16  Nick Clifton  <nickc@cygnus.com>
11155
11156         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
11157         (make_insn_raw): Move RTL check here.
11158
11159 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11160
11161         * version.c: Include gansidecl.h and version.h.
11162
11163         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
11164
11165         * configure.in (gcc_version): When setting, narrow search to
11166         lines containing `version_string'.
11167
11168         * Makefile.in (mainversion): Likewise.
11169         (GCC_H): New variable.
11170         (gcc.h): Delete target.
11171         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
11172         (version.o): Depend on version.h.
11173         (dbxout.o): Don't depend on gcc.h.
11174
11175 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11176                           Michael Meissner  <meissner@cygnus.com>
11177
11178         * md.texi (Simple Constraints): Add item about whitespace.
11179         * genoutput.c (strip_whitespace): New.
11180         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
11181         strip_whitespace for constraints.
11182         Test pointer using NULL, not 0.
11183
11184 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11185
11186         * cpplib.c (do_line): Pedwarn for #line > 32767.
11187
11188         * c-lex.c (readescape): Warn about '\x', but do not reject it.
11189
11190 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
11191
11192         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
11193         to default cpp spec.
11194         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
11195         * cpp.texi: Document __GNUC_PATCHLEVEL__.
11196         * cpp.1: Likewise.
11197
11198         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
11199         default spec.
11200
11201 2000-02-15  Denis Chertykov  <denisc@overta.ru>
11202
11203         * configure.in: Add support for avr target.
11204
11205 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11206
11207         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
11208         (sh_addr_diff_vec_mode): Don't declare.
11209         * sh.c (sh_addr_diff_vec_mode): Delete.
11210
11211 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11212
11213         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
11214
11215 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11216
11217         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
11218         (smulsi3_highpart_i): Name.
11219         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
11220         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
11221         (smulsi3_highpart, umulsi3_highpart): Likewise.
11222
11223         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
11224         correctly independent of endianness.
11225         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
11226         confuse the optimizers.
11227         (mulsidi3+1, umulsidi3+1): New define_split.
11228
11229 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
11230
11231         * config/sh/sh.md: Guard insn splits against illegal registers.
11232         * config/sh/sh.h: Correct comment about macros.
11233
11234 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11235                           Andrew MacLeod  <amacleod@cygnus.com>
11236
11237         * Makefile.in (lcm.o): Depend on insn-attr.h.
11238         * basic-block.h (optimize_mode_switching): Declare.
11239         * lcm.c (tm_p.h, insn-attr.h): #include.
11240         (seginfo, bb_info): New structs.
11241         (antic, transp, comp, delete, insert) : New file-scope static variables.
11242         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
11243         (reg_becomes_live, optimize_mode_switching): Likewise.
11244         * tm.texi: Add description of mode switching macros.
11245         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
11246
11247         * sh-protos.h (remove_dead_before_cse): Remove prototype.
11248         (fldi_ok, fpscr_set_from_mem): New prototypes.
11249         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
11250         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
11251         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
11252         (sh_flag_remove_dead_before_cse): Remove declaration.
11253         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
11254         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
11255         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
11256         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
11257         (barrier_align): Allow for JUMP_INSNS containing a parallel.
11258         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
11259         (fldi_ok): New function.
11260         (get_fpscr_rtx): Add fpscr_rtx as GC root.
11261         (emit_sf_insn): Only generate fpu switches when optimize < 1.
11262         (emit_df_insn): Likewise.
11263         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
11264         (sh_flag_remove_dead_before_cse): Delete.
11265         (get_free_reg, fpscr_set_from_mem): New functions.
11266         * sh.md (movdf, movsf): Remove no_new_pseudos code.
11267         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
11268
11269 2000-02-15  Loren Rittle  <ljrittle@acm.org>
11270
11271         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
11272
11273 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11274
11275         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
11276         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
11277
11278         * cccp.c: Include version.h and/or don't declare `version_string'.
11279         * collect2.c: Likewise.
11280         * alpha.c: Likewise.
11281         * arm/aof.h: Likewise.
11282         * arm/coff.h: Likewise.
11283         * arm/elf.h: Likewise.
11284         * arm/pe.h: Likewise.
11285         * arm/tcoff.h: Likewise.
11286         * arm/telf.h: Likewise.
11287         * arm/tpe.h: Likewise.
11288         * arm/vxarm.h: Likewise.
11289         * convex/convex.c: Likewise.
11290         * i386/dgux.c: Likewise.
11291         * i386/sun386.h: Likewise.
11292         * m88k/m88k.c: Likewise.
11293         * mcore/mcore-pe.h: Likewise.
11294         * mips/mips.h: Likewise.
11295         * romp/romp.h: Likewise.
11296         * sh/sh.c: Likewise.
11297         * cpphash.c: Likewise.
11298         * cppinit.c: Likewise.
11299         * dwarf2out.c: Likewise.
11300         * dwarfout.c: Likewise.
11301         * gcc.c: Likewise.
11302         * gcc.h: Likewise.
11303         * mips-tfile.c: Likewise.
11304         * protoize.c: Likewise.
11305         * toplev.c: Likewise.
11306         * tree.h: Likewise.
11307
11308         * version.c (version_string): Constify a char*.
11309
11310         * version.h: New file.
11311
11312 2000-02-14  Nick Clifton  <nickc@cygnus.com>
11313
11314         * configure.in: Add mcore-elf and mcore-pe targets.
11315         * configure: Regenerate.
11316
11317         * NEWS: Add note that MCore port has been contributed.
11318
11319         * invoke.texi: Document command line switches for MCore port.
11320         * install.texi: Add MCore to list of supported targets.
11321
11322 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
11323
11324         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
11325         then we will need to import the frame handling functions.
11326         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
11327         to import the frames themselves.
11328
11329 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
11330                           Jason Eckhardt  <jle@cygnus.com>
11331
11332         * basic_block.h: Added prototype for reorder_basic_blocks.
11333         * toplev.c: Changes to add -freorder-blocks and graph dump after
11334         block reordering is done.
11335         * flow.c (reorder_block_def): New structure for use during block
11336         reordering.
11337         (REORDER_BLOCK_*): New macros to access members of above structure.
11338         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
11339         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
11340         functions for block reordering.
11341
11342 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11343
11344         * gcc.texi (Passes): Fix typo.
11345         * md.texi (Standard Names): Ditto.
11346         * tm.texi (Storage Layout): Ditto.
11347
11348 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
11349
11350         * cpplib.c (do_define): Only free the old definition if it
11351         actually had one.
11352
11353 2000-02-13   Neil Booth  <NeilB@earthling.net>
11354
11355         * cppfiles.c (read_and_prescan): When emitting deferred
11356         newlines, test speccase[] again instead of checking each
11357         possible whitespace character in turn.  When we encounter \r,
11358         look behind for \n first, then ahead.
11359
11360 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
11361
11362         * cse.c (cse_altered): New internal flag.
11363         (cse_insn): Set it if we changed an insn.
11364         (cse_main): Clear cse_altered before each basic block.
11365         Only garbage collect if cse_altered is true afterward.
11366
11367 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11368
11369         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
11370
11371 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
11372
11373         * combine.c (simplify_comparison): Fix typo.
11374
11375 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
11376
11377         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
11378         consistently.
11379
11380 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11381
11382         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
11383         previously inserted node instead of root node.  Caller changed.
11384
11385 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11386
11387         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
11388
11389 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11390
11391         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
11392         __dereg_frame_dtor): Add prototype argument.
11393
11394         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
11395
11396         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
11397
11398         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
11399
11400         * gthr-vxworks.h (__gthread_once): Likewise.
11401
11402         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
11403
11404 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
11405
11406         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
11407         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
11408         stack pointer in functions w/o saved registers, output LEAVE more often
11409         on TARGET_USE_LEAVE machines.
11410
11411 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
11412
11413         * config/arm/arm.c (arm_init_cumulative_args); New function:
11414         Initlaise the CUMULATIE_ARGS strcuture for a function
11415         defintion.
11416         (arm_function_arg): New function: Determine where to place a
11417         function's argument.  Also handles deciding the function's
11418         call cookie.
11419         (current_file_function_operand): New function: Return true if
11420         the symbol is a function which has already been compiled.
11421         (arm_is_long_call_p): New function: Return true if the
11422         indicated function should be called via a long call.
11423         (arm_valid_type_attribute_p): New function: Return true if the
11424         attribute is a valid, arm specific, attribute.
11425         (arm_comp_type_attribute): New function: Return true if the
11426         two types have compatable, arm specific, attributes.
11427
11428         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
11429         structure.
11430         (FUNCTION_ARG): Redefine to call arm_function_arg.
11431         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
11432         structure field.
11433         (INIT_CUMULATIVE_ARGS): Redefine to call
11434         arm_init_cumulative_args.
11435         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
11436         field.
11437         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
11438         field.
11439         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
11440         functions.
11441         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
11442         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
11443         (COMP_TYPE_ATTRIBUTES): Define.
11444
11445         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
11446         if a long call is needed.
11447         (call_value): Call arm_is_long_call_p to decide if a long call
11448         is needed.
11449         (call_symbol): Call arm_is_long_call_p to decide if a long call
11450         is needed.
11451
11452         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
11453
11454 2000-02-11  Denis Chertykov  <denisc@overta.ru>
11455
11456         * README.AVR: New file with information about the avr ports.
11457         * config/avr: New directory with avr port files.
11458
11459 2000-02-11  Andreas Jaeger  <aj@suse.de>
11460
11461         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
11462
11463 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
11464
11465         * cpphash.c: Fix formatting, update commentary.
11466         (dump_definition): Take three separate arguments instead of a
11467         MACRODEF structure argument.
11468         * cpphash.h: Update prototype of dump_definition.
11469         * cppinit.c (cpp_finish): Update call of dump_definition.
11470
11471         * cpplib.c (do_define): Always create new hash entry with
11472         T_MACRO type.  Remove redundant check for redefinition of
11473         poisoned identifier.  Update call of dump_definition.
11474         (do_undef): Don't call check_macro_name.  Rename sym_length to
11475         len.
11476         (do_error, do_warning): Don't use copy_rest_of_line or
11477         SKIP_WHITE_SPACE.
11478         (do_warning): Don't use pedwarn for the actual warning,
11479         only the notice about its not being in the standard.  (Fixes
11480         bug with #warning in system headers.)
11481         (do_ident): Stricter argument checking - accept only a single
11482         string after #ident.  Also, macro-expand the line.
11483         (do_xifdef): Use cpp_defined.  De-obfuscate.
11484
11485         (do_pragma): Split out specific pragma handling to separate
11486         functions.  Use get_directive_token.  Update commentary.  Do
11487         not pass on #pragma once or #pragma poison to the front end.
11488         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
11489         do_pragma_default): New.
11490
11491 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
11492
11493         * jump.c (jump_optimize_1): The first operand in a relational
11494         can be a CONST_INT.
11495         * optabs.c (emit_conditional_move): Handle relationals which
11496         have a known true/false result.
11497
11498 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11499
11500         * function.c (thread_prologue_and_epilogue_insns): Don't insert
11501         a RETURN insn into a block which already ends with a jump.
11502
11503 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11504
11505         * haifa-sched.c (BUF_LEN): Increase a lot.
11506
11507 2000-02-11  Nick Clifton  <nickc@cygnus.com>
11508
11509         * configure.in: Add tm_p_file specification for thumb targets.
11510         * configure: Regenerate.
11511
11512         * config/arm/thumb-protos.h: New file: Prototypes for exported
11513         functions defined in thumb.c.
11514
11515 2000-02-11  Robert Lipe  <robertl@sco.com>
11516
11517         * Makefile.in (bootstrap-lean): Remove additional files.
11518         (bootstrap2-lean): Likewise.
11519         (VOL_FILES): List of files for above.
11520
11521 2000-02-11  Nathan Sidwell  <nathan@acm.org>
11522
11523         * cpphash.c (special_symbol): Remove spurious argument to
11524         cpp_lookup.
11525
11526 2000-02-11  Joel Sherrill (joel@OARcorp.com>
11527
11528         * configure.in: (i*86-*-rtems*): Swapped elf and coff
11529         stanzas.
11530         * configure: Rebuilt.
11531
11532 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
11533
11534         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
11535
11536 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
11537
11538         * pa.c, pa.h: Remove trigraph sequences within comments.
11539
11540 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
11541
11542         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
11543
11544 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
11545
11546         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
11547
11548 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11549
11550         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
11551
11552 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11553
11554         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
11555         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
11556         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11557         (ASM_FILE_END): Use c4x_file_end.
11558         * config/c4x/c4x.c (c4x_global_label): New function.
11559         (c4x_external_ref, c4x_file_end): Likewise.
11560
11561         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
11562         (c4x_external_ref, c4x_end_file): Likewise.
11563
11564 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
11565
11566         * cppexp.c: Don't include cpphash.h.
11567         (parse_charconst, cpp_lex): Use cpp_defined.
11568         (cpp_lex): Use get_directive_token throughout.  Remove
11569         unnecessary cases from switch.  Move assertion-handling code
11570         down to OTHER case.
11571         (cpp_parse_expr): If we see '+' or '-', check the context to
11572         determine if they are unary or binary operators.  Streamline
11573         the jumps a bit.  Do not call skip_rest_of_line.
11574
11575         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
11576         static.  Export get_directive_token.  Update commentary.
11577         (cpp_defined): New function.
11578         (do_define): Remove reference to T_PCSTRING.  Call
11579         free_definition to release memory for old definition, when
11580         redefining a macro.
11581         (eval_if_expression): Set only_seen_white to 0 before calling
11582         cpp_parse_expr.  Call skip_rest_of_line after it returns.
11583         (cpp_read_check_assertion): Don't preserve a pointer into the
11584         token buffer across a call to cpp_get_token.
11585
11586         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
11587         * cppfiles.c (redundant_include_p): Use cpp_defined.
11588         * cpphash.c (free_definition): New function.
11589         (delete_macro): Use it.  Update commentary.
11590         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
11591         free_definition.
11592         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
11593         from enum node_type.  Prototype cpp_defined and get_directive_token.
11594         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
11595
11596         * fix-header.c (check_macro_names): Use cpp_defined.
11597         (read_scan_file): Set inhibit_warnings and inhibit_errors in
11598         the options structure.
11599
11600 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11601
11602         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
11603
11604 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
11605
11606         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
11607         rather than die->die_tag.
11608
11609 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11610
11611         * combine.c (make_extraction, force_to_mode): Avoid warning on
11612         mixed-signedness conditionals.
11613         (make_field_assignment, nonzero_bits): Likewise.
11614         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
11615         (store_split_bit_field, extract_split_bit_field): Likewise.
11616         (extract_fixed_bit_field, store_bit_field,
11617         * expr.c: Change alignment to be unsigned everywhere.
11618         (move_by_pieces, store_constructor_field, store_constructor):
11619         Alignment parm is unsigned.
11620         (emit_block_move, emit_group_load, emit_group_store): Likewise.
11621         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11622         (do_compare_rtx_and_jump): Likewise.
11623         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
11624         Compare align with GET_MODE_ALIGNMENT.
11625         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
11626         (get_inner_reference): Likewise.
11627         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
11628         (expand_assignment): Local vars for alignment now unsigned.
11629         (store_constructor, store_field, expand_expr, do_jump): Likewise.
11630         (do_compare_and_jump): Likewise.
11631         (store_field): Call new function expr_align.
11632         * expr.h (emit_block_move, emit_group_load, emit_group_store):
11633         Alignment arg now unsigned.
11634         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11635         (do_compare_rtx_and_jump, store_bit_field): Likewise.
11636         (extract_bit_field): Likewise.
11637         * fold-const.c (add_double): Add cast to eliminate signedness warning.
11638         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
11639         (get_best_mode): Alignment arg is unsigned.
11640         * rtl.h (move_by_pieces): Likewise.
11641         * store-layout.c (maximum_field_alignment, set_alignment):
11642         Now unsigned.
11643         (layout_decl): Alignment arg is now unsigned.
11644         Remove unneeded casts.
11645         (layout_record, layout_union, layout_type): Remove unneeded casts.
11646         Local alignment variables now unsigned.
11647         (get_best_mode): Alignment arg now unsigned.
11648         * tree.c (expr_align): New function.
11649         * tree.h (expr_align): Likewise.
11650         (maximum_field_alignment, set_alignment): Now unsigned.
11651         (get_inner_reference): Alignment argument is now pointer to unsigned.
11652         * varasm.c (assemble_variable): Add cast to eliminate warning.
11653
11654 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
11655
11656         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
11657         then store directly into op0.
11658
11659         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
11660         the CALL_INSN, and emit the note immediately after it.
11661
11662 2000-02-10  Nick Clifton  <nickc@cygnus.com>
11663
11664         * config/arm/thumb.md (epilogue): Include a (return) in the
11665         generated insn, and emit it using emit_jump_insn not
11666         emit_insn.
11667
11668 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
11669
11670         * function.c (assign_temp): Change zero-sized arrays to size 1.
11671         * integrate.c (expand_inline_function): Do not update
11672         stack_alignment_needed
11673         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
11674         add some sanity checking, remove optimization for function with
11675         zero frame size.
11676
11677 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11678
11679         * flow.c (mark_regs_live_at_end): Delete unused variables.
11680
11681         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
11682
11683         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
11684         in macro FRAME_GROWS_DOWNWARD.
11685
11686         * stmt.c (expand_end_bindings): Delete unused variable.
11687
11688         * unroll.c (iteration_info): Mark parameter `loop' with
11689         ATTRIBUTE_UNUSED.
11690
11691 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11692
11693         * fixinc/server.c (load_data): Return NULL if the marker line is
11694         not found.
11695         (run_shell): If load_data returns NULL, retry the command once, in
11696         a new shell.
11697
11698         * configure: Rebuilt.
11699
11700 2000-02-09  Bruce Korb  <bkorb@gnu.org>
11701
11702         * gcc/fixincludes:  ** DELETED **
11703         * gcc/fixcpp:  ** DELETED **
11704         * gcc/fixinc-nt.sed:  ** DELETED **
11705         * gcc/just-fixinc:  ** DELETED **
11706         * gcc/Makefile.in:  Removed out-dated commentary
11707         * gcc/configure.in: Removed fast-fixincludes disablement.
11708         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
11709
11710 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11711         * function.c (thread_prologue_and_epilogue_insns): Uncomment
11712         last change.
11713
11714 2000-02-09  Richard Henderson  <rth@cygnus.com>
11715
11716         * jump.c (delete_insn): Don't delete user labels at -O0.
11717
11718 2000-02-09  Robert Lipe  <robertl@sco.com>
11719
11720         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
11721         Don't link with HOST_LIBS.
11722
11723 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11724
11725         * configure.in: Correct --help text for --with-dwarf2.
11726         Put tm-dwarf2.h after other tm files, if it's requested.
11727         * configure: Regenerate.
11728         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
11729         defining it.
11730
11731 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11732
11733         * cpplib.h: Provide HASHNODE typedef and forward decl of
11734         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
11735         DEFINITION, struct hashnode, struct macrodef, struct
11736         definition, scan_decls prototype, default defn of
11737         INCLUDE_LEN_FUDGE moved elsewhere.
11738
11739         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
11740         definition, and struct hashnode moved here. Remove the unused
11741         'predefined' field from struct definition.  Replace the 'args'
11742         union with its sole member.  All users updated (cpphash.c).
11743         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
11744         multiple include guard.
11745
11746         * cpphash.c (hashf): Make static; use better algorithm; drop
11747         HASHSIZE parameter; return an unsigned int.
11748         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
11749         used. Calculate HASHSIZE modulus here.
11750         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
11751         here.
11752         (create_definition): Drop PREDEFINITION parameter.
11753         * cpplib.c (do_define): Don't calculate a hash value here.
11754         Don't pass (keyword == NULL) to create_definition.
11755
11756         * scan.h: Prototype scan_decls here.
11757         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
11758         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
11759         callers of cpp_lookup and cpp_install updated.
11760
11761         * cpphash.c (macarg): Hoist all the flag diddling out of the
11762         function...
11763         (macroexpand): ... and out of the loop that calls macarg.
11764         Skip over the initial paren before macro arguments with
11765         cpp_get_non_space_token; point may be some distance before
11766         that paren.  Abort if it's not there.
11767
11768         * cpplib.c (parse_clear_mark): Delete function.
11769         (parse_set_mark, parse_goto_mark): Make static.
11770         (ACTIVE_MARK_P): New macro.
11771         (skip_block_comment, skip_line_comment): Do not bump the line
11772         if ACTIVE_MARK_P is true.
11773         (cpp_pop_buffer): The buffer to be popped may not have an
11774         active mark.
11775         (cpp_get_token): When looking for the initial paren before
11776         macro arguments, only set a mark in a file buffer, Always
11777         return to that mark before proceeding to call macroexpand or
11778         return a NAME token.
11779
11780         * cpplib.h: Remove prototypes of parse_set_mark,
11781         parse_clear_mark, parse_goto_mark.
11782         (struct cpp_options): Rename 'put_out_comments' to
11783         'discard_comments' and invert its sense.
11784         * cppinit.c, cpphash.c, cpplib.c: All users of
11785         put_out_comments changed to use discard_comments, with
11786         opposite sense.
11787
11788 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11789
11790         * function.c (thread_prologue_and_epilogue_insns): Don't delete
11791         the edge from a block that both jumps and falls through to the
11792         fallthru block.
11793
11794 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
11795
11796         * config/arm/arm.md (movsi): In PIC mode, make sure that a
11797         constant source address is legitimate.
11798
11799 2000-02-09  Philip Blundell  <pb@futuretv.com>
11800
11801         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
11802         correctly.
11803
11804         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
11805         generating PIC.
11806         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
11807
11808 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11809
11810         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
11811         ends with a newline and a NUL.  Don't be so clever manipulating
11812         strings.
11813
11814 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
11815
11816         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
11817         not to BIGGEST_ALIGNMENT.
11818
11819 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
11820
11821         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
11822         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
11823         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
11824         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
11825         * frame.c (execute_cfa_insn): Handle
11826         DW_CFA_GNU_negative_offset_extended.
11827
11828 2000-02-08  Richard Henderson  <rth@cygnus.com>
11829
11830         * flow.c (tidy_fallthru_edges): Split out from ...
11831         (delete_unreachable_blocks): ... here.
11832         (find_basic_blocks): Use it.
11833
11834 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11835
11836         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
11837
11838 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
11839
11840         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
11841         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
11842         (fix-header.o): Don't depend on cpphash.h.
11843
11844         * scan.c (hashstr): New function.
11845         * scan.h: Prototype it.
11846         * fix-header.c: Don't include cpphash.h.  Use hashstr.
11847         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
11848         hashstr.  Report hash table statistics.  Add private
11849         definition of xrealloc.
11850
11851 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11852
11853         * i386.h (TARGET_SWITCHES): Fix typo in option name.
11854
11855 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
11856
11857         * function.c (thread_prologue_and_epilogue_insns): Don't replace
11858         jumps with returns unless they are jumps to the fallthru block.
11859
11860 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
11861
11862         * i386.md (addqi3_cc): Fix contraints.
11863
11864 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11865
11866         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
11867
11868 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
11869
11870         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
11871         carriage return after a macro name.
11872
11873 2000-02-07  Fred Fish  <fnf@be.com>
11874
11875         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
11876         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
11877
11878 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
11879
11880         * cppfiles.c (deps_output): Count spacers in deps_column.
11881
11882 2000-02-07  Neil Booth  <NeilB@earthling.net>
11883
11884         * cppinit.c (initialize_dependency_output): If there is no
11885         suffix, don't try to look for known suffixes.  Use strrchr.
11886         (cpp_start_read): Remove duplicate initialization.
11887
11888 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
11889
11890         * calls.c (compute_argument_block_size): New argument
11891         preferred_stack_boundary.
11892         (expand_call): update cfun->preferred_stack_boundary, update call of
11893         compute_argument_block_size
11894         (emit_library_call): Increate cfun->preferred_stack_boundary
11895         to PREFERRED_STACK_BOUNDARY
11896         (emit_library_call_value): Likewise.
11897         * explow.c (allocate_dynamic_stack_spave): Likewise.
11898         * function.c (prepare_function_start): Set
11899         cfun->preferred_stack_boundary
11900         * function.h (struct function): Add preferred_stack_boundary field.
11901         * integrate.c (expand_inline_function): Update
11902         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
11903         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
11904         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
11905
11906 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
11907
11908         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
11909         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
11910         cpp_pedwarn, cpp_pedwarn_with_line,
11911         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
11912         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
11913         v_cpp_error_with_line, v_cpp_warning_with_line,
11914         cpp_message_from_errno, cpp_perror_with_name): Delete.
11915
11916         * cpperror.c (cpp_print_containing_files): Take starting
11917         buffer as argument.
11918         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
11919         (v_cpp_message): Now called directly by all entry points.
11920         Remove -1 case.
11921         (cpp_pfatal_with_name, cpp_message): Delete.
11922         (cpp_notice_from_errno, cpp_ice): New functions.
11923         (cpp_notice): Is now for reporting error conditions, just
11924         without an associated file.
11925         (cpp_error, cpp_error_with_line): Don't do anything if
11926         opts->inhibit_errors is on.
11927         (cpp_pedwarn_with_file_and_line): Take column argument also.
11928
11929         * cpplib.h: Update prototypes of exported functions.
11930         (struct cpp_options): Add inhibit_errors.
11931
11932         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
11933         non-error messages.  Include intl.h.
11934
11935         * cppinit.c, cppmain.c: Likewise.  Also, use
11936         cpp_notice_from_errno instead of cpp_perror_with_name or
11937         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
11938
11939         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
11940         report internal errors.
11941
11942         * cpplib.c (do_define): Switch bcopy to memcpy.
11943         Give cpp_pedwarn_with_file_and_line a dummy column argument.
11944
11945         * cpplib.c (copy_rest_of_line): Revert previous change: don't
11946         bail out early if we hit a line comment.
11947
11948 2000-02-06  Richard Henderson  <rth@cygnus.com>
11949
11950         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
11951         * basic-block.h: Declare them.
11952         * emit-rtl.h (active_insn_p): New.
11953         (next_active_insn, prev_active_insn): Use it.
11954         * rtl.h: Declare it.
11955         * function.c (emit_return_into_block): New.
11956         (thread_prologue_and_epilogue_insns): Insert return insns instead
11957         of epilogues when possible.
11958         * jump.c (jump_optimize_1): Remove code to insert a return insn
11959         on the fallthru to the exit block.
11960
11961         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
11962         and for non-empty stack frames.
11963         * i386.md (return): Expand to return-pop as needed.
11964
11965 2000-02-06  Richard Henderson  <rth@cygnus.com>
11966
11967         * simplify-rtx.c (simplify_relational_operation): Canonicalize
11968         constant to op1 for testing.
11969
11970 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11971
11972         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
11973         (fixuns_truncqfqi2): Use it.
11974
11975 2000-02-06  Richard Henderson  <rth@cygnus.com>
11976
11977         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
11978         as a TYPE_LEA insn.
11979
11980         * i386.md (widening and peepholes): Mask the constant instead of
11981         using gen_lowpart.
11982
11983 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
11984
11985         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
11986         input pointer before possibly branching off to the backslash
11987         code.
11988         * cpphash.c (macroexpand): Correctly delete \r escapes when
11989         stringifying parameters.
11990         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
11991         if we can; bail out early if we hit a line comment.
11992         (handle_directive): Treat '# 123' in an .S file just like
11993         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
11994         Return 1 for '# not_a_directive'.
11995         (get_directive_token): Pop macro buffers here, so that
11996         cpp_get_token can't sneakily move past a newline.
11997         Add sanity checks.
11998         (cpp_get_token): goto randomchar if handle_directive returns 0.
11999
12000         * cppalloc.c: Update copyright.
12001         * cpplib.c: Merge all the static function prototypes into one
12002         block.
12003         * cpplib.h: Remove #if 0 block.
12004
12005         * cpperror.c: Remove #ifdef EMACS block.
12006         * cppmain.c: Likewise.
12007         * cpphash.c: Remove #if 0 blocks.
12008         * cppinit.c: Remove #if 0 blocks, and the -lint option.
12009         * cpplib.c: Remove #if 0 blocks and code referencing
12010         pcp_inside_if or for_lint.  Remove duplicate error message.
12011         Fix error messages for #else after #else or #elif.  Reformat.
12012         Remove archaic TODO list.
12013         * cpplib.h: Remove pcp_inside_if and for_lint flags.
12014
12015 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
12016
12017         * i386/osf1elf.h: Add missing backslash to multiline string.
12018
12019 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12020
12021         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
12022
12023 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12024
12025         * Makefile.in (c-common.o): Depend on $(EXPR_H).
12026
12027         * c-common.c: Include expr.h.
12028
12029         * c-pragma.c (mark_align_stack): Add prototype.
12030
12031         * caller-save.c (add_stored_regs): Likewise.
12032
12033         * combine.c (record_promoted_value): Likewise.
12034
12035         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
12036         Likewise.
12037
12038         * cppinit.c (new_pending_define): Likewise.
12039
12040         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
12041
12042         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
12043         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
12044         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
12045         class_scope_p): Likewise.
12046
12047         * dwarf2out.h (dwarf2out_set_demangle_name_func,
12048         dwarf2out_add_library_unit_info): Likewise.
12049
12050         * ggc.h (ggc_page_print_statistics): Likewise.
12051
12052         * haifa-sched.c (propagate_deps): Likewise.
12053
12054         * reg-stack.c (next_flags_user, record_label_references): Likewise.
12055
12056         * rtl.h (set_stack_check_libfunc): Likewise.
12057
12058         * toplev.h (set_fatal_function): Likewise.
12059
12060         * toplev.c (set_fatal_function): Delete prototype.
12061
12062         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
12063
12064 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
12065
12066         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
12067         (FUNC_END): Likewise.
12068
12069 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12070
12071         * caller-save.c: Include tm_p.h.
12072
12073 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12074
12075         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
12076
12077 2000-02-04  Neil Booth  <NeilB@earthling.net>
12078
12079         * cccp.c (main): Check 'dir' for a NULL pointer before passing
12080         it to strcmp.
12081
12082 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
12083
12084         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
12085         * genflags.c: Use the max_operand_1 logic from genemit.c to
12086         calculate how many arguments gen_insn prototypes have.  Remove
12087         NO_MD_PROTOTYPES ifdefs from the generated file.
12088         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
12089         file.  Cast gen_insn initializers to insn_gen_fn.
12090         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
12091         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
12092
12093 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12094
12095         * fixinc/Makefile.in (HDR): Add machname.h.
12096         (clean): Likewise.
12097
12098 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12099
12100         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
12101         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
12102         (c4x_cpu_version): Ditto.
12103         * config/c4x/c4x-protos.h: ... here.
12104
12105 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
12106
12107         * dwarf2out.c (add_abstract_origin_attribute): Don't call
12108         gen_abstract_function on our context if we're a nested function.
12109
12110 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12111
12112         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
12113         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
12114
12115 2000-02-04  Bruce Korb  <bkorb@gnu.org>
12116
12117         * fixinc/genfixes(machname.h):
12118         Move the functionality from gen-machine.h into this file.
12119         UNdef MN_NAME_PAT if there are no names to change.
12120         Also, be a little kinder when AutoGen is not present.
12121
12122         * fixinc/Makefile.in(machname.h):
12123         Change the generation rule to use genfixes.
12124
12125         * fixinc/fixfixes.c(machine_name):
12126         machine_name_fix's functionality now dependent upon whether
12127         MN_NAME_PAT is defined.
12128
12129         * fixinc/fixtests.c(machine_name):
12130         ditto.
12131
12132         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
12133         of MN_NAME_PAT.
12134
12135         * fixinc/fixlib.h(mn_get_regexps):
12136         ditto
12137
12138         * fixinc/gen-machine.h: DELETED
12139
12140 2000-02-04  Jan Hubicka  <jh@suse.cz>
12141             Richard Henderson  <rth@cygnus.com>
12142
12143         * i386.c (SAVE_REGS_FIRST): Remove.
12144         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
12145         (ix86_compute_frame_size): Likewise.
12146         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
12147         (ix86_emit_restore_regs): Remove.
12148         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
12149         when a frame pointer is in use.
12150         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
12151         instead of pop to restore a register when profitable; emit leave
12152         when profitable.
12153         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
12154         as a TYPE_LEA insn.
12155         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
12156         * i386.md (prologue_allocate_stack): Remove.
12157         (epilogue_deallocate_stack): Remove.
12158         (pro_epilogue_adjust_stack): New.
12159
12160 2000-02-04  Richard Henderson  <rth@cygnus.com>
12161
12162         * function.c (diddle_return_value): Rework to use a callback function.
12163         Use current_function_return_rtx if it's been set up.
12164         (do_clobber_return_reg, clobber_return_register): New.
12165         (do_use_return_reg, use_return_register): New.
12166         (expand_function_end): Use them.
12167         * stmt.c (expand_null_return): Likewise.
12168         * function.h: Declare them.
12169         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
12170         (mark_reg): Change arguments as appropriate for callback.
12171         * integrate.c (expand_inline_function): Revert 19 Jan change.
12172
12173 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12174
12175         * tm.texi (Values in Registers): Fix typo: "fo" "for".
12176         (Misc): Say the scheduler, not the Haifa scheduler.
12177
12178 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
12179
12180         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
12181         when in_mem is set.  Update all callers.
12182
12183 2000-02-04  Richard Henderson  <rth@cygnus.com>
12184
12185         * i386/openbsd.h (INT_ASM_OP): Define.
12186
12187 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12188
12189         * tm.texi: Fix various typos.
12190
12191 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
12192
12193         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
12194         (MD_STARTFILE_PREFIX_1): New macro.
12195
12196 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
12197
12198         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
12199         destination when needed.
12200         (strmovsi, strsetsi): New expander.
12201         (strmovsi_1, strsetsi_1): New pattern.
12202         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
12203         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
12204         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
12205         * invoke.texi (align-stringops, inline-all-stringops): Document.
12206
12207 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
12208
12209         * i386/netbsd.h (INT_ASM_OP): Define.
12210
12211 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
12212
12213         * cpplib.h (cpp_reader): Add new flag, no_directives.
12214         * cpphash.c (macarg): Set it.
12215         * cpplib.c (handle_directive): If no_directives is on and we
12216         find a directive, issue an error and discard the line.
12217
12218 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
12219
12220         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
12221         FP constants.  Add ! TARGET_FPU check for FP constants.
12222
12223 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
12224
12225         * flow.c (find_basic_blocks): Don't kill label_value_list
12226         here.
12227         (cleanup_cfg): Kill it here.
12228
12229 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12230
12231         * expr.c (store_field): Ensure ALIGN is no stricter than the
12232         alignment of EXP.
12233
12234 2000-02-02  Richard Henderson  <rth@cygnus.com>
12235
12236         * jump.c (delete_insn): Partially revert 19 Jan change;
12237         don't convert unused code labels to notes at -O0.
12238
12239 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12240
12241         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
12242         split_all_insns to recreate REG_LABEL notes for flow2 pass.
12243
12244 2000-02-01  Richard Henderson  <rth@cygnus.com>
12245
12246         * i386.c (general_no_elim_operand): New.
12247         (nonmemory_no_elim_operand): New.
12248         (ix86_expand_move): Copy eliminable operands before a push.
12249         * i386-protos.h: Declare new functions.
12250         * i386.h (CAN_ELIMINATE): Simplify.
12251         (PREDICATE_CODES): Update.
12252         * i386.md (push insns): Don't allow eliminable register operands.
12253
12254 2000-02-01  Richard Henderson  <rth@cygnus.com>
12255
12256         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
12257         replace BLKmode with DECL_RTL's mode.
12258
12259 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
12260
12261         * frame.c (find_fde): Convert for loop to do-while so compiler
12262         sees it's always executed at least once.
12263         * libgcc2.c (BBINBUFSIZE): Kill.
12264         (__bb_init_prg): Use fgets.
12265         (__bb_exit_trace_func): Don't paste strings.
12266         * unroll.c (unroll_loop): Initialize unroll_type, not
12267         unroll_number, and tweak logic to match.
12268
12269         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
12270         all failure paths.
12271         (ix86_flags_dependant): Likewise.  Disentangle control flow.
12272         (ix86_sched_reorder): Break guts out to
12273         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
12274         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
12275         any possible use.
12276
12277         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
12278         use string concatenation.  Don't save and restore esi.
12279
12280         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
12281         (machname.h): Remove script to separate file.  Use two-step
12282         sequence so target is not created if script fails.
12283         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
12284         identifiers are defined.
12285         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
12286         an empty string, machine_name doesn't need to do anything at
12287         all.
12288         (is_cxx_header): Add more cases to regexp.
12289         * fixinc/fixlib.h: Update prototype.
12290         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
12291         mn_get_regexps.
12292         * fixinc/fixincl.c: Define NO_BOGOSITY.
12293
12294         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
12295         (hp_sysfile): Add missing comma.
12296         (math_exception): Put the wrapper ifdefs at the beginning and
12297         the end of the file.
12298         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
12299
12300 2000-02-01  Richard Henderson  <rth@cygnus.com>
12301
12302         * sparc.c (fp_zero_operand): Turn into a normal predicate.
12303         Use CONST0_RTX.  Update all callers.
12304         * sparc.h, sparc-protos.h: Update accordingly.
12305         * sparc.md (fp mov insns): Use fp_zero_operand directly
12306         where applicable.
12307
12308 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12309
12310         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
12311         example.
12312
12313 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12314
12315         * Makefile.in (specs.ready): New target.
12316         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
12317
12318 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12319
12320         * fixinc.irix: Use unique filenames for writing into /tmp,
12321         * fixinc.ptx: Likewise.
12322         * fixinc.sco: Likewise.
12323         * fixinc.svr4: Likewise.
12324         * fixinc.winnt: Likewise.
12325
12326 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12327
12328         * tsystem.h: New file.
12329
12330         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
12331         s-crtS): Depend on tsystem.h.
12332
12333         * crtstuff.c: Include tsystem.h.
12334         * frame.c: Likewise.
12335         * libgcc2.c: Likewise.
12336
12337 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
12338
12339         * builtins.c (expand_builtin_memset): Expand for variable sized
12340         lengths too.
12341
12342 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
12343
12344         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
12345         on ABI.
12346
12347 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12348
12349         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
12350
12351         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
12352
12353 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
12354
12355         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
12356         case 3->2 combining (combining with splitting) in which 2 is CC0
12357         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
12358         checked at the begining of the function with the aid of calling
12359         function 'can_combine_p'.
12360
12361 2000-01-31  Dave Brolley  <brolley@redhat.com>
12362
12363         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
12364
12365 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
12366
12367         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
12368         new label.
12369
12370 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12371
12372         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
12373
12374         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
12375         PROTO -> PARAMS.
12376
12377 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
12378
12379         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
12380         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
12381         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
12382         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
12383         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
12384         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
12385         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
12386         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
12387         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
12388         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
12389
12390         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
12391         Add %(cpp_cpu) to CPP_SPEC.
12392
12393         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
12394         Add %(cc1_cpu) to CC1_SPEC.
12395
12396 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
12397
12398         * c-decl.c (c_decode_option): Accept optional numeric argument to
12399         -Wformat and set warn_format.
12400         * c-common.c: Don't emit warning about non-constant printf format
12401         string unless warn_format > 1.
12402
12403 2000-01-30  Richard Henderson  <rth@cygnus.com>
12404
12405         * alpha.md (return_internal): Allow after reload only.
12406
12407 2000-01-30  Richard Henderson  <rth@cygnus.com>
12408
12409         * i386.c (ix86_compute_frame_size): Omit padding1 if the
12410         local frame size is zero.
12411
12412 2000-01-30  Richard Henderson  <rth@cygnus.com>
12413
12414         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
12415         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
12416         * alpha.md (return): Turn into an expander.
12417         (return_internal): Don't use $26.
12418         (epilogue): Emit the return insn.
12419
12420 2000-01-30  Richard Henderson  <rth@cygnus.com>
12421
12422         * alpha.md (negtf2, abstf2): Fix word order thinko.
12423         (extendsftf2): New.
12424         (trunctfsf2): Avoid intermediate rounding errors.
12425
12426 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
12427
12428         * cppfiles.c (find_position): Drop 'colp' argument, return the
12429         new line base.
12430         (read_and_prescan): Adjust to match.  Don't ever manipulate
12431         line or line_base except via find_position.
12432
12433 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
12434
12435         * c-parse.in: Apply Ulrich's changes from c-parse.y.
12436         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
12437         Regenerate.
12438
12439 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
12440
12441         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
12442         just print "<command line>".  If 'filename' is null or an
12443         empty string, print "<stdin>" for the filename.
12444         * cpplib.c (do_define): Don't print the 'location of the
12445         previous definition' message if we're still parsing the
12446         command line.
12447         (cpp_pedwarn_with_file_and_line): Always call
12448         cpp_file_line_for_message.
12449
12450 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
12451
12452         * flow.c (mark_regs_live_at_end): Fix typo.
12453
12454 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
12455
12456         * c-common.c: Adjust variable names, comments, help strings to c99.
12457         * c-lex.c: Likewise.
12458         * c-parse.y: Likewise.
12459         * c-tree.h: Likewise.
12460         * cccp.c: Likewise.
12461         * cpplib.h: Likewise.
12462         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
12463         * cppinit.c: Likewise.
12464
12465 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12466
12467         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
12468         * c4x.c: Define the optab rtx values.
12469         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
12470         (c4x_emit_libcall): Use new optab rtx values.
12471         (c4x_emit_libcall3): Likewise.
12472         (c4x_emit_libcall_mulhi): Likewise.
12473         * c4x-protos.h: Add prototypes for optab rtx values and change
12474         prototypes for above c4x_emit_libcall functions.
12475
12476 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12477
12478         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
12479         syntax is used.
12480         (c4x_function_prologue): Use regnames intead of float_reg_names when
12481         TI syntax is used.
12482         (c4x_function_epilogue): Likewise.
12483         (c4x_print_operand): Likewise.
12484         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
12485         * c4x.md (set_high): Disable for TARGET_TI.
12486
12487 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12488
12489         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
12490         of framepointer + constant to ADDR_REGS class.
12491         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
12492         * c4x.c (std_or_reg_operand): New function.
12493         * c4x-protos.h (std_or_reg_operand): Prototype it.
12494
12495 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12496
12497         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
12498                 object names as libgcc2.c.
12499         * libgcc.S: Use newly defined names.
12500
12501 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
12502         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
12503         function.
12504         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
12505         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
12506         (FLOW_LOOP_LAST_BLOCK): Likewise.
12507
12508 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12509
12510         * basic-block.h (struct loop): New fields 'first' and 'last'.
12511         * flow.c (flow_loops_find): Compute loop->first and loop->last.
12512         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
12513         and loop->last to check for NOTE_INSN_LOOP_END.
12514
12515 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
12516
12517         * predict.c (estimate_probability): Use the new FIRST and LAST fields
12518         of the loop descriptor rather than HEADER and LATCH. Also added
12519         missing break statements as well making some coding style modifications
12520         as suggested by Michael Hayes.
12521
12522 2000-01-28  Richard Henderson  <rth@cygnus.com>
12523
12524         * flow.c (find_basic_blocks): Remove do_cleanup argument.
12525         Break out that code ...
12526         (cleanup_cfg): ... here.
12527         (commit_one_edge_insertion): Detect a return instruction being
12528         emitted to an edge.  Emit a barrier following; clear fallthru.
12529         (commit_edge_insertions): Verify CFG consistency.
12530         * function.c (expand_function_start): Kill unused variable.
12531         (expand_function_end): Likewise.
12532         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
12533         to insert the epilogue.
12534
12535         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
12536         (delete_null_pointer_checks): Likewise.
12537         * output.h: Likewise.
12538         * reg-stack.c (reg_to_stack): Likewise.
12539         * toplev.c (rest_of_compilation): Likewise.  Run
12540         thread_prologue_and_epilogue_insns after rebuilding the CFG.
12541
12542 2000-01-28  Richard Henderson  <rth@cygnus.com>
12543
12544         * Makefile.in (flow.o): Revert 24 Jan change.
12545         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
12546         FUNCTION_VALUE result to DECL_RESULT's mode.
12547
12548         * haifa-sched.c (schedule_insns): Don't recompute reg info
12549         after reload.
12550
12551 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
12552
12553         * configure.in: Make --enable-cpplib the default.
12554         * configure: Regenerate.
12555         * gcc.dg/990119-1.c: No longer expected to fail.
12556
12557 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
12558
12559         * jump.c (jump_optimize_1): Delete an optimization that is also done
12560         by merge_blocks in flow.
12561
12562 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12563
12564         * diagnostic.c (build_message_string, output_printf,
12565         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
12566         (build_location_prefix): Fix non-literal format string.
12567
12568 2000-01-27  Richard Henderson  <rth@cygnus.com>
12569
12570         * alpha.md (trunctfsf2): New.
12571
12572 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
12573
12574         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
12575
12576 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
12577
12578         * cppinit.c (cpp_handle_option): Recognize C++ comments under
12579         -std=gnu89.
12580         * cpplib.c (skip_block_comment, skip_line_comment): Split code
12581         out of...
12582         (skip_comment) ... here.  Permit C++ comments in system
12583         headers always.  Warn about C++ comments in user code under
12584         -std=gnu89 -pedantic.
12585         (copy_comment): Use skip_comment.
12586         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
12587         return EOF.
12588         (consider_directive_while_skipping, do_else, do_endif): Call
12589         validate_else unconditionally.
12590         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
12591         text after the conditional in a system header.
12592         * cpplib.h (struct cpp_buffer): Add flag
12593         warned_cplusplus_comments.
12594
12595 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
12596
12597         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
12598         Use unshare_all_rtl_1.
12599         (unshare_all_rtl_again): New function.
12600         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
12601
12602         * function.c (purge_addressof_1): Use unshare_all_rtl_again
12603         rather than resetting the 'used' flags ourself.
12604
12605         * toplev.c (rest_of_compilation): Add current_function_decl
12606         to the unshare_all_rtl call.
12607         * tree.h: Prototype unshare_all_rtl.
12608         * rtl.h: Prototype unshare_all_rtl_again here.
12609
12610 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
12611
12612         * genoutput.c (output_prologue): Include ggc.h in generated
12613         files.
12614         * Makefile.in (insn-output.o): Depends on ggc.h.
12615
12616 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
12617             Hans-Peter Nilsson  <hp@bitrange.com>
12618
12619         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
12620         Remove redundant include of xm-ns32k.h.
12621         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
12622         Remove redundant include of xm-ns32k.h.
12623         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
12624         Remove redundant include of xm-ns32k.h.
12625         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
12626
12627         * ns32k/ns32k.h: Update comment on multiply-add instructions.
12628         (TARGET_SWITCHES): Add documentation strings.
12629         (DWARF_FRAME_REGNUM): Override default definition.
12630         (REG_CLASS_CONTENTS): Add comments.
12631         (SUBSET_P): Format to reduce line length.
12632         (SMALL_REGISTER_CLASSES): Make a run time option.
12633         (GO_IF_NONINDEXED_ADDRESS): Reformat.
12634         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
12635         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
12636         (regclass_map): fix typo in comment.
12637         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
12638         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
12639         (trace, reg_or_mem_operand): Delete, unused function.
12640         (calc_address_cost): Small offsets are cheaper than large ones.
12641         (expand_block_move): Generate more efficient code when bytes is a
12642         known at compile time.
12643         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
12644         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
12645         instead of reg_or_mem_operand.
12646
12647         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
12648         not general_operand.  Similarly use "=rm" or stricter, not "=g".
12649         For input operands, use stricter constraints than "g" if not
12650         general_operand.  Similarly use stricter predicate than
12651         "general_operand" when stricter constraints than "g" are present,
12652         except for matching constraints.
12653         (movstrsi): Use "memory_operand" for operands 0 and 1.
12654         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
12655         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
12656         not reg_or_mem_operand.
12657         (udivmoddisi4): Ditto.
12658         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
12659         Use nonimmediate_operand for operand 3, not register_operand.
12660         (udivmoddiqi4_internal): Use register_operand for operand 1, not
12661         reg_or_mem_operand.
12662
12663 2000-01-27  Fred Fish  <fnf@be.com>
12664
12665         * gthr-posix.h: Fix typo; compatibily -> compatibility.
12666         * gthr-single.h: Likewise.
12667         * gthr-solaris.h: Likewise.
12668         * gthr-vxworks.h: Likewise.
12669         * gthr-win32.h: Likewise.
12670         * gthr.h: Likewise.
12671
12672 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
12673
12674         * cppinit.c: Add " (cpplib)" to end of string printed by
12675         -v / --version.
12676
12677 2000-01-27  Richard Henderson  <rth@cygnus.com>
12678
12679         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
12680         testing for a signed comparison.
12681         (alpha_emit_floatuns): New.
12682         * alpha-protos.h: Declare it.
12683         * alpha.md (floatunsdisf2, floatunsdidf2): New.
12684         (extendsfdf2): Tidy.
12685
12686 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
12687
12688         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
12689         no -g option specifying debugging format, default to -gstabs+.
12690
12691 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
12692
12693         * calls.c (special_function_p): New argument fork_or_exec.
12694         (expand_call): When profile_arc_flag is set and the function
12695         is in the fork_or_exec group, call __bb_fork_func first.
12696         * libgcc2.c, _bb module (__bb_fork_func): New function.
12697         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
12698         output file.
12699         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
12700         * tree.h (special_function_p): Update prototype.
12701
12702 2000-01-26  Richard Henderson  <rth@cygnus.com>
12703
12704         * alpha.c (alpha_split_tfmode_pair): New.
12705         * alpha-protos.h: Declare it.
12706         * alpha.md (abstf2, negtf2): New.
12707         (movtf insn): Add input G constraint.
12708         (movtf splitter): Use alpha_split_tfmode_pair.
12709
12710 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12711
12712         * i386/cygwin.h: PROTO -> PARAMS.
12713
12714 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
12715
12716         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
12717         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
12718         using _Qp_cmp/_Q_cmp and testing the return value.
12719         (print_operand): Call reverse_condition_maybe_unordered if
12720         we are handling CCFPmode or CCFPEmode.
12721         Handle ORDERED, UN* and LTGT comparisons.
12722         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
12723         if not TARGET_HARD_QUAD.
12724         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
12725         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
12726         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
12727         Adjust gen_b* calls so that they reflect return comparison of
12728         sparc_emit_float_lib_cmp.
12729
12730 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12731
12732         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
12733         incoming operands array is large enough for one more operand.
12734         (alpha_emit_xfloating_arith): Likewise.
12735
12736 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12737
12738         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
12739         file with one line and no trailing newline.
12740         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
12741         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
12742         checking if the match is on the line.
12743         * fixinc/gnu-regex.c: Provide regerror not __regerror.
12744
12745 2000-01-25  Richard Henderson  <rth@cygnus.com>
12746
12747         * sparc.c (output_cbranch): Fix accidental squashing of the
12748         fp branch pre-delay nop.
12749
12750 2000-01-25  Richard Henderson  <rth@cygnus.com>
12751
12752         * tree.def (UNNE_EXPR): Remove.
12753         * c-typeck.c (build_binary_op): Don't handle it.
12754         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
12755
12756         * rtl.def (UNNE): Remove.
12757         (LTGT): Add.
12758         * jump.c (reverse_condition): Update accordingly.
12759         (swap_condition): Likewise.
12760         (comparison_dominates_p): Handle unordered comparisons.
12761         (reverse_condition_maybe_unordered): New.
12762         * rtl.h (reverse_condition_maybe_unordered): Declare.
12763
12764         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
12765         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
12766         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
12767         * sparc.md (bltgt): New.
12768
12769 2000-01-25  Nick Clifton  <nickc@redhat.com>
12770
12771         * emit-rtl.c (emit_insn): Only check machine class insns for
12772         improper emission of a RETURN.
12773
12774 2000-01-25  Richard Henderson  <rth@cygnus.com>
12775
12776         * Makefile.in (flow.o): Depend on $(EXPR_H).
12777         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
12778         duplicate the structure of diddle_return_value for keeping regs live.
12779
12780 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12781
12782         * loop.c (current_loop_info): Delete.
12783         (consec_sets_invariant_p): Add loop argument, update callers.
12784         (get_condition_for_loop): Likewise.
12785         (count_nonfixed_reads, update_giv_derive): Likewise.
12786         (simplify_giv_expr, general_induction_var): Likewise.
12787         (consec_sets_giv, recombine_givs): Likewise.
12788         (move_movables): Delete loop_start and loop_end arguments,
12789         add loop argument, and update callers.
12790         (find_mem_givs, check_final_value): Likewise.
12791         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
12792         (loop_invariant_p): Rename from invariant_p, add loop argument, and
12793         update callers.
12794         (basic_induction_var): Add loop argument, delete loop_level argument,
12795         and update callers.
12796         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
12797         add loop argument, and update callers.
12798         (find_splittable_regs, find_splittable_givs): Likewise.
12799         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
12800         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
12801         (biv_total_increment): Delete loop_start and loop_end arguments;
12802         update callers.
12803         (precondition_loop_p): Delete loop_start and loop_info arguments;
12804         update callers.
12805         * loop.h (get_condition_for_loop): Add loop argument.
12806         (biv_total_increment): Delete loop_start and loop_end arguments.
12807         (precondition_loop_p): Delete loop_start and loop_info arguments;
12808         add loop argument.
12809         (final_biv_value): Delete loop_start and loop_end arguments;
12810         add loop argument.
12811         (final_giv_value, back_branch_in_range_p): Likewise.
12812
12813 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
12814
12815         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
12816
12817 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
12818
12819         * Makefile.in (c-gperf.h) : Change the "See" pointer to
12820         point to the new "generated_files" doc.
12821
12822 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
12823
12824         * config/fp-bit.c (_unord_f2): Fix typo.
12825
12826 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12827
12828         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
12829         c-typeck.c, objc/objc-act.c: Remove all references to obstack
12830         functions obsoleted by GC, such as push_obstacks_nochange,
12831         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
12832         and code which existed only to decide whether or not to call
12833         them.  Remove now-unused NESTED argument from start_function;
12834         all callers changed.  Do not change behavior based on ggc_p.
12835         The use of the ixp_obstack in c-iterate.c and the util_obstack
12836         in objc/objc-act.c remain; these are not obsoleted by garbage
12837         collection.
12838         * c-tree.h: Update prototype for start_function.
12839
12840         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
12841
12842 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
12843
12844         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
12845         mips16.
12846
12847 2000-01-25  Richard Henderson  <rth@cygnus.com>
12848
12849         * sparc-protos.h (select_cc_mode): Declare.
12850         * sparc.c (select_cc_mode): New.  Handle unordered compares.
12851         (output_cbranch): Always reverse via code change.  Handle
12852         unordered compares.  Factor tests and string updates.
12853         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
12854         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
12855         * sparc.md (bunordered, bordered): New.
12856         (bungt, bunlt, buneq, bunge, bunle): New.
12857
12858 2000-01-25  Richard Henderson  <rth@cygnus.com>
12859
12860         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
12861         * ggc-common.c (ggc_add_rtx_varray_root): New.
12862         (ggc_mark_rtx_varray): New.
12863         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
12864         functions down below ggc_mark_foo.
12865         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
12866
12867 2000-01-25  Richard Henderson  <rth@cygnus.com>
12868
12869         * alpha.c (secondary_reload_class): Don't allocate a secondary
12870         for integral mode memories into FLOAT_REGS.  Rearrange the more
12871         complicated memory expression inward.
12872
12873 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12874
12875         * inclhack.def: Fixes to play nicer with FreeBSD, and
12876         corrections to comments.
12877         (cxx_unready): Add select expression.
12878         (irix_sockaddr): Add bypass expression.
12879         (machine_ansi_h_va_list): New fix.
12880         (stdio_va_list): No need to edit _BSD_VA_LIST_.
12881         Split out addition of "#include <stdarg.h>" to...
12882         (stdio_stdarg_h): ... here.
12883         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
12884         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
12885         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
12886         size_t.
12887         (ultrix_ifdef): Tighten up select expression.
12888
12889         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
12890         re_ct and max_mach to avoid use of shell.  Make printed names
12891         match names in inclhack.def.  Use static copyright date.
12892         Don't count c_test and test expressions as requiring regex_t
12893         slots.  Add some commentary.
12894         * inclhack.tpl: Do not include the 'This script contains N
12895         fixup scripts' line if PROGRAM is defined.  Use static
12896         copyright date.
12897
12898 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
12899
12900         * dwarf2out.c: include "varray.h", not dyn-string.h.
12901         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
12902         (addr_const_to_string, addr_to_string): Lose.
12903         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
12904         (struct dw_val_struct): val_addr is now an rtx.
12905         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
12906         (used_rtx_varray): New varray.
12907         (dwarf2out_init): Initialize it.
12908         (save_rtx): New fn.
12909         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
12910         addr_to_string.
12911         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
12912         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
12913         * Makefile.in (dwarf2out.o): Update dependencies.
12914
12915 2000-01-24  Richard Henderson  <rth@cygnus.com>
12916
12917         * i386.c (i386_dwarf_output_addr_const): New.
12918         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
12919
12920         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
12921         if defined.
12922         * dwarfout.c (output_mem_loc_descriptor): Likewise.
12923         * i386.c (i386_simplify_dwarf_addr): New.
12924         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
12925
12926 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
12927
12928         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
12929         TYPE_STUB_DECL is NULL.
12930
12931 2000-01-24  Richard Henderson  <rth@cygnus.com>
12932
12933         * builtins.c (expand_tree_builtin): Move ...
12934         * c-common.c (expand_tree_builtin): ... here.
12935
12936 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12937
12938         * loop.h (LOOP_INFO): New accessor macro.
12939         * basic-block.h (struct loop): Rename field `info' to `aux'.
12940         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
12941         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
12942         * unroll.c (loop_iterations, unroll_loop): Likewise.
12943
12944 2000-01-24  Christopher Faylor <cgf@cygnus.com>
12945
12946         * config/i386/t-cygwin: Accomodate new winsup directory layout
12947         when searching for include files.
12948
12949 2000-01-24  Richard Henderson  <rth@cygnus.com>
12950
12951         * rtl.def: Add unordered fp comparisions.
12952         * tree.def: Likewise.
12953         * tree.h: Add ISO C 9x unordered fp comparision builtins.
12954
12955         * builtins.c (expand_tree_builtin): New function.
12956         * c-typeck.c (build_function_call): Use it.
12957         (build_binary_op): Support unordered compares.
12958         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
12959
12960         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
12961         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
12962         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
12963         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
12964         * jump.c (reverse_condition): Don't abort for UNLE etc, but
12965         return UNKNOWN.
12966         (swap_condition): Handle unordered compares.
12967         (thread_jumps): Check can_reverse before reversing.
12968         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
12969         reversed for FP.
12970
12971         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
12972         setcc is present before acking for cmp_optab.  Update all callers.
12973         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
12974         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
12975         * expr.c (expand_expr): Likewise.  Support unordered compares.
12976         (do_jump, do_store_flag): Likewise.
12977         * expr.h (enum libfunc_index): Add unordered compares.
12978
12979         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
12980         (DPBIT_FUNCS): Add _unord_df.
12981         * config/fp-bit.c (_unord_f2): New.
12982         * fp-test.c (main): Try unordered compare builtins.
12983
12984         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
12985         * alpha.c (alpha_comparison_operator): Check mode properly.
12986         (alpha_swapped_comparison_operator): Likewise.
12987         (signed_comparison_operator): Likewise.
12988         (alpha_fp_comparison_operator): New.
12989         (alpha_emit_conditional_branch): Handle unordered compares.
12990         * alpha.h (PREDICATE_CODES): Update.
12991         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
12992         (bunordered, bordered): New.
12993
12994 2000-01-24  Richard Henderson  <rth@cygnus.com>
12995
12996         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
12997         * alpha.md (movtf): New expander, insn, and splitter.
12998
12999 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
13000
13001         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
13002         dead registers.
13003
13004 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13005
13006         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
13007         (FIXED_REGISTERS, CALL_USED_REGISTERS,
13008          REG_ALLOC_ORDER): Add frame pointer
13009         (FRAME_POINTER_REGNUM): Set to 20
13010         (HARD_FRAME_POINTER_REGNUM): New macro.
13011         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
13012         to HARD_FRAME_POINTER.
13013         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
13014         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
13015         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
13016         (HI_REGISTER_NAMES): Add "frame".
13017         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
13018         (debug_reg): Handle FRAME_POINTER_REGNUM.
13019         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
13020         GENERAL_REGS and INDEX_REGS.
13021         * i386.c (SAVED_REGS_FIRST): new macro.
13022         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
13023         (ix86_decompose_address, memory_address_length): Likewise.
13024         (regclass_map): Add frame pointer.
13025         (call_insn_operand): Handle frame_pointer_rtx.
13026         (reg_no_sp_operand): Likewise.
13027         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
13028         (print_operand, legitimize_pic_address): Fix formating.
13029         (ix86_compute_frame_size): Make static, update prototype, new
13030         parameters padding1, padding2, use ix86_nsaved_regs, use
13031         stack_alignment_needed.
13032         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
13033         to HARD_FRAME_POINTER_REGNUM conversions.
13034         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
13035         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
13036         (print_reg): Abort on FRAME_POINTER_REGNUM
13037
13038 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
13039
13040         * i386.h (PREDICATE_CODES): Add aligned_operand.
13041         * i386.c (aligned_operand): New function.
13042         (ix86_aligned_p): Kill.
13043         * i386.md (movhi_1): Emit mov for aligned operands.
13044         (promoting peep2s): Use aligned_operand.
13045
13046 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
13047
13048         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
13049         expression to allow underscores in macro names.
13050         (fix_char_macro_defines): Increment scanning pointer.
13051
13052 2000-01-23  Richard Henderson  <rth@cygnus.com>
13053
13054         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
13055         * alpha/osf5.h: New file.
13056         * configure.in (alpha-*-osf5): Add it to tm_file.
13057
13058         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
13059
13060         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
13061         (alpha_emit_xfloating_cvt, function_arg): Declare.
13062         * alpha.c (alpha_emit_conditional_branch): Call
13063         alpha_emit_xfloating_compare for TFmode compares.
13064         (alpha_lookup_xfloating_lib_func): New.
13065         (alpha_compute_xfloating_mode_arg): New.
13066         (alpha_emit_xfloating_libcall): New.
13067         (alpha_emit_xfloating_arith): New.
13068         (alpha_emit_xfloating_compare): New.
13069         (alpha_emit_xfloating_cvt): New.
13070         (print_operand): Add default abort case.
13071         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
13072         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
13073         (BIGGEST_ALIGNMENT): Increase to 128 bits.
13074         (RETURN_IN_MEMORY): True for TF/TCmode.
13075         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
13076         (FUNCTION_ARG): Move to function_arg.
13077         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
13078         (ASM_OUTPUT_LONG_DOUBLE): New.
13079         (ASM_OUTPUT_DOUBLE): Always output bits.
13080         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
13081         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
13082         (extenddftf2, trunctfdf2): New.
13083
13084 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13085
13086         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
13087         * config/sparc/sol2.h: ... here.
13088
13089 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13090
13091         * basic-block.h (struct loops): New field `levels'.
13092         * flow.c (flow_loops_level_compute): Traverse all outer loops.
13093         (flow_loop_level_compute): Initialise level to 1.
13094         (flow_loops_find): Set loops->levels.
13095         (flow_loops_dump): Print loops->levels.
13096
13097 2000-01-23  Richard Henderson  <rth@cygnus.com>
13098
13099         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
13100         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
13101
13102 2000-01-23  Richard Henderson  <rth@cygnus.com>
13103
13104         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
13105         * i386.h (DBX_REGISTER_NUMBER): Use them.
13106         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
13107         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
13108         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
13109         * i386/sequent.h: Kill incorrect comment.
13110
13111 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
13112
13113         * ggc-page.c (struct page_entry): Make `context_depth' an
13114         `unsigned short'.
13115         (struct globals): Likewise.
13116
13117 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
13118
13119         * loop.c (check_dbra_loop): When checking a loop for
13120         reversability, check the source of any stores to ensure
13121         they don't depend on an initial value.
13122
13123 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13124
13125         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
13126
13127 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
13128
13129         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
13130         'pz_scan' into scope of entire function.  Only affects
13131         compiles with -DDEBUG.
13132
13133 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
13134
13135         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
13136         section naming to that prior to 2000-01-07 patch.
13137         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
13138         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
13139         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
13140         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
13141         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
13142
13143 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
13144
13145         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
13146         constant.
13147
13148 2000-01-21  Jim Wilson  <wilson@cygnus.com>
13149
13150         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
13151         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
13152
13153 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
13154
13155         * cpphash.c (change_newlines): Delete function.
13156         (struct argdata): Delete 'newlines' and 'use_count' fields.
13157         (macroexpand): Remove code referencing those fields.
13158
13159 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13160
13161         * loop.c (loops_info): New variable.
13162         (loop_optimize): Allocate loops->array and free it on exit.
13163         Allocate memory for loops_info and assign to each loop,
13164         replacing alloca.
13165         (find_and_verify_loops): Do not allocate loops->array.
13166
13167 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
13168
13169         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
13170
13171 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
13172
13173         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
13174         pseudos if expanded after first flow.
13175         (movdi_pic_label_ref): Likewise.
13176
13177 2000-01-20  Richard Henderson  <rth@cygnus.com>
13178
13179         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
13180
13181 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
13182
13183         * Makefile.in (fixinc.sh): Depend on specs.
13184         * fixinc/Makefile.in: Add rule to create machname.h.
13185         (fixlib.o): Depend on machname.h.
13186         * fixinc/fixtests.c (machine_name): New test.
13187         * fixinc/fixfixes.c (machine_name): New fix.
13188         * fixinc/fixlib.c (mn_get_regexps): New helper function for
13189         the machine_name test and fix.
13190         * fixinc/fixlib.h: Prototype it.
13191         * fixinc/inclhack.def (machine_name): Use the C test and fix.
13192         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
13193
13194         * gcc.c (do_spec_1) [case P]: Take care not to create
13195         identifiers with three leading or trailing underscores.
13196
13197         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
13198         (fixincl): Don't specify libraries twice on link line.
13199         (gnu-regex.o): Remove special rule.
13200         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
13201         defined by config.h.  Do not define _REGEX_RE_COMP.
13202         (regcomp): Allocate and initialize a fastmap.
13203         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
13204
13205 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
13206
13207         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
13208
13209 2000-01-19  Richard Henderson  <rth@cygnus.com>
13210
13211         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
13212         arguments with BB.  Update all callers.  Tidy line wrapping.
13213
13214 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
13215
13216         * emit-rtl.c (try_split): Return last_insn if we split the
13217         last_insn.
13218
13219 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
13220
13221         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
13222         (ix86_initial_elimination_offset): Declare.
13223         * i386.c (ix86_nsaved_regs): Break out from ...
13224         (ix86_can_use_return_insn_p): ... here.
13225         (ix86_emit_save_regs): Break out from ...
13226         (ix86_expand_prologue): ... here.
13227         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
13228         out from ...
13229         (ix86_expand_epilogue): ... here.
13230         (ix86_compute_frame_size): Make static, add prototype.
13231         (ix86_initial_elimination_offset): Break out from ...
13232         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
13233
13234 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13235
13236         * recog.h (OUT_FCN): Delete.
13237
13238         * vax.md: Call `get_insn_template' instead of OUT_FCN.
13239
13240 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13241
13242         * cppalloc.c: PROTO -> PARAMS.
13243         * cpperror.c: Likewise.
13244         * cppfiles.c: Likewise.
13245         * cpplib.c: Likewise.
13246         * cpplib.h: Likewise.
13247
13248         * config/arm/arm-protos.h: PROTO -> PARAMS.
13249         * config/arm/arm.c: Likewise.
13250         * config/c4x/c4x.c: Likewise.
13251         * config/fr30/fr30-protos.h: Likewise.
13252         * config/nextstep.c: Likewise.
13253         * config/pa/pa.c: Likewise.
13254         * config/pj/pj.c: Likewise.
13255         * config/rs6000/rs6000.c: Likewise.
13256         * config/v850/v850-protos.h: Likewise.
13257         * config/v850/v850.c: Likewise.
13258
13259 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13260
13261         * i370-protos.h: New file.
13262
13263         * i370.c: Include tm_p.h.  Fix compile time warnings.
13264
13265         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
13266         warnings.
13267
13268         * i370.md: Likewise.
13269
13270 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13271
13272         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
13273         (target_isinf, target_isnan, eisnan): Mark parameter with
13274         ATTRIBUTE_UNUSED.
13275         (eiisinf): Wrap in INFINITY.
13276         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
13277         (ibmtoe): Remove unused variable `rndsav'.
13278
13279 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13280
13281         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
13282         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
13283
13284 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
13285
13286         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
13287         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
13288         (fix_char_macro_defines, fix_char_macro_uses): New functions.
13289
13290         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
13291         Recognize Emacs mode markers also.
13292         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
13293         C++ comments in C++ headers.  Call is_cxx_header only if
13294         necessary.
13295
13296         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
13297         bypass for ncurses.
13298         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
13299         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
13300         ... these, which use the new C fixes.
13301         (math_exception): Escape literal '+' in bypass expression.
13302
13303         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
13304         Regenerate.
13305
13306 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
13307
13308         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
13309         inside the MEM.
13310
13311 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13312
13313         * loop.c (loop_optimize): Allocate loop_info structure for each loop
13314         prior to calling scan_loop.
13315
13316 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13317
13318         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
13319         (split_branches, calc_live_regs): Likewise.
13320
13321 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13322
13323         * sh.md (fpu_single, fp_mode): New attributes.
13324
13325 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13326
13327         * loop.c (current_loop_info): Renamed from loop_info_data
13328         and changed to a pointer.
13329         (loop_optimize): Allocate loop_info structure for each loop
13330         and initialise to zero.
13331         (scan_loop): Set current_loop_info.
13332
13333         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
13334         on iteration_var.
13335
13336 2000-01-19  Richard Henderson  <rth@cygnus.com>
13337
13338         * stupid.c: Die die die.
13339         * Makefile.in (OBJS): Remove stupid.o.
13340         (stupid.o): Likewise.
13341
13342         * except.c (emit_eh_context): Don't emit USEs for stupid.
13343         * explow.c (probe_stack_range): Likewise.
13344         * flags.h (obey_regdecls): Remove.
13345         * flow.c (find_basic_blocks): Don't run try_merge_blocks
13346         when not optimizing.
13347         (life_analysis): Limit data collection when not optimizing.
13348         (mark_regs_live_at_end): Always mark the return value registers.
13349         (mark_used_regs): Remove dummy RETURN case.
13350         (print_rtl_with_bb): Don't consult obey_regdecls.
13351         * function.c (use_variable, use_variable_after): Remove.
13352         (assign_parms): Consult optimize not obey_regdecls.
13353         (expand_function_start): Don't emit USEs for stupid.
13354         (expand_function_end): Likewise.
13355         * global.c (build_insn_chain): Export.
13356         * integrate.c (expand_inline_function): Kill return-value USE
13357         handling code.
13358         * jump.c (jump_optimize_1): Do simple jump optimizations and
13359         dead code elimination.
13360         (calculate_can_reach_end): Remove check_deleted argument.
13361         (delete_insn): Patch out insns even when not optimizing.
13362         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
13363         * rtl.h (use_variable, use_variable_after): Remove declarations.
13364         (build_insn_chain): Declare.
13365         * stmt.c (expand_value_return): Don't emit USEs for stupid.
13366         (expand_end_bindings): Likewise.
13367         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
13368         * toplev.c (obey_regdecls): Remove.
13369         (rest_of_compilation): Don't set it.  Kill stupid in favour of
13370         flow1, local-alloc, and reload.
13371         (main): Don't set obey_regdecls.
13372
13373         * config/nextstep.c (handle_pragma): Likewise.
13374
13375         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
13376
13377         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
13378
13379 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13380
13381         * alpha-protos.h: PROTO -> PARAMS.
13382         * alpha.c: Likewise.
13383         * elf.h: Likewise.
13384         * h8300.c: Likewise.
13385         * i386-protos.h: Likewise.
13386         * i386.c: Likewise.
13387         * m32r-protos.h: Likewise.
13388         * m32r.c: Likewise.
13389         * mips.c: Likewise.
13390         * mips.md: Likewise.
13391         * gmon-sol2.c: Likewise.
13392         * sparc.c: Likewise.
13393
13394 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13395
13396         * ns32k-protos.h: New file.
13397
13398         * ns32k.c: Fix compile time warnings.
13399
13400         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
13401         warnings.
13402
13403         * ns32k.md: Likewise.
13404
13405 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13406
13407         * vax-protos.h: New file.
13408
13409         * vax.c: Fix compile time warnings.
13410
13411         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
13412         warnings.
13413
13414         * vax.md: Likewise.
13415
13416         * vaxv.md: Likewise.
13417
13418 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13419
13420         * romp-protos.h: New file.
13421
13422         * romp.c: Fix compile time warnings.
13423
13424         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
13425         warnings.
13426
13427         * romp.md: Likewise.
13428
13429 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13430
13431         * we32k-protos.h: New file.
13432
13433         * we32k.c: Fix compile time warnings.
13434
13435         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
13436         warnings.
13437
13438 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13439
13440         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
13441
13442         * except.c (eh_regs): Likewise.
13443
13444         * final.c (output_operand): Likewise.
13445
13446         * fold-const.c (target_isinf, target_isnan): Likewise.
13447
13448 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
13449
13450         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
13451         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
13452
13453         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
13454         when optimize_size.
13455         (clrstrsi): Rewrite.
13456         (strsethi, strsetqi): New expanders.
13457         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
13458         (cmpstrsi): Emit compare insn before cmpstrsi_1
13459         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
13460         (strlensi_1): Likewise.
13461         (cmpstrsi_1): Likewise; do not output compare.
13462         (strlen expander): Do not unroll when optimizing for size.
13463         (*subsi3_carry): Rename to subsi3_carry
13464         (addqi3_cc): New pattern.
13465         * i386.h (processor_costs): Add move_ratio field.
13466         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
13467         * i386.c (*_cost): Set move_ratio.
13468         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
13469         (x86_expand_strlensi_1): Rewrite the main loop.
13470
13471 2000-01-17  Richard Henderson  <rth@cygnus.com>
13472
13473         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
13474         * cse.c (find_comparison_args, fold_rtx): Likewise.
13475         * integrate.c (subst_constants): Likewise.
13476         * loop.c (get_condition): Likewise.
13477
13478         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
13479
13480         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
13481
13482 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13483
13484         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
13485         (RESTORE_WARN_FLAGS): Unpack it.
13486         Change semantic type of extension to ttype.
13487         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
13488         * c-parse.y, c-parse.c, objc/objc-parse.y,
13489         objc/objc-parse.c: Regenerate.
13490
13491 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
13492
13493         * fixinc/fixlib.c: Add copyright notice.
13494         (compile_re): New function.
13495         * fixinc/fixlib.h: Prototype compile_re.
13496
13497         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
13498         Use compile_re to compile regular expressions.
13499
13500         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
13501         where the pattern matched.
13502
13503         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
13504         use 'replace'.
13505         (ultrix_ansi_compat): Likewise.
13506         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
13507         add egrep test.
13508         (interactv_add2, interactv_add3): Delete.
13509         (x11_sprintf): Don't use filename glob.
13510         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
13511         Regenerate.
13512
13513 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13514
13515         * print-rtl.c: PROTO -> PARAMS.
13516         * real.c: Likewise.
13517         * reg-stack.c: Likewise.
13518         * resource.c: Likewise.
13519         * sdbout.h: Likewise.
13520         * simplify-rtx.c: Likewise.
13521         * stor-layout.c: Likewise.
13522         * stupid.c: Likewise.
13523         * xcoffout.c: Likewise.
13524         * xcoffout.h: Likewise.
13525
13526 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13527
13528         * toplev.c: PROTO -> PARAMS.
13529         * toplev.h: Likewise.
13530         * tree.c: Likewise.
13531         * tree.h: Likewise.
13532         * unroll.c: Likewise.
13533         * varasm.c: Likewise.
13534         * varray.c: Likewise.
13535         * varray.h: Likewise.
13536
13537 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13538
13539         * reload.c: PROTO -> PARAMS.
13540         * reload.h: Likewise.
13541         * reload1.c: Likewise.
13542         * reorg.c: Likewise.
13543         * resource.h: Likewise.
13544         * rtl.c: Likewise.
13545         * rtl.h: Likewise.
13546         * rtlanal.c: Likewise.
13547         * sbitmap.h: Likewise.
13548         * sdbout.c: Likewise.
13549         * stack.h: Likewise.
13550         * stmt.c: Likewise.
13551         * system.h: Likewise.
13552
13553 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13554
13555         * machmode.h: PROTO -> PARAMS.
13556         * mbchar.h: Likewise.
13557         * mips-tdump.c: Likewise.
13558         * mips-tfile.c: Likewise.
13559         * optabs.c: Likewise.
13560         * output.h: Likewise.
13561         * prefix.c: Likewise.
13562         * profile.c: Likewise.
13563         * protoize.c: Likewise.
13564         * real.h: Likewise.
13565         * recog.c: Likewise.
13566         * recog.h: Likewise.
13567         * regclass.c: Likewise.
13568         * regmove.c: Likewise.
13569         * regs.h: Likewise.
13570
13571 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13572
13573         * ggc-common.c: PROTO -> PARAMS.
13574         * ggc-page.c: Likewise.
13575         * ggc-simple.c: Likewise.
13576         * ggc.h: Likewise.
13577         * global.c: Likewise.
13578         * graph.c: Likewise.
13579         * gthr-win32.h: Likewise.
13580         * haifa-sched.c: Likewise.
13581         * halfpic.h: Likewise.
13582         * integrate.c: Likewise.
13583         * integrate.h: Likewise.
13584         * jump.c: Likewise.
13585         * lcm.c: Likewise.
13586         * local-alloc.c: Likewise.
13587         * loop.c: Likewise.
13588         * loop.h: Likewise.
13589
13590 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13591
13592         * genattr.c: PROTO -> PARAMS.
13593         * genattrtab.c: Likewise.
13594         * gencheck.c: Likewise.
13595         * gencodes.c: Likewise.
13596         * genconfig.c: Likewise.
13597         * genemit.c: Likewise.
13598         * genextract.c: Likewise.
13599         * genflags.c: Likewise.
13600         * gengenrtl.c: Likewise.
13601         * genopinit.c: Likewise.
13602         * genoutput.c: Likewise.
13603         * genpeep.c: Likewise.
13604         * genrecog.c: Likewise.
13605
13606 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
13607
13608         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
13609
13610 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13611
13612         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
13613         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
13614         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
13615         * configure, config.in: Rebuilt.
13616
13617 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
13618
13619         * config/i386/i386.md: Add peephole to merge successive stack
13620         adjusts.
13621
13622 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
13623
13624         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
13625         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
13626         when walking backwards to find all the parameter loads when
13627         the basic block ends in a call.
13628
13629 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13630
13631         * loop.c (this_loop_info): Delete.
13632         (uid_loop): Add in place of uid_loop_num.  All uses updated.
13633         (loop_number_exit_count): Delete and replace with entry in loop
13634         structure.  All uses updated.
13635         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13636         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13637         (loop_outer_loop): Likewise.
13638         (loop_invalid, loop_number_exit_labels): Likewise.
13639         (loop_used_count_register): Delete and replace with entry in
13640         loop_info structure.
13641         (find_and_verify_loops): Add loops argument.
13642         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
13643         loop_end, etc. arguments with loop structure pointer.  All callers
13644         changed.
13645         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
13646         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
13647         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
13648         (insert_bct): Likewise.
13649         (basic_induction_var): New argument level.
13650         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
13651         vtop, and cont.  Add used_count_register.
13652         (uid_loop): Delete declaration.
13653         (loop_number_exit_count): Likewise.
13654         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13655         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13656         (loop_outer_loop, loop_used_count_register): Likewise.
13657         (loop_invalid, loop_number_exit_labels): Likewise.
13658         (unroll_loop): Replace loop_start and loop_end arguments
13659         with loop structure pointer.
13660         (loop_precondition_p, loop_iterations): Likewise.
13661         Include basic-block.h.
13662         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
13663         with loop structure pointer.
13664         (loop_precondition_p, loop_iterations): Likewise.
13665         * basic-block.h (struct loop): New entries vtop, cont,
13666         cont_dominator, start, end, top, scan_start, exit_labels,
13667         exit_count.
13668         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
13669
13670 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13671
13672         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
13673
13674 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
13675
13676         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
13677
13678 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13679
13680         * pdp11-protos.h: New file.
13681
13682         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
13683         time warnings.
13684
13685         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
13686         warnings.
13687
13688         * pdp11.md: Likewise.
13689
13690         * 2bsd.h: Likewise.
13691
13692 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13693
13694         * mn10300-protos.h: New file.
13695
13696         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
13697         time warnings.
13698
13699         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
13700         warnings.
13701
13702         * mn10300.md: Likewise.
13703
13704 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13705
13706         * mn10200-protos.h: New file.
13707
13708         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
13709         time warnings.
13710
13711         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
13712         warnings.
13713
13714         * mn10200.md: Likewise.
13715
13716 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13717
13718         * h8300-protos.h: New file.
13719
13720         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
13721         time warnings.
13722
13723         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
13724         warnings.
13725
13726         * h8300.md: Likewise.
13727
13728 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13729
13730         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
13731         (asm_emit_uninitialised): Likewise.
13732
13733 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
13734
13735         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
13736         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
13737
13738 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13739
13740         * config/mips/mips.c (override_options): Don't turn on extra
13741         alignment for mips16.
13742
13743 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13744
13745         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
13746         eabi, and make sure queued POSTINCREMENT rtl is emitted at
13747         the right point.
13748
13749 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13750
13751         * builtins.c (PAD_VARARGS_DOWN): Define.
13752         (std_expand_builtin_va_arg): Use the above macro.
13753         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
13754         * tm.texi (Register Arguments): Document the above macro.
13755
13756 2000-01-14  Nick Clifton  <nickc@cygnus.com>
13757
13758         * emit-rtl.c (emit_insn): If checking is enabled, make sure
13759         that this function has not been used to emit a jump
13760         instruction.
13761
13762         * jump.c (return_jump_1): Cope with being passed a null rtx.
13763
13764 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13765
13766         * eh-common.h: PROTO -> PARAMS.
13767         * emit-rtl.c: Likewise.
13768         * errors.c: Likewise.
13769         * errors.h: Likewise.
13770         * except.c: Likewise.
13771         * except.h: Likewise.
13772         * explow.c: Likewise.
13773         * expmed.c: Likewise.
13774         * expr.c: Likewise.
13775         * expr.h: Likewise.
13776         * final.c: Likewise.
13777         * fix-header.c: Likewise.
13778         * flow.c: Likewise.
13779         * fold-const.c: Likewise.
13780         * function.c: Likewise.
13781         * function.h: Likewise.
13782         * gcc.c: Likewise.
13783         * gcov-io.h: Likewise.
13784         * gcov.c: Likewise.
13785         * gcse.c: Likewise.
13786
13787 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13788
13789         * sh-protos.h: New file.
13790
13791         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
13792         Add static prototypes.  Fix compile time warnings.
13793
13794         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
13795         * sh.md: Likewise.
13796         * elf.h: Likewise.
13797
13798 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13799
13800         * arc-protos.h: New file.
13801
13802         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
13803         time warnings.
13804
13805         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
13806         warnings.
13807
13808         * arc.md: Likewise.
13809
13810 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13811
13812         * dsp16xx-protos.h: New file.
13813
13814         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
13815         time warnings.
13816
13817         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
13818         warnings.
13819
13820         * dsp16xx.md: Likewise.
13821
13822 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13823
13824         * convex-protos.h: New file.
13825
13826         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
13827         time warnings.
13828
13829         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
13830         warnings.
13831
13832 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13833
13834         * elxsi-protos.h: New file.
13835
13836         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
13837         time warnings.
13838
13839         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
13840         warnings.
13841
13842         * elxsi.md: Likewise.
13843
13844 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13845
13846         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
13847         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
13848         match the comment for MIPS16.
13849
13850 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
13851
13852         * flow.c (split_edge): Do not call set_block_for_insn if we
13853         do not have a basic_block_for_insn structure.
13854
13855         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
13856         and destination functions are 32bit aligned within the trampoline.
13857         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
13858         (TRAMPOLINE_ALIGNMENT): Define.
13859
13860         * cse.c (cse_insn): When changing (set (pc) (reg)) to
13861         (set (pc) (label_ref)), verify the change creates a valid insn.
13862
13863         * fr30.c (call_operand): Tighten and rework to match rules for
13864         call RTL expressions.
13865         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
13866         * fr30.md (call patterns): Improve constraints.
13867
13868 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
13869
13870         * fr30.c (fr30_expand_epilogue): Revert last change.
13871         Use emit_jump_insn for the return insn.
13872
13873 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
13874                           Stan Cox  <scox@cygnus.com>
13875
13876         * predict.c: New file. Preliminary infrastructure work for static
13877         branch prediction and basic block reordering.
13878         * basic-block.h: Add prototype for estimate_probability.
13879         * Makefile.in: Add rules for predict.o.
13880
13881 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
13882
13883         * fixincludes (va_list): Use __not_va_list__ for the dummy.
13884         * fixinc/*: Likewise.
13885
13886 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13887
13888         * cccp.c: PROTO -> PARAMS.
13889         * cexp.y: Likewise.
13890         * collect2.c: Likewise.
13891         * combine.c: Likewise.
13892         * convert.h: Likewise.
13893         * cse.c: Likewise.
13894         * dbxout.c: Likewise.
13895         * dbxout.h: Likewise.
13896         * diagnostic.c: Likewise.
13897         * doprint.c: Likewise.
13898         * dwarf2out.c: Likewise.
13899         * dwarf2out.h: Likewise.
13900         * dwarfout.c: Likewise.
13901         * dwarfout.h: Likewise.
13902         * dyn-string.h: Likewise.
13903
13904 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13905
13906         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
13907         macro conditionals guarding use.
13908
13909         * dwarf2out.c: Include "tm_p.h".
13910
13911         * function.c (locate_and_pad_parm): Mark parameter with
13912         ATTRIBUTE_UNUSED.
13913         (expand_function_end): Likewise for variable `context'.
13914
13915         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
13916
13917 2000-01-13  Nick Clifton  <nickc@cygnus.com>
13918
13919         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
13920         register to prevent compile time warnings.
13921
13922 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
13923
13924         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
13925         to avoid -Wtraditional warning.
13926
13927 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13928
13929         * 1750a-protos.h: New file.
13930
13931         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
13932         time warnings.
13933
13934         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
13935         warnings.
13936
13937         * 1750a.md: Likewise.
13938
13939 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13940
13941         * a29k-protos.h: New file.
13942
13943         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
13944         time warnings.
13945
13946         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
13947         warnings.
13948
13949 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13950
13951         * clipper-protos.h: New file.
13952
13953         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
13954         time warnings.
13955
13956         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
13957         warnings.
13958
13959 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13960
13961         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
13962
13963 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
13964
13965         * configure.in (--enable-new-gxx-abi): New option.
13966         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
13967         * Makefile.in (GXX_ABI_FLAG): New variable.
13968         * configure: Regenerate.
13969
13970 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13971
13972         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
13973         * tm.texi (FORCE_STRUCT_BLK): Document.
13974         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
13975
13976 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
13977
13978         * config/ns32k/ns32k.md: Revert Jan 9 change.
13979
13980         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
13981         to a mode-test, if the predicate is address_operand.
13982
13983 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
13984
13985         * combine.c (if_then_else_cond): Be careful about what kinds
13986         of RTL expressions are passed to operand_subword.
13987
13988         * flow.c (split_edge): If we have to insert a new jump, make
13989         sure to associate it with a basic block.
13990
13991         * flow.c (commit_one_edge_insertion): A block with one successor
13992         can end in a JUMP_INSN that is not a simplejump.
13993
13994 2000-01-12  Robert Lipe  <robertl@sco.com>
13995
13996         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
13997         (BUILD_VA_LIST_TYPE): Define.
13998         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
13999         with crtstuff.c.
14000
14001 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
14002
14003         * cccp.c (do_pragma): Add cast to (char *).
14004
14005 2000-01-12  Richard Henderson  <rth@cygnus.com>
14006             Fred Fish  <fnf@be.com>
14007             Jason Merrill  <jason@cygnus.com>
14008
14009         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
14010         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
14011         * i386/beos-elf.h, i386/beos-pe.h: New files.
14012
14013         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
14014         * cross-make (SYSTEM_HEADER_DIR): Define using
14015         CROSS_SYSTEM_HEADER_DIR.
14016
14017         * gcc.c (LIBRARY_PATH_ENV): Provide default.
14018         (process_command): Use it.
14019         (main): Likewise.  Kill trailing = from env vars.
14020         (build_search_list): Put it back.
14021         * collect2.c (main): Use LIBRARY_PATH_ENV.
14022
14023         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
14024         * toplev.c: Use NEED_DECLARATION_ENVIRON.
14025
14026         * tm.texi (Frame Layout): Document SMALL_STACK.
14027         * c-common.c (c_common_nodes_and_builtins): Check it.
14028
14029         * system.h: Undef alloca after including glibc's <stdlib.h>,
14030         if USE_C_ALLOCA is defined.
14031
14032         * gcc.c (set_input): New fn.
14033         (main): After all input files are compiled, reset the input file
14034         info to the first.
14035
14036         * aclocal.m4 (rindex, index): If already defined, don't attempt
14037         to redefine.
14038
14039         * ginclude/varargs.h: (__va_list__): Define ifndef.
14040         * ginclude/stdarg.h: Likewise.
14041
14042         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
14043         instead of unsigned char.
14044
14045         * hash.h (true, false, boolean): Undef before enum.
14046
14047         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
14048         proper type of "HOST_WIDE_INT *", rather than their natural type of
14049         "unsigned HOST_WIDE_INT *".
14050
14051 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14052
14053         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
14054
14055         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
14056
14057         * regclass.c (choose_hard_reg_mode): Likewise.
14058
14059         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
14060
14061         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
14062
14063 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14064
14065         * c-common.c: PROTO -> PARAMS.
14066         * c-common.h: Likewise.
14067         * c-decl.c: Likewise.
14068         * c-iterate.c: Likewise.
14069         * c-lang.c: Likewise.
14070         * c-lex.c: Likewise.
14071         * c-lex.h: Likewise.
14072         * c-parse.in: Likewise.
14073         * c-pragma.c: Likewise.
14074         * c-pragma.h: Likewise.
14075         * c-tree.h: Likewise.
14076         * c-typeck.c: Likewise.
14077         * objc/objc-act.c: Likewise.
14078         * objc/objc-act.h: Likewise.
14079
14080 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14081
14082         * m88k-protos.h: New file.
14083
14084         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
14085         time warnings.
14086
14087         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
14088
14089         * m88k.md: Likewise.
14090
14091         * tekXD88.h: Likewise.
14092
14093 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14094
14095         * m68k-protos.h: New file.
14096
14097         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
14098         time warnings.
14099
14100         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
14101
14102         * mot3300.h: Likewise.
14103
14104 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
14105
14106         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
14107         extract_bitlst.
14108         (extract_bitlist): Declare bitlen.
14109
14110 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
14111
14112         * cccp.c: Accept and ignore -lang-fortran.
14113
14114         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
14115         qualifiers don't match at any level of pointerness.
14116
14117 2000-01-12  Robert Lipe  <robertl@sco.com>
14118
14119         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
14120
14121 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
14122
14123         * reload1.c (reload_reg_unavailable): New static variable.
14124         (reload_reg_free_p): Test it.
14125         (reload_reg_free_for_value_p): Test it instead of
14126         reload_reg_used.
14127         (choose_reload_regs_init): Compute it.
14128
14129 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
14130
14131         * reorg.c (fill_slots_from_thread): Check modified_in_p
14132         before replacing.
14133
14134 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
14135
14136         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
14137         these nodes even if INTERNALS is not set.
14138
14139 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
14140
14141         * gcse.c (delete_null_pointer_checks_1): Cope when
14142         get_condition cannot determine the condition.
14143
14144 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
14145
14146         * toplev.h (set_message_length): Declare.
14147
14148         * diagnostic.c (obstack_chunk_alloc): Define macro.
14149         (obstack_chunk_free): Likewise.
14150         (struct output_buffer): New data structure.
14151         (vmessage): Remove.
14152         (output_maximum_width): New variable.
14153         (doing_line_wrapping, set_message_length, init_output_buffer,
14154         get_output_prefix, output_space_left, emit_output_prefix,
14155         output_newline, output_append, output_puts, dump_output,
14156         vbuild_message_string, build_message_string, build_location_prefix,
14157         voutput_notice, output_printf, line_wrapper_printf,
14158         vline_wrapper_message_with_location):  New functions. Implement
14159         automatic line wrapping.
14160         (v_message_with_decl): Make it handle automatic line wrapping.
14161         (v_error_with_file_and_line): Likewise.
14162         (v_warning_with_file_and_line): Likewise.
14163         (announce_function): Likewise.
14164         (default_print_error_function): Likewise.
14165
14166 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
14167
14168         * cpplib.h (struct cpp_options): Change lang_asm to char.
14169         Add lang_fortran.
14170         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
14171         done in cpp_handle_option now.
14172         (initialize_builtins): Take out special case code used only by
14173         __STDC_VERSION__.
14174         (cpp_handle_option): Turn off trigraphs and trigraph warnings
14175         if -traditional.  Recognize -lang-fortran and set
14176         lang_fortran, also turn off cplusplus_comments.
14177         (print_help): Document -lang-fortran.
14178         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
14179         lang_asm. Ignore all directives other than `# 123 "file"' if
14180         CPP_PREPROCESSED.
14181         (cpp_get_token): If -traditional, don't recognize directives
14182         unless the # is in column 1.
14183         (parse_string): If lang_fortran or lang_asm, silently
14184         terminate strings ('' or "") at end of line.
14185         Remove unnecessary braces.
14186
14187 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14188             Richard Henderson  <rth@cygnus.com>
14189
14190         * resource.c (mark_referenced_resources): Mark a set strict_low_part
14191         as used.
14192         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
14193         strict_low_part when possible.
14194
14195 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14196
14197         * alias.c: PROTO -> PARAMS.
14198         * basic-block.h: Likewise.
14199         * bitmap.c: Likewise.
14200         * bitmap.h: Likewise.
14201         * builtins.c: Likewise.
14202         * c-aux-info.c: Likewise.
14203         * caller-save.c: Likewise.
14204         * calls.c: Likewise.
14205
14206 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14207
14208         * Makefile.in (toplev.o): Depend on regs.h.
14209
14210         * output.h (tdesc_section): Prototype.
14211
14212         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
14213
14214         * sdbout.c: Include "tm_p.h".
14215
14216         * toplev.c: Include "regs.h".
14217
14218 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
14219
14220         * unroll.c (unroll_loop): Add EH support.
14221
14222 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14223
14224         * pa-protos.h: New file.
14225
14226         * pa.c: Include recog.h and tm_p.h.
14227         (compute_zdepwi_operands, compute_movstrsi_length,
14228         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
14229         find_addr_reg, import_milli): Add static prototypes.
14230         (pa_cpu_string, pa_arch_string): Constify a char*.
14231         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
14232         (read_only_operand): Add argument `mode'.
14233         (singlemove_string, output_move_double, output_fp_move_double,
14234         output_block_move, output_and, output_ior, output_ascii,
14235         remove_useless_addtr_insns, milli_names, output_mul_insn,
14236         output_div_insn, output_mod_insn, output_arg_descriptor,
14237         output_cbranch, output_bb, output_bvb, output_dbra, ,
14238         output_millicode_call, output_call, hppa_encode_label,
14239         output_parallel_movb, output_parallel_addb): Constify a char*.
14240         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
14241         (output_parallel_addb): Remove extra arg to `constrain_operands'
14242
14243         * pa.h:  Move all prototypes to pa-protos.h.
14244         (pa_cpu_string, pa_arch_string): Constify a char*.
14245         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
14246
14247         * pa.md: Call `function_label_operand' with mode argument.
14248         Likewise for `read_only_operand'.
14249         Fix nesting of parens in call to `symbolic_operand'.
14250
14251 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14252
14253         * i860-protos.h: New file.
14254
14255         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
14256         time warnings.
14257
14258         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
14259
14260         * i860.md: Likewise.
14261
14262 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
14263
14264         * i386.md (movstrsi expander): Rewrite.
14265         (movstrsi_1 insn): Deleted.
14266         (strmovhi, strmovqi expander): New expanders.
14267         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
14268         * i386.c (x86_single_stringop): New global variable.
14269         * i386.h (x86_single_stringop): Declare.
14270         (TARGET_SINGLE_STRINGOP): New macro.
14271
14272 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
14273
14274         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
14275         integer vararg POSTINCREMENT before the destination of the jump
14276         for the hard fp case.
14277         (function_arg_pass_by_reference): Pass a copy of CUM to
14278         FUNCTION_ARG.
14279
14280         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
14281         for CONSTANT_ADDRESS_P above while loop for subreg.
14282
14283 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
14284
14285         * flow.c (propagate_block): When a prologue/epilogue insn
14286         is marked dead, unconditionally clear libcall_is_dead and
14287         insn_is_dead, and only dump rtl if warnings aren't being
14288         suppressed.
14289
14290 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
14291
14292         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
14293         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
14294         (FIXED_REGISTERS): Set dirflag as fixed.
14295         (CALL_USED_REGISTERS): Set dirflag as used.
14296         (REG_ALLOC_ORDER): Set dirflag as last one.
14297         (DIRFLAG_REG): New macro.
14298         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
14299         (HI_REGISTER_NAMES): Add dirflag.
14300         (DEBUF_PRINT_REG): Handle dirflag.
14301         * i386.md (type attribute): New cld and str types.
14302         (length_opcode attribute): Set cld and str to 1.
14303         (memory attribute): Set str to unknown - it is not clear from the
14304         patterns.
14305         (pent_np function unit): Prefixed string operations takes 12 cycles
14306         minimally; cld takes 2 cycles.
14307         (ppro_uops attribute): Str is "many" and cld is "few".
14308         (ppro_p0 unit): Handle cld here.
14309         (k6_alux unit): Handle cld and str types.
14310         (k6_load unit): It is ocupied by str opcodes.
14311         (k6_store unit): It is ocupied by str opcodes.
14312         (athlon_decode): Str is vector decoded.
14313         (athlon_ieu): Handle str and cld.
14314         (cld pattern): New.
14315         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
14316         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
14317         cmpstrsi_nz_1 insn): Do not output cld instruction
14318
14319 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
14320
14321         * gcc.texi (G++ and GCC): Add Java and Chill.
14322         (Bug Critera): Don't list languages.
14323
14324         * gcc.texi (Incompatibilities): No longer claim most C compilers
14325         are K&R.
14326
14327         * gcc.texi (G++ and GCC): Update other front-ends list.
14328
14329 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
14330
14331         * i386.c (ix86_expand_setcc): Fix typo.
14332         (ix86_expand_movcc): Similarly.
14333
14334         * Band-aid until haifa's bitset implementation is nuked.
14335         * haifa-sched.c (extract_bitlst): New parameter for size of the
14336         bitset in bits.  All callers changed.  Avoid looking at undefined
14337         bits in the bitset.
14338         (edgeset_bitsize): New variable.
14339         (schedule_region): Initialize edgeset_bitsize.
14340
14341 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14342
14343         * Makefile.in (optabs.o): Depend on real.h
14344         (resource.o): Depend on insn-attr.h
14345
14346         * builtins.c (result_vector): Wrap prototype in macro conditions
14347         governing definition and use.
14348
14349         * c-common.c: Include tm_p.h.
14350
14351         * c-lex.c: Likewise.
14352
14353         * elfos.h: Constify a char*.
14354
14355         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
14356         (get_attr_length, shorten_branches, profile_after_prologue): Mark
14357         parameter with ATTRIBUTE_UNUSED.
14358
14359         * fold-const.c (exact_real_inverse): Wrap variable `i' in
14360         CHECK_FLOAT_VALUE.
14361
14362         * haifa-sched.c (schedule_insns): Mark parameter with
14363         ATTRIBUTE_UNUSED.
14364
14365         * optabs.c: Include real.h.
14366
14367         * real.h (ereal_atof): Add prototype arguments.
14368
14369         * resource.c: Include insn-attr.h.
14370
14371         * sdbout.c (sdbout_queue_anonymous_type,
14372         sdbout_dequeue_anonymous_types): Wrap in macro
14373         SDB_ALLOW_FORWARD_REFERENCES.
14374         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
14375         ATTRIBUTE_UNUSED.
14376
14377         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
14378
14379         * stupid.c: Include tm_p.h.
14380
14381         * tree.c (real_value_from_int_cst): Mark parameter with
14382         ATTRIBUTE_UNUSED.
14383
14384 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14385
14386         * i960-protos.h: New file.
14387
14388         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
14389         time warnings.
14390
14391         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
14392
14393 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14394
14395         * combine.c (expand_field_assignment): Do not discard SUBREGs
14396         while computing nonzero_bits.
14397
14398 2000-01-09  Nick Clifton  <nickc@cygnus.com>
14399
14400         * config/arm/arm.c: Fix compile time warnings about signed vs
14401         unsigned constants.
14402         * config/arm/arm.h: Fix compile time warnings about signed vs
14403         unsigned constants.
14404
14405 2000-01-09  Philip Blundell  <philb@gnu.org>
14406
14407         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
14408         than `ldm' with only one register.
14409         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
14410         only one register.
14411
14412         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
14413         clobbered.
14414
14415 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
14416
14417         * config/ns32k/ns32k.md (load or push effective address): Operand 1
14418         must have SImode.
14419
14420 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14421
14422         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
14423         assignment used as truth value.
14424
14425         * function.c (assign_temp): Mark parameter `dont_promote' with
14426         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
14427         PROMOTE_FOR_CALL_ONLY.
14428
14429         * genrecog.c (write_subroutine): Mark variable `operands' with
14430         ATTRIBUTE_UNUSED.
14431
14432         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
14433         ATTRIBUTE_UNUSED.
14434
14435         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
14436         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
14437
14438         * toplev.c (note_deferral_of_defined_inline_function): Likewise
14439         for `decl'.
14440
14441 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14442
14443         * config/c4x.h: Tidy up comments.
14444         * config/c4x.c: Likewise.
14445
14446 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
14447
14448         * fold-const.c (lshift_double, rshift_double): Handle
14449         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
14450
14451 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14452
14453         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
14454         in prepare_function_start().
14455
14456 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
14457
14458         * config/v850/v850.c (expand_epilogue): Interrupt functions no
14459         longer allocate extra stack for function calls.
14460
14461 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14462
14463         * config/c4x/c4x.md (*subqf3_set): Fix typo.
14464
14465 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14466
14467         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
14468
14469 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
14470
14471         * rs6000.c (processor_target_table): Add power3 as alias for 630.
14472         * aix43.h: Revert Aug 2 change.
14473         (HAS_INIT_SECTION): Define, not visible yet.
14474         (LD_INIT_SWITCH): Define, not visible yet.
14475         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
14476
14477         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
14478
14479         * collect2.c (main): Expand ld2 size further.
14480         (export_object_lst): Cast assignment to avoid warning.
14481         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
14482         (scan_prog_file, COFF): Do not collect initialization or
14483         finalization functions generated for entire shared object if
14484         init/fini support present.
14485
14486 2000-01-07  Nick Clifton  <nickc@cygnus.com>
14487
14488         * config/elfos.h: Tidy up formatting of marcos.  Make sure
14489         that .section directives are always prefixed by a tab.
14490
14491         * config/svr4.h: Add #include "elfos.h" and remove duplicate
14492         definitions.
14493
14494 2000-01-07  Matt Austern  <austern@sgi.com>
14495
14496         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
14497         expon.
14498
14499 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
14500
14501         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
14502         crtstuff.c.
14503         (crtbegin.o, s-crtS): Likewise.
14504
14505 2000-01-06  Richard Henderson  <rth@cygnus.com>
14506
14507         * alpha.md (adddi_2+1): Limit offset such that it will be
14508         loadable with a single ldah+lda pair.
14509         (adddi_2+2): Explicitly fail split if we can't make it work.
14510
14511 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
14512
14513         * protoize.c: Conditionally include unistd.h.
14514         (IS_SAME_PATH_CHAR): New macro.
14515         (IS_SAME_PATH): New macro.
14516         (CPLUS_FILE_SUFFIX): New macro.
14517         (cplus_suffix): New static variable.
14518         (is_abspath): New static function.
14519         (in_system_include_dir): Handle DOS style pathnames.
14520         (file_could_be_converted): Likewise.
14521         (file_normally_convertible): Likewise.
14522         (directory_specified_p): Likewise.
14523         (file_excluded_p): Likewise.
14524         (abspath): Likewise.
14525         (shortpath): Likewise.
14526         (referenced_file_is_newer): Likewise.
14527         (save_def_or_dec): Likewise.
14528         (do_processing): Likewise.
14529         (main): Likewise.
14530         (edit_file): Likewise. Use rename instead of link.
14531         (rename_c_file): Likewise. Don't rename syscalls file.
14532         (munge_compile_params): Define null device for DOS based systems.
14533         (process_aux_info_file): Use binary mode if appliable.
14534         (edit_file): Likewise.
14535         * invoke.texi (Running Protoize): Document C++ suffixes used.
14536
14537         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
14538         IS_DIR_SEPARATOR macros.
14539         * collect2.c: Likewise.
14540         * cppinit.c: Likewise.
14541         * dwarf2out.c: Likewise.
14542         * gcc.c: Likewise.
14543         * gcov.c: Likewise.
14544         * prefix.c: Likewise.
14545         * rtl.c: Likewise.
14546         * toplev.c: Likewise.
14547         * system.h: And move to here.
14548
14549         * prefix.c (update_path): Fix typo in variable name.
14550
14551 2000-01-06  Richard Henderson  <rth@cygnus.com>
14552
14553         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
14554         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
14555         (count_reg_sets_1, count_reg_references): Likewise.
14556         (flow_loops_level_compute): Start counting actual loop depth at 1.
14557         (flow_loops_find): Likewise.
14558         * local-alloc.c (update_equiv_regs): Likewise.
14559         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
14560
14561 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
14562
14563         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
14564         FIRST_PSEUDO_REGISTER
14565         * dwarf2out.c: Don't include frame.h
14566         * dwarfout.c: Likewise
14567         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
14568         frame.h
14569
14570 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
14571
14572         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
14573         dead registers.
14574
14575         * i386.c (movsf splitter): Fix typo in my last checkin.
14576
14577 2000-01-05  Nick Clifton  <nickc@cygnus.com>
14578
14579         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
14580         own definition of this macro.
14581         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
14582         flag_data_sections or UNIQUE_SECTION_P are true.
14583
14584         * tm.texi (UNIQUE_SECTION): Document that it can be called for
14585         unitialised data decls.
14586
14587         * config/i386/winnt.c (i386_pe_unique_section): Cope with
14588         being called for uninitialised data.
14589
14590         * config/i386/interix.c (i386_pe_unique_section): Cope with
14591         being called for uninitialised data.
14592
14593         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
14594         for uninitialised data.
14595
14596         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
14597         for uninitialised data.
14598
14599         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
14600         for uninitialised data.
14601
14602         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
14603         (UNIQUE_SECTION_P): Always generate a unique section if
14604         flag_data_sections is true.
14605         (UNIQUE_SECTION): Also generate unique sections for
14606         uninitialised data.
14607         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
14608         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
14609         named_section().
14610
14611 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14612
14613         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
14614         SI, or DI.
14615
14616 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14617
14618         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
14619         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
14620         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
14621         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
14622         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
14623
14624         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
14625
14626 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
14627
14628         * c-decl.c (finish_enum): Simplify code to determine minimum and
14629         maximum values of the enum, and calculate the type.  Remove check
14630         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
14631         the DECL_INITIAL of each enumeration constant with a copy converted
14632         to the enumeration type.  When updating variant types, don't bother
14633         updating the type itself.
14634
14635         * c-typeck.c (build_binary_op): Simplify conditional expressions
14636         when weeding out spurious signed-unsigned warnings.  Add new
14637         spurious warning category: if the unsigned quantity is an enum
14638         and its maximum value fits in signed_type(result_type).  Update
14639         commentary.
14640         (build_conditional_expr): Warn here if one alternative is signed
14641         and the other is unsigned.
14642
14643 2000-01-05  Nick Clifton  <nickc@cygnus.com>
14644
14645         * config/fr30/fr30.h: Remove extraneous comments.
14646
14647 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
14648
14649         * reload1.c (choose_reload_regs): When disabling a reload, also
14650         set reload_spill_index to -1.
14651
14652 2000-01-04  Joel Sherrill (joel@OARcorp.com>
14653
14654         * configure.in (m68*-*-rtemscoff*): New target, formal name for
14655         old m68*-*-rtems*.
14656         (m68*-*-rtemself*): New target.
14657         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
14658         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
14659         (sparc*-*-rtemself*): New target.
14660         (sparc*-*-rtems*): Now elf not a.out.
14661         * config/i386/rtems.h: Include config/rtems.h.
14662         * config/i386/rtemself.h: Include config/rtems.h.
14663         * config/i960/rtems.h: Include config/rtems.h.
14664         * config/m68k/rtems.h: Include config/rtems.h.
14665         * config/m68k/rtemself.h: Include config/rtems.h.
14666         * config/mips/rtems64.h: Include config/rtems.h.
14667         * config/pa/rtems.h: Include config/rtems.h.
14668         * config/rs6000/rtems.h: Include config/rtems.h.
14669         * config/sh/rtems.h: Include config/rtems.h.
14670         * config/sh/rtemself.h: Include config/rtems.h.
14671         * config/sparc/rtems.h: Include config/rtems.h.
14672         * config/sparc/rtemself.h: Include config/rtems.h
14673
14674 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
14675
14676         * final.c (shorten_branches): Correctly compute length of
14677         asms without operands.
14678
14679 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
14680
14681         * configure.in: Add pj target.
14682         * configure: Regenerate.
14683         * config/pj: New directory.
14684         * config/pj/lib1funcs.S: New file.
14685         * config/pj/linux.h: New file.
14686         * config/pj/pj.c: New file.
14687         * config/pj/pj.md: New file.
14688         * config/pj/pjl.h: New file.
14689         * config/pj/t-pj: New file.
14690         * config/pj/xm-pj.h: New file
14691
14692 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
14693
14694         * toplev.c (rest_of_compilation): Run shorten-branches before
14695         reg-stack for now.
14696
14697 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14698
14699         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
14700         macros so that they're consistent with their names.
14701         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14702         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14703
14704 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14705
14706         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
14707         modified inadvertently.
14708
14709 2000-01-04  Joel Sherrill <joel@OARcorp.com>
14710
14711         * configure.in (v850*-*-rtems*): New target.
14712         * configure: Regenerate.
14713         * config/v850/rtems.h: New file.
14714
14715 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
14716
14717         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
14718         (__gthread_key_create): Likewise.
14719         (__gthread_key_dtor):  Likewise.
14720         (__gthread_once): Fix logic.
14721         (__gthread_key_delete): Cast away constness.
14722
14723         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
14724         * invoke.texi: Document.
14725         * i386/mingw32.h (CPP_SPEC): Use.
14726         (LIBGCC_SPEC): Likewise.
14727         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
14728
14729 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
14730
14731         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
14732         (HANDLE_PRAGMA_PACK): Undefine.
14733         (SLOW_UNALIGNED_ACCESS): Define.
14734
14735 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
14736
14737         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14738         to default definition.
14739         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
14740         (store_fixed_bit_field): Call macro with word_mode and alignment.
14741         (extract_bit_field): Call macro with relevant mode and alignment.
14742         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14743         to default definition.
14744         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
14745         and alignment.
14746         (move_by_pieces_ninsns): Likewise.
14747         (clear_by_pieces): Likewise.
14748         (emit_push_insn): Likewise.
14749         (store_field): Call macro with relevant mode and alignment.
14750         (expand_expr): Likewise.
14751         (expand_expr_unaligned): Likewise.
14752
14753         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
14754         (SLOW_UNALIGNED_ACCESS): Define.
14755         (CASE_VECTOR_MODE): Always use 32-bit offsets.
14756         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
14757         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
14758         (toc_section): Likewise and .toc pseudo-op.
14759         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
14760         64-bit mode.
14761         (TEXT_SECTION_ASM_OP): Likewise.
14762         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
14763         32-bit offsets.
14764
14765         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
14766         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
14767         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
14768         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
14769         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
14770
14771 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
14772
14773         * regclass.c: Revert my Jan 4 change to loop cost computation.
14774
14775 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14776
14777         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
14778         compilation.
14779
14780 2000-01-04  Stan Cox  <scox@cygnus.com>
14781
14782         * haifa-sched.c (build_control_flow): Change unreachable simple
14783         loop test to check if current block has only one predecessor.
14784         (find_rgns): Initialize degree.  Use dest as degree index, not src.
14785
14786 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14787
14788         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
14789
14790         * calls.c (expand_call): Likewise for
14791         `old_stack_arg_under_construction'.
14792
14793         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
14794
14795         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
14796         `save_constant'.
14797
14798         * gcc.c (execute): Likewise for `ut' and `st'.
14799
14800         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
14801
14802         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
14803
14804         * jump.c (jump_optimize_1): Likewise for `temp2'.
14805
14806         * local-alloc.c (block_alloc): Likewise for `r1'.
14807
14808         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
14809
14810         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
14811         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
14812
14813         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
14814         and `set2'.
14815
14816         * reload.c (find_reloads): Likewise for `goal_alternative_number'
14817         and `goal_earlyclobber'.
14818
14819         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
14820
14821         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
14822
14823         * stupid.c (stupid_life_analysis): Likewise for `chain'.
14824
14825         * unroll.c (copy_loop_body): Likewise for `copy'.
14826
14827         * varasm.c (output_constructor): Likewise for `byte'.
14828
14829 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14830
14831         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
14832         all FP constants for constant->reg moves.
14833         (ix86_split_to_parts): Try to convert memory address into immediate
14834         when available in the constant pool.
14835         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
14836         moves.
14837         (LEGITIMATE_CONSTANT_P): Return 1.
14838         * i386.md (pushsf): New splitter to convert constant pool memory
14839         reference to immediate.
14840         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
14841         reload.
14842
14843 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
14844
14845         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
14846         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
14847         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
14848         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
14849         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
14850
14851 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
14852
14853         * ginclude/stdbool.h:  Support compilation as C++.
14854
14855 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14856
14857         * fold-const.c (make_range): Don't try to reverse an unbounded range.
14858
14859 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
14860
14861         * regclass.c (regclass): Properly compute loop_cost.  Adjust
14862         comments.
14863
14864         * regclass.c: Fix minor whitespace problems.
14865
14866 2000-01-03  Anthony Green  <green@cygnus.com>
14867
14868         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
14869         Restore the pic register if required.
14870
14871 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
14872
14873         * c-common.c (format_char_info): Update comment.
14874         (check_format_info): Recognize 'z' modifier in the same way 'Z'
14875         was recognized.  Emit warning for formats new in ISO C99 only
14876         if flag_isoc9x is not set.
14877
14878 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
14879
14880         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
14881
14882 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14883
14884         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
14885         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
14886         (make_compound_operation): Choose cheaper alternative between
14887         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
14888
14889         * regclass.c (op_costs): Remove global variable.
14890         (record_reg_classes): New parameter "op_costs" and "reg_pref".
14891         (record_operand_costs): Break out from ...
14892         (scan_one_insn): ... here.
14893         (dump_regclass): Make dumps nicer.
14894         (regclass): Dump preferrences choosed and changes done during passes.
14895
14896 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
14897
14898         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
14899
14900 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
14901
14902         * config/sparc/sparc.c (gen_df_reg): New function.
14903         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
14904         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
14905         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
14906         movtf_cc_reg_sp64+1): Use it.
14907
14908 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
14909
14910         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
14911         copied LABEL_DECLs.
14912
14913 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14914
14915         * config/i386/i386.c (ix86_expand_unary_operator): Function
14916         definition made void.
14917         (ix86_expand_binary_operator): Update outdated preceding comment.
14918         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
14919         prototype.
14920
14921         * config/i386/i386.c (override_options): Fix option-name typo.
14922
14923 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
14924
14925         * system.h (CEIL): Define.
14926         * builtins.c (CEIL): Remove.
14927         * expmed.c (CEIL): Likewise.
14928         * expr.c (CEIL): Likewise.
14929         * stor-layout.c (CEIL): Likewise.
14930
14931 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
14932
14933         * expr.c (store_constructor_field): Fix typo introduced with last
14934         gcc2 merge.
14935
14936 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
14937
14938         * tree.h (BINFO_N_BASETYPES): New macro.
14939
14940 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
14941
14942         * expmed.c (emit_store_flag): Prevent losing a pending stack
14943         adjust the same way we prevent losing queued increments.
14944
14945 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14946
14947         * function.c (update_temp_slot_address): Handle case where sum of
14948         temporary address plus offset in register is a valid address.
14949
14950 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
14951
14952         * genrecog.c (change_state) Corrected typo.
14953
14954 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14955
14956         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
14957         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
14958         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
14959
14960 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
14961
14962         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
14963         case, expand GT comparisons correctly.  Fix a comment before this
14964         part of the code.
14965
14966 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
14967
14968         * dwarfout.c: Include "frame.h"
14969         * dwarf2out.c: Likewise.
14970         * Makefile.in (dwarfout.o): Depend on frame.h
14971         (dwarf2out.o): Likewise.
14972
14973 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
14974
14975         Restore i386 binary compatibility in Dwarf EH info.
14976         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
14977         value of FIRST_PSEUDO_REGISTER.
14978         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
14979         (struct frame_state): Use DWARF_FRAME_REGISTERS.
14980         * dwarfout.c (output_reg_number): Ditto.
14981         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
14982         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
14983
14984 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
14985
14986         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
14987         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
14988         (<hack>_RE_CT): not needed
14989         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
14990         rewritten to scan the file text once only
14991         "template<..." test added
14992         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
14993         (is_cxx_header): declaration added
14994         * fixinc/fixtests.c(is_cxx_header): removed
14995         (apply_fix_p_t): removed
14996         (double_slash_test): is_cxx_header is only called once now
14997         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
14998         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
14999         within the templates.
15000         The borken spelling of "broken" was fixed.
15001         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
15002         The default level depends on FIXINC_DEBUG.
15003
15004 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15005
15006         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
15007         Otherwise provide a declaration for atexit.
15008         (init_dummy): Make sure dummy call to atexit is nevertheless
15009         called with correct number of args.
15010
15011         * frame.c: Update comments referring to other files.
15012
15013         * libgcc2.c: Likewise.
15014
15015 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15016
15017         * cse.c (free_element, get_element): Remove unused prototypes.
15018
15019         * fold-const.c (extract_muldiv): Initialize variables `op0' and
15020         `op1'.
15021
15022         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
15023         `else' clauses.
15024
15025 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
15026
15027         * configure.in,configure: case arm for mn10200-*-* now sets
15028         float_format=i32 so that float.h will correctly claim "double"
15029         to be 32 bits. Ran autoconf to generate configure from .in file.
15030
15031 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
15032
15033         * pa.md (conditional zero): If op1 is a register, force it into
15034         the same register as op0.
15035
15036 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
15037
15038         * tree.h (BINFO_BASETYPES): Improve documentation.
15039
15040 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15041
15042         * configure.in (--enable-checking): Use a more portable `for'
15043         loop syntax.
15044
15045 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15046
15047         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
15048         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
15049
15050         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
15051         Delete files.
15052
15053         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
15054         Delete descriptions.
15055
15056         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
15057         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
15058         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
15059         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
15060         xm-svr4.h: Remove all instances of sys_siglist handling.
15061
15062 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
15063
15064         * config/sparc/sparc.md (cmp_zero_qi,
15065         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
15066         cmp_zero_extendqidi2_andcc_set): New patterns.
15067
15068 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
15069
15070         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
15071         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
15072         (fpgnulib.c, xfgnulib.c): Add rules.
15073         * m68k/t-mot3300-gas: Likewise.
15074
15075 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
15076
15077         * configure.in: Avoid [[ by using test and changequote.  Add
15078         changequote required by 1999-12-14 change.
15079         * configure: Rebuild.
15080
15081 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
15082
15083         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
15084
15085 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
15086
15087         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
15088         * flow.c (find_use_as_address): Likewise.
15089         * function.c (fixup_var_refs_1): Likewise.
15090         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
15091         * jump.c (invert_exp, redirect_exp): Likewise.
15092         * loop.c (replace_call_address): Likewise.
15093         (count_nonfixed_reads): Likewise.
15094         * rtlanal.c (modified_between_p): Likewise.
15095         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
15096         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
15097         * unroll.c (remap_split_bivs): Likewise.
15098
15099 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15100
15101         * diagnostic.c (v_message_with_decl): Use .* format specifier
15102         instead of building the format specifier width manually.
15103
15104         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
15105         determining whether to provide a prototype.  Remove the
15106         sys_siglist clause in the conditional.
15107
15108 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
15109
15110         * fold-const.c (operand_equal_p): Use memcmp to compare string
15111         constants.
15112         Suggested by D. J. Bernstein
15113
15114 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
15115
15116         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
15117         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
15118         compiling libgcc2.
15119         * config/mips/mips.h (TARGET_64BIT): Likewise.
15120         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
15121         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
15122         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
15123         dsps.  Give routines proper names if SI/DI modes are not used.
15124         * longlong.h: Use DWunion instead of DIunion.
15125
15126 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
15127
15128         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
15129         GC_CHECKING, GC_ALWAYS_COLLECT.
15130         * configure.in: Allow --enable-checking with an argument
15131         listing check modes to enable.
15132         * config.in, configure: Rebuilt.
15133         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
15134         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
15135         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
15136         ENABLE_GC_ALWAYS_COLLECT.
15137         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
15138         throughout.
15139         * tree.h, tree.c: Change ENABLE_CHECKING to
15140         ENABLE_TREE_CHECKING throughout.
15141
15142 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15143
15144         * fold-const.c (fold_truthop): Properly check for FP RHS.
15145
15146 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
15147
15148         * toplev.h (note_deferall_of_defined_inline_function): Declare.
15149         * toplev.c (note_deferral_of_defined_inline_function): New
15150         function, split out from ...
15151         (rest_of_compilation): ... here.  Use it.
15152
15153 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15154
15155         * expr.c (store_constructor): Don't call clear_storage if size is
15156         variable.
15157
15158 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15159
15160         * Makefile.in (toplev.o): Depend on loop.h.
15161
15162         * dwarfout.c: Include tm_p.h.
15163
15164         * emit-rtl.c (restore_emit_status): Mark parameter with
15165         ATTRIBUTE_UNUSED.
15166
15167         * final.c (final_scan_insn): Likewise.
15168
15169         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
15170         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
15171         flow_depth_first_order_compute, flow_loop_pre_header_find,
15172         flow_loop_tree_node_add, flow_loops_tree_build,
15173         flow_loop_level_compute, flow_loops_level_compute,
15174         flow_loop_outside_edge_p): Add prototypes.
15175         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
15176
15177         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
15178         Mark with ATTRIBUTE_NORETURN.
15179
15180         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
15181
15182         * local-alloc.c (no_conflict_p): Likewise.
15183
15184         * loop.c (insert_bct): Hide definitions of variables with hidden
15185         usage.
15186         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
15187
15188         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
15189         with ATTRIBUTE_UNUSED.
15190         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
15191         (reg_scan): Likewise.
15192
15193         * reload.c (find_reloads): Remove unused variables `changed'.
15194
15195         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
15196         away const-ness.
15197         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
15198         Remove unused variable `insn'.
15199
15200         * toplev.c: Include loop.h.
15201         (report_file_and_line): Remove unnecessary prototype.
15202
15203         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
15204
15205         * unroll.c (biv_total_increment): Likewise.
15206
15207 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15208
15209         * reload1.c (emit_input_reload_insns): Restore old behaviour
15210         wrt. 'special' reloads.
15211
15212 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
15213
15214         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
15215         hash.h.  (cse.c): Don't depend on hashtab.h.
15216
15217         * cse.c: Don't include hashtab.h.
15218         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
15219         of dead functions.
15220         * ggc-simple.c: Don't include hash.h.
15221
15222 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
15223
15224         * dwarf2out.c (add_abstract_origin_attribute): Call
15225         gen_abstract_function on our function context.
15226
15227 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
15228
15229         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
15230
15231 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15232
15233         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
15234         case in switch.
15235
15236 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15237
15238         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
15239         constraints to "a!r".
15240
15241 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
15242
15243         * Makefile.in (calls.o): Depend on function.h.
15244         (alias.o): Likewise.
15245
15246 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
15247
15248         * reload1.c (emit_reload_insns): Break out code and variables into...
15249         (input_reload_insns, other_input_address_reload_insns,
15250         other_input_reload_insns, input_address_reload_insns,
15251         inpaddr_address_reload_insns, output_reload_insns,
15252         output_address_reload_insns, outaddr_address_reload_insns,
15253         operand_reload_insns, other_operand_reload_insns,
15254         other_output_reload_insns): ... new static variables, and...
15255         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
15256         do_output_reload): ... new functions.
15257
15258 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15259
15260         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
15261
15262 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15263
15264         * md.texi: Add c4x constraints documentation.
15265
15266 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
15267
15268         * config/i386/dgux.c (struct option): Rename to
15269         lang_independent_option.
15270         (struct m_options): Add description field.
15271         (output_options): Rename option type, add sep declaration, output
15272         ix86_cpu_string and ix86_arch_string only if set.
15273         (output_file_start): Rename option type.
15274
15275 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
15276
15277         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
15278         stmp-int-hdrs.
15279         (libgcc2.a): Similarly.
15280
15281 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
15282
15283         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
15284         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
15285         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
15286
15287 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
15288
15289         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
15290         Remove redundant initialization of "frexpon" and "expon".
15291
15292 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15293
15294         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
15295
15296         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
15297         (store_constructor_field, expand_expr): Pass new arg.
15298
15299 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
15300
15301         * Makefile.in (explow.o): Depend on function.h.
15302
15303         * stor-layout.c (set_sizetype): Fix typo.
15304
15305 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
15306
15307         * function.c (cfun): Renamed from current_function.  All users
15308         changed.
15309         * function.h (cfun): Rename declaration as well.
15310
15311         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
15312         to be of type regset_head, not regset.  All users changed by adding
15313         address operator.
15314         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
15315
15316 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15317
15318         * config/c4x/rtems.h: New file.
15319
15320 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
15321
15322         * reload1.c (spill_failure): Take class of failed reload as argument
15323         and print it.  Caller changed.
15324
15325 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15326
15327         * rs6000.h (SUBTARGET_DEFAULT): New macro.
15328         (TARGET_SWITCHES): Allow subtargets to default switches.
15329         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
15330
15331 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
15332
15333         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
15334         in a main program.
15335
15336 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
15337
15338         * cccp.c (main): Define __STDC_VERSION__ as necessary.
15339         * cppinit.c (cpp_handle_option): Likewise.
15340
15341         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
15342         determine when to define.
15343
15344 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
15345
15346         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
15347         cmove with mismatched test and data modes.
15348
15349 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
15350
15351         * c-typeck.c (c_expand_start_case): Don't warn for long switch
15352         in system headers.
15353
15354 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15355
15356         * alias.c: Minor reformatting.
15357         * flow.c: Likewise.
15358         * regs.h: Likewise.
15359         * stor-layout.c: Likewise.
15360         * fold-const.c: Likewise.
15361         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
15362         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
15363         not arg itself.
15364         (size_int_wide): Cache nodes even if garbage collecting.
15365         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
15366         of SAVE_EXPR has no side effects.
15367         * cse.c: Move a comment.
15368         * tree.c: Minor reformatting.
15369         (int_size_in_bytes): Return -1 if constant overflows.
15370
15371 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15372
15373         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
15374
15375 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
15376
15377         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
15378         after any change to c-parse.in, even if objc-parse.y didn't
15379         change.  Oops.
15380
15381 1999-12-18  David S. Miller  <davem@redhat.com>
15382
15383         * toplev.c (rest_of_compilation): Restore BLOCK tree
15384         reconstruction and branch shortening changes lost in
15385         December 18th change.
15386
15387 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
15388
15389         * config/arm/linux-elf.h: Change all instances of
15390         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
15391         * config/arm/uclinux-elf.h: Likewise.
15392
15393 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
15394
15395         * toplev.c (notice, vmessage, v_message_with_file_and_line,
15396         v_message_with_decl, file_and_line_for_asm,
15397         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
15398         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
15399         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
15400         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
15401         pfatal_with_name, fatal_io_error, need_error_newline,
15402         last_error_function, last_error_tick, announce_function,
15403         default_print_error_function, print_error_function,
15404         report_error_function, fnotice, error_with_file_and_line,
15405         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
15406         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
15407         warning_with_decl, warning_for_asm, warning, pedwarn,
15408         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
15409         diagnostic.c
15410         (compile_file): Use fnotice instead of notice.  Adjust call.
15411
15412         * diagnostic.c: New file.
15413
15414         * Makefile.in (OBJS): Include diagnostic.o
15415         (diagnostic.o): Define dependence.
15416
15417 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15418
15419         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
15420         Tweak formatting.
15421
15422 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15423
15424         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
15425
15426 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
15427
15428         * fixtests.c (is_cxx_header): New fn, split out of
15429         double_slash_test.
15430         (else_endif_label): Allow "#endif // comment" in C++ headers,
15431         as determined by is_cxx_header.
15432         * fixfixes.c (else_endif_label_fix): Update comment.
15433         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
15434         a tty.
15435         * genfixes: Correct double thinko in commandline parsing.
15436         * hackshell.tpl: Generate correct sh syntax for bypass
15437         entries.
15438
15439         * inclhack.def (all): Whenever an inserted preprocessor
15440         conditional is split over multiple lines, use double
15441         backslashes in this file so the fixed header will be readable.
15442
15443         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
15444         and add bypass entry for correct version of this header.
15445         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
15446         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
15447
15448         (hpux8_bogus_inlines): New fix, split from...
15449         (ultrix_atof_param) ... here.
15450         (math_expression): Add bypass entry keyed to glibc comment
15451         indicating the problem has been dealt with; disable
15452         unnecessary sed operations; update commentary.
15453         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
15454         add select and bypass entries, simplify shell operation.
15455         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
15456
15457         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
15458          ultrix_atof_param): Add select entry.
15459         (stdio_va_list, sunos_mather_decl): Add bypass entry.
15460         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
15461         comments with the fixes they describe.
15462
15463         * c-parse.in (string action): Do not warn about ANSI string
15464         concatenation in system headers.  Affects C parser only.
15465         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
15466
15467 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
15468
15469         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
15470         compiling libgcc2 the macro depends always on arch cpp defines.
15471
15472 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
15473
15474         * loop.c (insert_loop_mem): Don't record MEMs from inside
15475         EXPR_LISTs.
15476
15477 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
15478
15479         * regclass.c (regclass): Do not use flowgraph when not optimizing.
15480
15481         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
15482         notes too, create one when replacement failed, attempt to simplify
15483         resulting notes.
15484         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
15485         or REG_EQUIV notes.
15486
15487 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
15488
15489         * crtstuff.c (__dso_handle): Declare.
15490         (__cxa_finalize): Likewise.
15491         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
15492         non-NULL.
15493
15494         * invoke.texi: Document -fuse-cxa-atexit.
15495
15496         * tree.h (ptr_type_node): Document.
15497         (const_ptr_type_node): Likewise.
15498
15499 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15500
15501         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
15502         (optimize_reg_copy_2): Likewise.
15503         (optimize_reg_copy_3): Likewise.
15504         (fixup_match_2): Likewise.
15505         (regmove_optimize): Likewise.
15506         (fixup_match_1): Liekwise.
15507
15508         * i386.md (HI to SImode promoting splitters): Rewrite.
15509         (pushsf mem peep2): New.
15510         (testhi to andhi peep2): Remove.
15511         * i386.h (x86_promote_QImode): New.
15512         (TARGET_PROMOTE_QImode): New.
15513         (PREDICATE_CODES): Add promotable_binary_operator.
15514         * i386.c (x86_promote_QImode0: New.
15515         (promotable_binary_operator): New.
15516         * i386-protos.h (promotable_binary_operator): New.
15517
15518         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
15519         condition.
15520         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
15521
15522 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
15523
15524         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
15525         * function.c (insert_block_after_note): Remove.
15526         (retrofit_block): Likewise.
15527         (identify_blocks): Fix indentation.
15528         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
15529         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
15530         * function.h (insert_block_after_note): Remove prototype.
15531         (retrofit_block): Likewise.
15532         * integrate.c (expand_inline_function): Don't call
15533         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
15534         just expand_start_bindings.  Use the block_map to remap old
15535         NOTE_BLOCKs to new ones.
15536         (integrate_decl_tree): Keep track of remapped blocks.
15537         * integrate.h (struct inline_remap): Add block_map.
15538         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
15539         NOTE_BLOCK on the notes.
15540         (expand_start_bindings): Rename to ...
15541         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
15542         (expand_end_bindings): Set NOTE_BLOCK.
15543         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
15544         reconstruct the BLOCK tree.
15545         * tree.h (expand_start_bindings): Macroize.  Call ...
15546         (expand_start_bindings_and_block): New function.
15547
15548 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
15549
15550         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
15551         to match the format.
15552
15553 1999-12-16  David S. Miller  <davem@redhat.com>
15554
15555         * expr.c (emit_move_insn_1): Only emit clobbers if one of
15556         the outputs is a SUBREG.
15557         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
15558         change.
15559
15560         * config/sparc/sparc.c (epilogue_renumber): Add default case
15561         to switch stmt.
15562
15563 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15564
15565         * toplev.c (rest_of_compilation): Run branch shortening after
15566         reg-stack.
15567
15568         * regclass.c (loop_depth): Remove
15569         (scan_one_insn): Do not handle LOOP_NOTE insns.
15570         (regclass): Go through basic blocks and set loop_cost
15571
15572 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
15573
15574         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
15575
15576 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15577
15578         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
15579         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
15580         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
15581
15582 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
15583
15584         * loop.c (insert_loop_mem): Ignore memory clobbers.
15585
15586         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
15587         to (OP A B).
15588
15589 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
15590
15591         * profile.c: Remove redundant #include "output.h".
15592
15593         * h8300.md (HImode preinc peephole): Fix typo.
15594
15595 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
15596
15597         * function.c (retrofit_block): Abort if we don't find a suitable insn.
15598         (insert_block_after_note): Abort if we don't have a previous block.
15599         Remove FN parameter.
15600         * function.h: Adjust.
15601
15602 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
15603
15604         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
15605         argument more than once.
15606
15607 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
15608
15609         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
15610
15611 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
15612
15613         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
15614
15615 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15616
15617         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
15618         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
15619         update stack_alignment_needed.
15620         (prepare_function_start): Initialize stack_alignment_needed
15621         * function.h (struct function): Add field stack_alignment_needed.
15622
15623 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15624
15625         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
15626         Handle live_throughout / dead_or_set instead of live_before /
15627         live_after.
15628         (save_call_clobbered_regs): Get register livenessinformation from
15629         chain->live_throughout.
15630         (add_stored_regs): New function.
15631         (insert_restore, insert_save): Add restored / saved registers to
15632         dead_or_set.
15633         * global.c (reg_dies): New parameter chain.
15634         (reg_becomes_live): Third parameter is regs_set now.
15635         Changed all callers.
15636         (reg_dies): New parameter chain.  Changed all callers.
15637         (build_insn_chain): Set live_throughout instead of
15638         live_before / live_after.
15639         * reload.h (struct insn_chain): Replace members live_before /
15640         live_after with live_throughout / dead_or_set.
15641         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
15642         instead of live_before / live_after.
15643         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
15644         (order_regs_for_reload, find_reg, finish_spills): Likewise.
15645         (choose_reload_regs_init): Likewise.
15646         * stupid.c (current_chain, find_clobbered_regs): Delete.
15647         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
15648         instead of chain->live_before / chain->live_after.
15649         (mark_hard_ref): New function.
15650         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
15651
15652 1999-12-15  David S. Miller  <davem@redhat.com>
15653
15654         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
15655
15656 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15657
15658         * flow.c (calculate_loop_depth): Make global, remove prototype,
15659         rewrite to use new loop infrastructure.
15660         (find_basic_block): Remove calculate_loop_depth call.
15661         * toplev.c (rest_of_compilation): Call find_basic_block.
15662         * output.h (calculate_loop_depth): Declare.
15663
15664         * flow.c (dump_flow_info): Dump loop_depth.
15665         (flow_loops_nodes_find): Increase loop_depth for basic block in the
15666         body.
15667         (flow_loops_find): Initialize the loop_depth for each basic block.
15668
15669 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
15670
15671         * tree.c (decl_function_context): Handle virtual functions.
15672
15673         * tlink.c (scan_linker_output): Don't look in demangled name when
15674         looking for linker output keywords.
15675
15676         * dwarfout.c (output_type): We can defer namespace-scope classes.
15677
15678 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
15679
15680         * regclass.c (record_reg_classes): Update comment for merging
15681         register class preferences in reg->reg copies.  Tighten conditions
15682         for merging register class preferences in reg->reg copies.
15683
15684 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
15685
15686         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
15687
15688 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
15689
15690         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
15691         (INIT_SECTION_ASM_OP): Delete.
15692         (FINI_SECTION_ASM_OP): Delete.
15693         (STARTFILE_SPEC): Define to hold just crtbegin.o.
15694
15695 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
15696
15697         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
15698         the abstract origin wasn't emitted.
15699
15700         * dwarf2out.c (class_scope_p): New fn.
15701         (gen_subprogram_die): Use it.
15702         (gen_variable_die): Use it.  Tweak logic.
15703         (gen_struct_or_union_type_die): Check context_die to determine
15704         if we're function-local.
15705         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
15706
15707 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
15708
15709         * loop.c (check_dbra_loop): Can't reverse a biv that has
15710         maybe_multiple set.
15711
15712 1999-12-14  Nick Clifton  <nickc@cygnus.com>
15713
15714         * config/arm/arm.c: Add support for -mcpu=arm720 command line
15715         switch.
15716
15717 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15718
15719         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
15720         for givs made from biv increments.
15721
15722 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
15723
15724         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
15725         * alpha.c (override_options): Recognize -mcpu=ev67.
15726         * alpha.h (CPP_CPU_EV67_SPEC): New.
15727         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
15728         (EXTRA_SPECS): Update.
15729
15730 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
15731
15732         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
15733         appropriate for -lang-c89 and -std=*.
15734         * cppinit.c (cpp_handle_option): Likewise.
15735         (new_pending_define): New, split out from cpp_handle_option.
15736         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
15737         or enable trigraphs for -ansi/-std=*.
15738
15739         * ginclude/stdarg.h (__va_copy): New.
15740         (va_copy): Don't define for C89.
15741
15742 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
15743
15744         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
15745         for long long multiply-accumulate.
15746
15747 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15748
15749         * regclass.c (scan_one_insn): Set loop_cost to 1 when
15750         optimizing for size.
15751
15752 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
15753
15754         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
15755         if something changed.  Back out that part of yesterday's changes.
15756
15757         * loop.c (loop_max_reg): New static variable.
15758         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
15759         max_reg_num.
15760         (scan_loop): Call reg_scan_update whenever we may have added new
15761         registers, and update loop_max_reg.
15762
15763 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15764
15765         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
15766         when source does not die.
15767
15768         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
15769
15770 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
15771
15772         * config/sparc/linux64.h (TARGET_LIVE_G0,
15773         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
15774         variants on Linux.
15775         * config/sparc/linux.h (TARGET_LIVE_G0,
15776         TARGET_BROKEN_SAVERESTORE): Likewise.
15777         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
15778         TARGET_BROKEN_SAVERESTORE): Likewise.
15779
15780         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
15781         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
15782         not %g2.
15783         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
15784         as sparc64 block profiling register.
15785         * config/sparc/sparc.c (sparc_override_options): Allow block
15786         profiling with -m32.
15787         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
15788         profiling register.
15789         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
15790         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
15791         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
15792
15793         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
15794         for sparc64.
15795         * config/sparc/sparc.h: Likewise.
15796         * config/sparc/xm-sysv4-64.h: Likewise.
15797         * config/float-sparc.h: Likewise.
15798         * glimits.h: Likewise.
15799         * longlong.h: Likewise.
15800
15801         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
15802         (ASM_IDENTIFY_GCC): Remove.
15803
15804 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
15805
15806         * combine.c (combine_simplify_rtx): Don't make shared rtl.
15807         (simplify_logical): Likewise.
15808
15809 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
15810
15811         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
15812         * cppfiles.c (INO_T_EQ): Likewise.
15813
15814 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
15815
15816         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
15817         * i386/mingw32.h (LIB_SPEC): Likewise.
15818         (STARTFILE_SPEC): Likewise.
15819         * i386/uwin.h (LIB_SPEC): Likewise.
15820         (STARTFILE_SPEC): Likewise.
15821
15822         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
15823         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
15824
15825 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
15826
15827         * combine.c (combine_simplify_rtx): Fix order of checks for
15828         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
15829
15830 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
15831
15832         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
15833         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
15834
15835 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
15836
15837         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
15838         defined.
15839         * regclass.c (inv_reg_alloc_order): New array.
15840         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
15841
15842         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
15843         counted_for_groups, counted_for_nongroups.  Add fields rld and
15844         n_reloads.
15845         * reload.c (push_secondary_reload): Don't set nongroup field of
15846         new reloads.
15847         (push_reload): Likewise.
15848         (find_reloads): Delete code to compute nongroup fields.
15849         * reload1.c (reload_insn_firstobj): New static variable.
15850         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
15851         users changed.
15852         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
15853         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
15854         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
15855         functions.
15856         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
15857         functions.
15858         (struct hard_reg_n_uses): Deleted.
15859         (potential_reload_regs): Deleted.
15860         (init_reload): Initialize spilled_pseudos and pseudos_counted.
15861         (reload): Don't try to allocate reload registers if we already know
15862         we have to make another pass.  Call select_reload_regs.  Free memory
15863         starting with reload_firstobj when starting another pass.
15864         Don't allocate spilled_pseudos.
15865         (calculate_needs_all_insns): Call copy_reloads for an insn that
15866         needs reloads; don't call calculate_needs.
15867         (spill_cost): New static array.
15868         (used_spill_regs_local): New static variable.
15869         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
15870         to compute potential_reload_regs.
15871         (find_reload_regs): Completely rewritten to use find_reg.
15872         (allocate_reload_reg): Don't test counted_for_groups or
15873         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
15874         all cllers changed.
15875         (choose_reload_regs): Add fallback code that uses the existing
15876         register allocation from find_reload_regs.
15877
15878 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
15879
15880         * flow.c (create_edge_list): Cast xmalloc return value.
15881
15882 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
15883
15884         * doprnt.c: Remove incorrect comment closure.
15885
15886         * cse.c: Fix a few minor whitespace goofs.
15887
15888 1999-12-13  Don Bowman  <don@pixstream.com>
15889
15890         * mips/vxworks.h: Fix problem with comment termination.
15891         (EXTRA_SECTIONS): Add in_sbss.
15892         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
15893
15894 1999-12-12  David S. Miller  <davem@redhat.com>
15895
15896         * cse.c (struct cse_reg_info): Add hash_next member,
15897         reorder rest of struct for better packing on 64-bit
15898         hosts.
15899         (cse_reg_info_tree): Kill.
15900         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
15901         REGHASH_FN): New custom pow2 hash mechanism.
15902         (NBUCKETS): Kill.
15903         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
15904         use a pow2 hash table.
15905         (get_cse_reg_info): Rework to use new REGHASH.
15906         (new_basic_block): Likewise, use HASH_SIZE, and inline
15907         free_element call.
15908         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
15909         and inline free_element call.
15910         (lookup_as_function, insert, flush_hash_table, invalidate,
15911         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
15912         invalidate_for_call, use_related_value, find_comparison_args,
15913         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
15914         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
15915         get_element): Kill.
15916
15917 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
15918
15919         * cse.c (cse_basic_block): Free qty_table consistently.
15920
15921 1999-12-12  David S. Miller  <davem@redhat.com>
15922             Jakub Jelinek    <jakub@redhat.com>
15923
15924         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
15925         SUBREGs by hand, gen the appropriate hard reg directly.
15926         (movtf reg/mem split): Likewise and alter_subreg on destination
15927         if necessary.
15928         (movtf mem/reg split): Similarly.
15929         (movdf_cc_sp64): Rename from hidden pattern.
15930         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
15931         (movtf_cc_sp64, following split): New pattern and splitter.
15932         (movdf_cc_reg_sp64): Rename from hidden pattern.
15933         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
15934         TARGET_HARD_QUAD.
15935         (movtf_cc_reg_sp64, following split): New pattern and splitter.
15936
15937 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
15938
15939         * loop.c (load_mems): Don't hoist written floating point mem
15940         if -ffloat-store.
15941
15942 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
15943
15944         * except.h (struct eh_queue): Add `next' pointer.
15945         (struct eh_status): Make x_ehqueue a pointer.
15946         (push_ehqueue):  Declare.
15947         (pop_ehqueue): Likewise.
15948         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
15949         pointer.
15950         (expand_fixup_region_end): Likewise.
15951         (expand_leftover_cleanups): Likewise.
15952         (push_ehqueue): Define.
15953         (pop_ehqueue): Likewise.
15954         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
15955         than doing it inline.
15956         (expand_start_all_catch):  Adjust now that ehqueue is a
15957         pointer.
15958         (mark_eh_queue): Mark all level of the queue.
15959         (mark_eh_status):  Adjust now that ehqueue is a
15960         pointer.
15961         (init_eh_for_function): Allocate ehqueue.
15962         (free_eh_status): Free it.
15963         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
15964         expansion for a fixup.
15965
15966 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15967
15968         * gthr-single.h (__gthread_active_p): Add prototype arguments.
15969
15970         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
15971         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
15972         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
15973         function_ptr, getpagesize, __enable_execute_stack,
15974         __enable_execute_stack, __clear_insn_cache,
15975         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
15976         _cleanup, _exit, __default_terminate, __terminate_func,
15977         __terminate, __empty, __throw, new_eh_context,
15978         eh_context_initialize, eh_context_static, eh_context_specific,
15979         get_eh_context, __get_eh_context, __get_eh_info,
15980         init_reg_size_table, eh_threads_initialize,
15981         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
15982         __unwinding_cleanup, throw_helper, __throw, __rethrow,
15983         __pure_virtual): Add prototype arguments.
15984         (__bb_exit_func): Cast a sizeof to long when comparing against one.
15985         Cast a signed value to unsigned long when comparing against one.
15986         (new_eh_context): Wrap in _GTHREADS macro.
15987         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
15988         declaration.
15989         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
15990         (throw_helper): Initialize variables `handler_p' and `pc_p'.
15991
15992 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15993
15994         * combine.c (record_promoted_value): Remove unused variable
15995         `links2'.
15996
15997         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
15998
15999         * global.c (record_conflicts): Likewise for `j'.
16000
16001         * genoutput.c (output_insn_data): Don't unnecessarily cast away
16002         const-ness.
16003
16004 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16005
16006         * i386-protos.h (output_387_binary_op, output_fix_trunc,
16007         output_fp_compare): Constify a char*.
16008
16009         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
16010         static prototypes.
16011         (override_options, ix86_comp_type_attributes, print_operand,
16012         output_387_binary_op, output_fix_trunc, output_fp_compare):
16013         Constify a char*.
16014         (ix86_sched_reorder): Mark parameter `clock_var' with
16015         ATTRIBUTE_UNUSED.
16016
16017         * i386.h (DEBUG_PRINT_REG): Constify a char*.
16018
16019 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16020
16021         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
16022         operand, for use in the Java front-end.
16023
16024 1999-12-10  Ben Collins  <bcollins@debian.org>
16025
16026         * configure.in: Fix typo for "-64" in 64bit as check.
16027         * configure: Rebuilt.
16028
16029 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
16030
16031         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
16032         appropriate.
16033
16034 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16035
16036         * c-parse.in (string): With -Wtraditional, warn if ANSI string
16037         concatenation is utilized.
16038
16039         * invoke.texi (-Wtraditional): Document it.
16040
16041 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16042
16043         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
16044         Cast a ptrdiff_t to long and pass it to printf with %ld.
16045
16046 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
16047
16048         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
16049         68881, we have no 68881 registers at all.
16050         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
16051         value in a 68881 register if it is available.
16052
16053 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
16054
16055         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
16056         for long long multiply-accumulate.
16057
16058 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
16059
16060         * loop.c (insert_loop_mem): Undo last change.
16061
16062 1999-12-10  David S. Miller  <davem@redhat.com>
16063
16064         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
16065         New functions.
16066         * config/sparc/sparc-protos.h: Add them.
16067         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
16068         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
16069         constraints which use those helpers.
16070         (EXTRA_CONSTRAINT): Use this new macro.
16071         * md.texi: Update sparc target constraints documentation.
16072         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
16073         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
16074         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
16075         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
16076         (movsf high/lo_sum split): Rework for new patterns.
16077         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
16078
16079 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
16080
16081         * c-common.c (c_common_nodes_and_builtins):
16082         Create __builtin_ptrdiff_t and __builtin_size_t.
16083
16084 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
16085
16086         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
16087
16088 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16089
16090         * regclass.c (globalize_reg): Re-instate test that allows
16091         fixed registers to be declared as a variable even after functions
16092         are defined.
16093
16094 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16095
16096         * i386.md (cpu attribute): Add "athlon".
16097         (athlon_decode): New attribute.
16098         (Athlon scheduling units definitions): New.
16099         (fcmp and shld patterns): Set athlon_decode to "vector".
16100         * i386.c (athlon_cost): New.
16101         (m_ATHLON): New.
16102         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
16103         x86_use_sahf): Set for Athlon.
16104         (x86_use_fiop): Unset for Athlon.
16105         (override_options): Define Athlon alignments and "athlon" name.
16106         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
16107         * i386.h (TARGET_ATHLON): New.
16108         (enum processor_type): Add PROCESSOR_ATHLON.
16109         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
16110         for CPU_DEFAULT==5
16111         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
16112
16113 1999-12-09  Andreas Jaeger  <aj@suse.de>
16114
16115         * loop.c (record_biv): Declare parameter as int.
16116
16117         * config/i386/i386-protos.h: Declare long_memory_operand.
16118
16119 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
16120
16121         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
16122         EXPR_WITH_FILE_LOCATION.
16123
16124 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
16125
16126         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
16127         in expander.
16128
16129         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
16130
16131         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
16132         updating code.
16133
16134 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
16135
16136         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
16137         default on linux64 again.
16138         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
16139         models for multilibing.
16140         * genmultilib: Accept | as alternative separator within a set in
16141         MULTILIB_OPTIONS.
16142
16143         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
16144
16145         * calls.c (precompute_arguments): Make sure initial_value contains
16146         value pseudo which CSE expects.
16147         * cse.c (struct set): New entry orig_src.
16148         (cse_insn): Set it early on entry, use it for libcall EQUIV note
16149         replacement.
16150
16151 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
16152
16153         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
16154
16155 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
16156
16157         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
16158
16159 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
16160
16161         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
16162         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
16163
16164         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
16165         if TARGET_ARCH32.
16166
16167         * longlong.h: Merge in changes from glibc.
16168         Also don't clobber %g2 register in 32bit SPARC assembly, so that
16169         -mno-app-regs libgcc can be compiled.
16170         * libgcc2.c: Add defines so that the updated longlong.h
16171         can be used in libgcc2.a. Also, make sure on most architectures
16172         (at least on all which have optimized code in longlong.h defined
16173         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
16174
16175 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16176
16177         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
16178         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
16179         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
16180         is GNU ld.
16181         * configure: Rebuilt.
16182
16183 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
16184
16185         * alpha.c (secondary_reload_class): For !BWX, sub-simode
16186         outputs require a register.
16187
16188 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
16189
16190         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
16191         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
16192         functions like dptoul will be resolved.
16193         (libgcc2.a): Make sure that the object files from DPBIT are named
16194         differently (prefix `_dp') from those that would be coming from
16195         FPBIT.
16196
16197 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
16198
16199         * configure.in: When target is sparc* and tm_file contains 64,
16200         test for 64bit support in assembler.  If not supported, remove
16201         sparc/t-sol2-64 from target-dependent Makefile fragments.
16202         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
16203         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
16204         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
16205         * acconfig.h (AS_SPARC64_FLAG): Added.
16206         * configure, config.in: Rebuilt.
16207         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
16208         support.  Use AS_SPARC64_FLAG.
16209
16210 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
16211
16212         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
16213         suitable for holding OFmode values so that gcc works with complex
16214         quad long doubles.
16215         (hard_64bit_mode_classes): Likewise.
16216
16217         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
16218         so that it is actually matched.
16219         (sethi_di_medlow): Likewise.
16220
16221         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
16222         as legitimate constant if -mvis.
16223         * config/sparc/sparc.md (movtf): Likewise.
16224         (clear_sf): Use const_double_operand.
16225         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
16226
16227         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
16228         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
16229         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
16230         routines, _Qp_* cannot be handled like that now.
16231         (INIT_TARGET_OPTABS): Likewise.
16232         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
16233         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
16234         sparc_emit_float_lib_cmp if ARCH64 and soft float.
16235         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
16236         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
16237         divtf3, sqrttf3): New expanders.
16238         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
16239         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
16240         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
16241         non-_hq patterns.
16242
16243         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
16244         * configure: Rebuilt.
16245         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
16246         -mcpu is given and we're doing 64bit compiles.
16247
16248 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
16249
16250         * loop.h (struct induction): Add multi_insn_incr.
16251         * loop.c (basic_induction_var): New multi_insn_incr argument.
16252         Set it if we search back through previous insns for the biv.
16253         (record_biv): New multi_insn_incr argument; fill in struct induction.
16254         (strength_reduce): Discard an iv with multiple bivs, any of
16255         which require multiple insns to increment.
16256
16257 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
16258
16259         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
16260         documentation.
16261
16262 1999-12-06  David S. Miller  <davem@redhat.com>
16263
16264         * combine.c (check_promoted_subreg): Do not conditionalize this upon
16265         PROMOTE_FUNCTION_RETURN.
16266
16267 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
16268
16269         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
16270         and handle REG_UNUSED note on insn.
16271
16272         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
16273         inner_mask instead of mask.
16274
16275 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
16276
16277         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
16278         zero if there was an error.
16279
16280 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
16281
16282         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
16283         output string.
16284
16285         * longlong.h: Fix clobbers in SPARC asm statements.
16286
16287         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
16288         valid sethi operations when TARGET_ARCH64.
16289
16290         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
16291         always use move_by_pieces to avoid infinite recursion.
16292         (restore_fixed_argument_area): Likewise.
16293
16294         * combine.c (check_promoted_subreg, record_promoted_value): New
16295         functions.
16296         (combine_instructions): Use them to retain nonzero and sign bit
16297         information after SUBREGs are eliminated by optimizations in
16298         this pass if PROMOTE_FUNCTION_RETURN.
16299
16300         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
16301         .register declaration. Don't use variables with __ prefixes.
16302
16303 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16304
16305         * fold-const.c (optimize_bit_field_compare): Only use one mode
16306         for both RHS and LHS in non-constant case.
16307
16308 1999-12-06  Nathan Sidwell  <nathan@acm.org>
16309
16310         * frame.c (start_fde_sort): Only allocate erratic array, if
16311         linear one was allocated. Return allocated flag.
16312         (fde_insert): Only insert, if there's a valid array.
16313         (fde_end_sort): Split, sort and merge if linear and erratic
16314         arrays exist, else just sort linear one.
16315         (search_fdes): New function. Linear search through original fde
16316         structure.
16317         (frame_init): Permit multiple initializations. Cope with
16318         memory shortages.
16319         (find_fde): Fallback on linear search, if failed to sort array.
16320         (__deregister_frame_info): Only free sorted array, if we
16321         allocated it.
16322
16323 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
16324
16325         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
16326
16327 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
16328
16329         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
16330
16331 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
16332
16333         * tree.h (special_function_p): Declare.
16334         * calls.c (special_function_p): Make it global.  Don't take `name'
16335         as a parameter.  Fix typo in 1999-11-28 change.
16336         (expand_cal): Adjust.
16337
16338 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
16339
16340         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
16341         * tree.h (EXPR_WFL_FILENAME): Define in terms of
16342         EXPR_WFL_FILENAME_NODE.
16343         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
16344         the TREE_CHAIN.
16345         * print-tree.c (print_note): Print TREE_PRIVATE and
16346         TREE_PROTECTED.
16347
16348         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
16349         the original die cannot be found.
16350
16351         * varray.h (varray_head_tag): Add elements_used.
16352         (VARRAY_PUSH): New macro.
16353         (VARRAY_POP): Likewise.
16354         (VARRAY_TOP): Likewise.
16355         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
16356         types.
16357         * varray.c (varray_init): Initialize elements_used.
16358         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
16359         (INTEGRATE_H): New variable.
16360         (integrate.o): Depend on INTEGRATE_H.
16361         (unroll.o): Likewise.
16362
16363         * function.h (insert_block_after_note): Declare.
16364         * function.c (insert_block_after_note): Split out from ...
16365         (retrofit_block): ... here.
16366
16367         * stmt.c (expand_fixup): Fix typo in comment.
16368
16369 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16370
16371         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
16372         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
16373         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
16374         (regmove_optimize, fixup_match_1): Likewise.
16375
16376 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16377
16378         * flow.c (flow_loops_dump): Add missing argument when calling
16379         flow_loop_nested_p.
16380
16381 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
16382             Greg McGary  <gkm@gnu.org>
16383
16384         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
16385         (init_attributes): Add A_NO_LIMIT_STACK.
16386         (decl_attributes): Handle A_NO_LIMIT_STACK.
16387         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
16388         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
16389         Handle stack bounds checking.
16390         * flags.h (flag_stack_check): Use the word 'probe' rather than
16391         'check', because the flag doesn't actually cause any checking to
16392         be done.
16393         * function.c (expand_function_start): Set
16394         current_function_limit_stack.
16395         * function.h (struct function): Add limit_stack.
16396         (current_function_limit_stack): Define.
16397         * invoke.texi (Code Gen Options): Document new options.
16398         * rtl.h: Declare stack_limit_rtx.
16399         * toplev.c (stack_limit_rtx): New variable.
16400         (decode_f_option): Handle new options -fstack-limit-register=REG,
16401         -fstack-limit-symbol=IDENT, -fno-stack-limit.
16402         (main): Add stack_limit_rtx as GC root.
16403         * tree.h (DECL_NO_LIMIT_STACK): New macro.
16404         (struct tree_decl): New member no_limit_stack.
16405
16406         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
16407         stack_limit_rtx.
16408         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
16409         (conditional_trap+1): Get new mnemonic correct.
16410         (conditional_trap+2): New pattern for DImode traps.
16411
16412         * config/m68k/m68k.c (output_function_prologue): Handle
16413         stack_limit_rtx.
16414         * config/m68k/m68k.md (trap): New insn.
16415         (conditional_trap): New insn.
16416         * md.texi (Standard Names): Document `trap' and
16417         `conditional_trap'.
16418         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
16419         so a cc0 setter doesn't get emitted at some random place in the
16420         function.
16421
16422         * config/i960/i960.md (trap): New insn.
16423         (conditional_trap): New expander.
16424         (conditional_trap+1, conditional_trap+2): New insns for signed
16425         and unsigned cases.
16426         * config/i960/i960.c (i960_function_prologue): Use
16427         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
16428
16429 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
16430                           Geoffrey Keating  <geoffk@cygnus.com>
16431
16432         * flags.h (warn_padded, warn_packed): Add global var decls.
16433         * toplev.c (warn_padded, warn_packed): Add global var defns.
16434         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
16435         * stor-layout.c (layout_record): Add local variable `type'
16436         to hold often-used TREE_TYPE (field).  Add local variable
16437         `unpacked_align' to hold alignment that would be in force
16438         if no `packed' attribute were present.  Warn if `packed' attribute
16439         is unnecessary, or even harmful.  Warn when gcc inserts padding
16440         to satisfy alignment requirements of members.  Use NULL_TREE
16441         when checking whether var_size is set.
16442         * invoke.texi: Document new flags.
16443
16444 1999-12-03  Nathan Sidwell  <nathan@acm.org>
16445
16446         * frame.c (fde_split): Reimplement to avoid variable sized array.
16447
16448 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16449
16450         * combine.c (try_combine): Before fixing up LOG_LINKS for the
16451         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
16452
16453 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
16454
16455         * invoke.texi: Document the mips option -mno-crt0
16456
16457 1999-12-02  Mike Karr  <mkarr@mathworks.com>
16458
16459         * cccp.c (argdata): Added free_ptr member.
16460         (macroexpand): Initialize free_ptr of each argument. When an
16461         argument's buffers are freed, if the argument's free_ptr corresponds
16462         to a buffer on the input stack, then return the free_ptr to that stack
16463         frame, otherwise, free it.
16464         (macarg): If an argument begins and ends on the same input stack level,
16465         then transfer the free_ptr of that buffer to the argument in case
16466         the stack is popped during the processing of a subsequent argument.
16467
16468 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
16469
16470         * loop.c (note_reg_stored): New function.
16471         (struct note_reg_stored_arg): New structure.
16472         (try_copy_prop): Change to be more conservative; only replace within
16473         one extended basic block and stop replacing if a store to the
16474         replacement reg is seen.
16475
16476 1999-12-02  Nick Clifton  <nickc@cygnus.com>
16477
16478         * config/fp-bit.c: Initialise all fields of the NAN
16479         constants.
16480
16481         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
16482         to HANDLE_PRAGMA.
16483
16484 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
16485
16486         * i386.md (extend?f?f2): Force the input into a register, not
16487         the output.
16488
16489 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
16490
16491         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
16492         regclass' sake.
16493         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
16494         alternative because setting up 64bit constant is usually costly,
16495         especially when reload is in progress or completed.
16496         (movdf_const_intreg_sp64): Likewise.
16497         (movdf_const_intreg split): Fix building up constants when
16498         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
16499
16500 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
16501
16502         * combine.c (if_then_else_cond): Use const_true_rtx instead of
16503         const1_rtx for return values in EQ/NE comparison against (const_int 0)
16504         case.
16505
16506         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
16507         (asm_file_start): Emit .am33 into assembly file when compiling for
16508         the AM33.
16509         (print_operand_address): Handle POST_INC addresses.
16510         (can_use_return_insn, initial_offset): Check AM33 registers too.
16511         (expand_prologue): Check & save AM33 registers too.
16512         (expand_epilogue): Similarly.
16513         (secondary_reload_class): Handle AM33 specific secondary reloads.
16514         (output_tst): Emit efficient code for the AM33 too.
16515         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
16516         (TARGET_SWITCHES): Add -mam33 switch.
16517         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
16518         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
16519         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
16520         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
16521         (enum reg_class, REG_CLASS_NAMES): Likewise.
16522         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
16523         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
16524         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
16525         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
16526         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
16527         (HAVE_POST_INCREMENT): Define.
16528         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
16529         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
16530         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
16531         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
16532         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
16533         (zero_extend to SI from QI/HI): Likewise.
16534         (sign_extend to SI from QI/HI): Likewise.
16535         (mulsidi3, umulsidi3): New patterns for the AM33.
16536         (tstsi with zero extension from QI/HI): Add AM33 variants.
16537         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
16538         (return_internal_regs, store_movm): Handle new AM33 registers.
16539         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
16540         (LIBGCC, INSTALL_LIBGCC): Likewise.
16541         * invoke.texi: Document new flags.
16542
16543 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16544
16545         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
16546         (addsi3_carry): Likewise.
16547         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
16548         (sbbsi3_carry): Likewise.
16549         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
16550         (mulhi3): Likewise.
16551         (test?i_1): Ensure that only one operand is memory.
16552         (conditional move patterns): likewise.
16553         (shift and rotate patterns): Rewrite to expander, add
16554         "binary_operator_ok" to the condition.
16555
16556         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
16557         * i386.h (procesor_costs): Add movzbl_load field.
16558         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
16559         non-Q registers, accept DImode registers anywhere.
16560         (Q_CLASS_P): New.
16561         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
16562         * i386.c (*_cost): Set value for movxbl_load field.
16563
16564         * (addsi): New add to lea splitter.
16565         (ashlsi): Likewise.
16566         (lea to add/shift peep2): New.
16567
16568 1999-12-01  Mark Salter <msalter@cygnus.com>
16569
16570         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
16571         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
16572         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
16573
16574 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16575
16576         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
16577         * i386.md (movsi_xor): New.
16578         (movsi_or): New.
16579         (movsi_1, movhi_1, movqi_1): Remove.
16580         (movsi_2): Rename to movsi_1.
16581         (movhi_2): Rename to movhi_1.
16582         (movqi_2): Rename to movqi_1.
16583         (movdi_1): Remove; remove splitter.
16584         (movdi_2): Rename to movdi_1.
16585         (divmodsi4 splitter): Do not emit clobbers for move patterns.
16586         (long move peep2): Do not create QI or HI mode mov0s
16587         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
16588
16589         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
16590         rewrite splitters.
16591
16592         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
16593         (abs?f2_if): Likewise.
16594
16595 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
16596
16597         * ggc.h (ggc_test_and_set_mark): New macro.
16598         (ggc_mark_rtx): Use ggc_test_and_set_mark.
16599         (ggc_mark_tree): Likewise.
16600         (ggc_mark_rtvec): Likewise.
16601         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
16602
16603 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
16604
16605         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
16606         containing types.
16607         (decl_scope_table): Just an array of trees now.
16608         (push_decl_scope): Simplify.
16609         (dwarf2out_init): Adjust.
16610         (local_scope_p): New fn.
16611         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
16612         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
16613         (gen_typedef_die): Likewise.
16614         (gen_lexical_block_die): Don't call push/pop_decl_scope.
16615         (gen_inlined_subroutine_die): Likewise.
16616         (gen_abstract_function): Set current_function_decl temporarily.
16617         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
16618         Handle block extern declarations.  Don't call push/pop_decl_scope.
16619         (gen_decl_die): Fix logic for block externs.
16620
16621 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16622
16623         * calls.c (special_function_p): Remove `realloc' and add `strdup'
16624         to the list of functions which have attribute malloc by default.
16625
16626 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16627
16628         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
16629         integer constant does not match the traditional type, limit the
16630         warnings to cases where the base of the type is ten.
16631
16632         * invoke.texi (-Wtraditional): Document it.
16633
16634 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16635
16636         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
16637         * rs6000.md: Only access a CONST_INT with INTVAL
16638
16639 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
16640
16641         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
16642         (compute_nearerout): Likewise.
16643         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
16644         size_t to unsigned long for formatting.
16645
16646 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
16647
16648         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
16649         Allow the user to override call-used/fixed state of %g2-5
16650         registers from the command line (with the exception of %g4 for
16651         embedded model).
16652         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
16653         there is a higher chance of having a leaf function.
16654         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
16655         for ARCH64 which has %ccr register.
16656         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
16657         patterns.
16658         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
16659         insn accept into delay slot any insn which does not use %[ol]
16660         registers.  Accept some LO_SUM and shift left by 1 for the normal
16661         restore case.
16662         (output_function_epilogue): Likewise.
16663         (epilogue_renumber): Added argument which inhibits any renumbering
16664         and just tests if the rtx does not use any %[ol] registers.
16665         (output_return): Reflect above change.
16666
16667 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
16668
16669         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
16670         aggregate passing for sizes <= 16 bytes.
16671
16672 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
16673
16674         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
16675         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
16676         * reload.c (find_dummy_reload): Likewise.
16677         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
16678         * reload1.c (reload_as_needed): Likewise.
16679         * stupid.c (stupid_find_reg): Likewise.
16680         * tm.texi (Obsolete Register Macros): Delete section.
16681         * gmicro.h: Remove all traces of the two macros.
16682         * i386.h: Likewise.
16683         * m88k.h: Likewise.
16684         * mips.h: Likewise.
16685
16686 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
16687
16688         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
16689         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
16690         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
16691         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
16692         units for the sparclite86x chip.
16693         (flush): Revert October 14th change; add SImode specifically.
16694         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
16695         * invoke.texi: Document it.
16696
16697 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
16698
16699         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
16700         psimode_truncation_operand.
16701
16702         * config/mn10200/mn10200.c (psimode_truncation_operand): New
16703         function.  Return true if the operand is either a MEM valid
16704         for a PSImode address or not a MEM at all.
16705
16706         * config/mn10200/mn10200.md (truncsipsi2): Use
16707         psimode_truncation_operand.
16708
16709 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16710
16711         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
16712         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
16713         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
16714         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
16715         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
16716         (flow_loop_level_compute, low_loops_level_compute): Likewise.
16717         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
16718         * basic-block.h: Protect from multiple inclusion.
16719         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
16720         (struct loops, struct loop): Define structures.
16721         * sbitmap.c (sbitmap_a_subset_b_p): New function.
16722         * sbitmap.h: Protect from multiple inclusion.
16723         (sbitmap_a_subset_b_p): Add prototype.
16724         * Makefile.in (LOOP_H): New macro.
16725         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
16726
16727 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
16728
16729         * cppinit.c (CAT): The argument list of this macro may not contain
16730         spaces !
16731
16732 1999-11-29  David S. Miller  <davem@redhat.com>
16733
16734         Move quantity tables and register equivalence chains into
16735         per-qty and per-register structure arrays respectively.
16736         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
16737         qty_const_insn, qty_comparison_code, qty_comparison_const,
16738         qty_comparison_qty): Delete, replace with...
16739         (qty_table): this structure table.
16740         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
16741         (reg_eqv_table): this structure table.
16742         (make_new_qty): Add argument MODE.  Caller updated.
16743         Update to use qty_table and reg_eqv_table.
16744         (make_regs_eqv, delete_reg_equiv, insert_regs,
16745         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
16746         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
16747         cse_process_notes, cse_main, cse_basic_block): Likewise.
16748
16749 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16750
16751         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
16752         operation if C is negative.
16753         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
16754         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
16755         law for some divisions if constant is negative and change other
16756         divisions to the opposite rounding.
16757
16758         * expr.c (store_constructor_field): If bit position is not multiple
16759         of alignment of TARGET's mode, use BLKmode.
16760
16761         * expr.c (expand_expr_unaligned): Add more code from full case
16762         that is needed when OP0 is in a register.
16763
16764 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16765
16766         * dwarfout.c (field_byte_offset): Size can be zero if there was
16767         an error.
16768
16769 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
16770
16771         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
16772         (associate_trees): Delete unused var TEM.
16773         (extract_muldiv): Delete unused var CANCEL_P.
16774
16775         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
16776         (target_isinf, target_isnan, target_negative): Add return types to
16777         function definitions.
16778
16779 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
16780
16781         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
16782         * fixinc/hackshell.tpl: ditto
16783         * fixinc/fixtests.c(double_slash_test): more C++ header testing
16784         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
16785
16786 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
16787
16788         * reload.c (push_reload): When looking for a register to put into
16789         reg_rtx, make sure all hard regs in a multi-reg register are in the
16790         right class and nonfixed.
16791
16792         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
16793         pending_read_insns, pending_write_insns, pending_read_mems,
16794         pending_write_mems, pending_list_length, last_pending_memory_flush,
16795         last_function_call, sched_before_next_call): Move static variables
16796         into a structure.
16797         (bb_ prefixed versions): Replace with single array bb_deps.
16798         (struct deps): New structure.
16799         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
16800         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
16801         argument of type "struct deps *"; use that instead of global
16802         variables.  All callers changed.
16803         (init_rgn_data_dependencies): Delete function.
16804         (init_rtx_vector): Delete function.
16805         (init_deps): New function.
16806
16807         (free_pending_lists): Simplify, we always use the bb_deps array even
16808         if only one basic block.
16809         (compute_block_backward_dependences): Likewise.
16810         (schedule_region): Likewise.
16811
16812         (propagate_deps): New function, broken out of
16813         compute_block_backward_dependences.
16814         (compute_block_backward_dependences): Use it.
16815
16816         * alpha.md: Delete useless patterns that tried to work around
16817         register elimination problems.
16818
16819         * unroll.c (loop_iterations): Don't abort if iteration variable
16820         was made by loop.
16821
16822         From Joern Rennecke:
16823         * reload1.c (reloads_conflict): Reverse test comparing operand
16824         numbers when testing for conflict between output/outaddr reloads.
16825
16826 1999-11-29  David S. Miller  <davem@redhat.com>
16827
16828         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
16829         arg.
16830         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
16831
16832 1999-11-28  Robert Lipe  <robertl@cygnus.com>
16833
16834         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
16835         table from .fini into .dtor.
16836
16837 1999-11-28  Anthony Green  <green@cygnus.com>
16838
16839         * tree.h (struct tree_decl): Add malloc_flag.
16840         (DECL_IS_MALLOC): Define.
16841         * c-common.c (attrs): Add A_MALLOC attribute.
16842         (init_attributes): Add this attribute to the table.
16843         (decl_attributes): Handle malloc attribute.
16844         * calls.c (special_function_p): Check for the malloc attribute.
16845         * extend.texi (Function Attributes): Document malloc attribute.
16846
16847 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
16848
16849         * pa.md (reload shift-add patterns): Remove.
16850
16851 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16852
16853         * reorg.c (dbr_schedule) Print more statistics. Corrected
16854         problem when printing info when 3 delay slots are filled.
16855
16856 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
16857
16858         * combine.c (setup_incoming_promotions): Pass an outgoing
16859         regno to FUNCTION_ARG_REGNO_P which it expects.
16860
16861 1999-11-28  Andreas Jaeger  <aj@suse.de>
16862
16863         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
16864
16865 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
16866
16867         * cccp.c (do_include): Avoid initialization of automatic variable.
16868
16869         * integrate.c (mark_stores): Function definition made void, to match
16870         previous declaration.
16871         * regclass.c (dump_regclass): Ditto.
16872         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
16873
16874 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16875
16876         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
16877         known to be multiple of divisor.
16878
16879         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
16880
16881         * combine.c (try_combine): Add code to try to merge a set of a
16882         two-word pseudo to a constant with a setting of one of those words
16883         to a constant.
16884
16885         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
16886         (split_tree): Completely rework to make more general.
16887         (make_range, fold): Call negate_expr.
16888         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
16889         (fold, associate): Call new split_tree and associate_trees.
16890         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
16891
16892 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
16893
16894         * loop.c (try_copy_prop): Avoid GNU C extension.
16895
16896 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
16897
16898         * except.c (init_eh_for_function): Still zero eh_return_context,
16899         eh_return_stack_adjust, and eh_return_handler.
16900
16901         * except.h (eh_status): Adjust documentation for x_protect_list.
16902         (begin_protect_partials): New function.
16903         * except.c (enqueue_eh_entry): Fix formatting.
16904         (get_first_handler): Add consistency check.
16905         (add_partial_entry): Adjust usage of protect_list.
16906         (emit_cleanup_handler): Save and restore ehqueue.
16907         (expand_start_all_catch): Add comment.
16908         (begin_protect_partials): New function.
16909         (end_protect_partials): Adjust usage of protect_list.
16910         (init_eh_for_function): Use xcalloc.
16911
16912 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16913
16914         * c-common.c (check_format_info): Don't call a variadic function
16915         with a non-literal format string.
16916
16917         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
16918
16919         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
16920         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
16921         Likewise.
16922
16923         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
16924         Likewise.
16925
16926         * collect2.c (collect_wait): Likewise.
16927
16928         * dbxout.c (dbxout_type): Likewise.
16929
16930         * gcc.c (do_spec_1): Likewise.
16931
16932         * genemit.c (gen_insn, gen_expand): Likewise.
16933
16934         * genrecog.c (write_switch, write_subroutine): Likewise.
16935
16936         * mips-tfile.c (catch_signal, botch): Likewise.
16937
16938         * print-rtl.c (print_rtx): Likewise.
16939
16940         * toplev.c (default_print_error_function, report_error_function,
16941         _fatal_insn): Likewise.
16942
16943 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
16944
16945         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
16946
16947 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16948
16949         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
16950         operations when needed.
16951         * i386.md (fop_?f_comm): New.
16952         (fop_?f_1): Do not accept commutative operands.
16953
16954 1999-11-25  Andreas Jaeger  <aj@suse.de>
16955
16956         * config/mips/mips.md (casesi_internal): Add missing brace.
16957
16958 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
16959
16960         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
16961         (splice_child_die): Handle moving a child DIE from the declaration
16962         DIE of a class to its specification.
16963         (gen_struct_or_union_type_die): Use 'complete' consistently.
16964         (gen_decl_die): Generate the virtual context DIE first.
16965         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
16966
16967 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
16968
16969         * config/mips/mips.md (call_value_multiple_interanal1): New.
16970
16971 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
16972
16973         * dwarf2out.c (free_AT, free_die): New fns.
16974         (remove_children): Call them.
16975         (output_line_info): Disable removal of duplicate notes.
16976
16977         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
16978         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
16979         means pretend the type isn't defined.
16980         Don't defer emitting types.
16981         (gen_type_die_for_member): New fn.
16982         (gen_decl_die): Call it.
16983         (splice_child_die): New fn.
16984         (gen_member_die): Call it rather than generate duplicate dies.
16985
16986         Defer emitting information for the abstract instance of an inline
16987         until we either inline it or emit an out-of-line copy.
16988         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
16989         from output_inline_function if DECL_ABSTRACT is also set.
16990         (block_ultimate_origin): Likewise.
16991         (gen_abstract_function): New fn.
16992         (gen_decl_die, gen_inlined_subroutine_die): Call it.
16993         (gen_subprogram_die):  An abstract instance is not a declaration
16994         just because it doesn't match current_function_decl.  Don't abort
16995         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
16996         has an abstract origin.
16997         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
16998         abstract instance here.
16999
17000 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
17001
17002         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
17003         where we need to reload fpul from a system register.
17004
17005 1999-11-24  Andreas Jaeger  <aj@suse.de>
17006
17007         * config/mips/linux.h (CPP_PREDEFINES): Added.
17008         (LINK_SPEC): Remove -Y since this is only needed on sparc.
17009
17010 1999-11-24  Andreas Jaeger  <aj@suse.de>
17011
17012         * config/mips/linux.h (TARGET_VERSION): Added.
17013         (HANDLE_SYSV_PRAGMA): Added.
17014         (DEFAULT_VTABLE_THUNKS): Added.
17015
17016 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
17017
17018         * local-alloc.c (qty): New structure and static variable.
17019         (qty_phys_reg): Remove, all references changed to qty.
17020         (qty_n_refs): Likewise.
17021         (qty_min_class): Likewise.
17022         (qty_birth): Likewise.
17023         (qty_death): Likewise.
17024         (qty_size): Likewise.
17025         (qty_mode): Likewise.
17026         (qty_n_calls_crossed): Likewise.
17027         (qty_alternate_class): Likewise.
17028         (qty_changes_size): Likewise.
17029         (qty_first_reg): Likewise.
17030         (alloc_qty): Rename variable QTY to QTYNO.
17031         (finf_free_reg): Likewise.
17032         (local_alloc): Allocate qty, do not allocate the removed variables.
17033
17034 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
17035
17036         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
17037         when -membedded-pic is passed.
17038
17039         * config/mips/mips.md (casesi): Handle 64-bit case too.
17040         (casesi_internal_di): New insn.
17041
17042         * config/mips/mips.c (embedded_pic_offset): Always make the
17043         embedded-pic subtractions relative to the name of the current
17044         function by use of the magic string "..CURRENT_FUNCTION".
17045         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
17046
17047 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
17048
17049         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
17050         of (const_int 0), when what we really care about is
17051         whether it's a zero constant anyway.
17052         (div_trap_mips16): Likewise.
17053
17054 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
17055
17056         * loop.c (loop_optimize): Always find_loop_tree_blocks and
17057         unroll_block_trees when generating debuggable code.
17058
17059         * tree.h (unsave_expr_1): New function.
17060         (lang_unsave): New variable.
17061         (get_callee_fndecl): New function.
17062         * tree.c (unsave_expr_now_r): New function.
17063         (lang_unsave): Define.
17064         (unsave_expr_1): Likewise.
17065         (unsave_expr_now_r): Split out from unsave_expr_now.
17066         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
17067         call unsave_expr_now_r.
17068         (get_callee_fndecl): Define.
17069
17070         * Makefile.in (gencheck): Don't depend on lang_tree_files.
17071         (gencheck.o): Do depend on lang_tree_files.
17072
17073         * integrate.h (copy_decl_for_inlining): New declaration.
17074         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
17075         (copy_decl_for_inlining): New function.
17076         (integrate_parm_decls): Use it.
17077         (integrate_decl_tree): Likewise.
17078
17079 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
17080
17081         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
17082         the second two from the first.
17083         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
17084         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
17085         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
17086         ISA_HAS_FP4.
17087         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
17088         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
17089         ISA_HAS_FP4.
17090
17091 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
17092
17093         * pa.md (call_internal_symref, call_value_internal_symref): No mode
17094         needed on the address operand.
17095         * pa.c (call_operand_address): Check for the correct mode.
17096
17097 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
17098
17099         * loop.c: Include "basic-block.h".
17100         (try_copy_prop, replace_loop_reg): New functions.
17101         (load_mems): Detect registers that just hold copies of the hoisted
17102         mem, and call try_copy_prop to eliminate them.
17103         * Makefile.in (loop.o): Update dependencies.
17104
17105 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
17106
17107         * Makefile.in (gencheck.o): Depend on gencheck.h.
17108         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
17109         (insn-peep.o): Depend on except.h and function.h.
17110         (insn-attrtab.o): Depend on RECOG_H.
17111         (insn-output.o): Depend on toplev.h and flags.h.
17112         (gengenrtl.o): Depend on real.h.
17113         (gen-protos.o): Depend on cpplib.h and cpphash.h.
17114         Unify all dependencies to be on RECOG_H rather than recog.h.
17115
17116 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17117
17118         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
17119         * configure.in: Try building a bi-arch 32/64-bit compiler on
17120         sparc-*-solaris2.7 and higher.
17121         * configure: Rebuild.
17122
17123 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
17124
17125         * config/freebsd.h: New, FreeBSD architecture independent file.
17126         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
17127         independent pieces.
17128         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
17129         directly by i386/freebsd.h.
17130         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
17131         independent configuration file.
17132         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
17133         directly by i386/freebsd.h.
17134         * configure: Rebuilt.
17135
17136         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
17137         which is in the user's namespace.
17138         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
17139         `i386' which is not in our namespace.
17140
17141 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
17142
17143         * invoke.texi (ARM Options): Add in -mno-alignment-traps
17144
17145 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
17146
17147         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
17148         (add_dwarf_attr, add_child_die): Just push onto the front.
17149         (reverse_die_lists): New fn.
17150         (add_sibling_attributes): Use it.
17151         (push_decl_scope): Reorganize.
17152         (add_name_and_src_coords_attributes): Don't set file and line for
17153         an artificial decl.
17154         (gen_subprogram_die): An artificial function doesn't need to match
17155         file and line.
17156         (gen_compile_unit_die): Return the generated die.  Only add
17157         AT_comp_dir if the filename is relative.
17158         (remove_AT): Simplify loop.  Also free string values.
17159         (output_die): A DIE ref can't be null.
17160         (output_value_format, value_format): Take a dw_attr_ref.
17161         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
17162         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
17163         AT_addr, AT_lbl): New fns.
17164         (various): Use them.
17165         (various): Constify.
17166
17167 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17168
17169         * combine.c (combine_simplify_rtx): When handling a SUBREG,
17170         take SUBREG_WORD into account.
17171         (if_then_else_cond): Likewise.
17172
17173 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
17174
17175         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
17176         clause from BSD license, pursuant with
17177
17178           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
17179
17180 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
17181
17182         * loop.c (load_mems): Reformat slightly.
17183         * basic-block.h (regset_head): New typedef.
17184         (INIT_REG_SET): New macro.
17185
17186 1999-11-22  Bruce Korb  <autogen@linuxbox.com
17187
17188         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
17189         (mips-dec-bsd*): non-functional code
17190         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
17191
17192         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
17193         added three replacement fixes
17194         (no_double_slash): removed comments that are not (any longer) pertinent
17195         (bad_lval): this fix currently runs against many files.
17196         The comment seems to indicate that we should select for files
17197         containing 'pragma extern_prefix'.
17198
17199         * fixinc/fixinc.x86-linux-gnu: deleted
17200         * fixinc/inclhack.sh:  regen
17201         * fixinc/fixincl.x:  regen
17202         * fixinc/fixincl.sh:  regen
17203
17204 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
17205
17206         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
17207         its code is INSN and it has no notes.
17208
17209 1999-11-22  Andrew Haley  <aph@cygnus.com>
17210
17211         * varasm.c (function_defined): Remove.
17212         (make_function_rtl): Don't set function_defined.
17213         (make_decl_rtl): Remove global register warning.
17214         * regclass.c (no_global_reg_vars): New variable.
17215         (globalize_reg): Warn if function has already been defined.
17216         (regclass_init): Set no_global_reg_vars.
17217
17218 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
17219
17220         * regclass.c (reg_pref): New structure and static variable
17221         (prefclass): Delete.
17222         (altclass): Delete.
17223         (all uses of prefclass and altclass): Use reg_pref instead.
17224
17225 1999-11-21  Nick Clifton  <nickc@cygnus.com>
17226
17227         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
17228         -malignment-traps.
17229         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
17230         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
17231         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
17232
17233 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
17234
17235         * varasm.c (output_constructor): Solve problem with long long
17236         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
17237
17238 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
17239
17240         * global.c (allocno): New structure and static variable.
17241         (allocno_reg): Remove, all references replaced by allocno.
17242         (allocno_size): Likewise.
17243         (hard_reg_conflicts): Likewise.
17244         (hard_reg_preferences): Likewise.
17245         (hard_reg_copy_preferences): Likewise.
17246         (hard_reg_full_preferences): Likewise.
17247         (regs_someone_prefers): Likewise.
17248         (allocno_calls_crossed): Likewise.
17249         (allocno_n_refs): Likewise.
17250         (allocno_live_length): Likewise.
17251         (find_reg): Rename ALLOCNO to NUM.
17252
17253         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
17254         references updated.
17255         (may_move_out_cost): New variable.
17256         (init_reg_sets_1): Initialize may_move_out_cost.
17257         (record_reg_classes): Use may_move_out_cost.
17258
17259         * regclass.c (dump_regclass): New function.
17260         (regclass): New parameter DUMP, call DUMP_REGCLASS.
17261         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
17262         pass rtl_dump_file to regclass.
17263         * rtl.h (regclass): Update prototype.
17264
17265 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
17266
17267         * i386.md (neg, not and abs patterns): Revmap to use
17268         ix86_expand_unary_operator and ix86_unary_operator_ok.
17269         (add?f and sub?f expanders): Force operand 1 to register.
17270         * i386.c (ix86_expand_unary_operator): Rewrite.
17271         (ix86_unary_operator_ok): Ensure that memory operands
17272         match real opcode.
17273         (ix86_binary_operator_ok): Do not allow operand 1 to
17274         come into memory and operand 0 not.
17275         (ix86_expand_binary_operator): Ensure that
17276         src1 is not non-matching memory.
17277
17278         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
17279         to support integer registers and memory.
17280         (abss?2_integer): Likewise.
17281
17282         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
17283         (REG_CLASS_NAMES): Likewise.
17284         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
17285         and GENERAL_REGS.
17286         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
17287         (movsf): Likewise; unify 4th and 5th alternative.
17288         (pushdf): Likewise.
17289         (movdf_1): Likewise; rename to movdf_integer.
17290         (pushxf): Likewise; rename to pushxf_integer; fix output template;
17291         remove redundant splitter.
17292         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
17293         (movdf_nointeger): New.
17294         (movxf_nointeger): New.
17295         (pushxf_nointeger): New.
17296
17297         * i386.md (extend?f?f): Split to expander and pattern, refuse two
17298         memory operands in patterns.
17299         (fop*): Refuse two memory operands.
17300
17301         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
17302         on !TARGET_USE_CLTD CPUs.
17303
17304 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
17305
17306         * extend.texi: Document C++ restricted pointers and references.
17307
17308 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
17309
17310         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
17311         (invalidate_skipped_set): Call it unconditionally.
17312         (cse_set_around_loop): Likewise.
17313
17314 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
17315
17316         * rtl.texi (mem): Add documentation for alias-set argument
17317         to RTX `mem'.
17318
17319 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
17320
17321         * i386.h (struct_processor_costs): New fields int_load, int_store,
17322         fp_move, fp_load and fp_store
17323         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
17324         fp->int moves
17325         (MEMORY_MOVE_COST): New macro.
17326         * i386.c (386_cost): Define new fields.
17327         (i486_cost): Likewise.
17328         (pentium_cost): Likewise.
17329         (pentiumpro_cost): Likewise.
17330         (k6_cost): Likewise.
17331
17332 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
17333                           Geoffrey Keating  <geoffk@cygnus.com>
17334
17335         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
17336
17337         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
17338         MASK_ALIGN_INT.
17339
17340         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
17341         (TARGET_STRICT_ALIGNMENT): New macro.
17342         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
17343         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
17344         * invoke.texi (M680x0 Options): Document -mstrict-align.
17345
17346 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
17347                           Richard Henderson  <rth@cygnus.com>
17348
17349         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
17350         (ix86_split_long_move): Declare.
17351         * i386.c (split_xf, ix86_split_movdi): Remove.
17352         (ix86_split_to_parts, ix86_split_long_move): New.
17353         * i386.md (dimode move splitters): Use ix86_split_long_move.
17354         (dfmode move splitters): Likewise.
17355         (xfmode move splitters): Likewise.
17356         (movsf_1): Allow F->r.
17357         (movdf_1, movxf_1): Allow F->ro.
17358
17359 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
17360
17361         * except.h (struct eh_entry): Add goto_entry_p.
17362         (eh_region_from_symbol): Remove prototype.
17363         * except.c (find_func_region_from_symbol): New function.
17364         (emit_cleanup_handler): Likewise.
17365         (eh_region_from_symbol): Make it static.
17366         (add_new_handler): Verify the argument.
17367         (find_func_region): Update comment.
17368         (expand_eh_region_end): Expand handlers here, rater than waiting
17369         until expand_leftover_cleanups or start_all_catch.
17370         (expand_leftover_cleanups): Don't expand here.
17371         (expand_start_all_catch): Or here.
17372         (expand_rethrow): Check the return value from find_func_region.
17373         * function.c (expand_function_end): Emit the catch_clauses.
17374
17375 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
17376
17377         * integrate.c (expand_inline_function): Add necessary check for NULL.
17378
17379 1999-11-18  Nick Clifton  <nickc@cygnus.com>
17380
17381         * toplev.c (main): Correctly detect an unrecognised option.
17382
17383         * cppinit.c (cpp_handle_option): Do not claim to have consumed
17384         a -f option if it has not been recognised.
17385
17386 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
17387
17388         * basic-block.h (update_life_extent): Remove trailing comma on
17389         enumeration type list.
17390
17391 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17392
17393         * varasm.c (output_constructor) Solved problem with long long
17394         bitfields. Corrected calculating this_time and shift. Also
17395         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
17396
17397 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
17398
17399         * flow.c (split_edge): Take looping structure into account when
17400         determining where to put the new block note.
17401
17402 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
17403
17404         * Makefile.in (ggc-none.o): Provide host specific version if
17405         needed.
17406
17407 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
17408
17409         * cse.c (delete_trivially_dead_insns): Identify no-op insns
17410         containing subregs too.
17411
17412 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
17413
17414         * invoke.texi: Add documentation for -muninit-const-in-rodata.
17415         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
17416         (TARGET_UNINIT_CONST_IN_RODATA): Define.
17417         (text_section): Add switches -munint-const-in-rodata and
17418         -mno-uninit-const-in-rodata.
17419         (ASM_OUTPUT_COMMON): Remove.
17420         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
17421         const objects should be placed in read-only data. Otherwise declare
17422         them in common.
17423
17424 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
17425
17426         * jump.c (jump_optimize_1): Revert last change.
17427
17428 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
17429
17430         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
17431         test if optimizing for size.
17432
17433 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
17434
17435         * Makefile.in (toplev.o): Depend on except.h.
17436         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
17437
17438 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
17439
17440         * i386.md (divmodsi4): Rewrite to expander.
17441         (*divmodsi4_nocltd): New.
17442         (*divmodsi4_cltd): New.
17443         (divmodsi4 splitter): Handle the case when input comes in edx.
17444         (udivmodhi4): Do not use constraints in exander.
17445         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
17446
17447 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
17448
17449         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
17450         for the common case.
17451
17452 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
17453
17454         * explow.c (hard_function_value): Add outgoing argument.
17455         * expr.h (hard_function_value): Declare it.
17456         * calls.c (expand_call, emit_library_call_value): Update callers.
17457         * function.c (aggregate_value_p): Ditto.
17458         (diddle_return_value): Must look at the outgoing registers
17459         on archs with register windows.
17460
17461 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
17462
17463         * alpha.c (alpha_build_va_list): Use make_lang_type and
17464         initialize TYPE_NAME for the va_list record.
17465
17466         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
17467
17468         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
17469         for printing.
17470         * ggc.h (struct ggc_statistics): Rearrange elements for better
17471         packing on 64-bit hosts.
17472         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
17473         (compute_nearerout): Likewise.
17474
17475 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
17476
17477         * config/rs6000/rs6000.c (first_reg_to_save): Save
17478         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
17479
17480 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
17481
17482         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
17483         notion of nesting to find the DIE for a type or function.
17484         DIEs can go in limbo even if we got a context_die.
17485         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
17486         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
17487         for local type.
17488         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
17489         (gen_type_die): Writing out the context doesn't cause member class
17490         template instantiations to be written out as well.
17491
17492 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
17493
17494         * rs6000.h (ASM_OUTPUT_DEF): New.
17495         Based on proposed addition from David Edelsohn.
17496
17497 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
17498             Bruce Korb  <autogen@linuxbox.com>
17499
17500         * fixinc/inclhack.def
17501         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
17502         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
17503                 in net/inet.h.
17504         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
17505         (svr4_endian): enabled with SVR5
17506         (svr4_mkdev): simplified syntax and enabled with SVR5
17507
17508 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
17509
17510         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
17511         * configure: Rebuilt.
17512         * config/t-freebsd-thread: New file.
17513
17514 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
17515
17516         * i386.c (ix86_decompose_address): Verify the base is a REG
17517         before trying to examine its register number.
17518
17519         * basic-block.h: Remove all #defines and prototypes related to
17520         integer lists.
17521         (free_bb_mem, compute_preds_succs): Remove prototype.
17522         * rtl.h (free_bb_mem): Remove prototype.
17523         * flow.c (alloc_int_list_node); Remove function.
17524         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
17525         (compute_preds_succs, free_bb_mem): Likewise.
17526         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
17527         * toplev.c (rest_of_compilation): Likewise.
17528         * haifa-sched.c (build_control_flow): Use flow generated edge
17529         list to build the haifa specific edge list.
17530         (find_rgns): Use new CFG data structures instead of pred/succ lists.
17531         (schedule_insns): Do not build pred/succ lists anymore.  Instead
17532         build the edge table.
17533
17534         * basic-block.h (dump_bb_data): Remove declaration.
17535         * flow.c (dump_bb_data): Remove function.
17536         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
17537         (sbitmap_union_of_predsucc): Likewise.
17538
17539         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
17540         argument.  All callers changed.
17541         (delete_null_pointer_checks_1): No longer need to compute the
17542         pred/succ lists.
17543
17544         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
17545         All callers changed.
17546         (pre_expr_reaches_here_p_work): Likewise.
17547         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
17548         * lcm.c (compute_laterin): Fix initialization of LATER.
17549         (compute_nearerout): Similarly for NEARER.
17550
17551 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17552
17553         * cse.c (set_nonvarying_address_components): Delete unused function.
17554         (refers_to_p): Likewise.
17555
17556 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
17557
17558         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
17559         needed.
17560
17561 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17562
17563         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
17564         definition in do while (0).
17565
17566 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
17567
17568         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
17569
17570 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
17571
17572         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
17573
17574 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
17575
17576         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
17577         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
17578         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
17579         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
17580
17581         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
17582         saved on the stack.  Output more accurate stack frame statistics
17583         into assembler file.
17584
17585 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
17586
17587         * genextract.c (record_insn_name): New function.
17588         (get_insn_name): No longer a stub.
17589         (main): Call record_insn_name for each insn.  After each label
17590         written, print the insn name in a comment.
17591
17592 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17593
17594         * output.h (const_section, init_section, fini_section): Add
17595         prototypes.
17596
17597         * alpha/elf.h (const_section): Delete declaration.
17598
17599         * svr4.h (const_section): Likewise.
17600
17601 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
17602
17603         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
17604         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
17605         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
17606         expressions.
17607         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
17608         variable-sized array bounds.
17609
17610 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
17611
17612         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
17613         ASM_OUTPUT_LABEL.
17614
17615 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17616
17617         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
17618         addresses the same way GO_IF_LEGITIMATE_INDEX does.
17619
17620 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17621
17622         * cse.c (hash_arg_in_struct): Delete.
17623         (struct table_elt): Delete elt in_struct.
17624         (struct set): Delete elt src_in_struct.
17625         (merge_equiv_classes): Don't set either hash_arg_in_struct or
17626         the corresponding in_struct elts.
17627         (canon_hash): Likewise.
17628         (safe_hash): Likewise.
17629         (find_best_addr): Likewise.
17630         (record_jump_cond): Likewise.
17631         (cse_insn): Likewise.
17632
17633 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
17634
17635         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
17636
17637         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
17638         unsigned types.
17639
17640 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
17641
17642         * function.c (diddle_return_value): Put back check that the DECL_RTL
17643         for the function is a register.
17644
17645         * function.c (diddle_return_value): Use hard_function_value to
17646         get an rtx suitable for use in the USE/CLOBBER insn.
17647
17648         * global.c (global_conflicts): Update comments.
17649         (record_conflicts): No need to record conflicts between pseudos here.
17650
17651 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
17652
17653         * fixinc/fixincl.c: Added verbose levels for status messages
17654
17655 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17656
17657         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
17658         operand as argument to expand_and or expand_binop.
17659
17660 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
17661
17662         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
17663         gcc_add_string_root.
17664
17665 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
17666
17667         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
17668
17669 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
17670
17671         * flow.c (compute_flow_dominators): Initially put all blocks on
17672         the worklist.
17673         * lcm.c (compute_antinout_edge, compute_available): Similarly.
17674         * gcse.c (compute_cprop_avinout): Remove.
17675         (compute_cprop_data): Use compute_available.
17676         (delete_null_pointer_checks_1): Use compute_available.
17677
17678         * basic-block.h (compute_available): Returns a void now.
17679         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
17680         to return a value anymore.
17681         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
17682         worklists.  Fix boundary cases. Compute maximal solutions.
17683         (compute_laterin, compute_nearerout): Similarly.
17684
17685         * dwarf2out.c (add_AT_location_description): Allow
17686         (mem (plus (pseudo) (...)) too.
17687
17688 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
17689
17690         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
17691
17692 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
17693                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17694
17695         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
17696
17697         * gansidecl.h: Likewise.
17698
17699         * rtl.c: Likewise.
17700
17701         * rtl.h: Likewise.
17702
17703         * toplev.h: Likewise.
17704
17705         * tree.c: Likewise.
17706
17707         * tree.h: Likewise.
17708
17709         * varray.c: Likewise.
17710
17711         * varray.h: Likewise.
17712
17713 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
17714
17715         * gcov.c (struct arcdata): Add hits and total, remove prob.
17716         (output_branch_counts): New.
17717         (process_args): Set output_branch_counts if -c.
17718         (calculate_branch_probs): Store hits and total instead of
17719         percentage.
17720         (output_data): Emit counts if output_branch_counts is true.
17721         * gcov.texi (Invoking Gcov): Document -c switch..
17722
17723 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
17724
17725         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
17726         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
17727
17728 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
17729
17730         * invoke.texi (C Dialect Options): Add missing builtins from
17731         c-common.c to list.
17732         * extend.texi (Other Builtins): Copy to this list.
17733
17734 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17735
17736         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
17737         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
17738         redundant bitmap.h.
17739
17740 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
17741
17742         * flow.c (compute_flow_dominators): No longer treat basic block 0
17743         or (n_basic_blocks - 1) specially.  Clear the AUX field before
17744         starting computation of doms/pdoms.  Fix initial state for pdoms.
17745
17746 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17747
17748         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
17749         match rtl.o's: added ggc.h and toplev.h
17750         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
17751         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
17752         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
17753
17754 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
17755
17756         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
17757         from HAVE_DOS_BASED_FILESYSTEM.
17758         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
17759         HAVE_DOS_BASED_FILESYSTEM.
17760         (main): Likewise.
17761         (split_directories): Only special-case DOS file names if
17762         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
17763         instead of explicit tests.  Conditionalize on !VMS.
17764         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
17765         tests.  Conditionalize on !VMS.
17766         (process_command): Only use make_relative_prefix if !VMS.
17767         (free_split_directories): Conditionalize on !VMS.
17768         (DIR_UP): Conditionalize on !VMS.
17769
17770 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17771
17772         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
17773
17774 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17775
17776         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
17777         case.
17778
17779 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
17780
17781         * invoke.texi (Environment Variables): Document relative path
17782         lookup.
17783         * gcc.c (DIR_UP): If not defined, define as "..".
17784         (standard_bindir_prefix): New static, holds target location to
17785         install binaries.
17786         (split_directories): New function to split a filename into
17787         component directories.
17788         (free_split_directories): New function, release memory allocated
17789         by split_directories.
17790         (make_relative_prefix): New function, make a relative pathname if
17791         the compiler is not in the expected location.
17792         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
17793         can figure out an appropriate prefix from argv[0].
17794         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
17795         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
17796         STANDARD_BINDIR_PREFIX.
17797
17798 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17799
17800         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
17801         in c4x.c.
17802         * config/c4x/c4x.h: Moved prototypes to c4x.h.
17803         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
17804         c4x_secondary_memory_needed) Delete.
17805         (fp_zero_operand): Add mode argument.
17806
17807 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
17808
17809         * reload1.c (reload_reg_free_for_value_p): Don't use a register
17810         that is in reload_reg_used.
17811
17812 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
17813
17814         * config/arm/arm-protos.h: New file: Prototypes for functions
17815         defined in arm.c and pe.c.
17816         * config/arm/arm.h: Fix compile time warnings.
17817         * config/arm/arm.c: Fix compile time warnings.
17818         * config/arm/pe.h: Fix compile time warnings.
17819         * config/arm/aout.h: Fix compile time warnings.
17820
17821 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
17822
17823         * config/m32r/m32r-protos.h: New file: Prototypes for functions
17824         defined in m32r.c
17825
17826         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
17827         Add support for subtargets.
17828         Add prototypes for new predicates.
17829         Add scheduling macros.
17830
17831         * config/m32r/m32r.c: Fix compile time warnings.
17832         (int8_operand): New predicate function.
17833         (reg_or_cmp_int16_operand): New predicate function.
17834         (extend_operand): New predicate function.
17835         (m32r_adjust_code): New scheduling function.
17836         (m32r_adjust_priorty): New scheduling function.
17837         (m32r_sched_init): New scheduling function.
17838         (m32r_sched_reorder): New scheduling function.
17839         (m32r_sched_variable_issue): New scheduling function.
17840         (direct_return): New codegen function.
17841         (m32r_not_same_reg): New rtl testsing function.
17842
17843         * config/m32r/m32r.md: Fix compile time warnings.
17844         Add support for pre decrement and post increment memory
17845         references.
17846         Add S<cc> patterns.
17847         Add fabs patterns.
17848
17849 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17850
17851         * global.c (EXECUTE_IF_CONFLICT): Don't define.
17852         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
17853         (find_reg): Likewise.
17854
17855 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
17856
17857         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
17858         to avoid assembler errors.
17859
17860 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
17861
17862         * config/v850/v850-protos.h: New file: Prototypes for functions
17863         defined in v850.c
17864         * config/v850/v850.h: Move prototypes to v850-protos.h
17865         * config/v850/v850.c: Move prototypes to v850-protos.h
17866         * config/v850/v850.md: Fix compile time warnings.
17867
17868         * config/fr30/fr30-protos.h: New file: Prototypes for functions
17869         defined in fr30.c
17870         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
17871         * config/fr30/fr30.c: Fix compile time warnings.
17872         * config/fr30/fr30.md: Fix compile time warnings.
17873
17874 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
17875
17876         * tree.h (get_containing_scope): Declare it.
17877         * tree.c (get_containing_scope): New fucntion.
17878         (decl_function_context): Use it.
17879         * toplev.c (rest_of_compilation): Use get_containing_scope.
17880
17881 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17882
17883         * Makefile.in (rtl.o): Depend on toplev.h.
17884
17885 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
17886
17887         * cse.c (delete_trivially_dead_insns): Replace alloca with
17888         xmalloc/xcalloc.
17889         * except.c (update_rethrow_references): Likewise.
17890         (init_eh_nesting_info): Likewise.
17891         * function.c (identify_blocks): Likewise.
17892         * gcse.c (dump_hash_table): Likewise.
17893         * graph.c (print_rtl_graph_with_bb): Likewise.
17894         * loop.c (combine_movables): Likewise.
17895         (move_movables): Likewise.
17896         (count_loop_regs_set): Likewise.
17897         (strength_reduce): Likewise.
17898         * profile.c (compute_branch_probabilities): New function, split
17899         out from ...
17900         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
17901         * regclass.c (regclass): Likewise.
17902         * regmove.c (regmove_optimize): Likewise.
17903         * toplev.c (compile_file): Likewise.
17904         (main): Don't mess with the stack rlimit.
17905
17906 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
17907
17908         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
17909         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
17910
17911 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
17912
17913         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
17914
17915 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
17916
17917         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
17918         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
17919         macro expansion.
17920
17921 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
17922
17923         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
17924
17925 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
17926
17927         * gcse.c (post_dominators): Kill.
17928         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
17929         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
17930         pass in a pdom array since we do not need pdoms.
17931         * haifa-sched.c (schedule_insns): Similarly.
17932         * flow.c (compute_dominators): Remove dead function.
17933         (compute_flow_dominators): Do not compute doms or pdoms if the
17934         caller does not request them.  Split up loop to build doms and
17935         pdoms.  Use a worklist to compute doms and pdoms.
17936         * basic-block.h (compute_dominators): Remove prototype.
17937
17938 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
17939
17940         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
17941         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
17942         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
17943         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
17944         (cant_move, fed_by_spec_load, is_load_insn): Remove.
17945         (schedule_region): Remove unused variable.
17946         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
17947
17948 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
17949
17950         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
17951         (update_equiv_regs): Likewise.
17952         (block_alloc): Likewise.
17953         * reg-stack.c (reg_to_stack): Likewise.
17954         (convert_regs_2): Likewise.
17955         * reload1.c (reload_as_needed): Likewise.
17956
17957 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
17958
17959         * Makefile.in (dbxout.o): Depend on ggc.h.
17960         (dwarf2out.o): Likewise.
17961         (xcoffout.o): Likewise.
17962         * dbxout.c: Include ggc.h.
17963         (dbxout_init): Register lastfile as a root.
17964         * dwarf2out.c: Include ggc.h.
17965         (dwarf2out_line): Register lastfile as a root.
17966         * xcoffout.c: Include ggc.h.
17967         (xcoffout_source_line): Register xcoff_lastfile as a root.
17968
17969 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
17970
17971         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
17972
17973 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
17974
17975         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
17976         defined.
17977         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
17978
17979 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17980
17981         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
17982         (EXECUTE_IF_CONFLICT): Likewise.
17983         (ALLOCNO_LIVE_P): Avoid signed division.
17984         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
17985         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
17986         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
17987
17988 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
17989
17990         * haifa-sched.c (schedule_block): Don't crash if there's no
17991         next insn for an interblock movement.
17992         (add_branch_dependences): Don't allow clobber insns to move either.
17993
17994 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
17995
17996         * i386.c (split_xf): New.
17997         * i386-protos.h: Declare it.
17998         * i386.md (movxf_1): Add general regs alternatives.
17999         (movxf_1+1): New splitter for same.
18000
18001 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
18002
18003         * function.c (purge_addressof_1): Add missing return values.
18004
18005 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
18006
18007         * function.c (is_addressof): New function.  Returns true if
18008         the given piece of RTL is an ADDRESSOF.
18009         (purge_addressof_1): Make boolean.  Return false if the
18010         ADDRESSOFs could not be purged.
18011         (purge_addressof): If ADDRESSOFs could not be purged from the
18012         notes attached to an insn, remove the offending note(s),
18013         unless they are attached to a libcall.
18014
18015 1999-11-05  Andreas Jaeger  <aj@suse.de>
18016
18017         * genoutput.c (null_operand =): Initialize all fields.
18018
18019         * errors.h: Add extern to prototypes.
18020
18021 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
18022
18023         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
18024         * configure: Rebuilt.
18025
18026 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18027
18028         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
18029         (mirror_conflicts): New function.
18030         (global_alloc): Call it.
18031         (expand_preferences): Remove redundant CONFLICTP test.
18032         (find_reg, dump_conflicts): Likewise.
18033         (prune_preferences): Process conflicts one word at a time.
18034
18035 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
18036
18037         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
18038         instead of an explicit loop.
18039
18040 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
18041
18042         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
18043         if REG_RETVAL check succeeds, then put classp in src_elt.
18044
18045 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
18046
18047         * function.c (pad_to_arg_alignment): Only update argument_pad
18048         if the argument's alignment is greater than STACK_BOUNDARY.
18049
18050 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
18051
18052         * bitmap.h (BITMAP_XFREE): New.
18053         * flow.c (life_analysis): Use it.
18054         (life_analysis_1): Free blocks.
18055
18056         * combine.c (undo_commit): New.
18057         (try_combine): Use it.  Don't zap undobuf.undos.
18058         (combine_instructions): Don't zap undobuf.undos; free the
18059         undobuf.frees list.
18060
18061         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
18062
18063         * stmt.c (cost_table_): New.
18064         (estimate_case_costs): Use it instead of xmalloc.
18065
18066         * toplev.c (compile_file): Reuse dumpname memory instead
18067         of strdup'ing it.
18068
18069 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
18070
18071         * reg-stack.c (convert_regs_1): Initialize target_stack->top
18072         after verifying an EH edge.
18073
18074         * haifa-sched.c (init_rgn_data_dependences): Correctly
18075         size bb_pending_lists_length when zeroing.
18076
18077 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
18078
18079         * function.c (diddle_return_value): New.
18080         (expand_function_end): Use it.
18081         * stmt.c (expand_null_return): Likewise.
18082         (expand_value_return): Likewise.
18083
18084         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
18085
18086         * reload1.c (reload): Don't remove return value clobbers.
18087
18088 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
18089
18090         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
18091
18092 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
18093
18094         * cse.c (cse_main): Use xmalloc, not alloca.
18095         (cse_basic_block): Likewise.
18096         * local-alloc.c (local_alloc): Likewise.
18097
18098 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
18099                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18100
18101         * rtl.c: Include toplev.h.
18102         (fatal): Remove declaration.
18103
18104 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
18105
18106         * haifa-sched.c (schedule_block): Fix thinko.
18107
18108 1999-11-03  James McKelvey <mckelvey@fafnir.com>
18109
18110         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
18111         S_IR* defined values
18112
18113 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
18114
18115         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
18116         call `malloc' instead.
18117
18118 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
18119
18120         * flags.h (flag_renumber_insns): Declare.
18121         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
18122         renumbering table.
18123         * rtl.h (renumber_insns): Change prototype.
18124         * toplev.c (flag_renumber_insns): Define.
18125         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
18126
18127 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
18128
18129         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
18130         and fpsqrtd.  Use them and create fdiv function unit to more
18131         accurately represent fpu sqrt pipeline semantics on UltraSparc.
18132         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
18133
18134 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
18135
18136         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
18137         3 on UltraSparc.
18138         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
18139         insn into ready list, do not use just a raw swap.
18140
18141 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
18142
18143         * rtl.h (renumber_insns): New function.
18144         (remove_unnecessary_notes): Likewise.
18145         * emit-rtl.c (renumber_insns): Define.
18146         (remove_unncessary_notes): Likewise.
18147         * toplev.c (rest_of_compilation): Remove dead code.
18148         Use renumber_insns and remove_unncessary_notes.
18149
18150         * gcse.c (struct null_pointer_info): New type.
18151         (get_bitmap_width): New function.
18152         (current_block): Remove.
18153         (nonnull_local): Likewise.
18154         (nonnull_killed): Likewise.
18155         (invalidate_nonnull_info): Take a null_pointer_info as input.
18156         (delete_null_pointer_checks_1): New function.
18157         (delete_null_pointer_checks): Use it.
18158
18159         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
18160         (split_edges): Likewise.
18161         (schedule_block): Likewise.
18162         (compute_block_backward_dependencies): Likewise.
18163         (schedule_region): Likewise.
18164         (schedule_insns): Likewise.
18165
18166 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
18167
18168         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
18169         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
18170         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
18171         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
18172         * jump.c (delete_unreferenced_labels): Don't delete if
18173         LABEL_ALTERNATE_NAME is set.
18174         * print-rtl.c (print_rtx): Dump alternate name.
18175         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
18176         * rtl.h (LABEL_ALTERNATE_NAME): Define.
18177         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
18178         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
18179
18180 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18181
18182         * fix-header.c (recognized_extern, recognized_function): Constify
18183         a char*.
18184
18185         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
18186         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
18187         (compute_available): Remove unused variable `last'.
18188         (compute_nearerout): Remove unused variable `temp_bitmap'.
18189         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
18190         Remove unused variable `x'.
18191
18192         * scan.h (recognized_function, recognized_extern): Constify a
18193         char*.
18194
18195         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
18196
18197 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
18198
18199         * varasm.c (decode_rtx_const): Use XSTR to access the string
18200         of a SYMBOL_REF.
18201
18202 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
18203
18204         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
18205
18206 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18207
18208         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
18209
18210 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
18211
18212         * pa.c (ireg_operand): New function.
18213         * pa.h (PREDICATE_CODES): Handle ireg_operand.
18214         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
18215         Fix out of date comment.
18216
18217         * pa.md (negdi2): Turn into expander + anonymous pattern.
18218
18219         * reload.c (find_reloads): Fix typos in recent change.
18220
18221         * dwarf2out.c: Do not include ctype.h.
18222
18223 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18224
18225         * regclass.c (record_reg_classes): Always use may_move_cost when
18226         seeing how operand fits with various register classes.
18227
18228 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
18229
18230         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
18231         * toplev.c: Revert Nov 1 13:22 change.
18232
18233 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
18234
18235         * config/pa/pa.md (height reduction patterns): Add checks for
18236         overlapping operands to avoid semantic-destroying splits for
18237         height reduction patterns.
18238
18239 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18240
18241         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
18242         have been an hyphen, fixed.
18243         * configure: Rebuilt.
18244
18245 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
18246
18247         * config/arm/tpe.h: Add prototypes for exported functions.
18248         * config/arm/pe.c: Fix compile time warnings.
18249         * config/arm/semi.h: Fix compile time warnings.
18250         * config/arm/arm.c: Fix compile time warnings.
18251         * config/arm/arm.h: Fix compile time warnings.
18252         * config/arm/arm.md: Fix compile time warnings.
18253         * config/arm/thumb.c: Fix compile time warnings.
18254         * config/arm/thumb.h: Fix compile time warnings.
18255         * config/arm/thumb.md: Fix compile time warnings.
18256
18257 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
18258
18259         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
18260         detection code
18261
18262         * unroll.c (unroll_loop): Remove LOOP notes when loop is
18263         completely unrolled.
18264
18265 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18266
18267         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
18268
18269 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
18270
18271         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
18272         * rtl.h (rtx_equal_p): Move prototype.
18273         * rtl.c (rtx_equal_function_value_matters): Move from
18274         rtlanal.c
18275         (rtx_equal_p): Likewise.
18276         * rtlanal.c (rtx_equal_function_value_matters): Delete.
18277         (rtx_equal_p): Likewise.
18278
18279 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
18280
18281         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
18282         ! HAS_INIT_SECTION.
18283
18284 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
18285
18286         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
18287
18288         * pa.h (ADDR_VEC_ALIGN): Define.
18289
18290         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
18291         notes when presented with "if (foo) break; end_of_loop" and
18292         the break sequence gets moved out of the loop.
18293
18294         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
18295         Remove explicit zero initializations of entries within MAP.
18296
18297 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
18298
18299         * reg-stack.c (convert_regs_1): Handle EH edges specially.
18300
18301 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
18302
18303         * bitmap.h (BITMAP_XMALLOC): New macro.
18304         * flow.c (CLEAN_ALLOCA): Remove.
18305         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
18306         (life_analysis): Likewise.
18307         (update_life_info): Don't use CLEAN_ALLOCA.
18308         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
18309         (calculate_global_regs_live): Likewise.
18310         (print_rtl_with_bb): Likewise.
18311         (verify_flow_info): Likewise.
18312         * global.c (global_alloc): Likewise.
18313         (global_conflicts): Likewise.
18314         * integrate.c (save_for_inline_nocopy): Likewise.
18315         (expand_inline_function): Likewise.
18316         * jump.c (jump_optimize_1): Likewise.
18317         (duplicate_loop_exit_test): Likewise.
18318         (thread_jumps): Likewise.
18319         * loop.c (loop_optimize): Likewise.
18320         (combine_givs): Likewise.
18321         (recombine_givs): Likewise.
18322         * reorg.c (dbr_schedule): Likewise.
18323         * unroll.c (unroll_loop): Likewise.
18324
18325         * combine.c (combine_instructions): Use xmalloc instead of alloca.
18326
18327 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
18328
18329         * toplev.c (rest_of_compilation): Don't optimize the CFG
18330         when rebuilding, just before dbr.
18331
18332 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18333
18334         * output.h (assemble_end_function, assemble_destructor,
18335         assemble_constructor, assemble_gc_entry, assemble_global,
18336         assemble_label, output_constant_pool) Constify a char*.
18337
18338         * varasm.c (assemble_destructor, assemble_constructor,
18339         assemble_gc_entry, assemble_end_function, assemble_global,
18340         assemble_label, output_constant_pool): Likewise.
18341
18342 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
18343
18344         * config/arm/thumb.c (thumb_expand_prologue): Add comments
18345         explaining what is goin on in this function.
18346
18347 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18348
18349         * regclass.c (record_reg_classes): In matching case, recompute
18350         costs since the direction of movement is different.
18351
18352 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
18353
18354         * resource.c (mark_target_live_regs): For unconditional branches,
18355         the resources found at the branch target should be added to the
18356         resources found so far, not intersected.
18357
18358 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
18359
18360         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
18361         old cpp's.
18362         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
18363         (sys/mman.h): Include this file only if #HAVE_MMAP.
18364         (run_compiles): Initialize `esac_fmt' with one old KR string, not
18365         with automatically concatenated ANSI strings.
18366
18367 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
18368
18369         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
18370         (DIV_ROUND_UP): Robustify.
18371         (ggc_recalculate_in_use_p): New function.
18372         (release_pages): Don't inline it.
18373         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
18374         outer contexts.
18375         (ggc_pop_context): Use ggc_recalculate_in_use_p.
18376         (clear_marks): Always save in_use_p.
18377         (sweep_pages): Use ggc_recalculate_in_use_p.
18378         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
18379         Release pages before counting statistics.
18380
18381 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
18382
18383         * toplev.c (rest_of_compilation): Fix thinko in this change:
18384
18385         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
18386
18387         (rest_of_compilation): If inside an inlined external function,
18388         pretend we are just being declared.
18389
18390 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
18391
18392         * flow.c (calculate_global_regs_live): Fix thinko.
18393
18394         * integrate.c (expand_inline_function): Fix bugs in previous
18395         change from Oct 28, 1999.
18396
18397 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
18398
18399         * stmt.c (expand_value_return): Fix typo in this change:
18400
18401         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18402         (expand_value_return): Correctly convert VAL when promoting function
18403         return; support RETURN_REG being a PARALLEL.
18404
18405 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
18406
18407         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
18408
18409 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18410
18411         * hard-reg-set.h (reg_names): Constify a char*.
18412
18413         * regclass.c  (reg_names): Likewise.
18414
18415         * regs.h (reg_names): Likewise
18416
18417         * a29k/a29k.c (reg_names): Delete declaration.
18418
18419         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
18420
18421         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
18422         arc_output_function_epilogue): Likewise.
18423
18424         * elxsi/elxsi.c (reg_names): Likewise.
18425
18426         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
18427
18428         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
18429         Likewise.
18430
18431         * m88k/m88k.c (output_function_profiler): Likewise.
18432
18433         * sparc/sparc.c (sparc_flat_output_function_prologue,
18434         sparc_flat_output_function_epilogue): Likewise.
18435
18436 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
18437
18438         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
18439         warning from -Wuninitialized and put it under -W.
18440         * function.c (uninitialized_vars_warning): Warn only when the
18441         corresponding flag is set.
18442
18443 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
18444
18445         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
18446         is nonzero and the single set does not have an elt, then assign
18447         it an elt.
18448
18449         * simplify-rtx.c: New file.
18450         * Makefile.in (OBJS): Add simplify-rtx.o
18451         (simplify-rtx.o): Add dependencies.
18452         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
18453         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
18454         (cse_gen_binary, simplify_unary_operation): Delete.
18455         (simplify_binary_operation, simplify_plus_minus): Likewise.
18456         (check_fold_consts, simplify_relation_operation): Likewise.
18457         (simplify_ternary_operation): Likewise.
18458         (delete_trivially_dead_insns): Simplify the contents of the
18459         REG_EQUAL note before trying to substitute it into the source
18460         of the reg-reg copy at the end of a libcall sequence.
18461
18462         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
18463         references/callers changed.
18464
18465         * mn10200.c (mn10200_va_arg): Force the return value into a
18466         register.
18467
18468         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
18469
18470         * cccp.c (macroexpand): Avoid out of range accesses for omitted
18471         arguments.
18472
18473 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
18474
18475         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
18476
18477 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
18478
18479         * fold-const.c (fold): Fix thinko when optimizing comparisons
18480         against -0.0.
18481
18482 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
18483
18484         * gcc.texi (Passes): Update front-end files to their current
18485         location.
18486
18487 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
18488
18489         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
18490         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
18491         (PREDICATE_CODES): Add addition_operation.
18492         * alpha-protos.h (addition_operation): Declare.
18493         (secondary_reload_class): Likewise.
18494         * alpha.c (addition_operation): New.
18495         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
18496         * alpha.md (adddi3): Turn into expander.
18497         (*lda, *adddi_2): New.
18498         (movsf, movdf patterns): Don't preference integer regs.
18499         (movsi, movdi patterns): Don't preference fp regs.
18500
18501 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
18502
18503         * genrecog.c (write_switch): Check for duplicate CODE cases.
18504
18505 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
18506
18507         * ggc-common.c: Update pre-function commentary.
18508         * ggc-page.c: Likewise.
18509         (poison): Remove.
18510         (poison_pages): Use memset directly.
18511         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
18512         (ggc_collect): Poison before sweeping.
18513         * ggc-simple.c: Update pre-function commentary.
18514         (ggc_alloc_obj): Poison non-zeroed memory.
18515
18516 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
18517
18518         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
18519         match format string, even on 64-bit hosts.
18520         * gcc-page.c (ggc_page_print_statistics): Likewise.
18521
18522 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
18523
18524         * config/i386/i386.c (ix86_cpu): Revert last patch.
18525         * config/i386/i386.h (ix86_cpu): Ditto.
18526
18527 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
18528
18529         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
18530         TYPE_SIZE, convert type of result to sizetype.
18531
18532 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
18533
18534         * flow.c (count_or_remove_death_notes): Equate NULL with the
18535         universal set.
18536
18537         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
18538         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
18539         dbr_schedule.
18540
18541         * i386.c (pic_label_no): Delete.
18542         (ix86_attr_length_default): Don't use single_set to peek
18543         inside a parallel.
18544
18545         * recog.c (peephole2_optimize): Allow recog_next_insn to index
18546         the first insn after bb->end.
18547         * i386.md (push mem peeps): Scratch is live after evaluation
18548         of the memory.
18549         (cmp mem peep): Similarly.
18550
18551 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
18552
18553         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
18554         * function.c (pad_to_arg_alignment): Add missing braces.
18555
18556 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18557
18558         * alpha/alpha-protos.h (literal_section): Add prototype.
18559         (alpha_need_linkage, alpha_start_function,alpha_end_function):
18560         Constify a char*.
18561
18562         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
18563         prototype.
18564         (alpha_start_function, alpha_end_function, float_strings,
18565         alpha_need_linkage): Constify a char*
18566
18567         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
18568
18569         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
18570
18571         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
18572
18573         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
18574
18575 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18576
18577         * flow.c (debug_flow_info): Add prototype.
18578
18579         * gcc.c (main): Likewise.
18580
18581         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
18582         Likewise.
18583
18584         * reload1.c (failed_reload, set_reload_reg): Likewise.
18585
18586         * mips-tfile.c (main): Likewise.
18587         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
18588         with ATTRIBUTE_NORETURN.
18589
18590 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
18591
18592         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
18593         DECL is not a memory ref.
18594
18595 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
18596
18597         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
18598         * config/i386/i386.c (ix86_cpu): Add extern attribute.
18599
18600 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
18601
18602         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
18603         * config/mips/elf64.h: ditto.
18604
18605 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
18606
18607         * expr.c (emit_push_insn): New argument alignment_pad.
18608         Update all callers.  Adjust stack pointer based on alignment pad.
18609         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
18610         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
18611         (locate_and_pad_parm): New argument alignment_pad.  Update all
18612         callers.
18613         * expr.h (emit_push_insn): Update prototype.
18614         (locate_and_pad_parm): Update prototype.
18615         * calls.c (arg_data):  Add new field alignment_pad.
18616         (initialize_argument_information): Initialize alignment_pad.
18617
18618 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
18619
18620         * except.c (free_eh_nesting_info): Free the info itself.
18621         * function.c (free_after_compilation): Don't free NULL.
18622         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
18623         (pre_edge_insert): Free inserted.
18624         * stmt.c (free_stmt_status): Don't free NULL.
18625
18626 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
18627
18628         * gcov.c (DIR_SEPARATOR): Provide default.
18629         (output_data): Add test for MS-DOS format absolute filename.
18630         (fancy_abort): Correct program name.
18631         (open_files): Open all files in binary mode.
18632         * libgcc2.c (__bb_exit_func): Likewise.
18633
18634         * profile.c (init_branch_prob): Specify binary when opening files.
18635
18636         * flags.h (flag_unwind_tables): New decl.
18637         * toplev.c (flag_unwind_table): New definition.
18638         (f_options): Add -funwind-tables.
18639         (decode_g_option): Clarify warning when unknown -g option is given.
18640         (rest_of_compilation): If inside an inlined external function,
18641         pretend we are just being declared.
18642
18643         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
18644         (dwarf2out_frame_finish): Likewise.
18645
18646 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
18647
18648         * fold-const.c (merge_ranges): If not in0, but in1, handle
18649         upper bounds equal like subset case.
18650
18651 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
18652
18653         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
18654         passed in a register but moved to the stack.
18655
18656 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
18657
18658         * gcc.c (pass_exit_codes, greatest_status): New variables.
18659         (struct option_map): Add entry for "--pass-exit-codes".
18660         (execute): Update greatest_status if error.
18661         (display_help): Add documentation for -pass-exit-codes.
18662         (process_command): Handle -pass-exit-codes.
18663         (main): Look at pass_exit_codes and greatest_status on call to exit.
18664
18665 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18666
18667         * reload.c (find_reloads): Refine test for no input reload
18668         case to not includes reloads emitted after insn.
18669
18670         * function.c (find_temp_slots_from_address): Handle sum involving
18671         a register that points to a temp slot.
18672         (update_temp_slot_address): Make recursive call if both old and
18673         new are PLUS with a common operand.
18674         * calls.c (expand_call): Mark temp slot for result as having
18675         address taken.
18676
18677         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
18678
18679         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
18680         component as well as "BINUTILS".
18681
18682         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
18683         * integrate.c (copy_rtx_and_substitute): Likewise.
18684         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
18685         All callers changed.
18686         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
18687
18688         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
18689         gdb extensions, write size of type; also be more consistent
18690         in using references when this is a subtype.
18691
18692         * pa.md (extv, extzv, insv): Use define_expand to reject constant
18693         that is out of range.
18694
18695         * loop.c (unknown_constant_address_altered): New variable.
18696         (prescan_loop): Initialize it.
18697         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
18698         (invariant_p, case MEM): Remove handling for volatile and readonly;
18699         check new variable if readonly.
18700         (check_dbra_loop): Chdeck unknown_constant_address_altered.
18701
18702         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
18703         (addr_affects_sp_p): Removed from note_mem_written and only
18704         define #ifdef AUTO_INC_DEC.
18705
18706         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
18707
18708         * regclass.c (record_reg_classes): Properly handle register move
18709         directions.
18710
18711         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
18712         Don't think valid if both operands are invalid.
18713         (struct constant_descriptor): New field RTL.
18714         (mark_const_hash_entry): Mark it.
18715         (record_constant{,_rtx}): Initialize it.
18716         (output_constant_def): Allocate RTL in permanent obstack and
18717         save in table.
18718         ({record,compare}_constant_1): Modes must match for
18719         CONSTRUCTOR of ARRAY_TYPE.
18720
18721         * c-common.h (initializer_constant_valid_p): Delete decl from here.
18722         * output.h (initializer_constant_valid_p): Move decl to here.
18723         * c-common.c (initializer_constant_valid_p): Delete function from here.
18724         * varasm.c (initializer_constant_valid_p): Move function to here.
18725
18726         * tree.h (STRIP_SIGN_NOPS): New macro.
18727         * fold-const.c (optimize_minmax_comparison): New function.
18728         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
18729         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
18730         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
18731         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
18732         widening conversions.
18733         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
18734         to look at size of mode, not precision of type; also add missing cases.
18735         (optimize_bit_field_compare, decode_field_reference): Don't try to
18736         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
18737
18738         * dwarf2out.c (ctype.h): Include.
18739         (dwarf2out_set_demangle_name_func): New function.
18740         (size_of_line_info): Deleted.
18741         (output_line_info): Compute size of line info table from difference
18742         of labels.
18743         (base_type_die, add_name_attribute): Call demangle function, if any.
18744         (field_byte_offset): Use bits per word for variable length fields.
18745         (gen_array_type_die): Add array name.
18746         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
18747         (dwarf2out_add_library_unit_info): New function.
18748
18749         * explow.c (set_stack_check_libfunc): New function.
18750         (stack_check_libfunc): New static variable.
18751         (probe_stack_range): Allow front-end to set up a libfunc to call.
18752
18753         * combine.c (simplify_comparison): When making comparison in wider
18754         mode, check for having commuted an AND and a SUBREG.
18755         (contains_muldiv): New function.
18756         (try_combine): Call it when dividing a PARALLEL.
18757         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
18758         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
18759         a PLUS.
18760         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
18761         use one of the CLOBBERs instead.
18762         (if_then_else_cond): If comparing against zero, just return thing
18763         being compared.
18764
18765         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
18766         Don't generate shifts and subtract if have conditional arithmetic.
18767
18768         * rtl.h (delete_barrier): New declaration.
18769         * jump.c (jump_optimize): Set up to handle conditional call.
18770         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
18771         (delete_barrier): New function.
18772
18773         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
18774
18775         * recog.c (nonmemory_operand): Accept ADDRESSOF.
18776
18777         * tree.c (build_type_attribute_variant): Push to obstack of
18778         ttype around type_hash_canon call.
18779
18780         * expr.c (placeholder_list): Move decl to file scope.
18781         (expand_expr): Don't force access to volatile just because its
18782         address is taken.
18783         If ignoring reference operations, just expand the operands.
18784         (expand_expr, case COMPONENT_REF): Propagate
18785         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
18786         Refine test for using bitfield operations vs pointer punning.
18787         (expand_expr, case CONVERT_EXPR): If converting to
18788         BLKmode UNION_TYPE from BLKmode, just return inner object.
18789         Use proper mode in store_field call.
18790         Properly set sizes of object to store and total size in store_field
18791         call for convert to union.
18792         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
18793         memory (like for ADDR_EXPR).  Also, don't put constant in register if
18794         we'll want it in memory.
18795         (readonly_fields_p): New function.
18796         (expand_expr, case INDIRECT_REF): Call it if LHS.
18797         (expand_assignment): Handle a RESULT_DECL where
18798         DECL_RTL is a PARALLEL.
18799         (do_jump, case WITH_RECORD_EXPR): New case.
18800         (get_inner_reference): Always go inside a CONVERT_EXPR
18801         and NOP_EXPR if both modes are the same.
18802         (store_field): Use bitfield operations if size of bitsize is not same
18803         as size of RHS's type.
18804         Check for bitpos not a multiple of alignment in BLKmode case.
18805         Do block move in largest possible alignment.
18806         (store_constructor): Set BITSIZE to -1 for variable size and properly
18807         in case of array of BLKmode.
18808         (expand_expr_unaligned): New function.
18809         (do_compare_and_jump): Call it.
18810
18811         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
18812         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
18813         does not include 'o'.
18814
18815         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
18816         both SET_DEST and SET_SRC reference a virtual register.
18817         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
18818
18819         * integrate.c (expand_inline_function): Handle case of setting
18820         virtual stack vars register (from built in setjmp); when parameter
18821         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
18822         (subst_constant): Add new parm, MEMONLY.
18823         (expand_inline_function, integrate_parm_decls): Pass new parm.
18824         (integrate_decl_tree): Likewise.
18825         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
18826         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
18827         (copy_rtx_and_substitute, case SET): Add explicit calls to
18828         copy_rtx_and_substitute for both sides.
18829
18830         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
18831         constraints.
18832         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
18833         within INDEX_TYPE, instead of before.
18834         (fixup_gotos): Use f->target_rtl, not the next insn,
18835         since latter may be from a later fixup.
18836         (expand_value_return): Correctly convert VAL when promoting function
18837         return; support RETURN_REG being a PARALLEL.
18838         (expand_return): When checking for result in regs and having
18839         cleanup, consider PARALLEL in DECL_RTL as being in regs.
18840
18841 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
18842
18843         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
18844         last_nominal_fname): Mark const.
18845         (struct include_hash: name, nshort, control_macro): Mark
18846         const.
18847         (struct macrodef: symnam): Mark const.
18848         (struct if_stack: fname): Mark const.
18849         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
18850         (IStable): New character-syntax array which encompasses all
18851         the old is_foo arrays.
18852         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
18853         is_space): New macros for interrogating IStable.
18854         (check_macro_name): Kill last argument.  All callers changed.
18855
18856         * cppinit.c (initialize_char_syntax): Delete.
18857         (is_idchar, is_idstart, is_hor_space, is_space,
18858         trigraph_table): Delete.
18859         (IStable): New.  Initialize with clever macros to avoid
18860         information duplication.
18861         (builtin_array): Table of builtins to get rid of explicit list
18862         in initialize_builtins.
18863         (initialize_builtins): Use builtins_array.
18864         (cpp_start_read): Call init_IStable, and set IStable['$'] if
18865         opts->dollars_in_ident.
18866
18867         * cppexp.c: Change all refs to is_xyz[] arrays to use new
18868         is_xyz() macros.
18869         (cpp_parse_expr): Avoid 'format string is not constant'
18870         warning. Use ISGRAPH to identify printable chars.
18871         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
18872         is_xyz() macros.
18873         (read_and_prescan): Map trigraphs to chars with open-coded
18874         if-else-if-... sequence, not a lookup table.
18875         * cpphash.c: Change all refs to is_xyz[] arrays to use new
18876         is_xyz() macros.
18877         * cpplib.c: Change all refs to is_xyz[] arrays to use new
18878         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
18879         (check_macro_name): Remove ability to report an invalid
18880         assertion name, which is never used.
18881         (do_line): Constify a couple of char *'s.
18882         * cppmain.c (main): Call cpp_cleanup before returning.
18883
18884 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
18885
18886         * ggc.h (struct ggc_statistics): New type.
18887         (ggc_get_size): New function.
18888         (ggc_print_statistics): Likewise.
18889         * ggc-common.c (ggc_stats): New variable.
18890         (ggc_mark_rtx_children): Keep statistics.
18891         (ggc_mark_tree_children): Likewise.
18892         (ggc_print_statistics): New function.
18893         * ggc-page.c (struct globals): Add bytes_mapped field.
18894         (alloc_anon): Update it.
18895         (release_pages): Likewise.
18896         (ggc_get_size): New function.
18897         (ggc_page_print_statistics): New function.
18898         * ggc-simple.c (ggc_get_size): New function.
18899
18900 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
18901
18902         * flow.c (propagate_block): When the last reference to a label
18903         before an ADDR_VEC is deleted because the reference is a dead
18904         store, delete the ADDR_VEC.
18905
18906 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
18907
18908         * resource.c (find_free_register): Don't use the frame pointer
18909         if frame_pointer_needed.
18910
18911 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
18912
18913         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
18914         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
18915
18916         * config/i960/i960.c (i960_va_start): New locals base, num.
18917         Use INDIRECT_REF instead of ARRAY_REF on valist.
18918         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
18919
18920 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
18921
18922         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
18923
18924 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
18925
18926         * tree.def (PLACEHOLDER_EXPR): Update comments.
18927
18928 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18929
18930         * c-common.c (check_format_info): Avoid non-literal format string
18931         warnings when `first_arg_num' is zero.
18932
18933 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18934
18935         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
18936
18937 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
18938
18939         * arm.md (casesi_insn): Add a clobber of the condition code
18940         register.
18941
18942 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
18943
18944         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
18945         used by both cc1 and cc1plus.
18946
18947 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
18948
18949         * config/arm/arm.c: Initialise arm_structure_size_boundary to
18950         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
18951         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
18952         to the value 32 if it has not already been defined.
18953         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
18954         Override definition in arm.h with a value of 8.
18955
18956 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
18957
18958         * c-pragma.c (push_alignment): Don't check the return value
18959         of xmalloc.
18960
18961 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
18962
18963         * sparc.h (ADJUST_COST): Fix thinko.
18964
18965 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
18966
18967         * cccp.c (rescan): Fixed obp pointer handling around call to
18968         check_expand subroutine.
18969
18970 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
18971
18972         * gcse.c (delete_null_pointer_checks): Only record non-null info
18973         for pseudos when examining stores.
18974
18975         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
18976         splitters for these patterns.  Use "#" for output templates.
18977         (addsi3_carryin_shift): New pattern.
18978
18979 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
18980
18981         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
18982         of the function return register into a plain REG until
18983         after function inlining is done.
18984
18985 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
18986
18987         * jump.c (jump_optimize_1): If we did cross-jumping, and
18988         the data will matter, rebuild the CFG.
18989         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
18990         not optimizing.  Don't run shorten_branches.
18991         * toplev.c (rest_of_compilation): Run shorten_branches after
18992         reg_to_stack.
18993
18994 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
18995
18996         * rtl.h (note_stores): Add additional paramter.
18997         * rtlanal.c (reg_set_p_1): Take additional paramter.
18998         (reg_set_last_1): Likewise.
18999         (reg_set_p): Adjust call to note_stores.
19000         (reg_set_last): Likewise.
19001         (note_stores): Pass data parameter to worker function.
19002         * alias.c (record_set): Take additional parameter.
19003         (init_alias_analysis): Pass it.
19004         * caller-save.c (mark_set_regs): Take additional parameter.
19005         (save_call_clobbered_regs): Pass NULL to note_stores.
19006         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
19007         parameter.
19008         (record_dead_and_set_regs_1): Likewise.
19009         (reg_dead_at_p_1): Likewise.
19010         (combine_instructions): Adjust calls to note_stores.
19011         (try_combine): Likewise.
19012         (record_dead_insn): Remove.
19013         (record_dead_and_set_regs): Adjust calls to note_stores.
19014         (reg_dead_at_p): Likewise.
19015         * cse.c (invalidate_skipped_set): Take additional parameter.
19016         (cse_check_loop_start): Likewise.
19017         (cse_check_loop_start_value): Remove.
19018         (cse_set_around_loop): Adjust calls to note_stores.
19019         * flow.c (notice_stack_pointer_modification): Take additional
19020         parameter.  Remove duplicate declaration.
19021         (record_volatile_insns): Adjust calls to note_stores.
19022         * gcse.c (record_set_info): Take additional parameter.
19023         (record_last_set_info): Likewise.
19024         (invalidate_nonnull_info): Likewise.
19025         (record_set_insn): Remove.
19026         (compute_sets): Adjust calls to note_stores.
19027         (last_set_insn): Remove.
19028         (compute_hash_table): Adjust calls to note_stores.
19029         (insert_insn_end_bb): Likewise.
19030         (delete_null_pointer_checks): Likewise.
19031         * global.c (mark_reg_store): Take additional parameter.
19032         (mark_reg_clobber): Likewise.
19033         (reg_becomes_live): Likewise.
19034         (global_conflicts): Adjust calls to note_stores.
19035         (build_insn_chain): Likewise.
19036         * integrate.c (note_modified_parmregs): Take additional parameter.
19037         (mark_stores): Likewise.  Make it static.
19038         (save_for_inline_nocopy): Adjust calls to note_stores.
19039         (try_constants): Likewise.
19040         * integrate.h (mark_stores): Remove declaration.
19041         * jump.c (mark_modified_reg): Take additional parameter.
19042         (thread_jumps): Adjust calls to note_stores.
19043         * local-alloc.c (validate_equiv_mem_from_store): Take additional
19044         parameter.
19045         (no_equiv): Likewise.
19046         (reg_is_set): Likewise.
19047         (validate_equiv_mem): Adjust calls to note_stores.
19048         (update_equiv_regs): Likewise.
19049         (block_alloc): Likewise.
19050         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
19051         (note_addr_stored): Take additional parameter.
19052         (note_set_pseudo_multiple_uses): Likewise.
19053         (record_initial): Likewise.
19054         (prescan_loop): Adjust calls to note_stores.
19055         (strength_reduce): Likewise.
19056         (check_dbra_loop): Likewise.
19057         * regmove.c (flags_set_1): Take additional paramter.
19058         (mark_flags_life_zones): Adjust calls to note_stores.
19059         * reload1.c (mark_not_eliminable): Take additional parameter.
19060         (forget_old_reloads_1): Likewise.
19061         (reload_cse_invalidate_rtx): Likewise.
19062         (reload_cse_check_clobber): Likewise.
19063         (reload_combine_note_store): Likewise.
19064         (move2add_note_store): Likewise.
19065         (reload): Adjust calls to note_stores.
19066         (reload_as_needed): Likewise.
19067         (emit_reload_insns): Likewise.
19068         (reload_cse_regs_1): Likewise.
19069         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
19070         (reload_combine): Adjust calls to note_stores.
19071         * resource.c (update_live_status): Take additional paramter.
19072         (mark_target_live_regs): Adjust calls to note_stores.
19073         * stupid.c (find_clobbered_regs): Take additional parameter.
19074         (stupid_life_analysis): Adjust calls to note_stores.
19075
19076 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
19077
19078         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
19079         definition.
19080
19081         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
19082         definition.
19083
19084         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
19085         of the variable arm_structure_size_boundary.
19086
19087 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
19088
19089         * alias.c (init_alias_analysis): Allocate reg_known_value and
19090         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
19091         and reg_seen.
19092         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
19093         * cse.c (cse_main): Call end_alias_analysis.
19094         * haifa-sched.c (schedule_insns): Likewise.
19095         * local-alloc. (update_equiv_regs): Likewise.
19096         * reload1.c (reload_cse_regs): Likewise.
19097
19098 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19099
19100         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
19101         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
19102         mapping from MASK_FPU.
19103
19104 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
19105
19106         * sparc.md (call): Don't bound structure return size to 0xfff.
19107
19108 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
19109
19110         * resource.c (mark_target_live_regs): Check that the target
19111         insn wasn't created after compute_bb_for_insn.
19112
19113 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
19114
19115         * ggc-page.c (poison_pages): Don't be overzealous.
19116
19117 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
19118
19119         * alias.c: Update comments for ADDRESS.
19120         (nonlocal_reference_p): Look inside the ADDRESS to determine if
19121         it is a local memory reference.
19122
19123         * c-typeck.c (build_function_call): Check that the built-in
19124         function is of class BUILT_IN_NORMAL before trying to recongize
19125         it as BUILT_IN_ABS.
19126         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
19127         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
19128
19129 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
19130
19131         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
19132         of alloca.
19133         (pre_gcse): Likewise.
19134         (hoist_expr_reaches_here_p): Likewise.
19135         (hoist_code): Likewise.
19136         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
19137         code to ...
19138         (pre_expr_reaches_here_p_work): ... here.
19139         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
19140         code to ...
19141         (expr_reaches_here_p_work): ... here.
19142
19143 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
19144
19145         * resource.c (find_basic_block): Delete.
19146         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
19147         (init_resource_info): Call compute_bb_for_insn.
19148
19149 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
19150
19151         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
19152         with already adjacent blocks, but no fallthru.
19153         (merge_blocks_move_successor_nojumps): Simplify.
19154         (debug_flow_info): New.
19155
19156         * toplev.c (rest_of_compilation): Open jump1 dump file before
19157         jump and close after, as opposed to just using dump_rtl.
19158
19159 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19160
19161         * reload.h (earlyclobber_operand_p): Declare.
19162         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
19163         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
19164         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
19165         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
19166
19167 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
19168                           Richard Henderson  <rth@cygnus.com>
19169
19170         * emit-rtl.c (emit_block_insn_before): New.
19171         (emit_block_insn_after): New.
19172         * basic-block.h: Declare them.
19173
19174         * bitmap.h: Protect from multiple inclusion.
19175
19176         * recog.c (scratch_operand): Handle VOIDmode correctly.
19177
19178         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
19179
19180         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
19181         * function.c (assign_parms): Likewise.
19182         * global.c (global_conflicts): Clarify STACK_REGS commentary.
19183
19184         * reg-stack.c (max_uid): Remove.
19185         (blocks, block_begin, block_end, block_drops_in): Remove.
19186         (block_stack_in, block_out_reg_set, block_number): Remove.
19187         (struct block_info_def, BLOCK_INFO): New.
19188         (enum emit_where): New.
19189         (current_block): New.
19190         (BLOCK_NUM): Remove.
19191         (mark_regs_pat, record_label_references): Remove.
19192         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
19193         (nan): New.
19194         (goto_block_pat, print_blocks, dump_stack_info): Remove.
19195         (reg_to_stack): Simplified test for existance of fp code.  Use
19196         flow.c code.  Call shorten_branches after cross-jump opt.
19197         (check_asm_stack_operands): Renamed from record_asm_reg_life.
19198         Return false if the asm doesn't use stack regs.  Don't do life
19199         analysis on the asm.
19200         (emit_pop_insn): Replace function pointer arg `when' with
19201         enum `where'.  Update all callers.
19202         (change_stack): Likewise.  Update basic block end.
19203         (emit_swap_insn): Use current_block->head to limit reverse search
19204         for start of block.  Use emit_block_insn_after.
19205         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
19206         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
19207         structure assignment instead of bcopy.
19208         (print_stack): New.
19209         (convert_regs_entry, convert_regs_exit): New.
19210         (convert_regs_1, convert_regs_2): Split out from convert_regs.
19211         Work on basic blocks and the CFG.
19212         (convert_regs): Use them.
19213
19214         * i386.c (output_fix_trunc): Remove code for DImode input operand
19215         not at top-of-stack.
19216         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
19217         appropriate mode.
19218         (fix_truncdi_1): Allow any mode scratch.
19219
19220 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
19221
19222         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
19223         * linux.h, netbsd.h, vms.h: Not here.
19224
19225 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
19226
19227         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
19228         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
19229         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
19230         CONDITIONAL_REGISTER_USEAGE): Use them.
19231         * config/mips/mips.c (mips_move_1word,mips_move_2words,
19232         gen_conditional_branch,override_options) : Use them.
19233         * config/mips/mips.md : Use them.
19234
19235 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
19236
19237         * i386.md (zero_extendqihi2): Use SImode register name with andl.
19238
19239 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
19240
19241         * integrate.c (function_cannot_inline_p): Don't allow inlining
19242         if setjmp is used.
19243
19244 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19245
19246         * c-parse.in (cast_expr): Constify.
19247
19248         * cccp.c (special_symbol): Likewise.
19249
19250         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
19251
19252         * dwarf2out.c (base_type_die): Likewise.
19253
19254         * global.c (allocno_compare): Likewise.
19255
19256         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
19257
19258         * regclass.c (fix_register): Likewise.
19259
19260         * rtl.h (fix_register): Likewise.
19261
19262         * stupid.c (stupid_reg_compare): Likewise.
19263
19264         * toplev.c (decode_f_option): Likewise.
19265
19266         * tree.c (build_complex_type): Likewise.
19267
19268 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
19269
19270         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
19271
19272 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19273
19274         * reload.c (find_reloads): Compute mode and nregs fields of all
19275         reloads.
19276         * reload1.c (calculate_needs_all_insns): Simplify a bit.
19277         (calculate_needs): Use precomputed mode/nregs values.
19278         (allocate_reload_reg): Likewise.
19279         Break out two...
19280         (failed_reload, set_reload_reg): ... new functions.
19281         (choose_reload_regs_init): New function, mostly broken out from...
19282         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
19283         Also lose one #if 0 block.
19284
19285 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
19286
19287         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
19288         substitution.
19289
19290 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
19291
19292         * tree.h (BLOCK_TYPE_TAGS): Remove.
19293         (BLOCK_END_NOTE): Likewise.
19294         (BLOCK_LIVE_RANGE_FLAG): Likewise.
19295         (BLOCK_LIVE_RANGE_START): Likewise.
19296         (BLOCK_LIVE_RANGE_END): Likewise.
19297         (tree_block): Remove live_range_flag, live_range_var_flag, and
19298         type_tags.  Remove end_note, live_range_start, and live_range_end.
19299         (remember_end_note): Remove prototype.
19300         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
19301         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
19302         remember_end_note.
19303         * ggc-common.c (ggc_mark_tree_children): Don't mark
19304         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
19305         * integrate.c (adjust_copied_decl_tree): Remove.
19306         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
19307         * stmt.c (last_block_end_note): Remove.
19308         (init_stmt): Don't add a GC root for it.
19309         (expand_fixup): Don't set it.
19310         (remember_end_note): Remove.
19311         (expand_end_bindings): Don't set last_block_end_note.
19312
19313 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19314
19315         * reload1.c (reload_reg_free_for_value_p): Show
19316         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
19317         reloads.
19318
19319 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
19320
19321         * expmed.c (extract_bit_field): Allow for the case of non-integer
19322         objects that are smaller than a word (like SFmode on a 64-bit
19323         machine).
19324
19325         * loop.c (basic_induction_var): A non-integer variable which is
19326         being set by a paradoxical subreg is probably not a biv.
19327
19328 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
19329
19330         * prefix.c (translate_name) Check for empty prefix string.
19331
19332 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
19333
19334         * Makefile.in (CPP_CROSS_NAME): New variable.
19335         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
19336         xcpp.
19337         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
19338         names of the files to be uninstalled.
19339
19340 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
19341
19342         * collect2.c (IS_DIR_SEPARATOR): Define.
19343         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
19344
19345         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
19346         functions too.
19347
19348         * haifa-sched.c (add_dependence): Update the true dependency
19349         cache the first time we add a true dependence to the LOG_LINKS chain.
19350
19351 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
19352
19353         * fold-const.c (fold): Fix comment.
19354
19355 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19356
19357         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
19358         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
19359         dbxout_start_new_source_file, dbxout_source_file,
19360         dbxout_source_line, dbxout_finish, dbxout_type_fields,
19361         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
19362         Constify a char*.
19363         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
19364         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
19365         (dbxout_block): Initialize variable `blocknum'.
19366
19367         * dbxout.h (dbxout_init, dbxout_finish,
19368         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
19369         dbxout_args, dbxout_source_line): Constify a char*.
19370
19371         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
19372         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
19373         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
19374         low_pc_attribute, high_pc_attribute, body_begin_attribute,
19375         body_end_attribute, comp_dir_attribute, sf_names_attribute,
19376         src_info_attribute, mac_info_attribute, producer_attribute,
19377         lookup_filename, generate_macinfo_entry, fundamental_type_code,
19378         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
19379         dwarfout_undef): Constify a char*.
19380         (add_incomplete_type, retry_incomplete_types): Add prototypes.
19381
19382         * dwarfout.h (dwarfout_define, dwarfout_undef,
19383         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
19384
19385 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
19386
19387         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
19388         (MULTILIB_ISA_DEFAULT): New.
19389         (MULTILIB_DEFAULTS): Use it.
19390         * config/mips/mips.c (): Remove the now unnecessary definition
19391         of MIPS_ISA_DEFAULT.
19392         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
19393         unnecessary definition.
19394
19395 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
19396
19397         * arm.md (pic_load_addr): Add constraints to operand 1.
19398
19399 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
19400
19401         * fixinc/genfixes:  Provide a means for specifying -D options to
19402         AutoGen
19403
19404 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
19405
19406         * arm.c (arm_override_options): Correct initialization of
19407         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
19408         arm_is_strong, and arm_is_6_or_7.
19409
19410         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
19411         (note_set_pseudo_multiple_uses): New function.
19412         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
19413         if a pseudo set in the loop exit is used elsewhere.
19414
19415 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
19416
19417         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
19418
19419 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
19420
19421         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
19422         a single load-address pattern.
19423
19424 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
19425
19426         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
19427         depending on whether or not line-number notes are present.
19428
19429 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19430
19431         * cccp.c (progname, file_buf, default_include, include_file,
19432         macrodef, definition, hashval, wchar_type, user_label_prefix,
19433         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
19434         expand_to_temp_buffer, is_system_include, base_name,
19435         absolute_filename, read_name_map, open_include_file,
19436         record_control_macro, check_precompiled, check_preconditions,
19437         pcfinclude, pass_thru_directive, create_definition,
19438         check_macro_name, comp_def_part, collect_expansion,
19439         check_assertion, read_token_list, assertion_install,
19440         assertion_lookup, eval_if_expression, conditional_skip,
19441         validate_else, skip_quoted_string, quote_string, macarg1,
19442         error_from_errno, install, lookup, hashf, dump_defn_1,
19443         perror_with_name, pfatal_with_name, main, trigraph_pcp,
19444         check_white_space, rescan, handle_directive, monthnames,
19445         special_symbol, do_include, remap_include_file, write_output,
19446         arglist, do_assert, do_unassert, do_line, do_error, do_once,
19447         do_ident, do_sccs, do_xifdef, skip_if_group,
19448         output_line_directive, macroexpand, macarg, change_newlines,
19449         initialize_builtins, make_definition): Constify a char*.
19450
19451         * pcp.h (stringdef): Likewise.
19452
19453 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
19454
19455         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
19456         not of pattern.
19457
19458 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
19459                           Richard Henderson  <rth@cygnus.com>
19460
19461         * alias.c: Include ggc.h.
19462         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
19463         (record_set): Verify enough room in reg_base_value.
19464         (init_alias_analysis): Allocate reg_base_value with xcalloc.
19465         Register it as a GC root.
19466         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
19467         * Makefile.in (alias.o): Depend on ggc.h.
19468
19469         * unroll.c (unroll_loop): Verify the insn before a barrier
19470         is a JUMP_INSN before checking JUMP_LABEL.
19471
19472 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19473
19474         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
19475         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
19476         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
19477         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
19478         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
19479         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
19480
19481 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19482
19483         * output.h (ctors_section, dtors_section, bss_section): Prototype.
19484
19485         * alpha/alpha-interix.h (text_section): Delete prototype.
19486         * alpha/elf.h (text_section): Likewise.
19487         * arm/linux-elf.h (text_section): Likewise.
19488         * arm/linux-telf.h (text_section): Likewise.
19489         * c4x/c4x.h (text_section): Likewise.
19490         * dsp16xx/dsp16xx.h (bss_section): Likewise.
19491         * elfos.h (text_section): Likewise.
19492         * i386/aix386ng.h (text_section): Likewise.
19493         * i386/i386-interix.h (text_section): Likewise.
19494         * i386/sco5.h (text_section): Likewise.
19495         * i386/svr3gas.h (text_section): Likewise.
19496         * nextstep.h (text_section): Likewise.
19497         * psos.h (text_section): Likewise.
19498         * ptx4.h (text_section): Likewise.
19499         * svr3.h (text_section): Likewise.
19500         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
19501
19502 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19503
19504         * final.c (peephole): Delete prototype.
19505
19506         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
19507         (pre_insert_copies): Remove unused variable `bb'.
19508
19509         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
19510         prototypes.
19511
19512         * output.h (peephole): Add prototype.
19513
19514 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
19515
19516         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
19517         -O0.
19518
19519 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
19520
19521         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
19522         for inlined declarations.
19523
19524 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
19525
19526         * arm.c (logical_binary_operator): New fucntion.
19527         * arm.h (logical_binary_operator): Declare it.
19528         (PREDICATE_CODES): Handle logical_binary_operator.
19529         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
19530         output constraints.  Add appropriate splitters.
19531         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
19532         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
19533         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
19534
19535 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19536
19537         * genoutput.c (struct operand_data): New elt eliminable.
19538         (output_operand_data): Write it.
19539         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
19540         (compare_operands): Take it into account.
19541         * recog.h (struct insn_operand_data): New elt eliminable.
19542         * reload1.c (check_eliminable_occurrences, elimination_effects): New
19543         functions.
19544         (old_asm_operands_vec, new_asm_operands_vec): Delete.
19545         (eliminate_regs): Move code that detects changes to elimination
19546         target regs into new function elimination_effects.
19547         Delete one #if 0 block.
19548         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
19549         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
19550         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
19551         Only call eliminate_regs for real operands of the insn, not for parts
19552         of its structure or parts matched by things like match_operator.
19553         Use elimination_effects and check_eliminable_occurrences.  Use
19554         copy_insn to duplicate the pattern when not in the final pass.
19555
19556 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
19557
19558         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
19559         and fld.
19560
19561 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
19562
19563         * fixinc/README: document the "mach" machine matching test
19564         * fixinc/fixfixes.c: Implement the #else/#endif label fix
19565         * fixinc/fixtests.c: Implement the #else/#endif label test
19566         * fixinc/inclhack.def: utilize these tests and fixes
19567         * fixinc/inclhack.sh:  regen
19568         * fixinc/fixincl.x:  regen
19569         * fixinc/fixincl.sh:  regen
19570
19571 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
19572
19573         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
19574         depend on ggc.h.
19575
19576 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
19577
19578         * gcc.1: Document exit codes.
19579
19580 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19581
19582         * calls.c: Include tm_p.h later, so everything we need is defined.
19583         * expr.c: Likewise.
19584         * function.c: Likewise.
19585
19586         * except.c: Include tm_p.h.
19587
19588         * sparc.c: Likewise.
19589         (dwarf2out_cfi_label): Don't prototype.
19590         (check_return_regs, epilogue_renumber,
19591         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
19592         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
19593         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
19594         ultra_schedule_insn): Add static prototype.
19595         (data_segment_operand, text_segment_operand): Call itself with the
19596         proper number of arguments.
19597         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
19598
19599         * sparc.h: Move all declarations to sparc-protos.h.
19600         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
19601         symbolic_operand.
19602
19603         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
19604
19605         * config/svr4.h (text_section, ctors_section, dtors_section): Add
19606         Prototypes.
19607         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
19608         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
19609         ASM_OUTPUT_ASCII): Constify a char*.
19610
19611         * sparc-protos.h: New file for sparc prototypes.
19612
19613 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19614
19615         * function.c (record_insns, contains): Always declare and define.
19616         (record_insns): Mark with ATTRIBUTE_UNUSED.
19617
19618 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
19619
19620         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
19621         to .section when outputting a .bss section to deal with multiple
19622         .bss input sections (as happens with -fdata-sections)
19623         Also output %progbits, not @progbits so the assembler doesn't treat as
19624         a comment.
19625         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
19626
19627         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
19628         thumb parts even when building with non-thumb CPUs, by forcing
19629         thumb mode.
19630
19631 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
19632
19633         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
19634         (movdf_const_intreg_sp64): Similarly.
19635
19636         * local-alloc.c (update_equiv_regs): Check the correct insn
19637         for pre-existing REG_EQUIV notes.
19638
19639 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
19640
19641         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
19642         block reached by a branch if we're not going to actually process
19643         this block.
19644
19645 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
19646
19647         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
19648         a local extern function declaration.
19649
19650 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
19651
19652         * i386.c (ix86_expand_prologue): Properly wrap USE around
19653         reg for CALL_INSN_FUNCTION_USAGE.
19654
19655 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
19656
19657         * config/mips/mips.md (movdf_internal1a): Allow floating-point
19658         move between GP_REGs.
19659
19660 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
19661
19662         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
19663         the mode size when finding out if an offset is legal.
19664
19665 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
19666
19667         * basic-block.h (PROP_*): Move constants from ...
19668         * flow.c: ... here.
19669         (compute_bb_for_insn): Free the array before reallocating.
19670         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
19671         (allocate_reg_life_data): Reset all reg variables collected by
19672         propagate_block.
19673         (get_block_head_tail): Don't convert from bb to block.
19674         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
19675         (find_insn_reg_weight): Take block not bb.
19676         (schedule_block): Don't set block num for moved insns.
19677         (schedule_region): Don't update_life_info or find_insn_reg_weight.
19678         (schedule_insns): Do it here instead.
19679         * combine.c (combine_instructions): Invoke compute_bb_for_insn
19680         before update_life_info.
19681         * recog.c (split_all_insns, peephole2_optimize): Update for
19682         new arg to update_life_info.
19683         * rtlanal.c (remove_note): Cope with NULL note.
19684         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
19685         if we did sched1.
19686
19687 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
19688
19689         * jump.c (jump_optimize_1): More accurately detect casesi insns.
19690
19691         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
19692         block records so that merge_blocks_nomove will clean up correctly.
19693         (split_edge): Handle casesi insns.
19694
19695         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
19696
19697 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
19698
19699         * pa.md (call, call_value): Do not emit a blockage after restoring
19700         the PIC register.
19701
19702 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
19703
19704         * c-typeck.c (c_expand_asm_operands): Fix typo.
19705
19706 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19707
19708         * arm.c (fpu_rhs_operand): Verify modes.
19709         (fpu_add_operand): Likewise.
19710         (di_operand): Likewise.
19711         (soft_df_operand): Likewise.
19712
19713 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
19714
19715         * arm.c (arm_return_in_memory): APCS rules state that the elements
19716         of a structure returned in a register must be 'integer-like'.
19717
19718 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
19719
19720         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
19721         in the source tree when the generated targets are out of date
19722         * fixinc/genfixes: Alter it to run individual fixes for make.
19723         * fixinc/README: rewrite
19724         * fixinc/inclhack.def: moved initial comments to README
19725
19726 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
19727
19728         * toplev.c (main): Do not generate an error message if an
19729         unrecognised command line switch is recognisable by another
19730         language.  If extra_warnings are enabled, then generate a
19731         warning message instead.
19732
19733 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19734
19735         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
19736         (insert_pack_attributes): Delete prototype.
19737
19738         * c-pragma.c (default_alignment): New static variable.
19739         (push_alignment): Initialize to current effective alignment.
19740         (pop_alignment): Use to set new alignment.
19741         (insert_pack_attributes): Delete function.
19742         (handle_pragma_token): Set default_alignment as well each time
19743         a #pragma pack(<n>) is encountered.
19744
19745 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
19746
19747         * reg-stack.c (stack_result): Aggregates are not returned in
19748         stack registers.
19749
19750 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
19751
19752         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
19753
19754 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
19755
19756         * basic-block.h (set_block_num): Declare.
19757         * flow.c (update_life_info): Don't call compute_bb_for_insn
19758         or free_basic_block_vars.
19759         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
19760         (insn_orig_block): Remove.
19761         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
19762         (schedule_block): Keep BLOCK_NUM up-to-date.
19763         (schedule_insns): Use compute_bb_for_insn.
19764         * recog.c (split_all_insns): Likewise.
19765         (peephole2_optimize): Likewise.
19766
19767 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
19768
19769         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
19770         if the pic register is used.
19771
19772 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19773
19774         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
19775         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
19776         if that tests TREE_PERMANENT.
19777
19778 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
19779
19780         * cse.c (invalidate_for_call): Do not remove memory references from
19781         the table here.  It's handled elsewhere.
19782
19783         * haifa-sched.c (add_dependence): Protect references to the
19784         true dependency cache with #ifdef INSN_SCHEDULING.
19785         (remove_dependence): Similarly.
19786
19787         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
19788         to the cfg code that this is a return instruction.
19789         * mn10300.md (return_internal): Similarly.
19790
19791         * combine.c (get_last_value): If the last set of a register
19792         is after subst_low_cuid, then we can not use it to determine
19793         the register's last value.
19794
19795 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
19796
19797         * Makefile.in: Back out previous change.
19798
19799 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
19800
19801         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
19802
19803         * haifa-sched.c (add_dependence): Only check/update the cache
19804         if it exists.
19805         (remove_dependence): Likewise.
19806         (schedule_insns): Only create the true_dependency_cache if the
19807         average number of instructions in a basic block is very large.
19808
19809 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
19810
19811         * Makefile.in (ggc-common.o): Depend on genrtl.h.
19812         (ggc-simple.o): Likewise.
19813         (ggc-page.o): Likewise.
19814
19815 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
19816
19817         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
19818         Prototype for exported functions.
19819         (pre_lcm, pre_rev_lcm): Remove prototypes.
19820         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
19821         (compute_available): Move to lcm.c, and change parameter order.
19822         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
19823         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
19824         (gcse_main): No longer call compute_preds_succs.  Rebuild the
19825         set table after reach pre pass.
19826         (pre_insert_map, pre_delete_map, edge_list): New.
19827         (alloc_pre_mem): Allocate edge vectors.
19828         (free_pre_mem): Delete edge vectors.
19829         (compute_pre_data): Call new edge based lcm routines.
19830         (process_insert_insn): New function.
19831         (insert_insn_end_bb): Use it.
19832         (pre_edge_insert): New function.
19833         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
19834         needed.
19835         (pre_insert_copies): Revamp using new edge based lcm outputs.
19836         (pre_delete): Likewise.
19837         (one_pre_gcse_pass): Insert & remove fake edges to the exit
19838         block.
19839         (compute_code_hoist_vbeinout): New new edge based routines.
19840         * lcm.c: Remove all the old LCM functions.  Replace with new ones
19841         that work with the new cfg datastructures and work with edges
19842         instead of blocks.
19843
19844 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19845
19846         * reload.h (struct reload): Add new fields "mode" and "nregs".
19847         * reload1.c: Change all occurrences of reload_mode and reload_nregs
19848         to reference the "mode" and "nregs" field within struct reload.
19849
19850 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
19851
19852         * haifa-sched.c (true_dependency_cache): New.
19853         (add_dependence): Use the true dependency cache to avoid expensive
19854         walks down the LOG_LINKS dependency list.  Add entries to the
19855         cache as necessary.
19856         (remove_dependence): Remove entries from the true dependency cache
19857         as needed.
19858         (schedule_insns): Allocate and initialize and free the true
19859         dependency cache.
19860
19861         * haifa-sched.c (schedule_insns): Do not remove inter-block
19862         dependencies anymore.
19863
19864 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
19865
19866         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
19867         * i386/t-winnt: Likewise.
19868
19869 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
19870
19871         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
19872
19873 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
19874
19875         * Makefile.in (LANGUAGES): Omit "proto".
19876         (clean): Remove stale comment about removing unprotoize.c.
19877
19878 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19879
19880         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
19881         using arithmetic on void pointers.
19882
19883 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
19884
19885         * haifa-sched.c (compute_block_forward_dependencies): Only check
19886         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
19887
19888 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
19889
19890         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
19891         (expr_equiv_p): Reject memories with different alias sets.
19892
19893 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
19894
19895         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
19896         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
19897         (f_options): Add "bounded-pointers" and "bounds-check" entries.
19898         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
19899         (lang_init): Set default for flag_bounds_check if still "unspecified".
19900
19901 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19902
19903         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
19904
19905 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19906
19907         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
19908         instructions.
19909
19910 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19911
19912         * config/c4x/c4x.md (*db_noclobber,
19913         *decrement_and_branch_until_zero_noclobber): New patterns and
19914         associated splitters.
19915
19916 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19917
19918         * config/c4x/c4x.md (parallel instruction patterns): Rework
19919         constraints to keep reload happy.
19920
19921 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19922
19923         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
19924         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
19925         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
19926         Add new patterns and associated post-reload splitters.
19927
19928 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19929
19930         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
19931
19932 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19933
19934         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
19935         if appropriate.
19936         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
19937
19938 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19939
19940         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
19941         memory mode.
19942
19943 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
19944
19945         * pa.c (move_operand): Rely on memory_address_p to determine the
19946         validity of non-indexed memory addresses.
19947         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
19948         operand in DFmode and SFmode when generating PA2.0 code.
19949
19950 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
19951
19952         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
19953
19954 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
19955
19956         * mips.c (function_prologue): Fix argument types.
19957         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
19958         (casesi_internal): Write to the scratch register.
19959
19960 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
19961
19962         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
19963         to U_CHAR **.
19964         (parse_charconst): Delete unnecessary cast when calling
19965         cpp_parse_escape.
19966         (cpplib.h): Kill prototype of cpp_parse_escape.
19967
19968 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
19969
19970         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
19971         * unroll.c (unroll_loop): Cast return value of alloca.
19972         * i370/i370.c: Include function.h and toplev.h.
19973         (i370_label_scan): Remove c++ commented abort.
19974         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
19975         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
19976         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
19977         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
19978
19979 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
19980
19981         * config/t-freebsd: Do not override USER_H.
19982         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
19983
19984 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
19985                           Mumit Khan  <khan@xraylith.wisc.edu>
19986
19987         * c-parse.in (component_decl): Support anonymous struct/union.
19988         (%expect): Update.
19989         * c-parse.y: Regenerate.
19990         * c-parse.c: Likewise.
19991         * objc/objc-parse.y: Likewise.
19992         * objc/objc-parse.c: Likewise.
19993         * c-decl.c (finish_struct): Don't sort the fields.
19994         (field_decl_cmp): Delete unused function.
19995
19996 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
19997
19998         * sparc.md (movsf_const_intreg): Revert last constraint change.
19999         (movdf_const_intreg_sp32): Likewise.
20000
20001 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
20002
20003         * cse.c: Include hashtab.h instead of splay-tree.h
20004         (struct cse_reg_info): No longer use variant union.  Add new
20005         field "regno".  All references changed to avoid union.
20006         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
20007         (free_cse_reg_info): Remove.
20008         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
20009         (get_cse_reg_info): Revamp to use expandable hash tables instead
20010         of splay trees.  Initialize new fields in cse_reg_info structure.
20011         (new_basic_block): Similarly.
20012
20013 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
20014
20015         * genrecog.c (message_with_line): Prototype.
20016         (validate_pattern): Pass along the set for the dest, not a flag.
20017         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
20018         Check for PC/CC0 as sources.
20019         (nodes_identical): Check for children position match before
20020         allowing the combination.
20021
20022         * rtl.c (read_rtx): Track line number across \\\n.
20023
20024 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
20025
20026         * mips.h (SPECIAL_MODE_PREDICATES): New.
20027         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
20028         (movdi+1, movsi+1): Add output reload constraint.
20029         (casesi_internal): Likewise.  Fix commentary.
20030         (return_internal): Use pmode_register_operand.
20031
20032 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
20033
20034         * 1750a.md (movstrqi): Add missing output reload constraint.
20035         (call_value): Likewise.
20036         * a29k.md (cpxxx patterns): Add missing match_operator mode.
20037         (jmpfdec): Add missing inout reload constraint.
20038         * elxsi.md (addsi patterns): Add missing output reload constraint.
20039         (move from sp): Use @ alternates.
20040         (call_value): No constraint on output.
20041         * fr30.md (movsi_pop): Add missing output reload constraint.
20042         (movsf_constant_store): Likewise.
20043         (splits): Remove constraints.
20044         (subsi3): Add missing mode.
20045         * i370.md (cmpstrsi+1): Add missing output reload constraint.
20046         (call_value): Likewise.
20047         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
20048         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
20049         * m32r.md (movsicc_internal): Add output reload constraint.
20050         (movstrsi_internal): Add inout reload constraints.
20051         * m88k.h (reg_names): Don't declare.
20052         (SPECIAL_MODE_PREDICATES): New.
20053         * m88k.md (*): Use register_operand not reg_or_0_operand
20054         on destinations.
20055         * mn10200.h (PREDICATE_CODES): New.
20056         * ns32k.md (ffs pattern): Add output reload constraint.
20057         * pdp11.md (sob pattern): Add inout reload constraint.
20058         * sh.md (splits): Remove constraints.
20059         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
20060         * v850.md (pattern_is_ok_for_epilogue): Likewise.
20061         * vax.md (jgequ pattern): Add inout reload constraint.
20062
20063 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
20064
20065         * configure.in (djgpp): Revert previous patch.
20066         * configure: Rebuit.
20067         * config/i386/djgpp.h: Revert previous patch.
20068
20069 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
20070
20071         * fixinc/inclhack.def: Restore patch lost during last merge of
20072         "no_bogosity" branch.
20073         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
20074
20075 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20076
20077         * fixincludes: Add a HPUX 11 fix for inttypes.h.
20078         * fixinc/inclhack.def: Same.
20079         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
20080
20081 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
20082
20083         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
20084         as the base of a PLUS.
20085
20086 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20087
20088         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
20089         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
20090
20091 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
20092
20093         * pa.md (post_stw+1): Use pmode_register_operand.
20094         (dcacheflush, icacheflush): Likewise.
20095
20096         * i386.md (movstricthi_1): Allow r/r.
20097
20098 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
20099
20100         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
20101         to (not (and (arg0) (arg1))). Similary for and.
20102
20103         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
20104         fallthrough to associate code.
20105         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
20106         bits in common.
20107
20108         * combine.c (simplify_logical): Convert XOR to IOR if operands have
20109         no bits in common; remove XOR to ROTATE conversion.
20110
20111 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20112
20113         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
20114
20115 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20116
20117         * config/c4x/c4x.c (dst_operand): New.
20118         (PREDICATE_CODES): Update.
20119         * config/c4x/c4x.h (dst_operand): Declare it.
20120         * config/c4x/c4x.md:  Define mode for each unspec usage.
20121         (move patterns):  Use dst_operand predicate instead of src_operand.
20122         (movqi_update, movqf_update): Delete.
20123
20124 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
20125
20126         * recog.c (pmode_register_operand): New.
20127         * recog.h: Declare it.
20128         * genrecog.c (pred_codes): Likewise.
20129         (special_mode_pred_table): Likewise.
20130         (validate_pattern): Don't warn no mode for address_operand.
20131
20132         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
20133         if the operand is not insn-like.
20134
20135 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
20136                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
20137
20138         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
20139
20140 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
20141
20142         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
20143         instead of general_operand in a SET_DEST.  Use const_double_operand
20144         instead of an explicit test against CONST_DOUBLE.
20145         (movsf_const_lo): Add missing register mode.
20146         (goto_handler_and_restore): Add auxiliary test for Pmode.
20147         (flush): Adjust to use address_operand.
20148         (return_sf_no_fpu): Add missing output constraint.
20149
20150 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
20151
20152         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
20153         for call return value.
20154         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
20155
20156 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
20157
20158         * toplev.c (main): Only warn about options for other languages.
20159         * collect2.c (main): Pass -w to sub-gcc.
20160
20161 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
20162
20163         * flow.c (propagate_block): Add call-clobbered registers to
20164         significant too.
20165
20166         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
20167         zapping mem_set_list.
20168         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
20169         (mark_set_1, mark_used_regs): Likewise.
20170
20171 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
20172
20173         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
20174
20175 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
20176
20177         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
20178         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
20179         options. Also add a new item "C-only Warning Options" to the
20180         option summary.
20181
20182 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
20183
20184         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
20185         from multiple calls.
20186
20187 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
20188
20189         * i386.md (call value patterns): Move to the end of the file.
20190         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
20191
20192 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
20193
20194         * configure.in (djgpp configuration): Define extra_objects..
20195         * configure: Rebuilt.
20196         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
20197         (DTORS_SECTION_ASM_OP): Define.
20198         (INIT_SECTION_ASM_OP): Define.
20199         (FINI_SECTION_ASM_OP): Define.
20200         (DATA_SECTION_ASM_OP): Define.
20201         (TEXT_SECTION_ASM_OP): Define.
20202         (EH_FRAME_SECTION_ASM_OP): Define.
20203         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
20204         (STARTFILE_SPEC): Add crtbegin.o.
20205         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
20206         to here from LINK_COMMAND_SPEC.
20207         (DO_GLOBAL_CTORS_BODY): Define.
20208         (CRTSTUFF_USE_FINI_SECTION): Define
20209         (HAS_INIT_SECTION): Delete.
20210
20211 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
20212
20213         * Makefile.in (all.cross): Depend on xcpp$(exeext).
20214
20215 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
20216
20217         * pa.h (PREDICATE_CODES): New.
20218
20219         * genrecog.c (validate_pattern): Condense the destination
20220         non-lvalue message.
20221
20222 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
20223
20224         * alpha.md (call-1): Supply missing mode for operator.
20225         (*): Add missing output reload constraints.  Remove constraints
20226         from define_splits.
20227
20228         * i386.h (SPECIAL_MODE_PREDICATES): New.
20229         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
20230         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
20231         (addsi_lea_3): Add missing mode for op 3.
20232         (prologue_set_got, prologue_get_pc): Add missing modes.
20233         (*) Add missing output reload constraints.
20234
20235 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
20236
20237         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
20238         check for member bit-size overflow and use var_size if it occurs.
20239         (layout_record): Use bitsize_int() to define the type size in bits.
20240         Likewise for computation and assignment to DECL_FIELD_BITPOS.
20241         (layout_decl): Likewise when assigning to DECL_SIZE.
20242
20243 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
20244
20245         * genrecog.c (validate_pattern): Typo last change.  Verify
20246         that output operands have output reloads.
20247
20248 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
20249
20250         * genrecog.c (special_mode_pred_table): New.
20251         (NUM_SPECIAL_MODE_PREDS): New.
20252         (find_operand): New.
20253         (validate_pattern): New argument `insn'.  Warn for assignment to
20254         any predicate accepting non-lvalues.  Conditionaly warn for
20255         match_operand without a mode.  Try much harder to match source
20256         and destination modes on a set.
20257         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
20258
20259 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
20260
20261         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
20262
20263 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
20264
20265         * combine.c (simplify_logical): Recognize xor pattern that encodes
20266         rotation.
20267
20268 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20269
20270         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
20271         alignment.
20272
20273 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
20274
20275         * ggc-page.c (MAP_FAILED): Provide default.
20276
20277 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
20278
20279         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
20280         * sparc.h (PREDICATE_CODES): Update.
20281
20282 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
20283
20284         * alpha.c (some_ni_operand): New.
20285         * alpha-protos.h: Declare it.
20286         * alpha.h (PREDICATE_CODES): Update.
20287         * alpha.md (sXaddq reload insns): Use some_ni_operand
20288         for SET_DEST instead of some_operand.
20289
20290 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
20291                           Jim Wilson  <wilson@cygnus.com>
20292
20293         * genrecog.c (maybe_both_true_2): Don't compare modes of
20294         two DT_pred tests.
20295         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
20296         after find_afterward.
20297         (debug_decision_1): Dump next and afterward codes.
20298
20299 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
20300
20301         * rtl.c (dump_and_abort): Remove.
20302         (fatal_with_file_and_line): New.
20303         (fatal_expected_char): New.
20304         (read_rtx_lineno, read_rtx_filename): New.
20305         (read_skip_spaces): Track line number.
20306         (read_name): Use fatal_with_file_and_line.
20307         (read_rtx): Use fatal_expected_char.  Track line number.
20308         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
20309
20310         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
20311         if it isn't a CODE_LABEL.
20312
20313         * genattr.c (main): Set read_rtx_filename.
20314         * genattrtab.c (main): Likewise.
20315         * gencodes.c (main): Likewise.
20316         * genconfig.c (main): Likewise.
20317         * genemit.c (main): Likewise.
20318         * genextract.c (main): Likewise.
20319         * genflags.c (main): Likewise.
20320         * genopinit.c (main): Likewise.
20321         * genoutput.c (main): Likewise.
20322         * genpeep.c (main): Likewise.
20323
20324         * genrecog.c (decision_test.u.insn): Add `lineno'.
20325         (pattern_lineno, error_count): New variables.
20326         (message_with_line): New.
20327         (add_to_sequence): Break out checking code to ...
20328         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
20329         (merge_insn): Use message_with_line.
20330         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
20331         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
20332
20333 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20334
20335         * expr.c (store_constructor): Clear union if constructor is empty.
20336
20337 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
20338
20339         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
20340         Add !endian checks.  Change %{...} to %(...).
20341
20342 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
20343
20344         * i386.md (*addsi3_cc): Renamed from addcsi3.
20345         (*addsi3_carry): Renamed from addxsi3.
20346         (*subsi3_cc): Renamed from subcsi3.
20347         (*subsi3_carry): Renamed from subxsi3.
20348         (*xorqi_cc_1): Renamed from xorcqi_1.
20349         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
20350         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
20351
20352 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
20353
20354         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
20355         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
20356
20357 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
20358
20359         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
20360         climb up the chain of insns.
20361
20362 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
20363
20364         * genrecog.c (write_subroutine): Careful for null trees.
20365         (process_tree): Don't elide empty functions.
20366
20367 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
20368
20369         * Makefile.in (genrtl.o): Depend on ggc.h.
20370         * configure.in (valloc): Probe for it.
20371         (with-gc): Use ggc-page if valloc present.
20372         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
20373         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
20374         (ggc_alloc_string): Moved from ggc-page.c.
20375         * ggc-none.c (ggc_alloc_obj): New.
20376         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
20377         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
20378         (struct globals): Likewise for dev_zero_fd.
20379         (init_ggc): Likewise for it's initialization.
20380         (ggc_allocated_p): Move careful dereference from ...
20381         (ggc_lookup_page_table): ... here.  Delete.
20382         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
20383         (alloc_anon): Use valloc if no mmap.
20384         (release_pages): Use free if using valloc.
20385         (ggc_alloc_obj): Renamed from alloc_obj.
20386         (ggc_set_mark): Renamed from mark_obj.
20387         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
20388         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
20389         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
20390         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
20391         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
20392         (ggc_collect): Use fp printing instead of our own rounding.
20393         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
20394         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
20395         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
20396         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
20397         (struct ggc_string, struct ggc_any): Delete.
20398         (offsetof): Provide default definition.
20399         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
20400         (PTR_KEY): New.
20401         (struct ggc_mem): New, from corpse of ggc_any.
20402         (struct ggc_status): Delete.
20403         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
20404         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
20405         (n_strings_collected, n_anys_collected): Delete.
20406         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
20407         (ggc_alloc_string, ggc_alloc): Delete.
20408         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
20409         (ggc_free_string, ggc_free_any): Delete.
20410         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
20411         (ggc_compare_addresses, ggc_mark_string): Delete.
20412         (ggc_mark_string_if_gcable, ggc_mark): Delete.
20413         (search_data): Delete.
20414         (struct globals): New.
20415         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
20416         (tree_insert, tree_lookup): New.
20417         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
20418         (clear_marks, sweep_objs): New.
20419         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
20420         (init_ggc): Set allocated_last_gc.
20421         (ggc_push_context): Gut.  Use G.context.
20422         (ggc_pop_context): Likewise.
20423         (ggc_pop_context_1): New.
20424         (debug_ggc_tree): New.
20425         (debug_ggc_balance, tally_leaves): New.
20426         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
20427         (ggc_mark_string_if_gcable): Remove decl.
20428         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
20429         (ggc_mark_rtvec_children): New.
20430         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
20431         (ggc_mark_if_gcable): New decl.
20432         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
20433         (ggc_alloc_tree, ggc_alloc): Likewise.
20434         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
20435         (ggc_alloc_obj): New decl.
20436         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
20437         (ggc_alloc_tree, ggc_alloc): Likewise.
20438         (ggc_set_mark): New decl.
20439         * rtl.h (struct rtx_def): Remove gc_mark.
20440         (struct rtvec_def): Likewise.
20441         * tree.h (struct tree_common): Likewise.
20442
20443 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
20444
20445         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
20446         float_format and thread_file definitions.
20447         * configure: Rebuilt.
20448
20449 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
20450
20451         * extend.texi (Function Names): Document types of function names.
20452
20453 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20454
20455         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
20456         an earlyclobbered output conflict with RELOAD_INPUT reloads.
20457
20458 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20459
20460         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
20461
20462 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20463
20464         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
20465
20466 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
20467
20468         * collect2.c (main): Do prelimnary link on AIX if rflag.
20469
20470 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
20471
20472         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
20473         __CTOR_LIST__ in opposite order, which is the correct order for sorted
20474         constructors.
20475         (__do_global_dtors): similarly for __DTOR_LIST__.
20476
20477 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20478                                 Diego Novillo <dnovillo@cygnus.com>
20479
20480         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
20481         FPUL_REGS.
20482
20483 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
20484
20485         * fixincl/*: Merged "no_bogosity" branch
20486         * fixincl/fixlib.h: protect against doubly defining t_bool
20487         * fixincl/server.h: protect against doubly defining t_bool
20488
20489 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
20490
20491         * genoutput.c: Include toplev.h.
20492
20493 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
20494
20495         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
20496         Undef.
20497         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
20498         * configure: Regenerate.
20499
20500 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
20501
20502         * gcse.c (delete_null_pointer_checks): Returns void.
20503
20504 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20505
20506         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
20507         * emit-rtl.c (copy_insn_1): Likewise.
20508
20509 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
20510
20511         * config/mips/mips.c (mips_build_va_list): Correct
20512         TREE_CHAIN setting when hard-float.
20513         (mips_va_start): Use corrected setting.
20514         (mips_va_arg): Likewise.  Also pass a tree to build of
20515         POSTINCREMENT_EXPR rather than a naked 'int'.
20516
20517 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
20518
20519         * ggc.h (ggc_push_context): Fix comment.
20520         (ggc_pop_context): Likewise.
20521         (mark_string_if_gcable): Likewise.
20522         * ggc-common.c (ggc_mark_rtx_children): Use
20523         ggc_mark_string_if_gcable.
20524         * ggc-page.c (ggc_lookup_page_table): New function.
20525         (ggc_allocated_p): Likewise.
20526         (mark_obj): Fix formatting.
20527         (ggc_mark_string_if_gcable): New function.
20528         * ggc-simple.c (ggc_allocated_strings): New variable.
20529         (ggc_strings_used): Likewise.
20530         (ggc_compare_addresses): New function.
20531         (ggc_pop_context): Pop the `any' memory too.
20532         (ggc_mark_string_if_gcable): New function.
20533         (ggc_collect): Initialize and tear down ggc_allocated_strings.
20534
20535 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
20536
20537         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
20538         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
20539         * rs6000.c (expand_block_move): Match movstrsi_?reg register
20540         changes.
20541
20542 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
20543
20544         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
20545         (sched_reg_live_length, sched_reg_basic_block): Delete.
20546         (current_block_num, bb_live_regs, old_live_regs): Delete.
20547         (dead_notes, struct sometimes): Delete.
20548         (sched_note_set, birthing_insn_p): Delete.
20549         (adjust_priority): Gut useless reg lifetime code.
20550         (create_reg_dead_note, attach_deaths): Delete.
20551         (attach_deaths_insn, new_sometimes_live): Delete.
20552         (finish_sometimes_live): Delete.
20553         (find_pre_sched_live, find_post_sched_live): Delete.
20554         (update_reg_usage): Delete.
20555         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
20556         (schedule_insns): Delete reg lifetime code.
20557         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
20558         (unlink_other_notes): Adjust REG_NOTE commentary.
20559         (reemit_notes): Use REG_SAVE_NOTE.
20560         (schedule_block): Likewise.
20561         (schedule_region): Allocate bitmap of blocks in region.  Use
20562         count_or_remove_death_notes.  Use update_life_info.
20563
20564         * rtl.h (REG_SAVE_NOTE): New.
20565         * rtl.c (reg_note_name): Update.
20566
20567 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
20568
20569         * combine.c (refresh_blocks, need_refresh): New.
20570         (combine_instructions): Allocate refresh_blocks.  Invoke
20571         update_life_info if needed.
20572         (distribute_notes): Mark refresh_blocks instead of installing
20573         USE insns.
20574         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
20575         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
20576
20577         * Makefile.in (recog.o): Depend on basic-block.h.
20578
20579 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
20580
20581         * genrecog.c (add_to_sequence): Thinko last change: delete
20582         shadowing allow_const_int variable.
20583
20584 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20585
20586         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
20587         __GNUC__ and __GNUC_MINOR__.
20588
20589         * gansidecl.h: Likewise.
20590
20591         * rtl.c: Likewise.
20592
20593         * rtl.h: Likewise.
20594
20595         * toplev.h: Likewise.
20596
20597         * tree.c: Likewise.
20598
20599         * tree.h: Likewise.
20600
20601         * varray.c: Likewise.
20602
20603         * varray.h: Likewise.
20604
20605 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20606
20607         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
20608         use one before a jump table.
20609
20610         * rtl.def (ADDRESS): Change documentation to match reality.
20611         * md.texi: Don't document it.
20612         * gmicro.md (load address pattern): Use 'p' constraint, delete use
20613         of ADDRESS rtx.
20614
20615         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
20616
20617 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
20618
20619         * genrecog.c (add_to_sequence): Move allow_const_int test outside
20620         known predicate block; default allow_const_int true.
20621         (debug_decision_list): New.
20622
20623 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
20624
20625         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
20626
20627 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
20628
20629         * gcse.c (gcse_main): Avoid global optimizations if we have a
20630         large number of basic blocks and the ratio of edges to blocks
20631         is high.
20632         (delete_null_pointer_checks): Likewise.
20633
20634 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
20635
20636         * c-common.c (check_format_info): Warn if format string isn't a
20637         string literal.
20638
20639 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
20640
20641         * configure.in (arm*-*-*): Don't let autoconf remove brackets
20642         * configure: regenerate
20643
20644 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
20645
20646         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
20647         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
20648         (peepholes): Re-enable.
20649
20650 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
20651
20652         * Makefile.in (flow.o): Depend on TREE_H.
20653         * basic-block.h (REG_SET_EQUAL_P): New.
20654         (XOR_REG_SET): New.
20655         (n_edges): Declare.
20656         (free_regset_vector): Remove declaration.
20657         (flow_delete_insn_chain): Declare.
20658         (enum update_life_extent): New.
20659         (update_life_info, count_or_remove_death_notes): Declare.
20660         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
20661         Verify register live at bb->global_live_at_start before adding USE.
20662         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
20663         (CLEAN_ALLOCA): New.
20664         (n_edges): New.
20665         (PROP_*): New flags.
20666         (find_basic_blocks_1): Use alloc_EXPR_LIST.
20667         (clear_edges): Zero n_edges.
20668         (make_edge): Increment n_edges.
20669         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
20670         (flow_delete_insn_chain): Export.
20671         (delete_block): Decrement n_edges.
20672         (merge_blocks_nomove): Likewise.
20673         (life_analysis): Give life_analysis_1 PROP flags.
20674         (verify_wide_reg_1, verify_wide_reg): New.
20675         (verify_local_live_at_start): New.
20676         (update_life_info): Rewrite to call into propogate_block.
20677         (mark_reg): New.
20678         (mark_regs_live_at_end): After reload, if epilogue as rtl,
20679         always mark stack pointer.  Conditionally mark PIC register.
20680         After reload, mark call-saved registers, return regsiters.
20681         (life_analysis_1): Accept PROP flags not remove_dead_code.
20682         Call mark_regs_live_at_end before zeroing regs_ever_live.
20683         Use calculate_global_regs_live.  Copy global_live_at_end before
20684         calling final propagate_block.  Zero reg_next_use on exit.
20685         (calculate_global_regs_live): New.
20686         (allocate_bb_life_data): Don't allocate bb->local_set.
20687         (init_regset_vector, free_regset_vector): Remove.
20688         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
20689         Test flags before every operation.  Warn if prologue/epilogue insn
20690         would have been deleted.
20691         (mark_set_regs, mark_set_1): Accept and use FLAGS.
20692         Use alloc_EXPR_LIST.
20693         (mark_used_regs): Accept and use FLAGS, not FINAL.
20694         Remove special handling for RETURN.
20695         (try_pre_increment): Use alloc_EXPR_LIST.
20696         (dump_flow_info): Dump n_edges.
20697         (unlink_insn_chain, split_hard_reg_notes): Remove.
20698         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
20699         (find_insn_with_note, new_insn_dead_notes): Remove.
20700         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
20701         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
20702         (replace_insns): Remove.
20703         (count_or_remove_death_notes): New.
20704         (verify_flow_info): Abort on error after all checks.
20705         (remove_edge): Decrement n_edges.
20706         (remove_fake_edges): Tweak format.
20707         * haifa-sched.c (schedule_insns): Use split_all_insns.
20708         * output.h (update_life_info): Remove declaration.
20709         * recog.c (split_all_insns): From the corpse of split_block_insns,
20710         do the whole function block by block.  Use update_life_info.
20711         (recog_last_allowed_insn): New.
20712         (recog_next_insn): Mind it.
20713         (peephole2_optimize): Set it.  Walk backwards through blocks.
20714         Use update_life_info.
20715         * rtl.h (update_flow_info, replace_insns): Remove declarations.
20716         (split_all_insns): Declare.
20717         * toplev.c (rest_of_compilation): Thread prologue before flow2.
20718         Use split_all_insns.
20719
20720         * i386.md (or -1 peep2s): Disable.
20721
20722 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
20723
20724         * config/mips/mips.md (movstrsi+[123]) : Combine these into
20725         a single pattern.  Scrap the 'd' versions as unnecessary.
20726
20727         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
20728         tablejump_mips162,tablejump_internal4): The operands to a
20729         label_ref must be VOIDmode.
20730
20731 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20732
20733         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
20734
20735 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
20736
20737         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
20738
20739 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
20740
20741         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
20742         cache every function if ggc_p.
20743
20744 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20745
20746         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
20747         instead of copy_rtx.  Accept sequences that contain asm statements.
20748         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
20749         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
20750         orig_asm_operands_vector, copy_asm_operands_vector,
20751         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
20752         variables.
20753         * rtl.h (copy_insn, copy_insn_1): Declare.
20754
20755 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20756
20757         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
20758
20759         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
20760         arguments to `current_file_function_operand'.
20761
20762         * genrecog.c: Include hard-reg-set.h and resource.h in the
20763         generated output file.
20764
20765         * real.c: Include tm_p.h.
20766
20767 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20768
20769         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
20770         output operand.
20771
20772 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
20773
20774         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
20775         before the fctiwz insn.
20776
20777 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20778                           Mark Mitchell  <mark@codesourcery.com>
20779
20780         * tree.c (make_lang_type_fn): New funtion pointer.
20781         (make_lang_type): Call it.
20782         * tree.h (make_lang_type): Declare.
20783         (make_lang_type_fn): Likewise.
20784         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
20785
20786 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
20787
20788         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
20789         make sure that HIGH instructions are copied into BASE_REGS.
20790
20791 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
20792
20793         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
20794
20795 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
20796
20797         * c-decl.c (finish_struct): Use simpler method of
20798         removing elements of a singly-linked list.
20799
20800 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
20801
20802         * alpha.md (peephole2's): Comment out peephole2's that generate
20803         buggy code.
20804
20805 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
20806
20807         * genrecog.c (add_to_sequence): Disable mode check for
20808         wildcard matches.
20809
20810 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20811
20812         * ggc-simple.c (init_ggc): Set empty_string.
20813
20814 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
20815
20816         * configure.in: Detect mmap.  Add --with-gc=foo to select
20817         garbage collector; default to page if mmap available.
20818         * Makefile.in (GGC): Substitute.
20819
20820 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
20821
20822         * c-decl.c (ggc_p): Enable.
20823
20824 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20825
20826         * flow.c (verify_flow_info): Make it extern & unconditionally define.
20827
20828 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
20829
20830         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
20831         string for little-endian-data.
20832
20833 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
20834
20835         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
20836         case somebody tries to compile --enable-checking code with gcc
20837         1.34 or such.
20838
20839 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
20840
20841         * genrecog.c (add_to_sequence): Verify operand to label_ref is
20842         VOIDmode.
20843
20844 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
20845
20846         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
20847         * jump.c (jump_optimize_1): Document why.
20848
20849 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20850
20851         * collect2.c (scan_prog_file, scan_libraries): Prototype function
20852         pointers and casts for `int_handler' and `quit_handler'.
20853
20854         * flow.c (verify_flow_info, split_hard_reg_notes,
20855         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
20856         remove_edge, remove_fake_successors): Add static prototypes.
20857         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
20858         (mark_set_1): Initialize variable `regno'.
20859         (unlink_insn_chain): Likewise for variable `curr'.
20860         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
20861
20862         * loop.c (strength_reduce): Initialize variable
20863         `unrolled_insn_copies'.
20864         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
20865         prototypes.  Change these functions to take const PTR parameters
20866         to avoid prototype conflict when used as the comparson argument
20867         for qsort.
20868         (check_dbra_loop): Initialize variable `comparison_val'.
20869
20870         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
20871         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
20872         (find_valid_class): Initialize variable `best_class'.
20873         (find_reloads): Call memcpy, not bcopy.
20874
20875         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
20876         (hard_reg_use_compare): Don't needlessly cast away const.
20877         (reload_reg_class_lower): Likewise.
20878         (choose_reload_regs): Initialize variable `regno'.
20879
20880 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
20881
20882         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
20883
20884 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
20885
20886         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
20887         ({,d}discard): Add forward declarations.  Declare parameter as
20888         unused.
20889         (main_without_main): Explicitly declare return type to be int.
20890         (memcpy): Properly declare.
20891
20892         * libgcc2.c (toplevel): If inhibit_libc is defined and not
20893         building the trampoline support, declare malloc, free, and
20894         atexit.
20895         (__clear_cache): Mark arguments as potentially unused.
20896
20897         * frame.c (toplevel): If inhibit_libc is defined, declare
20898         malloc and free.
20899
20900 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
20901
20902         * flow.c (make_edge): Accept an optional 2D bitmap in which
20903         to cache edge existence.  Update all callers.
20904         (make_label_edge, make_eh_edge): Pass through the edge cache.
20905         (make_edges): Provide the cache.
20906
20907 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20908
20909         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
20910         a char*.
20911         (local_mbtowc): Change the type of variable `i' from int to size_t.
20912
20913         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
20914         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
20915
20916 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
20917
20918         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
20919         after other includes that define the appropriate types.  Include
20920         tm_p.h for getting user prototypes.
20921         * ggc-callbacks.c (toplevel): Ditto.
20922         * ggc-none.c (toplevel): Ditto.
20923         * gcc-page.c (toplevel): Ditto.
20924         * ggc-simple.c (toplevel): Ditto.
20925
20926 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
20927                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
20928
20929         * config/mips/mips.c (mips_move_2words): Split doubles if
20930         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
20931
20932 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
20933
20934         * genrecog.c (struct decision_test): New.
20935         (struct decision): Remove test-related members, sort the rest by size.
20936         (IS_SPLIT): Simplify.
20937         (new_decision, new_decision_test): New.
20938         (add_to_sequence): Use them.  No special handling for args of
20939         non-MATCH codes.
20940         (maybe_both_true): Renamed from not_both_true; return sense changed.
20941         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
20942         of maybe_both_true and adjusted for decision_test.
20943         (position_merit): Remove.
20944         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
20945         (merge_accept_insn): New, broken out of merge_trees.
20946         (merge_trees): Use them.  No special case for c_test; no node
20947         splitting; use test type instead of position_merit.
20948         (factor_tests): New.
20949         (simplify_tests): New.
20950         (break_out_subroutines): Don't write code now.
20951         (find_afterward): New.
20952         (write_afterward, write_switch, write_cond): New.
20953         (write_action, is_unconditional): New.
20954         (write_node): New.  Use them.
20955         (write_tree_1): Rewrite.  Use the new functions above.
20956         (write_tree): Remove afterward processing.
20957         (write_subroutine): Simplify function variant emission.
20958         (write_subroutines): New.
20959         (same_codes, clear_codes): Remove.
20960         (same_modes, clear_modes): Remove.
20961         (write_header): New, broken out of main.
20962         (make_insn_sequence): Use new_decision and new_decision_test.
20963         (process_tree): New, broken out of main.
20964         (main): Adjust for merge_trees interface change.
20965         Don't #define operands in the output file.
20966         (record_insn_name): New, broken out of make_insn_sequence.
20967         (debug_decision_2, debug_decision_1, debug_decision_0): New.
20968         (debug_decision): New.
20969
20970 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
20971
20972         * resource.c (find_free_register): Mark class_str argument const.
20973         * resource.h: Update prototype to match.
20974
20975         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
20976         * i386.md: Give all anonymous insns names.
20977
20978 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
20979
20980         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
20981         blocks.
20982
20983 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
20984
20985         * toplev.c (dbr_sched_time): Unconditional.
20986         (peephole2_time): New.
20987         (compile_file): Add pass numbers to all of the dump file suffixes.
20988         Dump peephole2_time.  Don't dump times for non-applicable passes.
20989         (rest_of_compilation): Add pass numbers to dump file suffixes.
20990         Conditionalize calls to the scheduler.
20991         * invoke.texi: Update.
20992
20993 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
20994
20995         * flow.c (make_edges): Fix insn iteration.
20996         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
20997         (find_basic_blocks_1): Fix spelling mistake.
20998
20999 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
21000
21001         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
21002         always have side-effects.  Use memset not bzero.
21003         (make_node): Likewise.
21004
21005 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
21006
21007         * stmt.c (expand_anon_union_decl): When any of the elements of the
21008         union is addressable, so is the entire union.
21009
21010 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
21011
21012         * sbitmap.c (sbitmap_ones): Don't set too many bits.
21013
21014         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
21015         * bitmap.c (bitmap_operation): Return true iff TO changed.
21016         (bitmap_equal_p): New.
21017         (bitmap_bit_p): Tidy arithmetic.
21018         (debug_bitmap_file): Likewise.
21019
21020 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
21021
21022         * toplev.c (rest_of_compilation): Turn on cse_not_expected
21023         before cse2 instead of after.
21024
21025 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
21026
21027         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
21028         register offsets.
21029
21030 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21031
21032         * cppinit.c (is_idchar initializer): Loosen tests to accept
21033         gcc 2.>6 and >2.
21034
21035 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
21036
21037         * mips.md: Define conditional move patterns for floating point
21038         operands and DI mode conditions.
21039
21040 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
21041
21042         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
21043         always have side-effects.
21044
21045 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
21046
21047         * mn10200.c (asm_file_start): Fix typo.
21048
21049         * cppinit.c (is_idchar initializer): Tighten tests for when
21050         to put the table into initialized memory.
21051
21052         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
21053         not an array of rtunion.
21054         * gcc-page.c (ggc_alloc_rtvec): Similarly.
21055         * gcc-simple (ggc_free_rtvec): Similarly.
21056
21057         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
21058         of rtunions.
21059
21060         * mbchar.h: Add missing #endif.
21061
21062         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
21063         (FPBIT, DPBIT): Define.
21064
21065 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21066
21067         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
21068
21069         * profile.c (instrument_arcs, output_gcov_string,
21070         tablejump_entry_p): Add static prototypes.
21071         (output_gcov_string): Constify a char*.
21072
21073         * regmove.c (replacement_quality, fixup_match_2): Add static
21074         prototypes.
21075
21076         * resource.h (reg_dead_p): Add extern prototype.
21077
21078         * rtl.c (trim_filename): Add static prototype.
21079
21080         * scan-decls.c (skip_to_closing_brace): Likewise.
21081
21082         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
21083         (expand_end_case): Initialize variable `range'.
21084         (emit_case_nodes): Remove unused prototype `rtx_fn'.
21085
21086         * varasm.c (asm_emit_uninitialised): Add static prototype.
21087         (asm_emit_uninitialised, assemble_variable): Mark parameter with
21088         ATTRIBUTE_UNUSED.
21089
21090 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21091
21092         * cpplib.c (if_directive_nameo): Add static prototype.
21093
21094         * cse.c (cse_insn): Remove unused variable `p'.
21095
21096         * except.c (create_rethrow_ref, push_entry,
21097         receive_exception_label, new_eh_region_entry, find_func_region,
21098         clear_function_eh_region, process_nestinfo): Add static prototypes.
21099         (get_reg_for_handler): Hide definition.
21100         (process_nestinfo): Initialize variable `extra_handlers'.
21101
21102         * expr.h (expand_builtin_longjmp): Add extern prototype.
21103
21104         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
21105
21106         * function.c (prepare_function_start): Likewise.
21107         (pop_function_context_from): Mark parameter `context' with
21108         ATTRIBUTE_UNUSED.
21109         (push_temp_slots_for_block, flush_addressof): Hide definition.
21110
21111         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
21112         solve_program_flow_graph, calculate_branch_probs,
21113         function_summary, main, fancy_abort): Add prototypes.
21114
21115         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
21116         (add_hash): Constify a char*.
21117
21118         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
21119         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
21120         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
21121
21122         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
21123
21124         * lists.c (free_list, zap_lists): Likewise.
21125
21126 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21127
21128         * alias.c (nonlocal_reference_p): Add static prototype.
21129
21130         * bitmap.c (bitmap_element_allocate): Prototype args in function
21131         pointer cast.
21132
21133         * builtins.c (stabilize_va_list): Add static prototype.
21134         (expand_builtin_va_arg): Constify a char*.
21135
21136         * c-lex.c (getch, put_back, extend_token_buffer_to,
21137         read_line_number, token_getch, token_put_back): Add static
21138         prototypes.
21139
21140         * c-parse.gperf (hash, is_reserved_word): Likewise.
21141
21142         * cccp.c (is_dir_separator): Likewise.
21143
21144 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21145
21146         * graph.h: New file to prototype functions exported by graph.c.
21147
21148         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
21149
21150         * graph.c: Include graph.h.
21151
21152         * toplev.c: Likewise.  Remove redundant prototypes.
21153
21154 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
21155
21156         * invoke.texi: Removed duplicated description for -Q.
21157
21158 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
21159
21160         * extend.texi: Grammar fix in __extension__ text.
21161
21162 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
21163
21164         * md.texi (define_peephole2): New section.
21165
21166 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
21167
21168         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
21169         (mov $-1 to or peepholer): Enable for pentium when optimizing for
21170         speed.
21171
21172 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
21173
21174         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
21175
21176 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
21177
21178         * i386.md (ffs expander): Emit Pentium friendly code for
21179         TARGET_PENTIUM.
21180
21181 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
21182
21183         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
21184         for non-trees.
21185         (build1): Likewise.
21186
21187 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21188
21189         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
21190
21191 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
21192
21193         * config/m68k/m68k.c (use_return_insn): Return false if the pic
21194         register is in use.
21195
21196 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21197
21198         * md.texi (No Constraints): Delete section.
21199         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
21200         * final.c (final_scan_insn): We always have register constraints.
21201         * genattrtab.c: Don't include "insn-config.h".
21202         (write_attr_case): We always have register constraints.
21203         * genconfig.c (register_constraint_flag): Delete.
21204         (walk_insn_part): Don't check whether we have register constraints.
21205         (main): Don't write out "#define REGISTER_CONSTRAINTS".
21206         * genoutput.c (have_constraints): Delete.
21207         (main): Don't set it.
21208         (output_operand_data): We always have constraints.
21209         (scan_operands): Likewise.
21210         (compare_operands): Likewise.
21211         * local-alloc.c (block_alloc): We always have constraints.
21212         (requires_inout): Always compile this function.
21213         * recog.c (extract_insn): We always have constraints.
21214         (constrain_operands, reg_fits_class_p): Always compile these
21215         functions.
21216         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
21217         fields.
21218         (struct insn_operand_data): Likewise.
21219         * regclass.c (regclass): We always have constraints.
21220         (record_reg_classes, copy_cost, record_address_regs,
21221         auto_inc_dec_reg_p): Always compile these functions.
21222         * regmove.c (regmove_optimize): We always have constraints.
21223         * reload.c (find_reloads): Likewise.
21224         * reload1.c (reload): Likewise.
21225         (reload_cse_simplify_operands): Likewise.
21226         * i860.c (output_delay_insn): Likewise.
21227
21228 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
21229
21230         * iris6.h (BUILD_VA_LIST_TYPE): Define.
21231
21232 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
21233
21234         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
21235         for the va_list record.
21236
21237 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
21238
21239         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
21240         prologues.
21241
21242 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
21243
21244         * alias.c: Include insn-flags.h.
21245         * Makefile.in (alias.o): Update.
21246
21247 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
21248
21249         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
21250         to LTU and GEU.  Handle more cases using sbb.
21251
21252 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
21253
21254         * i386.md (truncatexfdf splitters): Do not use subreg.
21255         (fop XFmode patterns): Fix mode in operand testing.
21256
21257 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
21258
21259         * jump.c (jump_optimize_1): Amend last change to test only the
21260         form of the operand, not the insn.
21261
21262         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
21263         not register_operand to determine when B may need preloading.
21264
21265 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
21266
21267         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
21268         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
21269         (call-value patterns): Move to end of file.
21270         (*): Remove mode from label_ref in (pc) context.
21271         (movstrqi): Use memory not general_operand for BLKmode operands.
21272         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
21273         to register_operand operands.
21274         (peep2 patterns): Convert from commented-out peephole patterns.
21275
21276 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21277
21278         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
21279         to BUILT_IN_INIT_DWARF_REG_SIZES.
21280         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
21281         Renamed from BUILT_IN_DWARF_REG_SIZE; call
21282         expand_builtin_init_dwarf_reg_sizes.
21283         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
21284         with __builtin_init_dwarf_reg_size_table.
21285         * dwarf2out.c (struct reg_size_range): Delete.
21286         (expand_builtin_init_dwarf_reg_sizes): New function.
21287         (expand_builtin_dwarf_reg_size): Delete.
21288         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
21289         (expand_builtin_dwarf_reg_size): Don't declare.
21290         * libgcc2.c (dwarf_reg_size_table_initialized): New.
21291         (dwarf_reg_size_table): New.
21292         (init_reg_size_table): New function.
21293         (copy_reg): Use dwarf_reg_size_table.
21294         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
21295         before use.
21296
21297 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
21298
21299         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
21300         Correctly build argument list to constructor and destructor functions.
21301
21302 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
21303
21304         * c-tree.h (warn_float_equal): Declare.
21305         * c-decl.c (warn_float_equal): Define.
21306         (c_decode_option): Recognize -W[no-]float-equal.
21307         * c-typeck.c (build_binary_op): Conditionally warn
21308         about equality tests of floating point types.
21309         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
21310         * invoke.texi: Add docs for -Wfloat-equal warning.
21311
21312 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
21313
21314         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
21315         generating RTL directly.
21316         * mips.h (INIT_TARGET_OPTABS): Likewise.
21317         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
21318
21319         * expr.h (init_mov_optab): Delete declaration
21320
21321         * h8300.c (WORD_REG_USED): Update to avoid useless register
21322         saves in interrupt functions and functions which never return.
21323
21324         * cse.c (struct set): Delete inner_dest_loc field.
21325         (cse_insn): Remove assignments to inner_dest_loc field.
21326
21327 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
21328
21329         * ggc-page.c: Don't include <unistd.h> etc taken care of
21330         by "system.h".  Include <sys/mman.h> afterward.
21331
21332 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
21333
21334         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
21335         ggc_alloc_string.
21336
21337 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
21338
21339         * xcoffout.c (xcoffout_declare_function): Add documentation.
21340         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
21341         TARGET_64BIT.  Compare constant to -1, not bit pattern.
21342         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
21343         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
21344         gen_movsi typos.
21345
21346 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
21347
21348         * dwarf2out.c (add_abstract_origin_attribute): Abort if
21349         origin_die is NULL.
21350         (gen_inlined_enumeration_type_die): Do not abort if the type has
21351         not been writeen out.
21352         (gen_inlined_structure_type_die): Do not abort if the type has
21353         not been writeen out.
21354         (gen_inlined_union_type_die): Do not abort if the type has
21355         not been writeen out.
21356         (gen_tagged_type_instantiation_die): Do not abort if the type
21357         has not been written out.
21358
21359 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21360
21361         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
21362         call it.
21363         * reg-stack.c (straighten_stack): Copy hard reg set with
21364         COPY_HARD_REG_SET.
21365
21366 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
21367
21368         * builtins.c (stabilize_va_list): Stabilize array type va_list
21369         to a pointer type, not the base record type.
21370         (expand_builtin_va_copy): Dereference the pointers explicitly;
21371         use the correct size for the copy.
21372
21373         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
21374         (rs6000_va_arg): Likewise.
21375
21376 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
21377
21378         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
21379
21380 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
21381
21382         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
21383         field.
21384         (DECL_BUILT_IN_CLASS): Adjust accordingly.
21385
21386 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
21387
21388         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
21389         (init_ggc): Use it instead of a constant.
21390         (ggc_collect): Bound allocated_last_gc by it.
21391
21392 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
21393
21394         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
21395         with va_list.
21396
21397 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
21398
21399         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
21400         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
21401         * configure:  Regen.
21402         * config/mips/openbsd.h:  New, OpenBSD little endian target.
21403         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
21404         * config/mips/xm-openbsd.h:  New, OpenBSD host.
21405
21406 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
21407
21408         * config/m68k/m68k.c (output_function_prologue,
21409         output_function_epilogue): Use
21410         current_function_uses_pic_offset_table instead of regs_ever_live
21411         to decide whether to save/restore pic register.
21412         (legitimize_pic_address): Don't modify regs_ever_live any more.
21413
21414 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
21415
21416         * function.h (struct function): Add x_dont_save_pending_sizes_p.
21417         * stor-layout.c (variable_size): Don't add sizes to the pending
21418         sizes list if x_dont_save_pending_sizes_p is set.
21419
21420 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
21421
21422         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
21423         for symbolic_operand().
21424         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
21425
21426 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21427
21428         * combine.c (gen_rtx_combine): Add missing call to va_end().
21429
21430         * final.c (asm_fprintf): Likewise.
21431
21432         * genattrtab.c (attr_rtx): Likewise.
21433
21434 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
21435
21436         * cse.c: Update comments.
21437         (cse_insn): When converting a conditional/computed jump into
21438         an unconditional jump, always make sure a BARRIER immediately
21439         follows the converted jump.  Do not delete unreachable code.
21440         (cse_basic_block): Do not delete unreachable code.
21441         * toplev.c (rest_of_compilation): Move call to
21442         delete_trivially_dead_insns after the conditional call to
21443         jump_optimize.
21444
21445 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21446
21447         * collect2.c (make_temp_file): Don't prototype.
21448
21449         * gcc.c (make_temp_file): Likewise.
21450
21451         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
21452
21453 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
21454
21455         * varasm.c (asm_emit_uninitialised): New function: Generate
21456         the assembler statements necessary to declare an uninitialised
21457         variable.
21458         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
21459         variable.
21460         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
21461         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
21462         section.
21463         (assemble_variable): Use asm_emit_uninitialised to emit an
21464         uninitialised variable.
21465
21466 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
21467
21468         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
21469         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
21470         <geoffk@cygnus.com>.
21471
21472 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21473
21474         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
21475         * c-common.h (builtin_function): Don't declare.
21476
21477         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
21478         DECL_BUILT_IN.
21479         (pushdecl): Likewise.
21480         (finish_decl): Likewise.
21481         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
21482         int.  All callers changed.
21483         Set the builtin's DECL_BUILT_IN_CLASS.
21484         * tree.h (enum built_in_class): New.
21485         (enum built_in_function): Delete NOT_BUILT_IN.
21486         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
21487         in a union.
21488         (DECL_SET_FUNCTION_CODE): Likewise.
21489         (DECL_BUILT_IN_CLASS): New macro.
21490         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
21491         (struct tree_decl): Split builtin function code field into a
21492         struct.
21493         (builtin_function): Declare.
21494
21495 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
21496
21497         * optabs.c (init_traps): Fix typo in last change.
21498
21499 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
21500
21501         * toplev.c (rest_of_decl_compilation): Update comment.
21502
21503 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
21504
21505         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
21506         in .sbss if appropriate.
21507         (EXTRA_SECTION_FUNCTIONS): Add sbss.
21508         (SBSS_SECTION_ASM_OP): New macro.
21509         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
21510         (EXTRA_SECTIONS): Add in_sbss.
21511         * config/mips/mips.h: Prototype sbss_section.
21512
21513 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
21514
21515         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
21516         to disappear.
21517
21518 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
21519
21520         * optabs.c (init_traps): Register trap_rtx as a GC root.
21521
21522 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21523
21524         * config/mips/mips.c (function_arg_pass_by_reference): Define
21525         unconditionally, since it's called unconditionally.
21526
21527 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
21528
21529         * toplev.c (documented_lang_options): Add -fshort-wchar.
21530         * c-decl.c (c_decode_option): Likewise.
21531         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
21532         for wchar_t.
21533         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
21534         * gcc.c (default_compilers): If -fshort-wchar,
21535         override __WCHAR_TYPE__.
21536         * tm.texi (C Dialect Options): Add -fshort-wchar.
21537
21538         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
21539         symbol for a variable.
21540
21541         * cpplib.h (CPP_PREPROCESSED): New macro.
21542         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
21543         we're seeing this input for a second time.
21544
21545 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
21546
21547         * emit-rtl.c (init_emit_once): Initialize modes first.
21548
21549 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
21550
21551         * config/i386/i386.c (pic_label_name): Change to char pointer.
21552         (global_offset_table): New variable.
21553         (load_pic_register): Fill global_offset_table if it hasn't
21554         already been done.  Allocate pic_label_name dynamically.
21555         * ggc.h (empty_string): New variable.
21556         * ggc-simple.c (empty_string): Likewise.
21557         (init_ggc): Allocate empty_string and add as root.
21558         * stmt.c (digit_strings): New variable.
21559         (init_stmt): Add last_block_end_note as root.  Allocate and
21560         initialize digit_strings.
21561         (expand_asm_operands): Use empty_string instead of string
21562         constant.  Use digit_strings instead of string constants.
21563         * profile.c (init_arc_profiler): Allocate string with
21564         ggc_alloc_string instead of xmalloc.
21565         (output_func_start_profiler): Likewise.
21566         * c-typeck.c (digest_init): Check if init is error_mark_node.
21567
21568 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
21569                           Richard Henderson  <rth@cygnus.com>
21570
21571         * ggc-page.c: New file.
21572         * Makefile.in (ggc-page.o): New.
21573
21574 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
21575
21576         * invoke.texi: Document -fdelete-null-pointer-checks
21577         * toplev.c (flag_delete_null_pointer_checks): New.
21578         (f_options): Add entry for -fdelete-null-pointer-checks.
21579         (rest_of_compilation): Conditionalize null pointer check
21580         elimination on flag_delete_null_pointer_checks.
21581         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
21582
21583 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
21584
21585         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
21586         copyright notice and special exception to GPL.
21587
21588 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21589
21590         * abi64.h (mips_function_value): Add prototype arguments.
21591
21592         * mips-protos.h: New file with mips prototypes.
21593
21594         * mips.c: Include "tm_p.h".
21595         (mktemp, lookup_name): Add prototype arguments.
21596         (extern_list, string_constant, mips_fill_delay_slot,
21597         mips_output_external, mips_output_external_libcall,
21598         mips_output_filename, mips_declare_object, function_prologue,
21599         mips_expand_prologue, function_epilogue, mips16_constant,
21600         build_mips16_function_stub, mips_output_conditional_branch):
21601         Constify a char*.
21602         (mips_va_start): Remove unused variable `u'.
21603         (mips_va_arg): Cast value to unsigned when comparing against one.
21604         (trace): Delete.
21605         (save_restore_insns, mips_expand_prologue): Add missing arg in
21606         call to `large_int'.
21607
21608         * mips.h: Move prototypes to mips-protos.h.
21609         (data_section, memory_address_p, rdata_section,
21610         readonly_data_section, simple_epilogue_p, text_section): Delete
21611         prototypes delcared elsewhere.
21612         (mips_epilogue_delay_slots, print_options): Delete unused decls.
21613         (trace): Delete.
21614         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
21615
21616         * mips.md: Delete extra args in call to `mips_move_2words'.
21617
21618         * xm-iris6.h (alloca): Add prototype argument.
21619
21620         * genpeep.c: Include "tm_p.h" in generated output file.
21621
21622 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21623
21624         * basic-block.h (find_edge_index): Change parameters.
21625         * flow.c (verify_edge_list): Pass basic_block parameters to
21626         find_edge_index instead of integers.
21627
21628 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
21629
21630         * combine.c (simplify_comparison): Use an unsigned shift to adjust
21631         the constant.
21632
21633 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
21634
21635         * gcc.1: Fix a formatting error.
21636
21637 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
21638
21639         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
21640         i786, mn10200, mn10300, pdp11, v850.
21641
21642 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
21643
21644         * libgcc2.c (num_digits): Add prototype with
21645         __attribute__((const)).
21646         (__terminate): Add prototype.
21647
21648 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
21649
21650         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
21651
21652         * alpha/alpha.c (print_operand): Fix type of `code'.
21653         (alpha_output_filename): Constify.
21654         * alpha/alpha.h: Move all function declarations ...
21655         * alpha/alpha-protos.h: ... here.  New file.
21656         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
21657         (SECTION_FUNCTION_TEMPLATE): Likewise.
21658
21659 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21660
21661         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
21662         * expr.c (expand_expr): Likewise.
21663         (do_jump): Likewise.
21664         (do_store_flag): Pass ccp_store_flag to can_compare_p.
21665         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
21666         accessor macros.
21667         (enum can_compare_purpose): New.
21668         (can_compare_p): Adjust prototype.
21669         (prepare_cmp_insn, prepare_operand): Declare.
21670         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
21671         * optabs.c (cmp_available_p): Deleted.
21672         (expand_abs): Pass ccp_jump to can_compare_p.
21673         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
21674         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
21675         Call can_compare_p rather than cmp_available_p.
21676         (prepare_operand): No longer static.
21677         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
21678         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
21679         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
21680         sequence to use emit_cmp_and_jump_insns.
21681         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
21682
21683 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
21684
21685         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
21686         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
21687         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
21688         (plus (reg) (const_int 0))
21689         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
21690
21691 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
21692
21693         * rs6000.c (expand_block_move): DImode loads and stores require
21694         word-aligned displacements.  Increment address registers with
21695         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
21696
21697 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
21698
21699         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
21700         is no name for the base type, rather than segfault.  If we are
21701         writing out a complex integer type, use DW_ATE_lo_user.
21702
21703         * expr.c (emit_move_insn_1): If we are copying a complex that fits
21704         in one word or less (complex char, complex short, or on 64 bit
21705         systems complex float) to/from a hard register, copy it through
21706         memory instead of dying in gen_{real,imag}part.  If we have a
21707         short complex type, prevent inlining since it allocates stack
21708         memory.
21709
21710         * tree.c (build_complex_type): If we are writing dwarf2 output,
21711         generate a name for complex integer types.
21712
21713 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21714
21715         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
21716         * flow.c (remove_edge): Remove extra whitespace.
21717         (remove_fake_edges): Fix comment.
21718         (add_noreturn_fake_exit_edges): Use the correct name.
21719
21720 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
21721
21722         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
21723         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
21724         (clean): Depend on INTL_CLEAN.
21725         (maintainer-clean): Adjust.
21726
21727 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21728
21729         * configure.in (AC_PREREQ): Bump to 2.13.
21730         (AC_C_STRINGIZE): Call this instead of using a custom macro.
21731
21732         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
21733
21734         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
21735
21736         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
21737
21738         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
21739         (HAVE_STRINGIZE): Define.
21740
21741 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
21742
21743         * c-parse.in: save and restore warn_pointer_arith on __extension__
21744         along with pedantic.
21745         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
21746         Set the type of extension to itype rather than $<itype>1 kludge.
21747         * extend.texi (Alternate Keywords): Adjust documentation.
21748         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
21749
21750 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
21751
21752         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
21753         most assembler templates.
21754
21755         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
21756         FP loads and stores.
21757         (following_call): Always return zero for the PA8000.
21758         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
21759         FP loads and stores.
21760         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
21761
21762         * pa.h (BRANCH_COST): Define.
21763
21764         * pa.md (return, return_internal): Use bve for PA2.0.
21765
21766         * pa.md (fused multiply): Add variants which reduce height for the
21767         fused multiply, but which still generate 2 insns.
21768         (fnegabs): Similarly.
21769
21770         * pa.md (subsi3): Turn into an expander.  Create two anonymous
21771         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
21772         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
21773
21774         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
21775         for TARGET_PA_20.
21776         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
21777         code generation.
21778         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
21779         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
21780
21781         * regclass.c (init_regs): Add "top_of_stack" as a garbage
21782         collection root.
21783
21784         * flow.c (record_active_eh_regions): Terminate loop after finding
21785         the last insn in the last basic block.
21786
21787 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21788
21789         * config/c4x/c4x.md: Delete parallel instruction peepholes.
21790
21791 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21792
21793         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
21794
21795 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21796
21797         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
21798         splitting to not use output template.
21799
21800 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21801
21802         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
21803         * config/c4x/c4x.c (c4x_va_start): New function.
21804
21805 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
21806
21807         * genrecog.c (not_both_true): Handle correctly cases when called for
21808         tests with different positions in the insn.
21809
21810 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21811
21812         * machmode.h (HOST_PTR_PRINTF): Move from here ...
21813
21814         * system.h (HOST_PTR_PRINTF): ... to here.
21815
21816         * mips-tfile.c: Don't include machmode.h.
21817
21818         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
21819         (mips-tfile.o): Don't depend on machmode.h.
21820
21821 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21822
21823         * haifa-sched.c (sched_analyze): Rename local variable `region' to
21824         avoid conflicts with typedef struct `region' at the top level scope.
21825
21826 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
21827
21828         * basic-block.h (basic_block): Add eh_beg, eh_end.
21829         * flow.c (entry_exit_blocks): Update.
21830         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
21831         Call new functions.
21832         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
21833         lists.c functions to allocate insn lists.
21834         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
21835         edge creation ...
21836         (make_eh_edge): ... here.  New.
21837         (move_stray_eh_region_notes): New.
21838         (record_active_eh_regions): New.
21839         (delete_unreachable_blocks): Split out block merging ...
21840         (try_merge_blocks): ... here.  New.
21841         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
21842         Dump debugging data.
21843         (merge_blocks_move_successor_nojumps): Likewise.
21844         (merge_blocks): Use eh_beg+eh_end to validate block movement.
21845
21846 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
21847
21848         * extend.texi (Bound member functions): Document unbound pmf
21849         conversion.
21850
21851 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21852
21853         * flow.c (split_edge): Handle insertion on a fallthrough edge which
21854         has the EXIT_BLOCK as a dest.
21855
21856 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21857
21858         * flow.c (remove_edge): New function to remove an edge from the
21859         flow graph.
21860         (remove_fake_successors): New function to remove fake successor edges.
21861         (remove_fake_edges): New function to remove all fake edges from the
21862         flow graph.
21863         (add_fake_exit_edges): New function to add fake edges from all blocks
21864         with no successors to the exit block.
21865         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
21866         prototypes for new functions.
21867
21868 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21869
21870         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
21871         Use Pmode to determine whether to output .dword or .word.
21872
21873 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
21874
21875         * tree.c (built_in_filename): New variable.
21876         (BUILT_IN_FILENAME): New macro.
21877         (init_tree_codes): Allocate built_in_filename.
21878         (make_node): Use built_in_filename instead of string constant.
21879
21880 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
21881
21882         * configure.in: Add fr30 target.
21883         * configure: Regenerate.
21884         * config/fr30: New directory.
21885         * config/fr30/crti.asm: New file.
21886         * config/fr30/fr30.c: New file.
21887         * config/fr30/crtn.asm: New file.
21888         * config/fr30/fr30.h: New file.
21889         * config/fr30/fr30.md: New file.
21890         * config/fr30/lib1funcs.asm: New file.
21891         * config/fr30/t-fr30: New file.
21892         * config/fr30/xm-fr30.h: New file.
21893
21894 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
21895
21896         * flow.c (merge_blocks_move_successor_nojumps): Delete the
21897         BARRIER at the end of the successor, not the BARRIER before
21898         the successor.
21899
21900         * pa.c (pa_add_gc_roots): Fix thinko in last change.
21901
21902 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
21903
21904         * stmt.c (any_pending_cleanups): Don't crash when
21905         current_function->stmt is unset.
21906
21907 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21908
21909         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
21910         other initializations that may use it for relative offsets.
21911
21912 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21913
21914         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
21915         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
21916         * config/i386/sol2dbg.h: Removed.
21917         * config/i386/sol2gas.h: New file, to enable gas work-around.
21918         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
21919         Don't use sol2dbg.h.
21920         * configure: Rebuilt.
21921
21922 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
21923
21924         * invoke.texi (-fthis-is-variable): Remove documentation.
21925
21926 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
21927
21928         * basic-block.h (compute_bb_for_insn): Declare.
21929         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
21930         to use; set size of basic_block_for_insn directly.
21931         (find_basic_blocks): Update.
21932
21933 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21934
21935         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
21936
21937 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21938
21939         * crtstuff.c (ON_EXIT): Delete empty macro definition.
21940         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
21941
21942 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
21943
21944         * c-decl.c (c_decode_option): Extend comment.
21945
21946 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
21947
21948         * toplev.c (progname): Make 'const char *'
21949         (flag_print_mem): Move out of main.
21950         (version_flag): Move out of main.
21951         (filename): Move out of main.
21952         (debug_args): Remove g prefix from options.
21953         (documented_lang_options): Remove cpplib specific options.
21954         (display_help): Add g prefix to debug options.
21955         (check_lang_option): Delete this function.
21956         (decode_d_option): New function: Decode -d... option.
21957         (decode_f_option): New function: Decode -f... option.
21958         (decode_W_option): New function: Decode -W... option.
21959         (decode_g_option): New function: Decode -g... option.
21960         (independent_decode_option): New function: Decode a language
21961         independent command line option.
21962         (main): Invoke lang_decode_option and then
21963         independent_decode_option on each command line option in
21964         turn.
21965
21966 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
21967
21968         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
21969          * fold-const.c (fold_range_test): Do not try to fold the range
21970          test if the rhs or lhs has side effects.
21971
21972         * basic-block.h (compute_flow_dominators): Declare.
21973
21974         * gcse.c (alloc_code_hoist_mem): New function.
21975         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
21976         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
21977         (hoist_code, one_code_hoisting_pass): Likewise.
21978         (gcse_main): If optimizing for size, then hoist expressions
21979         computed in multiple dominated basic blocks.
21980
21981         * gcse.c (invalid_nonnull_info): New function.
21982         (delete_null_pointer_checks): Likewise.
21983         * rtl.h (delete_null_pointer_checks): Declare.
21984         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
21985
21986         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
21987         (merge-blocks_move_successor_nojumps): Likewise.
21988         (merge_blocks): Allow merging of some blocks, even if it requires
21989         physical movement of the blocks, but not if it requires new jumps.
21990
21991         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
21992         Callers and prototype changed.
21993         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
21994
21995 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21996
21997         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
21998         -YP when both -p and -pg are present.  From i386/sol2.h.
21999
22000 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22001
22002         * Makefile.in (distclean): Delete tm_p.h.
22003         * configure.in: Create a new file, "tm_p.h", from a list in
22004         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
22005         "i386/i386-protos.h".
22006
22007         * alias.c: Include "tm_p.h".
22008         * c-typeck.c: Likewise.
22009         * calls.c: Likewise.
22010         * cse.c: Likewise.
22011         * emit-rtl.c: Likewise.
22012         * explow.c: Likewise.
22013         * expmed.c: Likewise.
22014         * expr.c: Likewise.
22015         * final.c: Likewise.
22016         * flow.c: Likewise.
22017         * fold-const.c: Likewise.
22018         * function.c: Likewise.
22019         * gcse.c: Likewise.
22020         * global.c: Likewise.
22021         * haifa-sched.c: Likewise.
22022         * integrate.c: Likewise.
22023         * jump.c: Likewise.
22024         * local-alloc.c: Likewise.
22025         * loop.c: Likewise.
22026         * optabs.c: Likewise.
22027         * recog.c: Likewise.
22028         * reg-stack.c: Likewise.
22029         * regclass.c: Likewise.
22030         * regmove.c: Likewise.
22031         * reload.c: Likewise.
22032         * reload1.c: Likewise.
22033         * reorg.c: Likewise.
22034         * resource.c: Likewise.
22035         * stmt.c: Likewise.
22036         * stor-layout.c: Likewise.
22037         * toplev.c: Likewise.
22038         * tree.c: Likewise.
22039         * unroll.c: Likewise.
22040         * genattrtab.c (main): Make generated file include "tm_p.h".
22041         * genemit.c (main): Likewise.
22042         * genoutput.c (main): Likewise.
22043         * genrecog.c (main): Likewise.
22044
22045         * i386.h: Delete all prototypes.
22046         * i386.c: Include "tm_p.h".
22047         (ix86_attr_length_default): Call constant_call_address_operand
22048         with correct number of arguments.
22049         * i386-protos.h: New file.
22050         * i386.md (unnamed patterns): Call constant_call_address_operand
22051         with correct number of arguments.
22052         (exception_receiver): Call load_pic_register with correct number
22053         of arguments.
22054
22055 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
22056
22057         * c-pragma.c (mark_align_stack): Dereference the void* properly.
22058
22059 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
22060
22061         * rtl.h (insns_safe_to_move_p): New function.
22062         * loop.c (find_and_verify_loops): Use it.
22063         * rtlanal.c (insns_safe_to_move_p): Define it.
22064
22065 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
22066
22067         * c-pragma.c: Include ggc.h.
22068         * Makefile.in (c-pragma.o): Update.
22069
22070 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
22071
22072         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
22073         (LIB_SPEC): Likewise.
22074         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
22075         Reindent -YP/-p/-pg.
22076         Copied from config/sparc/sol2.h.
22077
22078 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
22079
22080         * c-pragma.c (mark_align_stack): New.
22081         (init_pragma): New.
22082         * c-pragma.h (init_pragma): Declare it.
22083         * c-lex.c (init_parse): Call it.
22084
22085 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
22086
22087         * configure.in: Pick up thread library on Solaris/x86 just
22088         like on Solaris/sparc.
22089         * configure: Rebuilt.
22090
22091 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
22092
22093         * rtl.h (global_rtx_index): New enum.
22094         (global_rtl): Change to array of rtx.
22095         (pc_rtx, cc0_rtx): Redefine accordingly.
22096         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
22097         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
22098         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
22099         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
22100         (const_int_rtx): Change to array of rtx.
22101         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
22102         accordingly.
22103         * emit-rtl.c (global_rtl): Change to array of rtx.
22104         (const_int_rtx): Change to aray of rtx.
22105         (gen_rtx_CONST_INT): Redefine accordingly.
22106         (init_emit_once): Allocate and initialize global_rtl.  Likewise
22107         for const_int_rtx.  Add both as GC roots.
22108         * genattrtab.c (global_rtl): Update declaration.
22109
22110 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
22111
22112         * Makefile (USER_H): Add iso646.h back.
22113
22114 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
22115
22116         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
22117         zapping the LOG_LINKS of sched_before_next_call.
22118
22119         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
22120         * pa.c (insn_refs_are_delayed): Renamed from
22121         insn_sets_and_refs_are_delayed.
22122
22123 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
22124
22125         * functiion.h (struct function): Add x_whole_function_mode_p.
22126         (retrofit_block): Declare.
22127         * function.c (retrofit_block): New function.
22128         (identify_blocks): Add assertions.  Allow an incomplete set of
22129         block notes if we're still generating code for the function.
22130         * integrate.c: Include loop.h.
22131         (expand_inline_function): Call find_loop_tree_blocks to map block
22132         notes to blocks when in whole-function mode.  Use retrofit_block
22133         to insert new BLOCKs for the inlined function, rather than
22134         insert_block.
22135         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
22136         * Makefile.in (integrate.o): Depend on loop.h.
22137
22138 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
22139
22140         * tree.h (warn_about_unused_variables): Declare.
22141         * stmt.c (warn_about_unused_variables): New function, split out
22142         from ...
22143         (expand_end_bindings): Here.
22144
22145 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
22146
22147         * stmt.c (preserve_subexpressions_p): Don't crash when
22148         current_function->stmt is unset.
22149
22150 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
22151
22152         * stmt.c (expand_start_bindings): Allow callers to pass a flag
22153         indicating that no NOTE_INSN_BLOCK_BEG note is required.
22154         (expand_start_target_temps): Use it.
22155         * except.c (expand_eh_region_start_for_decl): Likewise.
22156         * expr.c (expand_expr): Likewise.
22157
22158 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
22159
22160         * fold-const.c (operand_equal_p): Pay attention to side effects.
22161
22162 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
22163
22164         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
22165         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
22166
22167         * tlink.c (scan_linker_output): Look for keywords before accepting
22168         a mangled name in quotes.
22169
22170 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
22171
22172         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
22173         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
22174
22175 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
22176
22177         * alpha.md: Revert Thu Nov 26 change that came in through the
22178         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
22179         Avoid earlyclobber when possible.
22180
22181 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22182
22183         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
22184
22185         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
22186         Define HAVE_ON_EXIT.
22187
22188 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22189
22190         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
22191         CTYPE_CONV in all ctype macros.
22192
22193         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
22194         from system.h.
22195
22196         * cexp.y (initialize_random_junk): Likewise.
22197
22198         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
22199
22200         * i370.c (handle_pragma): Likewise.
22201
22202         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
22203
22204         * v850.c (override_options): Likewise.
22205
22206         * doprint.c (_doprnt): Likewise.
22207
22208         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
22209         Likewise.
22210
22211         * fixinc/server.c (load_data): Likewise.
22212
22213         * fold-const.c (real_hex_to_f): Likewise.
22214
22215         * genattr.c (write_upcase, gen_attr): Likewise.
22216
22217         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
22218         write_upcase): Likewise.
22219
22220         * genemit.c (print_code): Likewise.
22221
22222         * genopinit.c (gen_insn): Likewise.
22223
22224         * genpeep.c (print_code): Likewise.
22225
22226         * genrecog.c (print_code): Likewise.
22227
22228         * optabs.c (init_libfuncs): Likewise.
22229
22230 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
22231
22232         * haifa-sched.c (sched_analyze): Keep the list of notes organized
22233         in pairs.
22234         (reemit_notes): Likewise.
22235
22236 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
22237
22238         * ggc.h (ggc_root): Move to ggc-common.c.
22239         (roots): Remove.
22240         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
22241         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
22242         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
22243         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
22244         * ggc-common.c (ggc_root): Move from ggc.h.
22245         (roots): Declare, static.
22246         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
22247         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
22248         null or check/set mark bit.
22249         (ggc_mark_roots): New.
22250         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
22251
22252 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
22253
22254         * m32r.c: Include toplev.h.
22255         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
22256         (gen_compare): Rename swap_p to must_swap to match uses.
22257         Add default abort case.
22258         (m32r_output_function_epilogue): Remove unused variables.
22259         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
22260         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
22261         define to empty parameter list.  Update all uses.
22262         (predicate decls): Use enum machine_mode not int.
22263         * m32r.md (movsi): Call abort, not fatal_insn.
22264         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
22265
22266 1999-09-14  Andrew Haley  <aph@cygnus.com>
22267
22268         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
22269         use $0 instead of 0.
22270
22271 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22272
22273         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
22274         computation out of loop over hard regs.
22275
22276 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
22277
22278         * function.c (identify_blocks): Don't shadow a variable in an
22279         outer scope.
22280         * integrate.c (integrate_decl_tree): Don't use pushlevel,
22281         pushdecl, or poplevel to build up the new BLOCK tree.
22282         (expand_inline_function): Likewise.
22283         (integrate_parm_decls): Likewise.
22284
22285 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
22286
22287         * c-typeck.c (qualify_type): Merge qualifiers from both types.
22288
22289 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
22290
22291         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
22292         * invoke.texi: Document this change.
22293
22294 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
22295
22296         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
22297         Free the struct.
22298         (mark_emit_status): Renamed from mark_emit_state.
22299         * except.c (mark_eh_status): Renamed from mark_eh_state.
22300         Check not null before marking.
22301         (free_eh_status): New.
22302         * expr.c (mark_expr_status, free_expr_status): New.
22303         * function.c (free_machine_status): New.
22304         (free_after_parsing): New.
22305         (free_after_compilation): Move bits to free_after_parsing; call
22306         free_eh_status, free_expr_status; zero the marked members of the
22307         function state.
22308         (prepare_function_start): No can_garbage_collect.
22309         Call init_eh_for_function.
22310         (expand_dummy_function_end): Free up current_function state.
22311         (mark_function_status): Renamed from mark_function_state.
22312         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
22313         * function.h (struct function): No can_garbage_collect.
22314         (free_machine_status, free_after_parsing): Declare.
22315         (free_eh_status, free_expr_status): Declare.
22316         * ggc.h (mark_expr_status): Declare.
22317         * stmt.c (free_stmt_status): Free the struct.
22318         (mark_stmt_status): Renamed from mark_stmt_state.
22319         (init_stmt): Don't call init_eh.
22320         (init_stmt_for_function): Don't call init_eh_for_function.
22321         * toplev.c (compile_file): Call init_eh.
22322         (rest_of_compilation): Free basic block info before ggc_collect.
22323         Call free_after_parsing; conditionally call free_after_compilation.
22324         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
22325         Check not null before marking.
22326         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
22327
22328 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
22329
22330         * c-lex.c (yylex): Initialize warn.
22331
22332 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
22333
22334         * pa.c (emit_move_sequence): Properly set the mode of the scratch
22335         register when performing secondary reloads for the SAR register.
22336
22337 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
22338
22339         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
22340         (NOTE_BLOCK): New macro.
22341         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
22342         * function.h (identify_blocks): Change prototype.
22343         * function.c (identify_blocks): Simplify.
22344         (reorder_blocks): Likewise.
22345         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
22346         NOTE_INSN_BLOCK_{BEG,END}.
22347         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
22348         the list of saved notes if the note isn't a
22349         NOTE_INSN_BLOCK_{BEG,END}.
22350         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
22351         NOTE_BLOCK_NUMBER.
22352         (reemit_notes): Adjust recreation of notes to reflect new saved
22353         note structure.
22354         * print-rtl.c (print_rtx): Print the address of the BLOCK when
22355         printing a block note.
22356         * stmt.c (block_vector): Remove.
22357         (find_loop_tree_blocks): Simplify.
22358         (unroll_block_trees): Likewise.
22359         * tree.h (reorder_block): Change prototype.
22360
22361 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
22362
22363         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
22364         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
22365         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
22366         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
22367         (atexit, exit): Simplify.
22368         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
22369         * config/lots: Remove defns of HAVE_ATEXIT.
22370
22371 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
22372
22373         * calls.c (precompute_arguments): Fix typo in comment.
22374         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
22375         TARGET_EXPR.
22376
22377 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
22378
22379         * dsp16xx.c (override_options): Fix typos in GC root registration.
22380
22381 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
22382
22383         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
22384         from config/svr4.h.
22385         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
22386         (FUNCTION_PROFILER): Redefine appropriately for Linux.
22387         (CC1_SPEC): Likewise.
22388
22389 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22390
22391         * genattr.c (main): Add extern prototype.  Call return, not exit.
22392         * genattrtab.c (main): Likewise.
22393         * gencheck.c (main): Likewise.
22394         * gencodes.c (main): Likewise.
22395         * genconfig.c (main): Likewise.
22396         * genemit.c (main): Likewise.
22397         * genextract.c (main): Likewise.
22398         * genflags.c (main): Likewise.
22399         * gengenrtl.c (main): Likewise.
22400         * genopinit.c (main): Likewise.
22401         * genoutput.c (main): Likewise.
22402         * genpeep.c (main): Likewise.
22403         * genrecog.c (main): Likewise.
22404
22405         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
22406         * genattrtab.c (get_insn_name): Likewise.
22407         * gencodes.c (get_insn_name): Likewise.
22408         * genconfig.c (get_insn_name): Likewise.
22409         * genemit.c (get_insn_name): Likewise.
22410         * genextract.c (get_insn_name): Likewise.
22411         * genflags.c (get_insn_name): Likewise.
22412         * genopinit.c (get_insn_name): Likewise.
22413         * genpeep.c (get_insn_name): Likewise.
22414
22415         * gencheck.c (usage): Add static prototype.
22416         * genextract.c (print_path): Constify a char*.
22417         * genopinit.c (optabs): Likewise.
22418         * genoutput.c (operand_data, data, output_predicate_decls,
22419         compare_operands): Likewise.
22420         * genrecog.c (write_tree): Add default case in switch.
22421
22422 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22423
22424         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
22425
22426         * print-rtl.c (get_insn_name): Remove prototype.
22427
22428         * toplev.h (progname): Declare const.
22429
22430         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
22431         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
22432         dump_sched_info, dump_local_alloc, regset_release_memory,
22433         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
22434         error_with_file_and_line, error_with_decl, error_for_asm, error,
22435         fatal, warning_with_file_and_line, warning_with_decl, warning,
22436         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
22437         Remove redundant prototypes.
22438
22439         (notice, check_lang_option, report_file_and_line, vnotice,
22440         mark_file_stack): Add static prototype.
22441         (set_fatal_function): Add prototype.
22442         (vnotice, report_file_and_line, set_fatal_function,
22443         check_lang_option): Constify a char*.
22444         (main): Prototype.  Call return, not exit.
22445
22446 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22447
22448         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
22449
22450         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
22451
22452         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
22453
22454         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
22455
22456 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22457
22458         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
22459         behave as if it's zero in all cases.
22460         (expand_function_start): Adjust call to assign_parms.
22461         * tree.h (assign_parms): Adjust prototype.
22462         * objc/objc-act.c (hack_method_prototype): Adjust call to
22463         assign_parms.
22464
22465 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
22466
22467         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
22468         arg_pointer_rtx fixed if the argument pointer register is
22469         not fixed.
22470         (NONZERO_BASE_PLUS_P): Likewise.
22471
22472 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
22473
22474         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
22475         match_insn2 to match_insn.
22476         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
22477
22478 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
22479
22480         * Makefile.in (USER_H): Remove va-foo.h.
22481
22482         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
22483         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
22484         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
22485         va-spur.h,va-v850.h}: Remove.
22486
22487 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
22488
22489         * sparc/sparc.md (eligible_for_return_delay): New attribute.
22490         (in_return_delay): Use it instead of match_insn.
22491
22492 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
22493
22494         * config/alpha/va_list.h (va-alpha.h): Do not include.
22495         (__gnuc_va_list): Typedef as in varargs.h.
22496
22497 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
22498
22499         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
22500         DECL_LIVE_RANGE_RTL.
22501
22502 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
22503
22504         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
22505         not NOTE_BLOCK_NUMBER.
22506         (expand_eh_region_end): Likewise.
22507         (find_exception_handler_labels): Likewise.
22508         (scan_region): Likewise.
22509         (exception_optimize): Likewise.
22510         (update_rethrow_references): Likewise.
22511         (set_insn_eh_region): Likewise.
22512         * final.c (final_scan_insn): Likewise.
22513         * flow.c (make_edges): Likewise.
22514         * integrate.c (expand_inline_function): Likewise.
22515         * print-rtl.c (print_rtx): Likewise.
22516
22517 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
22518
22519         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
22520         terms of builtin functions and types.
22521
22522         * mips.c (mips_build_va_list): New.
22523         (mips_va_start, mips_va_arg): New.
22524         * mips.h (BUILD_VA_LIST_TYPE): New.
22525         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
22526
22527         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
22528         (sh_build_va_list, sh_va_start, sh_va_arg): New.
22529         * sh.h (BUILD_VA_LIST_TYPE): New.
22530         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
22531
22532 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
22533
22534         * recog.h (struct recog_data): Make dup_num, operand_address_p,
22535         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
22536         (struct insn_data): Likewise with n_operands, n_dups,
22537         n_alternatives, output_format.
22538         * regclass.c (scan_one_insn): Cast n_operands to int before
22539         arithmetic inside comparison.
22540
22541 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
22542
22543         * toplev.c (compile_function): Unconditionally emit nop.
22544
22545 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22546
22547         * haifa-sched.c (actual_hazard): Move declaration of variable
22548         `this_cost' into the scope where it is used.
22549
22550 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22551
22552         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
22553         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
22554         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
22555
22556         * genrecog.c (make_insn_sequence): Call memset, not bzero.
22557
22558         * jump.c (find_insert_position): Don't declare or define unless
22559         !HAVE_conditional_arithmetic.
22560         (returnjump_p_1, delete_prior_computation): Add static prototypes.
22561
22562         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
22563
22564         * recog.c (offsettable_address_p): Prototype function pointer.
22565         (preprocess_constraints): Call memset, not bzero.
22566
22567         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
22568         (gcc_obstack_init): Don't declare.
22569         (fix_sizetype): Add static prototype.
22570         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
22571         (tree_cons): Call memset, not bzero.
22572
22573         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
22574         definition in macro ASM_WEAKEN_LABEL.
22575         (mark_const_hash_entry): Add static prototype.
22576
22577 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22578
22579         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
22580
22581         * unroll.c (find_common_reg_term, subtract_reg_term,
22582         loop_find_equiv_value): Add static prototypes.
22583         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
22584         (copy_loop_body): Remove unreachable break statement.
22585
22586         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
22587
22588         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
22589
22590 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22591
22592         Undo some changes from the gcc2 merge:
22593         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
22594         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
22595         pointers.
22596
22597         Undo this change:
22598         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
22599         * emit-rtl.c (gen_lowpart_common): Disable optimization of
22600         initialized float-int union if the value is a NaN.
22601
22602 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22603
22604         * gthr-win32.h: New file.
22605
22606         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
22607         shared as a valid attribute.
22608         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
22609         * extend.texi: Document `shared' variable attribute.
22610
22611 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
22612
22613         * configure.in: Handle --enable-threads on FreeBSD.
22614         * configure: Rebuit.
22615
22616 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
22617
22618         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
22619         thread support.
22620         * configure: Rebuilt.
22621
22622 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
22623                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
22624                           Rosimildo DaSilva <rdasilva@connecttel.com>
22625
22626         * configure.in (m68k-*-rtemscoff*): Added.
22627         * configure.in (mips64orion-*-rtems*): Converted to ELF.
22628         * configure.in (sparc-*-rtemsaout*): Added as alias for old
22629         sparc-rtems configuration.
22630         * configure.in (sparc-*-rtemself*): Added.
22631         * configure.in (sparc-*-rtems*): Now ELF not a.out.
22632         * config/i386/rtems.h: Added comment.
22633         * config/sparc/rtemself.h: New file.
22634
22635         * configure.in (m68k-rtemself): Added.
22636         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
22637         and DWARF_DEBUGGING_INFO.
22638         * config/m68k/crti.s: New file.
22639         * config/m68k/crtn.s: New file.
22640         * config/m68k/t-crtstuff: New file.
22641         * config/m68k/rtemself.h: New file.
22642
22643         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
22644         global ctor/dtor and C++ exception handling.
22645         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
22646         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
22647         ENDFILE_SPEC.
22648         * config/i386/t-rtems-i386: New File.
22649
22650 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
22651
22652         * stmt.c (expand_end_case): Return right away if the case stack is
22653         empty.
22654
22655 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
22656
22657         * Makefile.in (version.c): Remove rule incorrectly brought in from
22658         the gcc2 merge.
22659
22660 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
22661
22662         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
22663         * msdos/top.sed:  Take into account a prepended $(SHELL) to
22664         move-if-change.
22665         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
22666
22667         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
22668
22669 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22670
22671         * regmove.c (fixup_match_1): Don't change an unchanging register.
22672         (stable_but_for_p): Renamed to:
22673         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
22674         Changed all callers.
22675
22676 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
22677
22678         * loop.c (strength_reduce): Don't call reg_used_between_p if the
22679         insn from BL2 is after the insn from BL.
22680
22681 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
22682
22683         * recog.h (INSN_OUTPUT_FORMAT_*): New.
22684         (struct insn_data): Merge `template' and `outfun' into `output'.
22685         Add `output_format'.
22686         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
22687         (struct data): Remove `outfun'; add `output_format'.
22688         (name_for_index): Remove declaration.
22689         (output_insn_data): Handle output formats.
22690         (process_template): Emit the bare array for @.
22691         (gen_expand, gen_split): Set output_format to NONE.
22692         * output.h (get_insn_template): Declare.
22693         * final.c (get_insn_template): New.
22694         (final_scan_insn): Use it.
22695         * toplev.c (compile_file): Likewise.
22696
22697         * c4x/c4x.c (c4x_process_after_reload): Likewise.
22698         * i860/i860.c (output_delayed_branch): Likewise.
22699         (output_delay_insn): Likewise.
22700
22701 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
22702
22703         * rtl.c (obstack_alloc_rtx): Removed.
22704
22705 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
22706
22707         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
22708
22709 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
22710
22711         * i386.c (call_insn_operand): Reject const_int.
22712         (expander_call_insn_operand): Use call_insn_operand.
22713
22714 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22715
22716         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
22717
22718 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
22719
22720         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
22721         Use DImode operation.
22722
22723 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
22724
22725         * gcc.c: Include sys/resource.h.
22726         (report_times): New flag.
22727         (execute):  If report_times is set, calculate and report the
22728         CPU time consumed by each subprocess.
22729
22730         (rus, prus): New globals.
22731         (option_map): Add --time.
22732         (display_help): Document -time.
22733         (process_command): Set report_times if -time is given.
22734         Turn off -pipe if -time is given.
22735
22736         * invoke.texi: Document new option -time.
22737
22738         * configure.in: Check for getrusage.  Check if we have to
22739         prototype getrusage.
22740         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
22741         * configure: Regenerate.
22742         * config.in: Regenerate.
22743
22744 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
22745
22746         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
22747         fields.
22748
22749 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
22750
22751         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
22752         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
22753         (nan): Return _thenan_sf or _thenan_df as appropriate.
22754         (L_thenan_sf): Define _thenan_sf.
22755         (L_thenan_df): Define _thenan_df.
22756
22757         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
22758         (DPBIT_FUNCS): Add _thenan_df.
22759
22760 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
22761
22762         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
22763         TYPE_SIZE_UNIT.
22764
22765 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22766
22767         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
22768
22769         * gcc.h: New file.
22770         (lang_specific_driver): Don't take a function pointer parameter.
22771         All callers changed.
22772
22773         * gcc.c: Include gcc.h.
22774         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
22775         lang_specific_extra_outfiles, fatal): Don't declare.
22776         (multilib_defaults_raw): Constify.
22777         (read_specs): Call memset, rather than bzero.
22778         (main): Call return, not exit.
22779         (lookup_compiler): Call memcpy, not bcopy.
22780         (fatal): Make extern.
22781
22782         * cppspec.c: Include gcc.h.
22783         (lang_specific_driver): Initialize variable `quote'.  Constify a
22784         char*.  All calls to the function pointer parameter now
22785         explicitly call `fatal'.
22786
22787         * gccspec.c (lang_specific_driver): Include gcc.h.
22788
22789 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
22790
22791         * arm.c (note_invalid_constants): Use recog_data.operand_type
22792         for recog_op_type.
22793
22794 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22795
22796         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
22797         Declare.
22798
22799         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
22800         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
22801         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
22802         reload_secondary_in_reload, reload_secondary_out_reload,
22803         reload_secondary_in_icode, reload_secondary_out_icode,
22804         reload_reg_rtx, reload_when_needed): Delete declarations.
22805         (struct reload): New structure.
22806         (rld): Declare new array.
22807         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
22808         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
22809         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
22810         reload_secondary_in_reload, reload_secondary_out_reload,
22811         reload_secondary_in_icode, reload_secondary_out_icode,
22812         reload_reg_rtx, reload_when_needed): Delete definitions.
22813         (rld): New array.
22814         (whole file): Replace uses of the deleted arrays with uses of rld.
22815         * reload1.c (whole file): Replace uses of the deleted arrays with
22816         uses of rld.
22817         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
22818         explicit loops, not with bcopy.
22819
22820 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
22821
22822         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
22823         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
22824         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
22825         insn_name): Delete and consolidate into new structures.
22826         (insn_operand_predicate_fn): New.
22827         (insn_output_fn): New.
22828         (insn_gen_fn): New.
22829         (struct insn_operand_data): New.
22830         (struct insn_data): New.
22831         (insn_data): New.
22832         (OUT_FCN): Update for insn_data change.
22833         * builtins.c (expand_builtin_strlen): Likewise.
22834         (expand_builtin_memcmp): Likewise.
22835         * combine.c (make_extraction, simplify_comparison): Likewise.
22836         * cse.c (canon_reg, cse_insn): Likewise.
22837         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
22838         * expmed.c (store_bit_field, extract_bit_field): Likewise.
22839         (emit_store_flag): Likewise.
22840         * expr.c (convert_move, emit_block_move): Likewise.
22841         (clear_storage, emit_push_insn, expand_increment): Likewise.
22842         (do_store_flag): Likewise.
22843         * expr.h (GEN_FCN): Likewise.
22844         (insn_gen_function): Die.
22845         * final.c (final_scan_insn): Update for insn_data change.
22846         (output_asm_name): Likewise.
22847         * function.c (fixup_var_refs_1): Likewise.
22848         * loop.c (check_dbra_loop): Likewise.
22849         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
22850         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
22851         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
22852         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
22853         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
22854         * regmove.c (gen_add3_insn): Likewise.
22855         * reload.c (push_secondary_reload, combine_reloads): Likewise.
22856         (find_reloads, find_reloads_address_1): Likewise.
22857         (debug_reload_to_stream): Likewise.
22858         * reload1.c (emit_reload_insns, gen_reload): Likewise.
22859         * stmt.c (expand_end_case): Likewise.
22860         * toplev.c (compile_file): Likewise.
22861
22862         * c4x/c4x.c (c4x_process_after_reload): Likewise.
22863         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
22864
22865         * print-rtl.c (insn_name_ptr): Remove declaration.
22866         (get_insn_name): Declare.
22867         (print_rtx): Use it.
22868         * genoutput.c (insn_name_ptr): Remove.
22869         (next_operand_number): New.
22870         (struct operand_data): New.
22871         (null_operand, odata, odata_end): New.
22872         (struct data): Use struct operand_data.
22873         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
22874         (get_insn_name): Renamed from name_for_index.
22875         (output_prologue): Define NO_MD_PROTOTYPES.
22876         (output_predicate_decls): Break out from output_epilogue.
22877         Iterate over the operands list.
22878         (output_operand_data): Break out from output_epilogue.  Emit
22879         just the operands list.
22880         (output_insn_data): Break out from output_epilogue.  Emit just
22881         the insn data.
22882         (output_epilogue): Remove.
22883         (output_get_insn_name): New.
22884         (constraints, op_n_alternatives, predicates, address_p): Die.
22885         (modes, strict_low, seen): Die.
22886         (scan_operands): Take new param `d' instead of writing to
22887         seven global variables.
22888         (compare_operands): New.
22889         (place_operands): New.
22890         (validate_insn_alternatives): Update for struct data change.
22891         (gen_insn): Don't zero or copy 7 global arrays.  Update for
22892         scan_operands; call place_operands.
22893         (gen_peephole, gen_expand, gen_split): Likewise.
22894         (main): Update for new output routines.
22895
22896         * genattr.c (insn_name_ptr): Remove.
22897         (get_insn_name): New function.
22898         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
22899         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
22900         * genrecog.c: Likewise.
22901
22902         * alpha.md (adddi3): Make `pattern' array static.
22903
22904 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22905
22906         * config/c4x/c4x.h (c4x_rpts_cycles_string,
22907         c4x_cpu_version_string): Constify char *.
22908         * config/c4x/c4x.c (c4x_rpts_cycles_string,
22909         c4x_cpu_version_string): Likewise.
22910
22911 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
22912
22913         * tree.c (save_tree_status): Revert 10 Sep change.
22914         (restore_tree_status): Likewise.  Call obstack_free with NULL
22915         before freeing the obstack proper.
22916
22917 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
22918
22919         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
22920
22921         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
22922         surrounding context.
22923
22924 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
22925
22926         * tree.c (type_hash_canon): Put all types in the hash-table, when
22927         GC'ing.
22928
22929 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
22930
22931         * recog.h (struct recog_data, recog_data): New.
22932         (recog_foo variables): Kill.
22933         * recog.c (recog_operand, recog_operand_loc): Kill.
22934         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
22935         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
22936         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
22937         (recog_data): Define.
22938         (extract_insn): Update all recog_foo references to use recog_data.
22939         (preprocess_constraints, constrain_operands): Likewise.
22940         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
22941         * genattrtab.c (main): Likewise.
22942         * genextract.c (main): Likewise.
22943         * genoutput.c: Likewise.
22944         * genrecog.c (write_subroutine, main): Likewise.
22945         * local-alloc.c (block_alloc): Likewise.
22946         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
22947         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
22948         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
22949         * reload.c (find_reloads, find_reloads_toplev): Likewise.
22950         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
22951         (reload_cse_simplify_operands): Likewise.
22952
22953         * arc/arc.c (arc_final_prescan_insn): Likewise.
22954         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
22955         * h8300/h8300.c (notice_update_cc): Likewise.
22956         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
22957         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
22958         * mn10200/mn10200.c (notice_update_cc): Likewise.
22959         * mn10300/mn10300.c (notice_update_cc): Likewise.
22960         * romp/romp.c (update_cc): Likewise.
22961         * sparc/sparc.c (check_pic): Likewise.
22962         * v850/v850.c (notice_update_cc): Likewise.
22963
22964         * genemit.c (main): Don't declare recog_operand.
22965
22966 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
22967
22968         * ggc.h (rtvec_def): Forward declare.
22969         (tree_node): Likewise.
22970         (ggc_root): Define.
22971         (roots): Declare.
22972         (ggc_set_mark_rtx): Add prototype.
22973         (ggc_set_mark_rtvec): Likewise.
22974         (ggc_set_mark_tree): Likewise.
22975         * ggc-simple.c (ggc_root): Don't define.
22976         (roots): Don't declare.
22977         (ggc_mark_rtx): Remove.
22978         (ggc_mark_rtvec): Likewise.
22979         (ggc_mark_tree): Likewise.
22980         (ggc_mark_varray): Likewise.
22981         (ggc_mark_tree_hash_table_entry): Likewise.
22982         (ggc_mark_tree_hash_table): Likewise.
22983         (ggc_set_mart_rtx): New function.
22984         (ggc_set_mark_rtvec): Likewise.
22985         (ggc_set_mark_tree): Likewise.
22986         (ggc_add_root): Remove.
22987         (ggc_add_rtx_root): Likewise.
22988         (ggc_remove_tree_root): Likewise.
22989         (ggc_add_string_root): Likewise.
22990         (ggc_add_tree_varray_root): Likewise.
22991         (ggc_add_tree_hash_table_root): Likewise.
22992         (ggc_del_root): Likewise.
22993         (ggc_mark_rtx_ptr): Likewise.
22994         (ggc_mark_tree_ptr): Likewise.
22995         (ggc_mark_string_ptr): Likewise.
22996         (ggc_mark_tree_varray_ptr): Likewise.
22997         (ggc_mark_tree_hash_table_ptr): Likewise.
22998         * ggc-common.c: New file.
22999         * Makefile.in (OBJS): Add ggc-common.o.
23000         (ggc-common.o): List dependencies.
23001
23002 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
23003
23004         * cppalloc.c (xstrdup): Use memcpy.
23005         * cpperror.c (cpp_print_containing_files): Don't use
23006         cpp_notice.
23007         * cpplib.c (conditional_skip): Set temp->lineno.
23008         (do_endif): Make error message less obscure.
23009         (if_directive_name): New function.
23010         (cpp_get_token [case EOF]): Unwind the if stack and generate
23011         error messages for each unterminated conditional in this file.
23012         (parse_string):  Do not behave differently if -traditional.
23013
23014 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
23015
23016         * builtins.c (expand_builtin_va_arg): Cope with an array-type
23017         va_list decomposing to pointer-type.
23018         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
23019         (rs6000_va_arg): Likewise.
23020
23021 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
23022
23023         * except.c (start_dynamic_handler): Compute size using
23024         STACK_SAVEAREA_MODE.
23025
23026 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23027
23028         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
23029         include directory headers.  Don't define strrchr.  Don't provide
23030         my_* replacement functions.  Prefer PTR over `pointer_type'.
23031         Don't prototype system functions.  Don't redefine getopt.
23032
23033         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
23034         safe_read, safe_write, save_pointers, restore_pointers,
23035         is_id_char, in_system_include_dir, directory_specified_p,
23036         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
23037         find_corresponding_lparen, referenced_file_is_newer,
23038         save_def_or_dec, munge_compile_params, gen_aux_info_file,
23039         process_aux_info_file, identify_lineno, check_source,
23040         seek_to_line, forward_to_next_token_char, output_bytes,
23041         output_string, output_up_to, other_variable_style_function,
23042         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
23043         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
23044         find_static_definition, connect_defs_and_decs, add_local_decl,
23045         add_global_decls, needs_to_be_converted, visit_each_hash_node,
23046         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
23047         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
23048         scan_for_missed_items, edit_file, string_list_cons): Add static
23049         prototypes.
23050         (standard_exec_prefix, target_machine, target_version,
23051         default_syscalls_dir, string_list, string_list_cons, find_file,
23052         do_cleaning): Constify a char*.
23053         (safe_read, safe_write): Use PTR, not a char*.
23054         (is_id_char): Take an int, not a char.
23055         (main): Add prototype.  Call return, not exit.
23056
23057 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
23058
23059         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
23060         when comparing types.
23061
23062 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
23063
23064         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
23065         (strength_reduce): Release the varrays from the no-bivs early exit.
23066
23067         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
23068         the loop over the registers.
23069
23070         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
23071         for a new obstack.
23072         (restore_tree_status): Check that instead when freeing the obstack.
23073
23074 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
23075
23076         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
23077         as pointers.
23078
23079 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23080
23081         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
23082         operand size modifiers.
23083
23084 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23085
23086         * c-common.c (c_common_nodes_and_builtins): Don't build
23087         va_list_type_node.
23088         * c-common.h (enum c_tree_index and related accesor macros): Remove
23089         everything now declared in tree.h.
23090         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
23091         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
23092         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
23093         (error_mark_node, void_type_node, char_type_node, integer_type_node,
23094         unsigned_type_node, ptr_type_node, va_list_type_node,
23095         integer_zero_node, null_pointer_node, integer_one_node): Delete.
23096         (init_decl_processing): Call build_common_tree_nodes and
23097         build_common_tree_nodes_2 instead of building their nodes here.
23098         Don't add roots for these nodes.
23099         * stor-layout.c (size_zero_node, size_one_node): Delete.
23100         (set_sizetype): Make a new node for bitsizetype each time.
23101         * tree.c (global_trees): New variable.
23102         (init_obstacks): Add a gc root for it.
23103         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
23104         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
23105         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
23106         (build_common_tree_nodes): New function.
23107         (fix_sizetype): New function.
23108         (build_common_tree_nodes_2): New function.
23109         * tree.h (enum tree_index): New.
23110         (global_trees): Declare.
23111         Add accessor macros for all nodes now moved to global_trees.
23112         Delete their declarations.
23113
23114 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
23115
23116         * c-decl.c (finish_function): When processing a nested function,
23117         push and pop GC context around rest_of_compilation.
23118
23119 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
23120
23121         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
23122         Default ix86_arch to PROCESSOR_I386.
23123         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
23124         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
23125         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
23126         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
23127         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
23128         (EXTRA_SPECS): Remove deleted specs.
23129
23130 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
23131
23132         * function.c (assign_stack_local_1): Allocate from
23133         function->x_frame_offset, not frame_offset.
23134
23135 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
23136
23137         * ggc.h (lang_cleanup_tree): Remove.
23138         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
23139         * ggc-callbacks.c (lang_cleanup_tree): Remove.
23140
23141         * c-decl.c (finish_struct): Use ggc_alloc to allocate
23142         TYPE_LANG_SPECIFIC when garbage collecting.
23143         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
23144         (lang_cleanup_tree): Remove.
23145
23146 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
23147
23148         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
23149         * crtstuff.c: Not here.
23150         * dwarf2out.c: Or here.
23151         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
23152         info.
23153
23154 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
23155
23156         * function.h (free_after_compilation): Remove decl parameter.
23157         (free_varasm_status0: Likewise.
23158         (free_emit_status): Likewise.
23159         (free_stmt_status): Likewise.
23160         (free_after_compilation): Likewise.
23161         (init_lang_status): New variable.
23162         (free_lang_status): Likewise.
23163         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
23164         * function.c (init_lang_status): New variable.
23165         (free_lang_status): Likewise.
23166         (push_function_context_to): Don't set function::decl here.
23167         (free_after_copmilation): Make decl parameter implicit.  Call
23168         free_lang_status if defined.
23169         (prepare_function_start): Call init_lang_status if defined.
23170         (init_function_start): Set function::decl here.
23171         * profile.c (output_func_start_profiler): Don't call pushdecl
23172         until we've actually started the function.
23173         * stmt.c (free_stmt_status): Make decl parameter implicit.
23174         * toplev.c (rest_of_compilation): Don't pass decl to
23175         free_after_compilation.
23176         * varasm.c (free_varasm_status): Likewise.
23177
23178 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23179
23180         * except.c (call_get_eh_context): Add root when allocating static
23181         tree variable.
23182
23183 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
23184
23185         * arm.c: Include "ggc.h".
23186         (arm_add_gc_roots): New function.
23187         (arm_override_options): Call it.
23188         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
23189
23190         * arm.md (define_asm_attributes): Add a pool_range attribute.
23191
23192 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
23193
23194         * extend.texi (Volatiles): New node.
23195
23196 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
23197
23198         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
23199         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
23200         (struct ggc_any): Replace `mark' with `magic_mark'.
23201         (ggc_alloc_string): Use memcpy, not bcopy.
23202         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
23203         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
23204         (ggc_free_any): New.
23205         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
23206         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
23207         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
23208         Use IS_MARKED. Use ggc_free_any.
23209
23210 1999-09-09  Scott Bambrough <scottb@netwinder.org>
23211
23212         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
23213
23214 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
23215
23216         * toplev.c (main): Always init_ggc.
23217
23218 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
23219
23220         * except.c (find_all_handler_type_matches): Free the list if
23221         we found no matches.
23222
23223         * combine.c (SUBST): Break out to a real function do_SUBST.
23224         (SUBST_INT): Likewise.
23225         * gcse.c (free_pre_mem): Free `temp_bitmap'.
23226         (pre_insert): Free `inserted'.
23227         * loop.c (basic_induction_var): Always set `location'.
23228
23229         * function.c (expand_function_end): Add initial_trampoline as a root.
23230         * rtl.h (init_varasm_once): Declare.
23231         * toplev.c (compile_file): Call it.
23232         * ggc-simple.c (ggc_mark_string_ptr): New.
23233         (ggc_add_string_root): New.
23234         (ggc_collect): Disable collection avoidance temporarily.
23235         * ggc.h (ggc_add_string_root): Declare.
23236         * except.c (create_rethrow_ref): Use ggc_alloc_string.
23237         * optabs.c (init_libfuncs): Likewise.
23238         * varasm.c (named_section): Use ggc_alloc_string.
23239         (make_function_rtl): Likewise.
23240         (make_decl_rtl): Likewise.
23241         (assemble_static_space): Likewise.
23242         (assemble_trampoline_template): Likewise.
23243         (output_constant_def): Likewise.
23244         (force_const_mem): Likewise.
23245         (mark_const_hash_entry): New.
23246         (mark_pool_sym_hash_table): New.
23247         (mark_varasm_state): Use it.
23248         (init_varasm_once): New.
23249
23250         * expr.h (init_one_libfunc): Declare.
23251         * optabs.c (init_one_libfunc): New.
23252         (init_optabs): Use it.
23253         * config/gofast.h: Likewise.
23254         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
23255         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
23256
23257 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
23258
23259         * Makefile.in (cppexp.o): Depend on cpphash.h.
23260         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
23261         Include cpphash.h.
23262         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
23263         * cpplib.c (do_define): Generalise to handle poisoned definitions,
23264         redefining poisoned identifiers, etc.
23265         (do_undef): Don't allow poisoned identifiers to be undefined.
23266         (do_pragma): Add #pragma poison.
23267         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
23268
23269         * cccp.c: Add T_POISON node type.
23270         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
23271         poisoned xxx.
23272         (do_define): Generalise to handle poisoned definitions,
23273         redefining poisoned identifiers, etc.
23274         (do_undef): Don't allow poisoned identifiers to be undefined.
23275         (do_pragma): Add #pragma poison.
23276         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
23277
23278         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
23279         * c-pragma.h: Add ps_poison state.  We now always have generic
23280         pragmas.
23281
23282 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
23283
23284         * ggc.h (ggc_alloc): New function.
23285         (ggc_mark): Likewise.
23286         * ggc-simple.c (ggc_any): New structure.
23287         (ggc_status): Add anys.
23288         (n_anys_collected): New variable.
23289         (ggc_alloc): Define.
23290         (ggc_mark): Likewise.
23291         (ggc_collect): Collect the anys.
23292
23293 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23294
23295         * c-decl.c (mark_binding_level): Make static to match prototype.
23296
23297 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
23298
23299         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
23300
23301 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
23302
23303         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
23304         will use into account.  Expand the max width to 5.
23305         * rtl.c: Likewise.
23306
23307 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
23308
23309         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
23310         for the rtx length.
23311
23312 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
23313
23314         * alpha.md (call value patterns): Remove the result predicates.
23315
23316 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
23317
23318         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
23319         last change.
23320
23321 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23322
23323         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
23324         changed from extern char *, to extern PTR.  Also fix typo in
23325         NEED_DECLARATION_REALLOC test.
23326
23327         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
23328
23329 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23330
23331         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
23332         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
23333         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
23334         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
23335
23336         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
23337
23338         * cccp.c (pcfinclude): Likewise.
23339
23340         * global.c (allocno_compare): Likewise.
23341
23342         * haifa-sched.c (rank_for_schedule): Likewise.
23343
23344         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
23345
23346         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
23347
23348         * stupid.c (stupid_reg_compare): Likewise.
23349
23350         * tree.c (_obstack_allocated_p): Likewise.
23351
23352         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
23353
23354 1999-09-08  Bruce Korb  autogen@linuxbox.com
23355
23356         * Makefile.in: Give the hapless gperf user a hint about
23357         why "gperf -F" fails.
23358
23359 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
23360
23361         * lists.c: Include ggc.h.
23362         (zap_lists): New.
23363         (init_EXPR_INSN_LIST_cache): Install it.
23364
23365         * ggc-simple.c (init_ggc): Absorb the old init.
23366         (ggc_push_context): Use xcalloc.
23367         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
23368         (ggc_collect): Add [rvts] tags to the collection stats.
23369
23370 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
23371
23372         * cccp.c (main): Fix handling of -include and -imacros options.
23373
23374 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
23375
23376         * cpplib.c (cpp_push_buffer): Fix order of arguments.
23377
23378 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
23379
23380         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
23381         genrtl.c.
23382
23383 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
23384
23385         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
23386         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
23387         and SET_DEST. Update comment.
23388
23389 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23390
23391         * config/c4x/c4x.c: Include ggc.h.
23392         (c4x_add_gc_roots): New function.
23393         (c4x_override_options): Call c4x_add_gc_roots.
23394
23395 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
23396
23397         * defaults.h (TARGET_ESC): Move ...
23398         * system.h: ... here, where Linas had it in the first place.  Silly me.
23399
23400 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
23401
23402         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
23403         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
23404         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
23405         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
23406         * defaults.h (TARGET_ESC): Add default.
23407
23408 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
23409
23410         * configure.in: add i370-*-openedition, i370-*-mvs and
23411         i370-*-linux targets
23412
23413 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
23414
23415         * dsp16xxx.c: Include ggc.h
23416         (override_options): Mark GC roots.
23417         * mn10200.c: Include ggc.h.
23418         (asm_file_start): Mark GC roots.
23419         * tahoe.c: Include ggc.h.
23420         (extensible_operand): Mark GC roots.
23421
23422 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
23423
23424         * README: Add section discussing status of ELF ABI.
23425         * i370.c: Fix misc spelling mistakes.
23426         (i370_label_scan): Updated notes, exception handling.
23427         (i370_function_prolog): Simplify ELF stack handling.
23428         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
23429         (STACK_GROWS_DOWNWARD): ELF stack grows down.
23430         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
23431         * i370.md: (movdi): Add notes.
23432         (floatsidf2): Use stack not rtca for scratch float area.
23433         (iorsi3): Correct operand constraints.
23434         * x-oe: Restore TAROUTOPTS which are used by pax.
23435
23436 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
23437
23438         * rs6000.c: Include ggc.h.
23439         (rs6000_add_gc_roots): New function.
23440         (override_options): Call it.
23441
23442 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
23443
23444         * alpha.h (alpha_compare): New.
23445         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
23446         * alpha.c: Likewise for the definitions.
23447         (alpha_emit_conditional_branch): Update for alpha_compare.
23448         (alpha_emit_conditional_move): Likewise.
23449         * alpha.md (cmpdf, cmpdi): Likewise.
23450         (setcc patterns): Likewise.  Zero alpha_compare after use.
23451         (sne): Optimize (x != 0) into (0U < x).
23452
23453 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
23454
23455         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
23456         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
23457         (INIT_EXPANDERS): Remove.
23458         * alpha.c: Include ggc.h.
23459         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
23460         (alpha_init_machine_status, alpha_mark_machine_status): New.
23461         (override_options): Install them.
23462         (struct machine_function): Moved to alpha.h.
23463         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
23464         (alpha_init_expanders): Remove.
23465         (alpha_return_addr): Adjust to use current_function->machine.
23466         (alpha_ra_ever_killed): Likewise.
23467         (alpha_expand_epilogue): Likewise.
23468         * alpha.md (eh_epilogue): Likewise.
23469
23470 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
23471                           Melissa O'Neill  <oneill@cs.sfu.ca>
23472                           Geoffrey Keating  <geoffk@cygnus.com>
23473
23474         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
23475         call-used registers (call-saved registers must still be contiguous
23476         and end with r31, of course).
23477
23478 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
23479
23480         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
23481         (self_promoting_type_p): Delete.
23482         (self_promoting_args_p): Move ...
23483         * c-common.c: ... here.
23484         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
23485         (simple_type_promotes_to): New.
23486         * builtins.c (lang_type_promotes_to): New.
23487         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
23488         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
23489         * c-common.h: ... here.
23490         (self_promoting_args_p, simple_type_promotes_to): Declare.
23491         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
23492         (grokdeclarator): Likewise.
23493         * tree.h (lang_type_promotes_to): Declare.
23494
23495 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
23496
23497         Add some machine-dependent GC roots.
23498         * sparc.c: Include ggc.h.
23499         (sparc_add_gc_roots): New function.
23500         (mark_ultrasparc_pipeline_state): Likewise.
23501         (override_options): Call sparc_add_gc_roots.
23502         * pa.c: Include ggc.h.
23503         (pa_add_gc_roots): New function.
23504         (mark_deferred_plabels): Likewise.
23505         (override_options): Call pa_add_gc_roots.
23506         * mips.c: Include ggc.h.
23507         (mips_add_gc_roots): New function.
23508         (override_options): Use it.
23509
23510 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23511
23512         * cpperror.c (cpp_file_line_for_message): Constify a char*.
23513
23514         * cppexp.c (parse_number, parse_charconst, cpp_lex,
23515         cpp_parse_expr): Add static prototypes.
23516         (parse_charconst): Don't cast away const-ness.
23517         (token): Constify a char*.
23518
23519         * cppfiles.c (file_name_list, include_hash, find_include_file,
23520         finclude, initialize_input_buffer): Constify a char*.
23521         (file_cleanup, find_position): Add static prototypes.
23522
23523         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
23524         collect_expansion): Add static prototypes.
23525         (cpp_install, create_definition, monthnames): Constify a char*.
23526
23527         * cpphash.h (cpp_install): Likewise.
23528
23529         * cppinit.c (known_suffixes, default_include,
23530         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
23531         (base_name, dump_special_to_buffer, initialize_dependency_output):
23532         Add static prototypes.
23533
23534         * cpplib.c (my_strerror): Constify a char*.
23535         (null_underflow, null_cleanup, skip_comment, copy_comment,
23536         copy_rest_of_line, handle_directive, pass_thru_directive,
23537         get_directive_token, read_line_number, cpp_print_file_and_line,
23538         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
23539         v_cpp_warning_with_line, detect_if_not_defined,
23540         consider_directive_while_skipping): Add static prototypes.
23541         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
23542         cpp_pedwarn_with_file_and_line): Constify a char*.
23543
23544         * cpplib.h (cpp_options, include_hash, progname, definition,
23545         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
23546         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
23547         find_include_file, deps_output, include_hash): Constify a char*.
23548
23549         * cppmain.c (progname): Constify.
23550         (main): Add prototype.  Use return, not exit.
23551
23552         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
23553         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
23554         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
23555         check_protection): Add static prototype.
23556         (xfree): Remove.
23557         (progname, recognized_macrom, recognized_extern): Constify a char*.
23558         (main): Add prototype.
23559
23560         * gen-protos.c (progname): Constify a char*.
23561
23562 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
23563
23564         * emit-rtl.c (free_emit_status): Take decl as a parameter.
23565         (init_emit_once): Add more GC roots.
23566         * except.c (mark_func_eh_entry): New function.
23567         (mark_eh_node): Mark false_label and rethrow_label.
23568         (init_eh): Add more GC roots.
23569         * function.c (free_after_compilation): Take decl as a paramter.
23570         Call free_stmt_status.
23571         (mark_function_state): Don't assume x_parm_reg_stack_loc is
23572         non-NULL.
23573         * function.h (free_after_compilation): Change prototype.
23574         (free_varasm_status): Likewise.
23575         (free_emit_status): Likewise.
23576         (free_stmt_status): New function.
23577         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
23578         Remove, replacing with ...
23579         (ggc_status): New structure.
23580         (ggc_chain): New variable.
23581         (init_gcc): Define.
23582         (ggc_push_context): New function.
23583         (ggc_pop_context): Likewise.
23584         (ggc_alloc_rtx): Adjust for use of ggc_chain.
23585         (ggc_alloc_rtvec): Likewise.
23586         (ggc_alloc_tree): Likewise.
23587         (ggc_alloc_string): Likewise.
23588         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
23589         (ggc_mark_tree): Give language-dependent code a chance to mark
23590         `x' nodes.
23591         (ggc_mark_tree_varray): Handle empty arrays.
23592         (ggc_collect): Adjust for use of ggc_chain.  Clear
23593         bytes_alloced_since_last_gc.
23594         * ggc.h (ggc_pop_context): New function.
23595         (ggc_push_context): Likewise.
23596         * print-tree.c (print_node): Don't print obstacks when GC'ing.
23597         * stmt.c (free_stmt_status): New function.
23598         (init_stmt_for_function): Clear last_expr_value.
23599         * toplev.c (rest_of_compilation): Always call free_after_compilation.
23600         Conditionalize call to ggc_collect.
23601         (main): Call init_ggc.
23602         * tree.c (push_obstacks): Do the push, even when GC'ing.
23603         (push_obstacks_nochange): Likewise.
23604         (pop_obstacks): Liekwise.
23605         * varasm.c (free_varasm_status): Take decl as a parameter.
23606
23607 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23608
23609         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
23610         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
23611         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
23612         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
23613
23614 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
23615
23616         * pa/x-pa-mpeix: New file for the MPE port.
23617
23618         * pa/quadlib.asm: New file for long double support.
23619
23620         * configure.in: Add hppa1.0-*-mpeix for MPE port.
23621         * configure: Rebuilt.
23622
23623 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
23624
23625         * final.c (shorten_branches): Fix last change.
23626
23627 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
23628
23629         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
23630
23631 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
23632
23633         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
23634         details.
23635
23636 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23637
23638         * c-aux-info.c (concat): Don't define.
23639
23640         * cccp.c (my_strerror): Likewise.  All callers changed to use
23641         xstrerror instead.
23642         (do_include): Call xstrdup, not xmalloc/strcpy.
23643         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
23644         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
23645
23646         * collect2.c (my_strsignal): Likewise.  All callers changed to use
23647         strsignal instead.
23648         (locatelib): Call xstrdup, not xmalloc/strcpy.
23649
23650         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
23651
23652         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
23653
23654         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
23655
23656         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
23657
23658         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
23659
23660         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
23661
23662         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
23663         malloc/realloc.
23664         (find_all_handler_type_matches): Likewise.  Don't check return
23665         value.
23666         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
23667         xmalloc, not malloc.
23668         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
23669
23670         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
23671         (init_spec): Call xcalloc, not xmalloc/bzero.
23672         (set_spec): Call xstrdup, not save_string.
23673         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
23674         (find_a_file): Call xstrdup, not xmalloc/strcpy.
23675         (process_command): Call xstrdup, not save_string.
23676         (main): Call xcalloc, not xmalloc/bzero.
23677
23678         * gcov.c (xmalloc): Don't define.
23679         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
23680         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
23681         (output_data): Call xcalloc, not xmalloc/bzero.
23682
23683         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
23684
23685         * mips-tdump.c (xmalloc): Don't define.
23686         (print_symbol): Call xmalloc, not malloc.
23687         (read_tfile): Call xcalloc, not calloc.
23688
23689         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
23690         Don't define.  All callers of xfree/my_strsignal changed to use
23691         free/strsignal instead.
23692         (allocate_cluster): Call xcalloc, not calloc.
23693
23694         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
23695         Fix memory leak, free allocated memory.
23696
23697         * prefix.c (translate_name): Call xstrdup, not save_string.
23698         (update_path): Likewise.
23699
23700         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
23701
23702         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
23703         Don't define.  Callers of xfree/savestring2 changed to use
23704         free/concat instead.
23705
23706         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
23707         (init_elim_table): Likewise.
23708
23709         * resource.c (init_resource_info): Likewise.
23710
23711         * stupid.c (stupid_life_analysis): Likewise.
23712
23713         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
23714         (open_dump_file): Call concat, not xmalloc/strcpy/...
23715         (clean_dump_file): Likewise.
23716         (compile_file): Call xstrdup, not xmalloc/strcpy.
23717
23718 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
23719
23720         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
23721         * v850.c (v850_va_arg): New.
23722
23723 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23724
23725         * haifa-sched.c: Tidy comments.
23726
23727 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23728
23729         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
23730         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
23731         $(out_object_file)): Depend on ggc.h.
23732         * c-common.c: Include "ggc.h".
23733         (combine_strings): If doing GC, use ggc_alloc_string.
23734         * c-decl.c: Include "ggc.h".
23735         (ggc_p): Define with value 0.
23736         (mark_binding_level): New function.
23737         (init_decl_processing): Add GC roots.
23738         (mark_c_function_context): New function.
23739         (lang_mark_false_label_stack): New function.
23740         (lang_mark_tree): New function.
23741         (lang_cleanup_tree): New function.
23742         * c-lang.c: Include "ggc.h".
23743         (lang_init): Call c_parse_init.
23744         * c-lex.c: Include "ggc.h".
23745         (check_linenum): If doing GC, don't copy filenames to permanent
23746         obstack.
23747         * c-parse.in: Include "ggc.h".
23748         (c_parse_init): New function.
23749         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
23750         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
23751
23752         * except.c (mark_eh_state): Mark more state.
23753         * function.c (mark_function_state): Likewise.
23754         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
23755         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
23756         * toplev.c (mark_file_stack): New function.
23757         (compile_file): If doing GC, use ggc_alloc_string on input filename.
23758         (main): Add root for input_file_stack.
23759
23760         * i386.c: Include "ggc.h".
23761         (ix86_mark_machine_status): New function.
23762         (override_options): Set mark_machine_status.
23763
23764 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23765
23766         * tree.c (copy_node): Copy node contents also if doing GC.
23767
23768 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
23769
23770         * collect2.c (scan_libraries): Fix double-thinko :-).
23771
23772 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
23773
23774         * collect2.c (scan_libraries): Fix thinko.
23775
23776         * cse.c (delete_trivially_dead_insns): Do not skip the last
23777         insn if it is a real insn.
23778
23779 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
23780
23781         * Makefile.in (ggc-simple.o): Depend on hash.h.
23782         * ggc.h (ggc_add_tree_hash_table_root): Declare.
23783         (ggc_mark_tree_varray): Likewise.
23784         (ggc_mark_tree_hash_table): Likewise.
23785         * ggc-simple.c: Include hash.h.
23786         (ggc_mark_tree_hash_table_ptr): New function.
23787         (ggc_mark_tree_hash_table_entry): Likewise.
23788         (ggc_mark_tree_hash_table): Likewise.
23789         (ggc_add_tree_hash_table_root): Likewise.
23790         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
23791         rtx, when defining fields.
23792
23793 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
23794
23795         * profile.c (output_func_start_profiler): Remove apparently
23796         nonsensical call to start_sequence.
23797
23798 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
23799
23800         * clipper/clipper.c (clipper_va_start): Fix typos.
23801
23802         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
23803         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
23804         (spur_va_arg): New stub.
23805
23806         * configure.in: Comment out pyramid.
23807
23808 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
23809
23810         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
23811         don't conflict with the bits that win32, cygwin, and dgux
23812         defines.
23813
23814 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
23815                           Bernd Schmidt <bernds@cygnus.co.uk>
23816
23817         * integrate.c (function_cannot_inline_p): Do not inline
23818         functions with forced labels.
23819
23820 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
23821                           Bernd Schmidt <bernds@cygnus.co.uk>
23822                           Mark Mitchell  <mark@codesourcery.com>
23823
23824         * Makefile.in (ggc-simple.o): Depend on varray.h.
23825         (rtl.o): Depend on ggc.h.
23826         (genattrtab.o): Depend on ggc.h.
23827         (print-tree.o): Likewise.
23828         (fold-const.o): Likewise.
23829         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
23830         (make_insn_raw): Don't cache insns when GC'ing.
23831         (emit_insn_before): Likewise.
23832         (emit_insn_after): Likewise.
23833         (emit_insn): Likewise.
23834         (start_sequence): Use xmalloc to allocate the sequence_stack.
23835         (end_sequence): Add free to free it.
23836         (gen_sequence): Don't cache insns when GC'ing.
23837         (clear_emit_caches): Don't use sequence_element_free_list.
23838         (init_emit): Use xcalloc, not xmalloc+bzero.
23839         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
23840         * function.c (pop_function_context_from): Use free to free the
23841         fixup_var_refs_queue.
23842         (put_reg_into_stack): Allocate it with xmalloc.
23843         * genattrtab.c: Include ggc.h.
23844         (operate_exp): Don't use obstack_free when GC'ing.
23845         (simplify_cond): Likewise.
23846         (simplify_text_exp): Likewise.
23847         (optimize_attrs): Likewise.
23848         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
23849         GC'ing.
23850         (gencode): Generate a #include for ggc.h.
23851         * ggc-callbacks.c (ggc_p): Define it to zero.
23852         * ggc-none.c (ggc_p): Likewise.
23853         * ggc-simple.c: Include varray.h.
23854         (ggc_mark_tree_varray): New function.
23855         (ggc_add_tree_varray_root): Likewise.
23856         (ggc_mark_tree_varray_ptr): Likewise.
23857         * ggc.h (ggc_p): Declare.
23858         (varray_head_tag): Likewise.
23859         (ggc_add_tree_varray_root): Declare.
23860         * print-tree.c (print_node): Don't check for TREE_PERMANENT
23861         inconsistencies when GC'ing.
23862         * rtl.c: Include ggc.h.
23863         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
23864         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
23865         (rtx_free): Don't call obstack_free when GC'ing.
23866         * toplev.c (rest_of_compilation): Call ggc_collect after every
23867         pass, if GC'ing.
23868         * tree.c (push_obstacks): Do nothing, if GC'ing.
23869         (pop_obstacks_nochange): Likewise.
23870         (pop_obstacks): Likewise.
23871         (make_node): Use ggc_alloc_tree when GC'ing.
23872         (copy_node): Likewise.
23873         (get_identifier): Use ggc_alloc_string when GC'ing.
23874         (build_string): Likewise.
23875         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
23876         (tree_cons): Likewise.
23877         (build1): Likewise.
23878         (type_hash_canon): Don't call obstack_free when GC'ing.
23879
23880 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
23881
23882         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
23883         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
23884
23885 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
23886                           Bernd Schmidt <bernds@cygnus.co.uk>
23887                           Mark Mitchell  <mark@codesourcery.com>
23888
23889         * Makefile.in (stor-layout.o): Depend on ggc.h.
23890         (expr.o): Depend on ggc.h.
23891         (profile.o): Depend on ggc.h.
23892         (stor-layout.o): Depend on ggc.h.
23893         * emit-rtl.c (init_emit_once): Add gc roots.
23894         * expr.c: Include ggc.h.
23895         (emit_block_move): Add gc roots.
23896         (clear_storage): Likewise.
23897         * expr.h (init_stor_layout_once): New function.
23898         * profile.c: Include ggc.h.
23899         (init_arc_profiler): profiler_label is a root.
23900         * scan.c (make_sstring_space): Trust xrealloc to function
23901         correctly with first parameter NULL.
23902         * stor-layout.c: Include ggc.h.
23903         (set_sizetype): Add gc root.
23904         (init_stor_layout_once): New function.
23905         * toplev.c (compile_file): Call it.
23906
23907 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
23908                           Bernd Schmidt <bernds@cygnus.co.uk>
23909                           Mark Mitchell  <mark@codesourcery.com>
23910
23911         * Makefile.in (tree.o): Depend on ggc.h.
23912         (varasm.o): Likewise.
23913         (function.o): Likewise.
23914         (stmt.o): Likewise.
23915         (except.o): Likewise.
23916         (optabs.o): Likewise.
23917         (emit-rtl.o): Likewise.
23918         * emit-rtl.c: Include ggc.h.
23919         (sequence_element_free_list): Remove, and all references.
23920         (mark_sequence): New functions.
23921         (mark_emit_state): New function.
23922         * except.c: Include ggc.h.
23923         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
23924         (mark_tree_label_node): New functions.
23925         (mark_eh_state): New function.
23926         * function.c: Include ggc.h.
23927         (mark_temp_slot, mark_function_chain): New functions.
23928         (mark_function_state): New function.
23929         (init_function_once): New function.
23930         * function.h (init_function_once): New function.
23931         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
23932         * ggc.h (label_node): Declare.
23933         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
23934         (lang_mark_false_label_stack): New function.
23935         (mark_temp_slot): Remove declaration.
23936         (mark_function_chain): Likewise.
23937         (mark_eh_state): Adjust prototype.
23938         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
23939         Likewise.
23940         * optabs.c: Include ggc.h.
23941         (mark_optab): New function.
23942         (init_optabs): Add gc roots.
23943         * stmt.c: Include ggc.h.
23944         (mark_cond_nesting, mark_loop_nesting): New functions.
23945         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
23946         (mark_stmt_state): New function.
23947         * toplev.c (compile_file): Call init_function_once.
23948         * tree.c: Include ggc.h.
23949         (type_hash): Move declaration earlier in file.
23950         (TYPE_HASH_SIZE, type_hash_table): Likewise.
23951         (init_obstacks): Add gc roots.
23952         (mark_type_hash): New function.
23953         * varasm.c: Include ggc.h.
23954         (mark_pool_constant): New function.
23955         (mark_varasm_state): New function.
23956
23957 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23958
23959         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
23960
23961 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
23962
23963         * c-decl.c (struct language_function): Renamed from struct c_function.
23964         Delete elt NEXT.
23965         (c_function_chain): Delete.
23966         (push_c_function_context): New arg F.  Don't warn about nested
23967         functions here.  Fill LANGUAGE elt of F.  Delete code to update
23968         c_function_chain.  Don't call push_function_context.
23969         (pop_c_function_context): New arg F.  Restore from there instead of
23970         from c_function_chain.  Don't call pop_function_context.  Clear out
23971         LANGUAGE field of F when done.
23972         * c-lang.c: Include "function.h"
23973         (lang_init): Initialize save_lang_status and restore_lang_status.
23974         * c-parse.in (nested_function, nested_function_notype): Warn about
23975         nested functions.  Call push_function_context/pop_function_context
23976         instead of the _c_ variants.
23977         * c-tree.h (push_c_function_context, pop_c_function_context): Update
23978         prototype.
23979         * Makefile.in (c-lang.o): Update dependencies.
23980
23981         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
23982         regno_pointer_flag, regno_pointer_align.
23983         (gen_reg_rtx): Use xrealloc to enlarge them.
23984         (free_emit_status): New function.
23985         * function.c (mark_machine_status, mark_lang_status): New variables.
23986         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
23987         in some bits from assign_stack_local.  All callers changed to use new
23988         name.
23989         (assign_stack_local): Just call assign_stack_local_1.
23990         (free_after_compilation): New function.
23991         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
23992         (trampoline_address): Likewise.
23993         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
23994         (prepare_function_start): Explicitly clear some more variables.
23995         * function.h (struct function): New elt can_garbage_collect.
23996         (mark_machine_status, mark_lang_status): Declare variables.
23997         (free_after_compilation, free_emit_status, free_varasm_status,
23998         init_varasm_status): Declare functions.
23999         * toplev.c (rest_of_compilation): Call free_after_compilation when
24000         done with the current function.
24001         * varasm.c (free_varasm_status): New function.
24002
24003 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
24004
24005         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
24006         (EXPAND_BUILTIN_VA_ARG): Define.
24007         * sparc.c (sparc_va_start): New.
24008         (sparc_va_arg): New.
24009
24010 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24011
24012         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
24013
24014 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24015
24016         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
24017
24018 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
24019
24020         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
24021         (OBJS): Add $(GGC).
24022         (ggc-callbacks.o): New target.
24023         * ggc-callbacks.c: New file.
24024
24025 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24026
24027         * expr.h: Collapse individual optab and libfunc vars to arrays.
24028         (optab_index, libfunc_index): New enumerations.
24029         (optab_table, libfunc_table): New arrays.
24030         Add accessor macros for both.
24031
24032         * optabs.c (optab_table, libfunc_table): New.
24033         Delete declarations for individual optab and libfunc vars.
24034
24035 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
24036
24037         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
24038
24039 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
24040
24041         * Makefile.in (GGC, GGC_LIB): New.
24042         (HOST_RTL): Include ggc-none.o.
24043         (ggc-simple.o): New target.
24044         (ggc-none.o): Likewise.
24045         * tree.h (tree_common): Add gc_mark.
24046         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
24047         (struct rtvec_def): Add gc_mark.
24048         * emit-rtl.c (global_rtl): Update static initializers to contain
24049         enough initializers.
24050         * ggc.h, ggc-none.c, ggc-simple.c: New files.
24051         * toplev.c (gc_time): New variable.
24052         (all_time): New variable.
24053         (compile_file): Print gc time.
24054         (print_time): Calculate percentage of the whole.
24055
24056 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24057
24058         Change obstack memory management and varasm constant pool handling so
24059         that nested functions are treated like any other functions.
24060         * function.c (init_machine_status): New variable.
24061         (push_function_context_to): Set contains_functions for the outer
24062         function.  Don't call save_varasm_status.
24063         (pop_function_context_from): Don't call restore_varasm_status.  Don't
24064         set current_function_contains_functions.
24065         (prepare_function_start): Call init_varasm_status rather than
24066         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
24067         is non-null.
24068         * function.h (struct function) Add field varasm.  Delete fields
24069         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
24070         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
24071         (init_machine_status): Declare.
24072         (save_varasm_status, restore_varasm_status): Delete declarations.
24073         (save_tree_status, restore_tree_status): Delete last argument.
24074         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
24075         code.  All callers changed.
24076         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
24077         save_constants_in_decl_trees, restore_constants, save_constants,
24078         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
24079         functions.
24080         (inlining): New variable.
24081         (reg_map, label_map, insn_map, orig_asm_operands_vector,
24082         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
24083         variables.
24084         (save_for_inline_nocopy): Don't save constants.
24085         Don't set inl_emit field in current_function.
24086         (expand_inline_function): Use emit field, not inl_emit, of the inlined
24087         function.  Set new variable inlining before
24088         calling copy_rtx_and_substitute.
24089         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
24090         constant pool references if inlining is nonzero.
24091         Delete ADDRESS and (most of the) CONST cases.
24092         (output_inline_function): Save and restore current_function/
24093         current_function_decl.  Delete restore_constants code.  Don't call
24094         init_const_rtx_hash_table.
24095         * output.h (init_const_rtx_hash_table): Don't declare.
24096         * rtl.h (struct function): Declare.
24097         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
24098         * toplev.c (rest_of_compilation): Don't treat nested functions or
24099         functions containing them specially.  Delete all code to deal with
24100         save_for_inline_copying.
24101         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
24102         inline_obstacks): Delete variables.
24103         (save_tree_status): Lose arg CONTEXT.  All callers changed.
24104         Simply allocate a new function_maybepermanent_obstack for the new
24105         function, delete all the special cases.
24106         Don't save inline_obstacks.
24107         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
24108         Delete special handling for function_maybepermanent_obstack; simply
24109         free it if empty.
24110         Don't restore inline_obstacks.
24111         (permanent_allocation):  Delete code that frees inline_obstacks.
24112         (print_inline_obstack_statistics): Delete function.
24113         (dump_tree_statistics): Don't call it.
24114         * varasm.c (struct varasm_status): New.
24115         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
24116         last_pool, pool_offset, const_double_chain): Delete global
24117         variables, replace with accessor macros.
24118         (immed_double_const): Don't walk const_double_chain outside a
24119         function, but don't treat nested functions specially anymore.
24120         (immed_real_const_1): Likewise.
24121         (clear_const_double_mem): Don't treat nested functions specially.
24122         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
24123         (save_varasm_status, restore_varasm_status): Delete functions.
24124         (init_varasm_status): New function.
24125         (force_const_mem): Don't treat nested functions specially.
24126         (find_pool_constant): Accept new arg F, search for constants in
24127         that function's pool rather than the current one.  All callers
24128         changed.
24129         (get_pool_constant_for_function, get_pool_mode_for_function): New
24130         functions.
24131
24132         * i386.c (init_386_machine_status): New function, mostly from
24133         clear_386_stack_locals.
24134         (struct machine_functions): Rename element names to avoid name
24135         clashes.
24136         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
24137         macros, replacing global variables.
24138         (clear_386_stack_locals, save_386_machine_status,
24139         restore_386_machine_status): Delete functions.
24140         (override_options): Initialize init_machine_status.
24141         * i386.h (INIT_EXPANDERS): Delete macro.
24142         (save_386_machine_status, restore_386_machine_status,
24143         clear_386_stack_locals): Delete declarations.
24144
24145 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24146
24147         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
24148         (doloop_begin):  Simplify pattern and use emit_jump_insn.
24149         (doloop_end): Simplify pattern, switch operand order,
24150         and use emit_jump_insn.
24151
24152 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
24153
24154         * function.h (struct function): Add new element LANGUAGE.
24155         (save_lang_status): Declare new variable.
24156         (restore_lang_status): Likewise.
24157         * function.c (save_lang_status): Define.
24158         (restore_lang_status): Likewise.
24159         (push_function_context_to): Call language-specific save function.
24160         (pop_function_context_from): Call language-specific restore function.
24161
24162 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
24163
24164         * i386.md (movsf_1): Check REG_P before use of REGNO.
24165         (movdf_1): Likewise.
24166         (movxf_1): Likewise.
24167         (extendsfdf2): Likewise.
24168         (extendsfxf2): Likewise.
24169         (extenddfxf2): Likewise.
24170
24171 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24172
24173         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
24174         constants into memory.
24175         (c4x_shiftable_constant): New function.
24176         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
24177         (c4x_shiftable_constant): Declare.
24178         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
24179         ashlqi3_noclobber): Add new patterns and associated splitters.
24180
24181 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
24182
24183         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
24184         * dwarf2out.c (dwarf2out_frame_init): Likewise.
24185         * final.c (shorten_branches): Likewise.
24186         * global.c (global_alloc): Likewise.
24187         * haifa-sched.c (build_control_flow): Likewise.
24188         * stmt.c (check_for_full_enumeration_handling): Likewise.
24189         (estimate_case_costs): Likewise.
24190
24191 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
24192
24193         * rtl.h (RTL_CHECKC2): Fix typo in last change.
24194
24195 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
24196
24197         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
24198         (recompute_reg_usage): Likewise.
24199         * rtlanal.c (find_regno_fusage): Likewise.
24200
24201         * rtl.c (rtl_check_failed_code1): New function.
24202         (rtl_check_failed_code2): New.
24203         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
24204         (RTL_CHECKC1, RTL_CHECKC2): New.
24205         (XC*): New accessor macros.
24206         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
24207         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
24208         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
24209         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
24210         (TRAP_*, RANGE_INFO_*): Likewise.
24211
24212 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24213
24214         * Makefile.in (tlink.o): Don't depend on toplev.h.
24215
24216         * collect2.c (c_file, o_file, export_file, import_file, ldout,
24217         output_file, nm_file_name, ldd_file_name, strip_file_name,
24218         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
24219         add_prefix, prefix_from_env, prefix_from_string, do_wait,
24220         fork_execute, maybe_unlink, add_to_list,
24221         extract_init_priority, write_list, dump_list,
24222         dump_prefix_list, write_list_with_asm, write_c_file,
24223         write_c_file_stat, write_c_file_glob, scan_prog_file,
24224         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
24225         ignore_library, extract_string, notice, dump_file, target_machine,
24226         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
24227         read_file, print_load_command): Constify a char*.
24228         (fdopen, error, fatal, fatal_perror): Don't prototype.
24229         (my_strerror): Remove.  All callers use xstrerror instead.
24230         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
24231         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
24232         to xcalloc/strcpy/strcat/...  to one call to concat.
24233         (main, scan_prog_file, scan_libraries): Use an intermediate
24234         `const char **' to build an argv array.
24235         (mapfile, libselect, libcompare, locatelib): Add prototypes.
24236
24237         * collect2.h (collect_execute, collect_wait, dump_file,
24238         file_exists): Constify a char*.
24239         (ldout, c_file_name, temporary_obstack, permanent_obstack,
24240         temporary_firstobj, vflag, debug): Add extern declarations.
24241         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
24242
24243         * tlink.c: Don't include toplev.h.
24244         (vflag, debug, ldout, c_file_name, temporary_obstack,
24245         permanent_obstack, temporary_firstobj): Don't declare.
24246         (tlink_execute, frob_extension, symbol_hash_lookup,
24247         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
24248         recompile_files, read_repo_files, demangle_new_symbols,
24249         scan_linker_output): Constify a char*.
24250         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
24251         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
24252
24253 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
24254
24255         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
24256         (relative) rather than jsr (absolute) subroutine call insns.
24257         * config/m68k/m68k-coff.h: Ditto.
24258
24259 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
24260
24261         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
24262         now rework these too.
24263         (arm_reorg): If an insn can't reach the end of the current pool,
24264         ensure that we emit that pool before the insn.
24265
24266 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
24267
24268         * tlink.c (scan_linker_output): Skip the initial underscore in
24269         a mangled name if appropriate.
24270
24271 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24272
24273         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
24274         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
24275         error_with_ivar, gen_declarator, create_builtin_decl,
24276         my_build_string, generate_descriptor_table, generate_ivars_list,
24277         generate_dispatch_table, check_protocols, TAG_GETCLASS,
24278         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
24279         dump_base_name, lang_decode_option, build_encode_expr,
24280         start_class, finish_class, encode_pointer, really_start_method,
24281         gen_declaration, dump_interface, handle_class_ref, handle_impent):
24282         Constify.
24283         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
24284         Add static prototypes.
24285         (build_objc_string_decl, build_selector_reference_decl,
24286         encode_bitfield, build_class_reference_decl): Remove unused
24287         parameter, all callers changed.
24288         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
24289         (objc_printable_name): Likewise.  Change second parameter to type int.
24290         (init_objc): Use memcpy, not bcopy, to avoid casts.
24291
24292 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
24293
24294         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
24295         reg notes on a deleted insn.
24296         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
24297
24298 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
24299
24300         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
24301
24302 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24303
24304         * stmt.c (expand_asm_operands): Fix index into inout_mode when
24305         reading it.
24306
24307 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
24308
24309         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
24310         * tm.texi (MD_ASM_CLOBBERS): Document it.
24311
24312 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
24313
24314         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
24315         * except.c (expand_rethrow): Remove unused variable.
24316         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
24317         * flow.c (replace_insns): Likewise.
24318         (create_edge_list, verify_edge_list): Likewise.
24319         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
24320
24321         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
24322         is special code to run.
24323         (main): Don't define operands to emit_operand.
24324         * genrecog.c (main): Don't emit an empty peephole2_insn function.
24325
24326         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
24327
24328         * alpha/alpha.h (normal_memory_operand): Declare.
24329         (reg_no_subreg_operand): Declare.
24330         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
24331
24332 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
24333
24334         * c-parse.in (compstmt_primary_start): New, broken out of first
24335         part of compstmt handling in primary.
24336         (primary): Use it.  Add an error clause.
24337         (compstmt_nostart): Renamed from compstmt; remove all
24338         initial invocations of compstmt_start.
24339         (compstmt): New.
24340
24341 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
24342
24343         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
24344         needed.
24345
24346 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
24347
24348         * combine.c (simplify_shift_const): Remove extra semicolon.
24349         * dwarf2out.c (remove_AT): Likewise.
24350         * expmed.c (expand_mult): Likewise.
24351         * gcov.c (create_program_flow_graph): Likewise.
24352         * reorg.c (mostly_true_jump): Likewise.
24353
24354 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
24355
24356         * fold-const.c (fold_range_test): Do not try to fold the range
24357         test if the rhs or lhs has side effects.
24358
24359         * combine.c (simplify_rtx): Recognize another case of a synthesized
24360         sign extension.
24361
24362         * varasm.c (mark_constant_pool): When marking indirect references,
24363         only look at SYMBOL_REFs.
24364
24365         * except.c (expand_fixup_region_end): Do not peek at
24366         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
24367
24368 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
24369
24370         * flags.h: New variables align_loops, align_loops_log,
24371         align_jumps, align_jumps_log, align_labels, align_labels_log,
24372         align_functions, align_functions_log.
24373         * toplev.c: Define them.
24374         (f_options): Handle -falign-* when they have no argument.
24375         (main): Add logic to set variables for -falign-functions,
24376         -falign-jumps, -falign-labels, -falign-loops.
24377         Make it -fsched-verbose=<n> and -finline-limit=<n>.
24378         (display_help): Change help to match options.
24379         * final.c (LABEL_ALIGN): Default to align_labels_log.
24380         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
24381         (LOOP_ALIGN): Default to align_loops_log.
24382         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
24383         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
24384         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
24385         * varasm.c (assemble_start_function): Handle align_functions.
24386
24387         * config/sparc/sparc.h: Don't declare sparc_align_*.
24388         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
24389         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
24390         sparc.c.
24391         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
24392         it's a promise.
24393         * config/sparc/sparc.c: Delete sparc_align_loops,
24394         sparc_align_jumps, sparc_align_funcs and the corresponding string
24395         variables.
24396         (sparc_override_options): Default align_functions on ultrasparc.
24397         Delete -malign-* handling.
24398
24399         * config/mips/mips.c (override_options):  On 64-bit targets,
24400         try to align code to 64-bit boundaries.
24401         (print_operand): New substitution, %~,
24402         which aligns labels to align_labels_log.
24403         * config/mips/mips.md (div_trap_normal): Use %~.
24404         (div_trap_mips16): Likewise.
24405         (abssi): Likewise.
24406         (absdi2): Likewise.
24407         (ffssi2): Likewise.
24408         (ffsdi2): Likewise.
24409         (ashldi3_internal): Likewise.
24410         (ashrdi3_internal): Likewise.
24411         (lshrdi3_internal): Likewise.
24412         (casesi_internal): Likewise.
24413
24414 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
24415
24416         Merge new ia32 backend from the branch!
24417
24418         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
24419         See ChangeLog.P2 on new_ia32_branch for details.
24420
24421         * rtl.h (stack_regs_mentioned_p): Delete prototype.
24422         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
24423         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
24424         * i386/gas.h (ASM_FILE_START): Define.
24425         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
24426         for name change of ix86_valid_decl_attribute_p.
24427         (i386_pe_valid_type_attribute_p): Similarly.
24428
24429 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
24430
24431         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
24432         to step through CC modes.
24433
24434 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24435
24436         * regmove.c (fixup_match_1): Don't move INSN in front of P if
24437         it would end up in the shadow of a live flags regsiter.
24438
24439 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24440
24441         * reload1.c: Fix many indentation problems.
24442         * reload.c: Likewise.
24443
24444 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
24445
24446         * alias.c (non_local_reference_p): Constify fmt.
24447
24448 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
24449
24450         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
24451
24452 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
24453
24454         * cse.c (delete_trivially_dead_insns): Do not delete stores to
24455         the internal_arg_pointer.
24456
24457 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
24458
24459         Merge peephole2 from new_ia32_branch:
24460         * Makefile.in (STAGESTUFF): Add *.peephole2.
24461         (mostlyclean): Likewise.
24462         (recog.o): Depend on resource.h.
24463
24464         * final.c (peephole): Conditionalize decl on HAVE_peephole.
24465         (final_scan_insn): Likewise for the invocation of peephole.
24466         * genconfig.c (main): Look for peephole and peephole2 patterns.
24467         Emit HAVE_peephole* accordingly.
24468         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
24469         * flags.h (flag_peephole2): Declare.
24470         * toplev.c: New pass peephole2.  New flag -fpeephole2.
24471
24472         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
24473         * gencodes.c (main): Likewise.
24474         * genextract.c (main): Likewise.
24475         * genoutput.c (main): Likewise.
24476         * genemit.c (max_operand_1): Look for the max scratch operand.
24477         (gen_rtx_scratch): New.
24478         (gen_exp): Use it, and pass on new arg subroutine_type.
24479         (gen_expand): Take max scratch into account.
24480         (gen_split): Emit peephole2 functions.
24481         (output_peephole2_scratch): New.
24482         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
24483         * genrecog.c (routine_type): Add PEEPHOLE2.
24484         (IS_SPLIT): New.
24485         (make_insn_sequence): Match outer parallel for peep2.  Discard
24486         top level scratches and dups.
24487         (add_to_sequence): New args insn_type and top.  Update all callers.
24488         Handle toplevel peep2 matching insns.
24489         (write_subroutine): Handle peep2.
24490         (write_tree_1): Likewise.
24491         (write_tree): Likewise.
24492         (main): Likewise.
24493         (change_state): New arg afterward.  Update all callers.
24494         Handle matching separate insns.
24495         * recog.c (recog_next_insn): New.
24496         (peephole2_optimize): New.
24497         * rtl.def (DEFINE_PEEPHOLE2): New.
24498         * resource.c (find_free_register): New argument last_insn.  Use it
24499         to find a register available through the entire span.
24500         * resource.h (find_free_register): Update prototype.
24501
24502 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
24503
24504         * i386.c (output_strlen_unroll): Don't write xops[7]
24505         label if it wasn't set.
24506
24507 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
24508
24509         * cpplib.c (struct directive): Const-ify name pointer and
24510         function pointer prototype.
24511         (validate_else, do_define, do_line, do_include, do_undef,
24512         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
24513         do_elif, do_endif, do_sccs, do_assert, do_unassert,
24514         do_warning): Const-ify second arg.
24515         (directive_table): Mark const.  Reorder entries by frequency
24516         of usage, record statistics.
24517
24518 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
24519
24520         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
24521         bounds- check RTL accesses if --enable-checking.
24522         (RTVEC_ELT): Bounds check if --enable-checking.
24523         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
24524         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
24525         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
24526         GET_NUM_ELEM.
24527         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
24528         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
24529
24530         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
24531         (NOTE_SOURCE_FILE): Use X0STR.
24532         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
24533         MEM_ALIAS_SET): Use X0INT.
24534         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
24535         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
24536         Use X0EXP.
24537         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
24538         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
24539         (rtl_check_failed_bounds, rtl_check_failed_type1,
24540         rtl_check_failed_type2, rtvec_check_failed_bounds): New
24541         functions.
24542         (fancy_abort): Fix comment.
24543
24544         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
24545         (cse_insn): Decrement LABEL_NUSES for jump target before
24546         deleting jump insn.
24547         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
24548         * final.c (alter_subreg): Compute regno before changing x to
24549         REG; set REGNO(x) after changing it.
24550         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
24551         notes containing CONST_INTs.
24552         (delete_eh_regions): Use NOTE_EH_HANDLER.
24553         * function.c (put_reg_into_stack): Make reg a MEM before
24554         initializing it.
24555         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
24556         delete insn.
24557         (gen_mem_addressof): Make reg a MEM before initializing it.
24558         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
24559         X0WINT.
24560         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
24561         deleting an insn, not after.
24562         (block_alloc): Only look at PATTERN(insn) if we have to, and
24563         only if it's format class 'i'.
24564         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
24565         CONST_INT before using its INTVAL.
24566         * print-rtl.c (print_rtx): Use X0STR.
24567         * regmove.c (fixup_match_1): Don't look at PATTERN of
24568         non-class-'i' insn chain elements.
24569         * reload.c (loc_mentioned_in_p): Take address of
24570         in->fld[1].rtx directly.
24571         * reload1.c (reload): Change reg to a MEM before initializing
24572         it.
24573         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
24574         have no names.
24575         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
24576
24577 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
24578
24579         * config/mips/mips.c (machine_dependent_reorg): Force a
24580         barrier to output the local constant pool if a barrier hasn't
24581         been found at a natural point in the instruction stream.
24582
24583 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24584
24585         * c-parse.in (language_string): Constify.
24586
24587         * dwarf2out.c (language_string): Remove declaration.
24588
24589         * dwarfout.c (language_string): Likewise.
24590
24591         * toplev.c (language_string, init_parse, finish_parse): Likewise.
24592
24593         * tree.h (language_string, init_parse, finish_parse): Declare.
24594
24595         * i386/sun386.h (language_string): Remove declaration.
24596
24597         * mips.h (language_string): Likewise.
24598
24599         * nextstep.h (language_string): Likewise.
24600
24601         * nextstep21.h (language_string): Likewise.
24602
24603         * rs6000.c (language_string): Likewise.
24604
24605 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24606
24607         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
24608         (getpwd.o): Remove target.
24609
24610         * getpwd.c: Delete file.  Its in libiberty now.
24611
24612         * dbxout.c (getpwd): Don't prototype.
24613         * dwarf2out.c (getpwd): Likewise
24614         * dwarfout.c (getpwd): Likewise
24615         * final.c (getpwd): Likewise.
24616         * protoize.c (getpwd): Likewise.
24617
24618 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24619
24620         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
24621
24622 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
24623
24624         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
24625         mark_set_resources.
24626
24627 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
24628
24629         * fixinc/Makefile.in (subdir): New.
24630         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
24631         (Makefile): New.
24632
24633 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
24634
24635         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
24636         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
24637         be shared.
24638
24639         * invoke.texi: Fix typo.
24640
24641         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
24642         changed.  Handle autoincrement addressing modes.
24643
24644         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
24645         just like we would the virtual incoming args register when
24646         integrating.
24647
24648 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
24649
24650         * rs6000.h (ASM_FILE_START): Specify complete filename, including
24651         path, in .file directive.
24652
24653 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
24654
24655         * gcc.texi (External Bugs): Remove obsolete note about Perl on
24656         SunOS.
24657
24658 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
24659
24660         * stdbool.h: Make the typedef name _Bool, with bool a #defined
24661         alias.
24662
24663 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24664
24665         * tree.c (tree_code_name): Constify a char*.
24666
24667         * tree.h (tree_code_name, decl_printable_name): Likewise.
24668
24669         * function.h (struct function): Likewise.
24670
24671         * toplev.c (decl_name, decl_printable_name): Likewise.
24672
24673         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
24674
24675         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
24676         (init_objc): Remove function pointer cast.
24677
24678 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
24679
24680         * pa.md (interspace_jump): New pattern.
24681         (builtin_longjmp): New expander.
24682
24683 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
24684
24685         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
24686         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
24687         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
24688
24689 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
24690
24691         * jump.c (delete_prior_computation): Also check calls
24692         to constant functions.  Don't bother checking for a
24693         REG_UNUSED note before adding it.
24694         (delete_computation): Handle multi-word hard registers
24695         when synthesizing missing REG_DEAD notes for a register
24696         which is both set and used by an insn.
24697
24698 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24699
24700         * loop.c (this_loop_info): New variable.
24701         (loop_has_call, loop_has_volatile, loop_has_tablejump,
24702         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
24703         All uses updated.
24704         (prescan_loop, strength_reduce): New argument loop_info.  All callers
24705         updated.
24706         (scan_loop): New variable loop_info, initialise to address of
24707         this_loop_info.
24708         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
24709         Delete variable loop_has_multiple_exit targets and replace with
24710         field in this_loop_info.
24711         (find_and_verify_loops): Rename this_loop to this_loop_num.
24712         (strength_reduce): Delete loop_iteration_info.  Replace variable
24713         loop_info with function argument of same name.
24714         (insert_bct): Rework test for loop being completely unrolled.
24715
24716         * loop.h (struct loop_info): New fields num, loops_enclosed,
24717         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
24718         has_indirect_jump, and cont.  Redefine use of unroll_number.
24719         (loop_unroll_number): Delete.
24720
24721         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
24722         field of loop_info.
24723         (loop_iterations): Delete variable vtop and instead use
24724         loop_info->vtop computed in prescan_loop.
24725
24726 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
24727
24728         * fix-header.c (main): Do not pass a null pointer to strcmp.
24729
24730 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
24731
24732         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
24733         filenames.
24734         * configure: Rebuilt.
24735
24736 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
24737
24738         * jump.c (jump_optimize_1): Do not delete assignments to
24739         internal_arg_pointer.
24740         * cse.c (delete_trivially_dead_insns): Always consider a set of
24741         the internal_arg_pointer live.
24742
24743 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
24744
24745         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
24746         (update_life_info) [REG_WAS_0]: Search the original insns rather
24747         than the new insns for the note.  Fix typos finding note_dest.
24748         If no dest found, discard the note rather than abort.
24749         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
24750         (replace_insns): Remove the old insn list after update_life_info
24751         not before.
24752
24753 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
24754
24755         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
24756         sched_analyze_insn.
24757         (sched_analyze_1): Let add_dependence care for not adding dups.
24758         (sched_analyze_2): Likewise.
24759         (add_branch_dependences): Likewise.
24760
24761 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24762
24763         * i386/winnt.c (export_list): New type.
24764         (exports_head): Rename to
24765         (export_head):  this.
24766         (i386_pe_record_exported_symbol): Add is_data flag.
24767         (i386_pe_asm_file_end): Emit directive for exported variables.
24768         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
24769         prototype.
24770         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
24771         (ASM_DECLARE_OBJECT_NAME): Likewise.
24772         (ASM_DECLARE_FUNCTION_NAME): Likewise.
24773         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
24774
24775 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
24776
24777         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
24778
24779         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
24780         operand.
24781
24782 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
24783
24784         * config/openbsd.h: Define SET_ASM_OP.
24785         * tm.texi: cross-reference SET_ASM_OP in the index.
24786
24787 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
24788
24789         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
24790         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
24791         and class_narrowest_mode at compile time.  Kill init_rtl.
24792         Mark rtx_length, mode_class, mode_size, mode_unit_size,
24793         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
24794         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
24795         EXTRA_CC_NAMES.
24796         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
24797         format.
24798         * rtl.h: Declare rtx_length and rtx_format as const.
24799         * machmode.def: Define CC().  Use CC() to define CCmode.  If
24800         EXTRA_CC_MODES is defined, expand it here.
24801         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
24802         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
24803         const.  Kill all references to EXTRA_CC_MODES.
24804
24805         * toplev.c: Don't prototype or call init_rtl.
24806         * optabs.c: Don't call init_mov_optab.
24807         * genemit.c: Don't generate init_mov_optab.  Don't call
24808         init_rtl.
24809         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
24810         here.
24811         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
24812         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
24813         genrecog.c: Don't call init_rtl.
24814
24815         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
24816         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
24817         definition of EXTRA_CC_MODES.
24818
24819         * md.texi: Kill ref to EXTRA_CC_NAMES.
24820         * tm.texi: Document new way to define EXTRA_CC_MODES.
24821
24822         * genrecog.c: Do not look up the name of a define_split.
24823         (Unrelated bugfix.)
24824
24825 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
24826
24827         * config/v850/v850.md: Fix typo introduced by previous delta.
24828
24829 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24830
24831         * gcc.c (fatal): Make definition static to match prototype.
24832
24833 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24834
24835         * combine.c (get_last_value): Don't look for earlier sets if the last
24836         known set is somewhere in between the insns being combined.
24837
24838 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
24839
24840         * configure.in: Don't use shell ! to negate exit codes
24841         * configure: Regenerate
24842
24843 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
24844
24845         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
24846         the fact that ALIGN is measured in bits, not bytes.
24847
24848 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
24849
24850         * errors.c: New file; defines functions error, warning, and
24851         fatal, variables have_error and progname.
24852         * errors.h: New file; prototypes and decls for stuff in errors.c.
24853
24854         * Makefile: Add rules to build errors.o and
24855         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
24856         genopinit, genrecog, genextract, genpeep, genattr, and
24857         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
24858         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
24859         genpeep.o, genattr.o, and genoutput.o.
24860
24861         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
24862         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
24863         define or prototype fatal.  Set progname at beginning of main.
24864         * genoutput.c:  Likewise, and don't define or prototype error
24865         either.
24866
24867         * c-typeck.c (c_expand_start_case): Return immediately if exp
24868         is an ERROR_MARK.
24869         * fold-const.c (operand_equal_p): Return immediately if arg1
24870         or arg0 are ERROR_MARKs.
24871         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
24872         fields of type ERROR_MARK when calculating if the record can
24873         go in a register.
24874
24875 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
24876         with much help from Jeffrey A Law and Richard Henderson
24877
24878         * i386.md: In the 6 insns which call output_fix_trunc,
24879         earlyclobber operands[0].
24880
24881 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
24882
24883         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
24884         creating new registers.
24885
24886 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
24887
24888         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
24889         i386_reg_alloc_order, i386_regparm_string,
24890         i386_align_loops_string, i386_align_jumps_string,
24891         i386_align_funcs_string, i386_preferred_stack_boundary_string,
24892         and i386_branch_cost_string as type "const char *".
24893         * i386.c: Define all above strings as type "const char *".
24894
24895 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
24896
24897         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
24898         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
24899
24900 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
24901
24902         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
24903         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
24904
24905 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
24906
24907         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
24908         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
24909         (dwarf2out_line, dwarf2out_finish): Likewise.
24910         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
24911
24912 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24913
24914         * tree.c (lang_unsave_expr_now) : Correct return type.
24915         * tree.h (lang_unsave_expr_now) : Same.
24916
24917 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
24918
24919         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
24920         instead of duplicating code.
24921
24922 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24923
24924         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
24925
24926 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
24927
24928         * tree.h: fancy_abort always takes three args.
24929         * resource.c: Move include of system.h before toplev.h.
24930
24931 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
24932
24933         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
24934         as SYMBOL_REFs.
24935
24936 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
24937
24938         * system.h: Don't redefine abort or trim_filename.
24939         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
24940         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
24941         whether or not __FUNCTION__ is available.
24942         * tree.h: Duplicate rtl.h's definition of abort, for files
24943         that don't include rtl.h.  Delete all code to perform type
24944         checking with a compiler other than GCC.
24945         * varray.h: Delete all code to perform type checking with a
24946         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
24947         its arguments exactly once, using a statement expression.
24948         Adjust the VARRAY_<type> accessor macros to match.
24949         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
24950         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
24951         caller's location.  Define fatal_insn and fatal_insn_not_found
24952         as macros that use _fatal_insn and _fatal_insn_not_found.
24953         (fancy_abort, trim_filename): Kill prototypes.
24954
24955         * rtl.c (trim_filename): Move here from toplev.c.
24956         (fancy_abort): New function.
24957         (DIR_SEPARATOR): Provide default definition.
24958         * tree.c (tree_check_failed, tree_class_check_failed): Go
24959         through fancy_abort.
24960         (tree_check, tree_class_check, cst_or_constructor_check,
24961         expr_check): Delete.
24962         * varray.c (varray_check_failed): New function.
24963         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
24964         _fatal_insn and _fatal_insn_not_found.  Go through
24965         fancy_abort.
24966         (trim_filename, fancy_abort): Delete.
24967
24968         * builtins.c (expand_builtin_args_info): Report ICE with abort.
24969         * except.c (start_catch_handler): Report ICE with error/abort
24970         combo.
24971         * final.c (output_operand_lossage): Likewise.
24972         * flow.c (verify_flow_info): Likewise.
24973
24974         * gcc.c: Prototype fatal.
24975         * gengenrtl.c: Undef abort after including rtl.h not system.h.
24976         * genattr.c, genattrtab.c, genemit.c, genextract.c,
24977         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
24978         Don't define fancy_abort.
24979
24980 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
24981
24982         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
24983         canonization.
24984
24985 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
24986
24987         * m88k.h (VERSION_INFO2): Kill.
24988         (VERSION_STRING): Kill.
24989         (TM_RCS_ID): Kill.
24990         (VERSION_INFO1): Tidy.
24991         (TARGET_VERSION): Update.
24992         * m88k/dgux.h (VERSION_INFO2): Kill.
24993         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
24994         * m88k/luna.h (VERSION_INFO1): Tidy.
24995         * m88k/sysv4.h (VERSION_INFO1): Likewise.
24996         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
24997         (output_file_start): Adjust for death of VERSION_STRING.
24998
24999 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
25000
25001         * cpplib.c (detect_if_not_defined): New function.
25002         (do_if): Use it to detect potential once-only headers.
25003
25004 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
25005
25006         * c-common.c (combine_strings): Always set TREE_CONSTANT.
25007
25008 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
25009
25010         * combine.c (nonzero_bits) : Allow single-ly set registers to be
25011         anywere in the function only if they are pseudos and set before
25012         being used (not live at the start of the function).
25013         (num_sign_bit_copies) : Same.
25014         (get_last_value_validate) : Same.
25015         (get_last_value) : Same.
25016
25017 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
25018
25019         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
25020         where N and M are constant and N is an integer multiple of M.
25021
25022 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
25023
25024         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
25025         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
25026         sbitmap_union_of_preds): Add prototypes.
25027         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
25028         the intersection of successors with the new flow graph structures.
25029         (sbitmap_intersection_of_preds): New function to compute the
25030         intersection of predecessors with the new flow graph structures.
25031         (sbitmap_union_of_succs): New function to compute the union of
25032         successors with the new flow graph structures.
25033         (sbitmap_union_of_preds): New function to compute the union of
25034         predecessors with the new flow graph structures.
25035         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
25036         (expr_reaches_here_p): Use edge and basic_block structures instead
25037         of s_preds and s_succs.
25038         (compute_cprop_avinout): Use new sbitmap routines.
25039         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
25040         of s_preds and s_succs.
25041         * flow.c (compute_flow_dominators): Compute dominators using
25042         edges and basic blocks instead of s_preds and s_succs.
25043
25044 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
25045
25046         * lists.c (unused_insn_list, unused_expr_list): New file for
25047         maintaining various types of lists. New statics for maintaining a
25048         cache of available INSN_LIST and EXPR_LIST nodes.
25049         (free_list): Static function for freeing a list of INSN/EXPR nodes.
25050         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
25051         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
25052         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
25053         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
25054         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
25055         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
25056         (free_INSN_LIST_node): Free an individual INSN_LIST node.
25057         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
25058         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
25059         (remove_dependence, free_pending_lists): Use new global routines.
25060         (flush_pending_lists, sched_analyze_insn): Use new global routines.
25061         (sched_analyze, compute_block_backward_dependences): Use new routines.
25062         (sched_analyze_1, sched_analyze_2): Use new routines.
25063         (schedule_insns): Use new global routines.
25064         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
25065         prototypes.
25066         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
25067         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
25068         prototypes.
25069         * toplev.c (rest_of_compilation): Initialize node cache.
25070         * Makefile.in (OBJS): Add lists.o to list of object files.
25071         (lists.o): Add dependancies.
25072
25073 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
25074
25075         * config/v850/v850.md: Fix compile time warning messages.
25076         * config/v850/v850.c: Fix compile time warning messages.
25077         * config/v850/v850.h: Fix compile time warning messages.
25078
25079 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25080
25081         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
25082         Remove unused prototype for `init_lengths'.
25083
25084 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25085
25086         * calls.c (emit_call_1): Mark parameter `stack_size' with
25087         ATTRIBUTE_UNUSED.
25088         (expand_call): Initialize variable `insn'.
25089         (emit_library_call): Likewise for variable `high_to_save'.
25090         (emit_library_call_value): Likewise.
25091         (store_one_arg): Likewise for variables `lower_bound' and
25092         `upper_bound'.
25093
25094         * combine.c (try_combine): Likewise for variables `i2_code_number'
25095         and `other_code_number'.
25096         (find_split_point): Likewise for variables `pos', `unsignedp' and
25097         `inner'.
25098         (simplify_if_then_else): Likewise for variables `op' and `c1'.
25099         (simplify_and_const_int): Remove unused variable `width'.
25100         (merge_outer_ops): Likewise.
25101
25102         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
25103         HOST_WIDE_INT' when comparing against one.
25104         (simplify_relational_operation): Likewise.
25105         (cse_insn): Initialize variables `src_eqv_volatile',
25106         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
25107
25108         * final.c (init_final): Constify parameter `filename'.
25109         (final_start_function): Mark parameter `optimize' with
25110         ATTRIBUTE_UNUSED.
25111         (profile_function): Likewise for parameters `first' and `optimize'.
25112         (output_source_line): Likewise for parameter `file'.
25113
25114         * integrate.c (subst_constants): Cast a value to `size_t' when
25115         comparing against one.
25116         (mark_stores): Initialize variable `mode'.  Cast a value to
25117         `size_t' when comparing against one.
25118
25119         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
25120
25121         * loop.c (move_movables): Initialize variable `first'.
25122         (strength_reduce): Likewise for variable `increment'.
25123         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
25124         value to `size_t' when comparing against one.
25125         (load_mems): Initialize variable `end_label'.
25126
25127         * output.h (init_final): Constify parameter.
25128
25129         * reload.c (decompose): Initialize variable `base'.
25130
25131         * reload1.c (reload): Likewise for variable `is_scalar'.
25132         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
25133         (choose_reload_regs): Initialize variable `mode'.
25134         (emit_reload_insns): Likewise for variable `store_insn'.
25135         (reload_cse_noop_set_p): Mark parameter `insn' with
25136         ATTRIBUTE_UNUSED.
25137         (reload_combine): Initialize variable `set'.
25138
25139         * unroll.c (unroll_loop): Likewise for variable `local_label'.
25140         (copy_loop_body): Cast a value to `size_t' when comparing against
25141         one.
25142
25143         * varasm.c (assemble_variable): Initialize variable `size_tree'.
25144         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
25145         (remove_from_pending_weak_list): Mark parameter `name' with
25146         ATTRIBUTE_UNUSED.
25147
25148 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25149
25150         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
25151         gcse dump file.
25152
25153 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
25154
25155         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
25156         (ASM_DECLARE_FUNCTION_NAME): Define.
25157         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
25158         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
25159         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
25160         not already defined.
25161
25162 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
25163
25164         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
25165         of n_popped when call/call_value are not defined.
25166
25167 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
25168
25169         * tm.texi: GNU CC -> GCC conversion.
25170         (CC1_SPEC): Indicate it is used for all language front ends.
25171
25172 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
25173
25174         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
25175         NOTE_INSN_EH_REGION_END correctly.
25176
25177 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
25178                           Jeff Law <law@cygnus.com>
25179
25180         * loop.c (strength_reduce): Automatically unroll loops if the
25181         unrolled loop size is smaller than the rolled loop size.
25182
25183         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
25184         and delete comment that code should be rewritten.
25185
25186 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
25187
25188         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
25189         as reachable.
25190
25191         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
25192
25193 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25194
25195         * fixinc/mkfixinc.sh: Don't fix uwin headers.
25196         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
25197         (LINK_SPEC): Add -u _main when building executables.
25198         (ASM_DECLARE_FUNCTION): Update from Cygwin.
25199         (ASM_FILE_END): Use the default for ix86-pe.
25200         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
25201
25202 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
25203
25204         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
25205         and ASM_CLOSE_PAREN are empty strings.
25206
25207 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
25208                           Geoffrey Keating <geoffk@cygnus.com>
25209
25210         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
25211         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
25212         (unprotoize.o): Ditto.
25213         (test-protoize-simple): Don't define STD_PROTO_DIR.
25214         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
25215         changes to make 'test-protoize-simple' pass.
25216         (STD_PROTO_DIR): Remove define.
25217         (STANDARD_EXEC_PREFIX): Supply default define.
25218         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
25219         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
25220         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
25221         (GET_ENV_PATH_LIST): New macro.
25222         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
25223         (do_processing): Initialize default_syscalls_dir using new
25224         macros.  Use it to initialize syscalls_absolute_filename.
25225
25226 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
25227
25228         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
25229         B into a register before emit_conditional_move.
25230
25231 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
25232
25233         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
25234         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
25235         multiplicand out of (+ (* a b) (* c d)).
25236
25237 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
25238                           Richard Henderson  <rth@cygnus.com>
25239
25240         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
25241         (new_insn_dead_notes): Likewise.
25242         (update_n_sets): Likewise.
25243         (update_flow_info): Move to flow.c, renamed to update_life_info;
25244         extend to handle multiple source insns.
25245         * flow.c: Include resource.h
25246         (unlink_insn_chain): New.
25247         (split_hard_reg_notes): New.
25248         (maybe_add_dead_note): New.
25249         (maybe_add_dead_note_use): New.
25250         (find_insn_with_note): New.
25251         (new_insn_dead_notes): New.
25252         (update_n_sets): New.
25253         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
25254         (maybe_remove_dead_notes): New.
25255         (update_life_info): New.
25256         (prepend_reg_notes): New.
25257         (replace_insns): New.
25258         * output.h (update_life_info): Declare.
25259         * recog.c (split_block_insns): Use update_life_info.
25260         * resource.c (find_free_register): Use reg_alloc_order, don't use
25261         fixed regs, make sure the mode is supported, don't use new regs.
25262         (reg_dead_p): New.
25263         * rtl.h (replace_insns): Declare.
25264
25265 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
25266
25267         * expr.c (expand_expr): Cope with COND_EXPRs with one
25268         non-returning branch.
25269
25270 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
25271
25272         * expr.c (store_expr): Always pass down the target, even when not
25273         doing CSE.
25274
25275 1999-08-24  Nick Clifton  <nickc@cygnus.com>
25276
25277         * configure.in: Define target_cpu_default for v850 targets.
25278         * configure: Regenerate
25279
25280         * config/v850/v850.h (TARGET_CPU_generic): Define.
25281         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
25282         addresses are 4 byte aligned.
25283
25284         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
25285         addresses.
25286
25287 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25288
25289         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
25290         (main): Add prototypes.
25291
25292         * genattrtab.c (substitute_address, write_const_num_delay_slots,
25293         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
25294         (write_attr_get): Emit prototypes along with function definition.
25295         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
25296         (write_complex_function): Emit static prototype along with
25297         function definition.
25298
25299         * genemit.c (gen_split): Emit prototypes along with function
25300         definition.
25301
25302         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
25303         Likewise for predicates and `insn_operand_predicate'.
25304         (process_template): Emit static prototype along with function
25305         definition.
25306
25307         * genrecog.c (make_insn_sequence): Constify a char*.  Add
25308         prototypes for get_split_*().
25309         (write_subroutine): Emit prototypes along with function
25310         definition.
25311
25312 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25313
25314         * gcse.c (find_avail_set): Follow chains of register-register copies.
25315         Use oprs_not_set_p to guarantee that the returned value can be
25316         substituted.
25317         (cprop_insn): Don't verify the return value of find_avail_set with
25318         oprs_not_set_p.
25319
25320         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
25321         (cprop_cc0_jump): New function.
25322         (cprop_insn): Break out new function cprop_jump and use it.
25323         Also use cprop_cc0_jump for machines with CC0.
25324         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
25325
25326         * tree.h (current_function_calls_setjmp,
25327         current_function_calls_longjmp): Delete declarations.
25328         * dsp16xx.c: Include "function.h".
25329         * elxsi.c: Likewise.
25330         * gmicro.c: Likewise.
25331         * h8300.c: Likewise.
25332         * i370.c: Likewise.
25333         * m32r.c: Likewise.
25334         * mn10200.c: Likewise.
25335         * mn10300.c: Likewise.
25336         * ns32k.c: Likewise.
25337         * spur.c: Likewise.
25338         * v850.c: Likewise.
25339
25340         * rtl.h (rtx_equal_function_value_matters): Declare.
25341         * toplev.c (rtx_equal_function_value_matters): Don't declare.
25342         * cse.c: Likewise.
25343         * function.c: Likewise.
25344         * emit-rtl.c: Likewise.
25345
25346 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
25347
25348         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
25349         call.
25350
25351 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
25352
25353         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
25354         exactly.
25355
25356 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
25357
25358         * cpp.texi: Add a node documenting macro varargs (copied
25359         from extend.texi).
25360
25361 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
25362
25363         * cppspec.c: Put a null pointer at the end of the new argv.
25364
25365 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
25366
25367         * configure.in: Remove code to select/de-select the haifa
25368         scheduler.  Every scheduled port gets haifa now.
25369         * configure: Rebuilt.
25370         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
25371         * sched.c Deleted.
25372         * Makefile.in: Corresponding changes.
25373
25374 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25375
25376         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
25377         All callers changed.
25378         (prepare_float_lib_cmp): Likewise.
25379         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
25380         * expr.h (emit_float_lib_cmp): Delete declaration.
25381         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
25382         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
25383         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
25384         specially.
25385         (cmptf): Now conditional on TARGET_HARD_QUAD.
25386
25387 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
25388
25389         * resource.c (mark_target_live_regs): Use
25390         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
25391
25392 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25393
25394         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
25395
25396         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
25397
25398         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
25399
25400 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25401
25402         * rtl.h (rtx_format): Constify a char*.
25403
25404         * rtl.c (rtx_format): Likewise.
25405         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
25406         (init_rtl): Use accessor macro, not `rtx_format'.
25407
25408         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
25409         char*.
25410
25411         * caller-save.c (mark_referenced_regs): Likewise.
25412
25413         * combine.c (subst, make_compound_operation, known_cond,
25414         gen_rtx_combine, update_table_tick, get_last_value_validate,
25415         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
25416
25417         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
25418         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
25419         count_reg_usage): Likewise.
25420
25421         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
25422         Likewise.
25423
25424         * final.c (leaf_renumber_regs_insn): Likewise.
25425
25426         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
25427         dump_edge_info, count_reg_references): Likewise.
25428
25429         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
25430         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
25431         Likewise.
25432
25433         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
25434         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
25435         add_label_notes): Likewise.
25436
25437         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
25438         clear_struct_flag, count_sub_rtxs, count_alternatives,
25439         compares_alternatives_p, contained_in_p, walk_attr_value,
25440         write_expr_attr_cache): Likewise.
25441
25442         * genconfig.c (walk_insn_part): Likewise.
25443
25444         * genemit.c (max_operand_1, gen_exp): Likewise.
25445
25446         * genextract.c (walk_rtx): Likewise.
25447
25448         * genflags.c (num_operands): Likewise.
25449
25450         * genoutput.c (scan_operands): Likewise.
25451
25452         * genpeep.c (match_rtx): Likewise.
25453
25454         * genrecog.c (add_to_sequence): Likewise.
25455
25456         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
25457         Likewise.
25458
25459         * integrate.c (save_constants, copy_for_inline,
25460         copy_rtx_and_substitute, subst_constants, restore_constants):
25461         Likewise.
25462
25463         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
25464         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
25465
25466         * local-alloc.c (contains_replace_regs, memref_referenced_p):
25467         Likewise.
25468
25469         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
25470         add_label_notes, replace_call_address, count_nonfixed_reads,
25471         invariant_p, find_single_use_in_loop, find_mem_givs,
25472         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
25473         Likewise.
25474
25475         * print-rtl.c (reg_names, print_rtx): Likewise.
25476
25477         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
25478
25479         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
25480         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
25481         print_blocks): Likewise.
25482
25483         * regclass.c (fix_register, record_address_regs,
25484         reg_scan_mark_refs): Likewise.
25485
25486         * regmove.c (stable_but_for_p): Likewise.
25487
25488         * reload.c (loc_mentioned_in_p, operands_match_p,
25489         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
25490         copy_replacements, refers_to_regno_for_reload_p,
25491         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
25492         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
25493         Likewise.
25494
25495         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
25496         delete_address_reloads_1, count_occurrences,
25497         reload_cse_mem_conflict_p, reload_combine_note_use,
25498         add_auto_inc_notes): Likewise.
25499
25500         * resource.c (mark_referenced_resources, mark_set_resources):
25501         Likewise.
25502
25503         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
25504         reg_mentioned_p, regs_set_between_p, modified_between_p,
25505         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
25506         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
25507         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
25508         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
25509
25510         * sched.c (sched_analyze_2, attach_deaths): Likewise.
25511
25512         * stupid.c (stupid_mark_refs): Likewise.
25513
25514         * unroll.c (remap_split_bivs): Likewise.
25515
25516         * varasm.c (mark_constants): Likewise.
25517
25518         * a29k/a29k.c (uses_local_reg_p): Likewise.
25519
25520         * alpha/alpha.c (summarize_insn): Likewise.
25521
25522         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
25523         eliminate_lr2ip): Likewise.
25524
25525         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
25526
25527         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
25528         reg_mentioned_in_mem): Likewise.
25529
25530         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
25531         symbolic_reference_mentioned_p): Likewise.
25532
25533         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
25534
25535         * sh/sh.c (regs_used, mark_use): Likewise.
25536
25537         * vax/vax.c (vax_rtx_cost): Likewise.
25538
25539 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25540
25541         * machmode.h (mode_name): Constify a char*.
25542
25543         * rtl.c (mode_name): Likewise.
25544
25545         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
25546
25547         * optabs.c (init_libfuncs): Constify a char*.
25548
25549         * print-tree.c (mode_name): Remove redundant declaration.
25550         (print_node): Use accessor macro, not `mode_name'.
25551
25552         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
25553         not `mode_name'.
25554         (new_spill_reg): Constify a char*.
25555
25556         * tree.c (mode_name): Remove redundant declaration.
25557
25558 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25559
25560         * rtl.c (rtx_name): Constify a char*.
25561
25562         * rtl.h (rtx_name, fix_sched_param): Likewise.
25563
25564         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
25565         (mypr): Use accessor macro, not `rtx_name'.
25566
25567         * genemit.c (print_code): Constify a char*.
25568
25569         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
25570
25571         * genpeep.c (print_code): Constify a char*.
25572
25573         * genrecog.c (print_code): Likewise.
25574
25575         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
25576         end_bb): Add static prototype.
25577         (draw_edge): Constify a char*.
25578         (end_bb): Remove unused parameter.
25579
25580         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
25581         print_block_visualization): Constify a char*.
25582
25583 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
25584
25585         * c-common.c (c_get_alias_set): Update comment.
25586
25587 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
25588
25589         * linux.h (LIB_SPEC): Added.
25590
25591 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
25592
25593         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
25594
25595 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
25596
25597         * tree.c (expr_check): Fix typo in last change.
25598
25599 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
25600
25601         * rtl.def (NOTE): Change format to "iuu0n".
25602         (ADDR_DIFF_VEC): Change format to "eEee0".
25603         (ADDRESSOF): Change format to "eit".
25604
25605         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
25606         (RTVEC_ELT): Change to match.
25607         (XVECEXP): Use XVEC and RTVEC_ELT.
25608         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
25609         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
25610         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
25611         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
25612         TRAP_CONDITION, TRAP_CODE): Use XEXP.
25613         (INTVAL): Use XWINT.
25614         (ADDRESSOF_DECL): Use XTREE.
25615         (SET_ADDRESSOF_DECL): Delete.
25616         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
25617         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
25618         ifdefed out since 2.6 at least.
25619         (gen_rtvec_vv): Delete prototype.
25620
25621         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
25622         not rtunion.
25623         (copy_most_rtx): Handle 't' format letter.
25624         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
25625         (gen_rtvec_vv): Delete function.  All callers changed to use
25626         gen_rtvec_v instead.
25627         * print-rtl.c (print_rtx): Move special casing of NOTEs to
25628         the '0' format letter.
25629
25630         * function.c (gen_mem_addressof): Don't use
25631         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
25632         instead.
25633         * integrate.c (copy_rtx_and_substitute): Likewise.
25634         Copy 't' slots with XTREE.
25635         (subst_constants): Treat 't' slots like '[swi]' slots.
25636         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
25637         * jump.c (rtx_equal_for_thread_p): Likewise.
25638         * rtlanal.c (rtx_equal_p): Likewise.
25639         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
25640         only four arguments.
25641         * gengenrtl.c (type_from_format): Provide correct types for
25642         'b' and 't' slots.
25643
25644
25645         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
25646         If a recent gcc is in use (always in stage2 and beyond), use
25647         statement expressions, so we don't make a function call unless
25648         the check fails.  Evaluate arguments exactly once.
25649         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
25650         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
25651         Delete.
25652         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
25653         they evaluate their arguments exactly once, irrespective of
25654         the compiler in use.
25655
25656         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
25657         is used by the currently-enabled check macros.  This is:
25658         (tree_check_failed, tree_class_check_failed): For gcc.
25659         (tree_check, tree_class_check, cst_or_constructor_check,
25660         expr_check): For other compilers.
25661
25662         * gencheck.c: Do not define any *_CHECK1 macros.
25663
25664 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
25665                           Mark Mitchell <mark@codesourcery.com>
25666
25667         * c-common.c (c_get_alias_set): Fix support for poitners and
25668         references.
25669
25670 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
25671
25672         * alias.c: Include tree.h.
25673         (nonlocal_reference_p, mark_constant_function): New functions.
25674         * flow.c (life_analysis): Call mark_constant_function.
25675         * rtl.h (mark_constant_function): Declare it.
25676
25677 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
25678
25679         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
25680         unrecognisable switches.
25681
25682 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25683
25684         * loop.c (recombine_givs): Set ix field after sorting.
25685         (recombine_givs): Remove bogus index / giv lockstep looping.
25686
25687 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25688
25689         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
25690         on CODE.
25691         (emit_store_flag_force): Use do_compare_rtx_and_jump.
25692         (do_cmp_and_jump): Formatting fixes.
25693         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
25694         do_compare_rtx_and_jump instead of compare_from_rtx.
25695         (do_compare_rtx_and_jump): New function; mostly copied from
25696         compare_from_rtx.
25697         (do_jump_for_compare): Delete.
25698         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
25699         MIN_EXPR.
25700         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
25701         of compare/do_jump_for_compare pairs.
25702         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
25703         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
25704         compare_from_rtx/do_jump_for_compare pairs.
25705         (do_jump_by_parts_equality): Likewise.
25706         (do_jump_by_parts_equality_rtx): Likewise.
25707         * expr.h (do_compare_rtx_and_jump): Declare.
25708         * optabs.c (prepare_cmp_insn): New function, contains most of the code
25709         that used to be in emit_cmp_insn.
25710         (cmp_available_p): New function.
25711         (prepare_operand): New function.
25712         (emit_cmp_and_jump_insn_1): New function, contains some code that used
25713         to be in emit_cmp_insn.
25714         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
25715         parameters to be pointers; don't emit final compare but modify some of
25716         the values pointed to by the args so the caller can perform the
25717         correct comparison.
25718         (expand_binop): Call emit_store_flag_force with signed forms of
25719         comparison code.
25720         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
25721         emit_jump_insn pair.
25722         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
25723         emit_cmp_and_jump_insn_1.  Call emit_queue.
25724         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
25725         arg.
25726         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
25727         jump sets cc0 before deleting it.
25728         * integrate.c (expand_inline_function): Likewise.
25729         * unroll.c (unroll_loop): Similar changes in several places.
25730         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
25731         before deleting it.
25732
25733 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25734
25735         * Makefile.in (insn-recog.o): Update dependencies.
25736         * genrecog.c (main): Make generated file include "function.h".
25737
25738 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
25739
25740         * cse.c (cse_insn): Call never_reached_warning when a jump is
25741         changed to be unconditional.
25742         * flags.h: Declare warn_notreached.
25743         * flow.c (delete_block): Call never_reached_warning when
25744         a block is deleted.
25745         * jump.c (delete_barrier_successors): Call never_reached_warning
25746         when we delete everything after a BARRIER.
25747         (never_reached_warning): New function.
25748         * rtl.h: Declare never_reached_warning.
25749         * toplev.c (warn_notreached): New variable.
25750         (lang_independent_options): Set warn_notreached
25751         when -Wunreachable-code.
25752         (compile_file): We need line numbers for -Wunreachable-code.
25753
25754 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
25755
25756         * haifa-sched.c (insn_unit): Fix typo on out of range test.
25757         * sched.c (insn_unit): Likewise.
25758
25759 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
25760
25761         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
25762
25763 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
25764
25765         * flow.c (create_edge_list): Use xmalloc, not malloc.
25766
25767 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
25768
25769         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
25770         C-style comments.  Do not lose the character before double slash.
25771
25772 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
25773
25774         * basic-block.h (struct edge_list): Stucture to maintain a vector
25775         of edges.
25776         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
25777          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
25778         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
25779         New function prototypes.
25780         * flow.c (create_edge_list): Function to create an edge list.
25781         (free_edge_list): Discards memory used by an edge list.
25782         (print_edge_list): Debug output showing an edge list.
25783         (verify_edge_list): Internal consistency check for an edge list.
25784         (find_edge_index): Function to find an edge index for a pred and succ.
25785
25786 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
25787
25788         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
25789         hashtable.
25790
25791 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
25792
25793         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
25794
25795 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
25796
25797         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
25798
25799 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
25800
25801         * toplev.c (rest_of_compilation): Allow machine dependent
25802         reorganisation pass to place information into the RTL dump
25803         file if it so wishes.
25804
25805 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
25806
25807         * explow.c (hard_function_value): Use VOIDmode instead of
25808         MAX_MACHINE_MODE.
25809         * stmt.c (expand_return): Likewise.
25810         * stor-layout.c (get_best_mode): Likewise.
25811
25812         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
25813         emit call instead of emit_insn call.
25814
25815 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25816
25817         * configure.in: Handle --disable/enable-win32-registry.
25818         * install.texi: Document --disable/enable-win32-registry.
25819         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
25820         (WIN32_REGISTRY_KEY): New macro.
25821         * prefix.c: Use to enable/disable win32-specific code.
25822         (lookup_key): Use versioned key.
25823         * configure: Regenerate.
25824         * config.in: Likewise.
25825
25826 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
25827
25828         * cpplib.c (read_line_number): New fn, split out of...
25829         (do_line): Here.
25830
25831 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
25832
25833         tree.c (lang_unsave_expr_now) : New.
25834         (unsave_expr_now): Call lang_unsave_expr_now.
25835         tree.h (lang_unsave_expr_now) : New.
25836
25837 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
25838
25839         * toplev.c (flag_new_exceptions): On by default.
25840
25841 1999-08-13  Michael Meissner  <meissner@cygnus.com>
25842
25843         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
25844
25845 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
25846
25847         * dwarfout.c (fundamental_type_code): Return FT_boolean for
25848         INTEGER_TYPE with precision==1, it's __java_boolean.
25849
25850 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25851
25852         * global.c (prune_preferences): Move some invariants out of the
25853         inner loop.
25854
25855 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
25856
25857         * configure.in (alpha*-dec-osf*): Add osf5.
25858
25859 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
25860
25861         * configure.in: Rework handling of ARM GNU/Linux slightly.
25862         (arm*-*-linux-gnuoldld): New target.
25863         * configure: Regenerate.
25864         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
25865         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
25866         * config/arm/linux-oldld.h: New file.
25867         * config/arm/linux-elf26.h: Don't include linux-elf.h.
25868         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
25869         Don't define.
25870         * config/arm/linux-elf.h (ASM_SPEC): Define.
25871         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
25872         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
25873         for 26-bit APCS and old linker.
25874         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
25875         `arm_elf'.
25876         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
25877         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
25878         don't define `arm' or `arm_elf'.
25879         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
25880         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
25881
25882 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
25883
25884         * rtl.texi: Fix typo.
25885
25886 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
25887
25888         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
25889
25890 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
25891
25892         * extend.texi (C++ Signatures): Remove node.
25893         * invoke.texi: Remove discussion of -fhandle-signatures,
25894         signature, sigof, __signature__, and __sigof__.
25895
25896 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
25897
25898         * Makefile.in (JAVAGC): Removed.
25899
25900 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25901
25902         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
25903
25904 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
25905
25906         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
25907
25908 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
25909
25910         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
25911         a register that is already known to be a pointer.
25912
25913 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
25914
25915         * fixinc/inclhack.tpl: Only install assert.h conditionally.
25916         * fixinc/inclhack.sh: Regenerated.
25917         * fixinc/fixincl.sh: Regenerated.
25918
25919 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
25920
25921         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
25922         Fix documentation of -ansi flag to describe its C++ behavior.
25923         Remove bogus reference to GCC 2.9.
25924
25925 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
25926
25927         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
25928         note if it is non-NULL.
25929
25930 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
25931
25932         * except.h (eh_nesting_info): Add new structure defintion.
25933         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
25934         (reachable_handlers, update_rethrow_references): Add function
25935         prototypes.
25936         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
25937         a rethrow symbol instead of an integer exception region number.
25938         * flow.c (Make_edges): Use new exception nesting routines to determine
25939         which handlers are reachable from a CALL or asynchronous insn.
25940         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
25941         goto receivers.
25942         (delete_eh_regions): Update rethrow labels, and don't delete
25943         regions which are the target of a rethrow.
25944         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
25945         avoid overloading the SYMBOL_REF_USED flag.
25946         (rethrow_symbol_map): Use new rethrow_ref field.
25947         (rethrow_used): Use new rethrow_ref field.
25948         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
25949         of an integer.  Fix formatting.
25950         (output_exception_table_entry): Use new rethrow_ref field.
25951         (can_throw): Check for EH_REGION_NOTE before deciding
25952         whether a CALL can throw or not.
25953         (scan_region): Call rethrow_used() instead of accessing data structure.
25954         (update_rethrow_references): New function to make sure only regions
25955         which are still targets of a rethrow are flagged as such.
25956         (process_nestinfo): New static function to initialize a handler
25957         list for a specific region.
25958         (init_eh_nesting_info): New function to allocate and initialize
25959         the list of all EH handlers reachable from all regions.
25960         (reachable_handlers): New function to retrieve the list of handlers
25961         reachable from a specific region and insn.
25962         (free_eh_nesting_info): New function to dispose of a list of
25963         reachable handlers.
25964
25965 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
25966
25967         * flow.c (split_edge): Set JUMP_LABEL field.
25968         (commit_one_edge_insertion): Set head correctly for insert_before.
25969         When inserting insns, update insn block numbers if allocated.
25970
25971 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25972
25973         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
25974         retry_incomplete_types): Add static prototype.
25975         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
25976         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
25977         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
25978         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
25979         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
25980         Constify a char*.
25981
25982         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
25983         dwarf2out_start_source_file, dwarf2out_line): Likewise.
25984
25985 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25986
25987         * output.h (assemble_name): Constify a char*.
25988
25989         * varasm.c (UNIQUE_SECTION, assemble_start_function,
25990         assemble_variable, assemble_name): Likewise.
25991
25992         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
25993
25994         * arm/pe.c (arm_pe_unique_section): Likewise.
25995
25996         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
25997
25998         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
25999
26000         * i386/interix.c (i386_pe_unique_section): Likewise.
26001
26002         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
26003
26004         * i386/winnt.c (i386_pe_unique_section): Likewise.
26005
26006         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
26007
26008         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
26009
26010         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
26011
26012         * pa/pa.c (output_call): Likewise.
26013
26014         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
26015
26016         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
26017
26018         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
26019         Likewise.
26020
26021         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
26022         Likewise.
26023
26024         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
26025
26026         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
26027         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
26028
26029         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
26030
26031 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26032
26033         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
26034
26035 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26036
26037         * tree.h (lang_identify): Constify a char*.
26038         (print_error_function): Add extern prototype.  Constify a char*.
26039
26040         * c-lang.c (lang_identify): Constify a char*.
26041
26042         * objc/objc-act.c (lang_identify): Constify a char*.
26043
26044 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26045
26046         * genpeep.c (main): Make generated file include "function.h".
26047         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
26048
26049 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26050
26051         * Makefile.in: Update dependencies.
26052         * alias.c: Include "function.h"
26053         * c-decl.c: Likewise.
26054         * caller-save.c: Likewise.
26055         * calls.c: Likewise.
26056         * combine.c: Likewise.
26057         * cse.c: Likewise.
26058         * explow.c: Likewise.
26059         * final.c: Likewise.
26060         * global.c: Likewise.
26061         * graph.c: Likewise.
26062         * local-alloc.c: Likewise.
26063         * loop.c: Likewise.
26064         * optabs.c: Likewise.
26065         * profile.c: Likewise.
26066         * recog.c: Likewise.
26067         * regclass.c: Likewise.
26068         * regmove.c: Likewise.
26069         * reload.c: Likewise.
26070         * reorg.c: Likewise.
26071         * resource.c: Likewise.
26072         * sched.c: Likewise.
26073         * stupid.c: Likewise.
26074         * config/1750a/1750a.c: Likewise.
26075         * config/a29k/a29k.c: Likewise.
26076         * config/arc/arc.c: Likewise.
26077         * config/arm/arm.c: Likewise.
26078         * config/arm/thumb.c: Likewise.
26079         * config/c4x/c4x.c: Likewise.
26080         * config/clipper/clipper.c: Likewise.
26081         * config/convex/convex.c: Likewise.
26082         * config/fx80/fx80.c: Likewise.
26083         * config/i860/i860.c: Likewise.
26084         * config/m68k/m68k.c: Likewise.
26085         * config/m88k/m88k.c: Likewise.
26086         * config/mips/mips.c: Likewise.
26087         * config/pdp11/pdp11.c: Likewise.
26088         * config/pyr/pyr.c: Likewise.
26089         * config/romp/romp.c: Likewise.
26090         * config/sh/sh.c: Likewise.
26091         * config/tahoe/tahoe.c: Likewise.
26092         * config/vax/vax.c: Likewise.
26093         * config/we32k/we32k.c: Likewise.
26094         * config/sparc/sparc.c: Include "function.h".
26095         (mem_min_alignment): Test current_function rather than
26096         regno_pointer_align.
26097         * config/pa/pa.c: Likewise.
26098         (compute_frame_size): Delete declaration of
26099         current_function_outgoing_args_size.
26100         * config/arc/arc.h (current_function_varargs): Delete declaration.
26101         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
26102         declaration.
26103         * config/i370/i370.h (current_function_outgoing_args_size): Delete
26104         declaration.
26105         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
26106         current_function_uses_pic_offset_table.
26107         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
26108         of current_function_returns_pointer.
26109         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
26110         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
26111         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
26112         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
26113         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
26114         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
26115         * config/m88k/m88k.c: Include "function.h"
26116         (call_used_regs, current_function_pretend_args_size,
26117         current_function_outgoing_args_size, frame_pointer_needed): Delete
26118         declarations.
26119         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
26120         declaration.
26121         * config/mips/mips.h (current_function_calls_alloca): Delete
26122         declaration.
26123         * config/mn10200/mn10200.h (current_function_needs_context,
26124         rtx_equal_function_value_matters): Delete declarations.
26125         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
26126         flag_pic): Delete declarations.
26127         * config/pa/pa.h (current_function_pretend_args_size,
26128         current_function_decl): Delete declarations.
26129         * config/pa/som.h (current_function_varargs): Delete declaration.
26130         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
26131         declaration.
26132         * config/pyr/pyr.h (current_function_pretend_args_size,
26133         current_function_args_size, current_function_calls_alloca): Delete
26134         declarations.
26135         * config/sh/sh.h (current_function_varargs): Delete declaration.
26136         * config/sparc/sparc.h (current_function_outgoing_args_size,
26137         current_function_calls_alloca, current_function_decl): Delete
26138         declarations.
26139         * config/spur/spur.h (current_function_pretend_args_size,
26140         current_function_calls_alloca): Delete declarations.
26141         * config/v850/v850.c (current_function_outgoing_args_size): Delete
26142         declaration.
26143         * config/vax/vms.h (current_function_name): Delete declaration.
26144         * gcse.c: Include "function.h".
26145         (current_function_name, current_function_calls_setjmp): Delete
26146         declarations.
26147         * haifa-sched.c: Include "function.h".
26148         (forced_labels): Delete declaration.
26149         * jump.c: Likewise.
26150         * reg-stack.c: Likewise.
26151         * reload1.c: Likewise.
26152         * genemit.c (main): Make generated file include function.h.
26153         * genoutput.c (output_prologue): Likewise.
26154
26155         * builtins.c (saveregs_value, apply_args_value): Delete variables.
26156         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
26157         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
26158         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
26159         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
26160         macros for some of them.
26161         (emit_filename, emit_lineno): Delete declarations.
26162         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
26163         regno_pointer_* variables through current_function.
26164         (gen_inline_header_rtx): Delete function.
26165         (save_emit_status): Delete function.
26166         (set_new_last_label_num): New function.
26167         (clear_emit_caches): New function.
26168         (restore_emit_status): Just clear last_labelnum and call
26169         clear_emit_caches.
26170         (get_last_insn_anywhere): Variable sequence_stack is now accessed
26171         through macro seq_stack.
26172         (add_insn_after): Likewise.
26173         (add_insn_before): Likewise.
26174         (remove_insn): Likewise.
26175         (pop_topmost_sequence): Likewise.
26176         (in_sequence_p): Likewise.
26177         (start_sequence_for_rtl_expr): Likewise.
26178         (start_sequence): Likewise, and likewise for
26179         sequence_rtl_expr/seq_rtl_expr.
26180         (push_topmost_sequence): Likewise.
26181         (end_sequence): Likewise.
26182         (init_virtual_regs): Now takes a "struct emit_status *" argument.
26183         All callers changed.  Store into that pointer instead of globals.
26184         (init_emit): Allocate emit elt of current_function.
26185         Changes for sequence_rtl_expr/sequence_stack renaming.
26186         Call clear_emit_caches instead of doing it in-line.
26187         Access regno_pointer_* variables through current_function.
26188         (init_emit_once) Don't clear sequence_stack.
26189
26190         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
26191         Delete variables.
26192         (arg_pointer_save_area): Delete declaration.
26193         (finish_expr_for_function): Renamed from init_queue; no longer static.
26194         (init_expr): Don't call init_queue.
26195         (save_expr_status, restore_expr_status): Delete functions.
26196         (expand_expr): Changes to reflect new layout of struct function.
26197         Don't access current_function_check_memory_usage when current_function
26198         is 0.
26199         * expr.h (forced_labels, save_expr_regs, saveregs_value,
26200         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
26201         current_function_outgoing_args_size, current_function_arg_offset_rtx,
26202         current_function_uses_const_pool, function_call_count,
26203         current_function_uses_pic_offset_table, nonlocal_labels,
26204         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
26205         current_function_check_memory_usage, nonlocal_goto_handler_slots,
26206         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
26207         declarations.
26208         (finish_expr_for_function): Declare.
26209         * flags.h (current_function_has_nonlocal_label,
26210         current_function_has_nonlocal_goto, current_function_is_thunk,
26211         current_function_has_computed_jump): Delete declarations.
26212         * flow.c (forced_labels): Delete declaration.
26213         * function.c (current_function_pops_args,
26214         current_function_returns_struct, current_function_returns_pcc_struct,
26215         current_function_needs_context, current_function_calls_setjmp,
26216         current_function_calls_longjmp, current_function_has_nonlocal_label,
26217         current_function_has_nonlocal_goto, current_function_is_thunk,
26218         current_function_has_computed_jump, current_function_calls_alloca,
26219         current_function_contains_functions, current_function_returns_pointer,
26220         current_function_epilogue_delay_list, current_function_args_size,
26221         current_function_pretend_args_size, current_function_arg_offset_rtx,
26222         current_function_outgoing_args_size, current_function_varargs,
26223         current_function_stdarg, current_function_args_info, cleanup_label,
26224         current_function_name, current_function_uses_const_pool,
26225         current_function_instrument_entry_exit, current_function_return_rtx,
26226         current_function_uses_pic_offset_table, nonlocal_labels,
26227         current_function_internal_arg_pointer, current_function_cannot_inline,
26228         current_function_check_memory_usage, function_call_count,
26229         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
26230         nonlocal_goto_stack_level, return_label, save_expr_regs,
26231         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
26232         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
26233         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
26234         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
26235         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
26236         Delete variables.
26237         (push_function_context_to): Don't save them.  Don't call
26238         save_storage_status, save_emit_status or save_expr_status.
26239         (pop_function_context_from): Don't restore them.  Don't call
26240         restore_storage_status or restore_expr_status.
26241         (get_func_frame_size): New function.
26242         (get_frame_size): Use it.
26243         (assign_outer_stack_local): Reflect some member name changes in struct
26244         function.
26245         (put_reg_into_stack): Likewise.
26246         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
26247         seq_rtl_expr.
26248         (fixup_var_refs): Likewise.
26249         (fix_lexical_addr): Likewise.
26250         (trampoline_address): Likewise.
26251         (prepare_function_start): Clear field inlinable of current_function.
26252         (init_function_for_compilation): New function.
26253         (expand_dummy_function_end): New function.
26254         (expand_function_end): Call finish_expr_for_function.
26255         * function.h (struct emit_status): New; fields moved here from struct
26256         function and from global variables.  Add accessor macros for some of
26257         the fields.
26258         (struct expr_status): Likewise.
26259         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
26260         (struct function): Add fields expr and emit, inlinable, inl_emit,
26261         original_arg_vector, original_decl_initial, inl_last_parm_insn,
26262         inl_max_label_num.  Add many comments.
26263         Add accessor macros for all elts of struct function that no longer
26264         have a global variable.
26265         (cleanup_label, return_label, frame_offset, tail_recursion_label,
26266         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
26267         stack_slot_list): Delete declarations.
26268         (get_func_frame_size): Declare.
26269         (save_expr_status, restore_expr_status, save_emit_status,
26270         save_storage_status, restore_storage_status): Delete declarations.
26271         (init_virtual_regs): Declare.
26272         * output.h (current_function_pops_args,
26273         current_function_returns_struct, current_function_returns_pcc_struct,
26274         current_function_needs_context, current_function_calls_setjmp,
26275         current_function_calls_longjmp, current_function_calls_alloca,
26276         current_function_has_nonlocal_label, current_function_varargs,
26277         current_function_has_computed_jump, current_function_returns_pointer,
26278         current_function_contains_functions, current_function_args_size,
26279         current_function_pretend_args_size, current_function_stdarg,
26280         current_function_outgoing_args_size, current_function_args_info,
26281         current_function_name, current_function_return_rtx,
26282         current_function_epilogue_delay_list,
26283         current_function_uses_const_pool, current_function_cannot_inline):
26284         Delete declarations.
26285         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
26286         regno_reg_rtx): Delete declaration.
26287         (REGNO_POINTER_FLAG): Delete macro.
26288         * stmt.c (expand_goto): Changes to reflect that some fields in struct
26289         function were renamed.
26290         * stor-layout.c (save_storage_status, restore_storage_status): Delete
26291         functions.
26292         * toplev.c: Include "function.h".
26293         (current_function_decl): Delete declaration.
26294         (compile_file): Call init_dummy_function_start and
26295         expand_dummy_function_end around some initializations that need to
26296         emit rtl.
26297         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
26298         Call init_function_for_compilation.
26299         * unroll.c: Include "function.h"
26300         (unroll_loop): Access regno_pointer_* variables through
26301         current_function.
26302
26303         * tree.h (struct tree_decl): Add elt f to saved_insns member.
26304         (DECL_SAVED_INSNS): use it.
26305         (expand_dummy_function_end): Declare.
26306         (init_function_for_compilation): Declare.
26307         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
26308         that it's no longer an INLINE_HEADER.
26309         (expand_call): Likewise.
26310         * integrate.c (finish_inline): Delete function.
26311         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
26312         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
26313         args.  Don't generate an INLINE_HEADER rtx, just return the arg
26314         vector.  All callers changed.
26315         (save_for_inline_copying):  Create a duplicate struct emit_status to
26316         hold the emit state for compiling the current function.  Use this and
26317         the other new fields in struct function that are for integration
26318         instead of an INLINE_HEADER.
26319         Use memcpy instead of bcopy.
26320         Store the current struct function in DECL_SAVED_INSNS of fndecl.
26321         (save_for_inline_nocopy): Similar changes, except no new emit_status
26322         is needed here.
26323         (expand_inline_function): Get information from function structure,
26324         not from an inline header rtx.
26325         (output_inline_function): Lose code to extract the necessary
26326         information from an inline header; simply put back the function
26327         structure into current_function.  Clear its inlinable elt.
26328         * rtl.def (INLINE_HEADER): Delete.
26329         * rtl.h: Delete all accessors for an INLINE_HEADER.
26330         (gen_inline_header_rtx): Delete declaration.
26331         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
26332         Delete declarations.
26333         (REGNO_POINTER_ALIGN): Delete.
26334         (clear_emit_caches): Declare.
26335         (set_new_last_label_num): Declare.
26336
26337 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
26338
26339         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
26340
26341         * except.c (expand_eh_region_start_for_decl): Always start a new block.
26342         * stmt.c (is_eh_region): Make sure current_function is present, too.
26343
26344 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
26345
26346         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
26347         for 64bit PA targets.
26348
26349         * pa.h (SELECT_SECTION): Define.
26350         * som.h (SELECT_SECTION): Delete.
26351
26352 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26353
26354         * alias.c (init_alias_analysis): Wrap call to
26355         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
26356
26357 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
26358
26359         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
26360         <sys/asm.h> contains an asm comment with an apostrophe
26361         * fixinc/inclhack.sh:  regen
26362         * fixinc/fixincl.x:  regen
26363
26364 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
26365
26366         * function.c (init_function_start): Clear prologue & epilogue.
26367         (prologue_epilogue_contains): New function.
26368         * alias.c (init_alias_analysis): Use it.
26369         * rtl.h (prologue_epilogue_contains): Declare it.
26370
26371 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
26372
26373         * jump.c (onlyjump_p): New function.
26374         * rtl.h: Declare it.
26375         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
26376         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
26377
26378 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
26379
26380         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
26381         to invert loops.  Simplify block scanning.
26382
26383 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
26384
26385         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
26386         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
26387
26388 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
26389
26390         * config/sparc/liteelf.h: New file to support sparclite-elf target
26391         * config/sparc/t-sp86x: New file to support sparc86x targets
26392         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
26393         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
26394         * configure.in: Support above target triplets
26395         * configure: Regenerated
26396
26397 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
26398
26399         * fixinc/server.c (server_setup): Do not prefix function used as
26400         parameter with `&'.
26401
26402 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
26403
26404         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
26405         Remove fp reg alternatives.
26406
26407 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
26408
26409         * Makefiin (TAROUTOPTS): Kill.
26410         (install-headers-tar): Use "xpf" for tar headerfile extraction
26411         * i370/x-oe (TAROUTOPTS): Delete.
26412         * m68k/x-apollo68 (TAROUTOPTS): Delete.
26413         * m68k/x-hp320 (TAROUTOPTS): Delete.
26414         * m68k/x-hp320g (TAROUTOPTS): Delete.
26415         * gcc.texi: Update bug reporting text.
26416
26417 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
26418
26419         * reg-stack.c (change_stack) Fixed problem with negative array index.
26420
26421 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
26422
26423         * extend.texi, install.texi: Fix spelling mistakes.
26424
26425         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
26426         (s-attrtab); No longer try to use pre-made insn-attrtab file.
26427         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
26428         PREMADE_ATTRTAB_MD.
26429         * mips/t-ecoff: Likewise.
26430         * mips/t-elf: Likewise.
26431         * mips/t-mips: Likewise.
26432         * mips/t-osfrose: Likewise.
26433         * mips/t-r3900: Likewise.
26434         * mips/t-svr3: Likewise.
26435         * mips/t-svr4: Likewise.
26436         * mips/t-ultrix: Likewise.
26437
26438         * gcc.texi: Document recommend means to provide software floating
26439         point libraries in libgcc.a
26440
26441 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
26442
26443         * c-lex.c (yylex): We can have a number with no digits.
26444
26445 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
26446
26447         * jump.c (delete_prior_computation): New function, broken
26448         out of delete_computation.  Check for side effects with
26449         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
26450         multi-word hard registers.
26451         (delete_computation): Use it.  Check for side effects with
26452         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
26453         missing REG_DEAD note for a register which is both set and
26454         used by an insn.
26455
26456 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
26457
26458         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
26459         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
26460         (ASM_FILE_START): Import _mcount with the right type.
26461         (ASM_DECLARE_FUNCTION_NAME): Define.
26462         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
26463         * pa.c (output_function_prologue): Always emit the function's label
26464         here.
26465         * pa.h (TEXT_SPACE_P): Define.
26466         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
26467         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
26468         * som.h (TEXT_SPACE_P): Delete.
26469         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
26470         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
26471
26472 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
26473
26474         * expr.c (emit_group_load): Allow src to be a CONCAT.
26475
26476 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26477
26478         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
26479         (___mulsi3): Use '!' comment character.
26480
26481 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26482
26483         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
26484
26485 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
26486
26487         * gcc.c: Update URLs and mail addresses.
26488         * gcc.texi: Likewise.
26489
26490 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
26491
26492         * rs6000.c (current_file_function_operand): Return zero for
26493         weak functions.
26494         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
26495         weak symbols.
26496         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
26497         for weak symbols.
26498
26499 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
26500
26501         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
26502         allocate space in the stack frame for the PIC register.
26503
26504 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
26505
26506         * m68k.md (xordi3, anddi3): These patterns are not available on
26507         the coldfire.
26508
26509 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
26510
26511         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
26512         (PUT_REAL): Likewise.
26513
26514 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26515
26516         * final.c (shorten_branches): Don't add an alignment for loops
26517         that have no label inside.
26518
26519 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26520
26521         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
26522         prototypes in macro HAVE_cmpstrsi.
26523
26524         * cpplib.c (cpp_get_token): Remove unused label `op3'.
26525
26526         * emit-rtl.c (operand_subword): Remove unused variable
26527         `bits_per_word'.
26528
26529         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
26530
26531         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
26532
26533 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
26534
26535         * cpphash.c (macroexpand): Delete leading whitespace when arg
26536         is concatenated before.
26537         (unsafe_chars): Correct test for whether + and - can extend a
26538         token.
26539
26540         * cppinit.c (cpp_start_read): Do dependencies for
26541         -include/-imacros files also.
26542
26543         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
26544         tokenizing non-directive lines.
26545         (cpp_expand_to_buffer): Temporarily disable no-output mode.
26546         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
26547         the input file.
26548
26549 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
26550
26551         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
26552
26553         * c-lex.c: Sync with C++ frontend.
26554         (linemode): New variable.
26555         (parse_float): imag, conversion_errno, and type are output only.
26556         (yylex): Adjust.  Move initial '.' case into main switch.
26557         Use linemode.
26558         (handle_generic_pragma): Just deal with tokens.
26559         (readescape): Use ISXDIGIT and ISGRAPH.
26560         * c-parse.in: Add END_OF_LINE token.
26561
26562         * c-lex.c (lang_init): Generalize.
26563         (nextchar): Remove.  Replace uses with UNGETC.
26564         (skip_white_space): Handle linemode here.  Optimize for cpplib.
26565         (skip_white_space_on_line): Remove.
26566         (extend_token_buffer_to): New fn.
26567         (extend_token_buffer): Use it.
26568         (read_line_number, check_newline): Just deal with tokens.
26569         (token_getch, token_put_back): New fns.
26570         (yylex): Use them.  More cpplib optimizations.  Simplify.
26571
26572 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
26573                           Jason Merrill  <jason@yorick.cygnus.com>
26574
26575         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
26576         (consume_string): Make this smart about USE_CPPLIB.
26577         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
26578         (yylex): Rewrite to be intelligent about USE_CPPLIB.
26579         Also, clean up cases where we redundantly set token_buffer[0].
26580         (read_line_number): New fn.
26581         (ignore_escape_flag): New variable.
26582
26583 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
26584
26585         * a29k/t-a29kbare: Fix some comments.
26586         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
26587         (FPBIT, DPBIT): Define.
26588         * a29k/t-vx29k: Likewise.
26589         * arc/t-arc: Likewise.
26590         * arm/t-arm-elf: Likewise.
26591         * arm/t-bare: Likewise.
26592         * arm/t-pe: Likewise.
26593         * arm/t-pe-thumb: Likewise.
26594         * arm/t-semi: Likewise.
26595         * arm/t-thumb: Likewise.
26596         * arm/t-thumb-elf: Likewise.
26597         * arm/t-thumb-linux: Likewise.
26598         * h8300/t-h8300: Likewise.
26599         * i960/t-i960: Likewise.
26600         * i960/t-vxworks960: Likewise.
26601         * m32r/t-m32r: Likewise.
26602         * mips/t-ecoff: Likewise.
26603         * mips/t-elf: Likewise.
26604         * mips/t-r3900: Likewise.
26605         * pa/t-pro: Likewise.
26606         * rs6000/t-aix43: Likewise.
26607         * rs6000/t-beos: Likewise.
26608         * rs6000/t-newas: Likewise.
26609         * rs6000/t-ppccomm: Likewise.
26610         * rs6000/t-rs6000: Likewise.
26611         * rs6000/t-winnt: Likewise.
26612         * rs6000/t-xnewas: Likewise.
26613         * rs6000/t-xrs6000: Likewise.
26614         * sh/t-sh: Likewise.
26615         * sparc/t-elf: Likewise.
26616         * sparc/t-sparcbare: Likewise.
26617         * sparc/t-sparclite: Likewise.
26618         * sparc/t-splet: Likewise.
26619         * v850/t-v850: Likewise.
26620         * mn10200/t-mn10200: Fix comments.
26621         * mn10300/t-mn10300: Likewise.
26622
26623         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
26624         dummy operand.  Allocate a new pseudo for the dummy operand.
26625         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
26626
26627         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
26628
26629 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
26630
26631         * configure: Rebuilt.
26632         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
26633
26634 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
26635
26636         * recog.c (preproces_constraints): Zero recog_op_alt before
26637         processing the constraints.
26638
26639         * arm.c (typedef minipool_node): Renamed from pool_node.
26640         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
26641         (add_minipool_constant): New function.
26642         (dump_minipool): New function.
26643         (find_barrier): Remove special case for getting the insn size of
26644         an insn that references the constant pool.
26645         (minipool_fixup): New structure.
26646         (push_minipool_barrier): New function.
26647         (push_minipool_fix): New function.
26648         (note_invalid_constants): New function.
26649         (add_pool_constant, dump_table, fixit, broken_move): Delete.
26650         (arm_reorg): Rewrite code to fix up the constant pool into a
26651         series of mini-pools embedded in the insn stream.
26652         (arm_output_epilogue): New function, made mainly from the body
26653         of output_func_epilogue.
26654         (output_func_epilogue): Move insn generation part of epilogue code
26655         to arm_output_epilogue.
26656         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
26657         * arm.md (pool_range): New attribute.
26658         (zero_extendqidi2): Add attribute pool_range.
26659         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
26660         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
26661         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
26662         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
26663         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
26664         (epilogue): New expand.
26665         (epilogue_insn): New insn.  Call arm_output_epilogue.
26666
26667         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
26668         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
26669
26670 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
26671
26672         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
26673
26674 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
26675
26676         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
26677
26678 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
26679
26680         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
26681
26682 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
26683
26684         * global.c: Fix comment.
26685
26686 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
26687
26688         * gcc.c (access_check): New static function.
26689         (find_a_file): Use it when searching a directory list.
26690         * collect2.c (find_a_file): Don't accept directories found when
26691         searching a directory list.
26692
26693 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
26694
26695         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
26696         function parameters with `&'.
26697         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
26698
26699 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
26700
26701         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
26702         or tidy_fallthru_edge if the last insn in the block is not
26703         an unconditional jump or a simple conditional jump.
26704
26705 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26706
26707         * Makefile.in (c-decl.o): Depends on defaults.h.
26708
26709 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
26710
26711         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
26712         PA1.1 and above.
26713         (CLASS_MAX_NREGS): Likewise.
26714
26715 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
26716
26717         * cse.c (cse_insn): Fix dumb thinko in last change.
26718
26719 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26720
26721         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
26722         "const char *".
26723
26724 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
26725
26726         * dwarf2out.c (add_location_or_const_value_attribute): Correct
26727         test for sizes of passed and declared parameter types.
26728
26729 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26730
26731         * fixincludes: Fix the return type of bsearch, char* -> void*.
26732
26733         * fixinc/inclhack.def: Likewise.
26734
26735 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
26736
26737         * invoke.texi (-fdump-translation-unit): New option.
26738
26739 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
26740
26741         * expr.h (PROMOTE_PROTOTYPES): Move ...
26742         * defaults.h: ... to here.
26743         * c-decl.c: Include defaults.h instead of expr.h.
26744         * c-typeck.c: Include defaults.h.
26745
26746 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
26747
26748         * toplev.h (errorcount): Declare.
26749         (warningcount): Likewise.
26750         (sorrycount): Likewise.
26751         * c-lex.c (errorcount): Don't declare.
26752         * dwarf2out.c (errorcount): Don't declare.
26753
26754 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
26755
26756         * config/libgloss.h: Add a note discouraging use with ELF.
26757         * configure.in: Don't use libgloss.h for ELF targets.
26758         Always use_collect2 on a.out targets.
26759
26760 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
26761
26762         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
26763         (force_to_mode, case ASHIFTRT): Add shiftrt label.
26764
26765 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26766
26767         * loop.c (strength_reduce): When doing biv->giv conversion, update
26768         reg note of NEXT->insn.
26769
26770 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
26771
26772         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
26773
26774 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
26775
26776         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
26777         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
26778         Ensure expr.h is included.
26779         * c-typecheck.c (convert_arguments): Ditto.
26780
26781         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
26782
26783         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
26784         * config/convex/convex.h: Ditto.
26785         * config/dsp16xx/dsp16xx.h: Ditto.
26786         * config/fx80/fx80.h: Ditto.
26787         * config/gmicro/gmicro.h: Ditto.
26788         * config/i370/i370.h: Ditto.
26789         * config/i386/i386.h: Ditto.
26790         * config/m32r/m32r.h: Ditto.
26791         * config/m68k/m68k.h: Ditto.
26792         * config/m88k/m88k.h: Ditto.
26793         * config/mips/mips.h: Ditto.
26794         * config/pa/pa.h: Ditto.
26795         * config/pyr/pyr.h: Ditto.
26796         * config/tahoe/tahoe.h: Ditto.
26797         * config/we32k/we32k.h: Ditto.
26798
26799         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
26800         based on arch size.
26801
26802         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
26803
26804         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
26805         from comment.
26806
26807         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
26808
26809 1999-08-02  Richard Henderson  <rth@cygnus.com>
26810
26811         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
26812         for the register spill block.
26813         (m32r_va_arg): New.
26814         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
26815         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
26816
26817         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
26818         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
26819         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
26820
26821 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
26822
26823         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
26824         MAX_WCHAR_TYPE defined in sparc.h.
26825         * config/sparc/linuxaout.h: Likewise.
26826         * config/sparc/linux64.h: Likewise.
26827         Also default to -mvis if CPU is UltraSPARC.
26828
26829 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
26830
26831         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
26832         (RTX_OK_FOR_OLO10): Likewise.
26833         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
26834         %lo(), allow it in addresses...
26835         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
26836         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
26837         does not make sense.
26838         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
26839         (sparc_output_scratch_registers): New function.
26840         (output_function_prologue, sparc_flat_output_function_prologue): Use
26841         it.
26842         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
26843         defined.
26844         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
26845         * configure.in: Add check for .register pseudo-op support in as and
26846         check for offsetable %lo().
26847         * acconfig.h: Add templates for the above checks.
26848         * configure: Regenerate.
26849
26850 1999-08-02  Richard Henderson  <rth@cygnus.com>
26851
26852         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
26853         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
26854         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
26855
26856 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26857
26858         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
26859         reg_biv_class.
26860
26861 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
26862
26863         * config/float-sparc.h: New file.
26864         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
26865         sparc-*-linux-gnu and sparc64-*-linux*.
26866
26867 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
26868
26869         * rs6000.c (rs6000_va_list): Type is an array.
26870         (rs6000_va_start): Don't doubly adjust for varargs.
26871         (rs6000_va_arg): Evaluate long long GPR adjustment.
26872
26873 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
26874
26875         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
26876         -maix64 and -maix32.
26877         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
26878         LINK_SPEC): Change appropriately.
26879         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
26880         (u_short_cint_operand): Likewise.
26881         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
26882         for 64-bit hosts.
26883         * rs6000/t-aix43 (MULTILIB): Change to -m64.
26884
26885         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
26886
26887 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
26888
26889         * rs6000/rs6000.c (num_insns_constant_wide): Correct
26890         for type promotion.
26891         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
26892         (non_add_cint_operand): Likewise.
26893         (logical_operand): Likewise.
26894         (non_logical_cint_operand): Likewise.
26895         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
26896         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
26897         (rs6000_select_rtx_section): Suppress warning.
26898         (small_data_operand): Suppress warning.
26899         (rs6000_got_register): Suppress warning.
26900         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
26901         type, so `J' is generally the wrong constraint for a SImode value;
26902         use `L' instead.
26903         (andsi3_internal2): Likewise.
26904         (andsi3_internal3): Likewise.
26905         (iorsi3_internal1): Likewise.
26906         (xorsi3_internal1): Likewise.
26907         (movsi): Likewise.
26908         (movsf_softfloat): Likewise.
26909         (scc insns): Likewise.
26910         (movsi+2): Preserve sign bits of SImode constant.
26911         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
26912         (movdf+1): Sign-extend properly.
26913         (movdi_32+1): Sign-extend properly.
26914         (scc insns): Sign-extend properly.
26915
26916         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
26917         K, L, and T.
26918
26919 1999-08-02  Richard Henderson  <rth@cygnus.com>
26920
26921         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
26922         -mcpu parsing code.
26923         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
26924         * alpha.md (all fp insns): Likewise.
26925
26926 1999-08-02  Nick Clifton  <nickc@cygnus.com>
26927
26928         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
26929         already defined.
26930
26931 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
26932
26933         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
26934         pic_load_label generator directly.
26935         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
26936         No longer a named pattern.
26937
26938 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
26939
26940         * explow.c (force_reg): Call force_operand if X does not
26941         satisfy general_operand.
26942
26943 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
26944
26945         * fix-header.c (main): When testing for CONTINUED, use string
26946         equality, not pointer equality.
26947
26948 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
26949
26950         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
26951
26952 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
26953
26954         * cse.c (cse_insn): Fix loop which deletes insns after a jump
26955         that has become an unconditional jump.
26956
26957         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
26958         (output_function_epilogue): Similarly.
26959
26960 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26961
26962         * tree.h (init_dummy_function_start): Declare.
26963
26964 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26965
26966         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
26967         last_expr_type, last_expr_value, block_start_count, block_stack,
26968         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
26969         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
26970         dynamically in stmt elt of struct function for each function.
26971         (struct nesting): Rename function_call_count elt to n_function_calls,
26972         target_temp_slot_level to block_target_temp_slot_level.  All users
26973         changed.
26974         (struct stmt_status): New structure definition.
26975         Add many accessor macros for stmt_status elements which previously
26976         were global variables.
26977         (init_stmt_for_function): Allocate stmt elt for current_function.
26978         Reflect that block_start_count was renamed to
26979         current_block_start_count.
26980         (save_stmt_status, restore_stmt_status): Delete functions.
26981         (preserve_subexpressions_p): Don't access loop_stack when outside
26982         a function.
26983         (expand_start_bindings): Reflect that block_start_count was renamed to
26984         current_block_start_count.
26985         (expand_fixup): Likewise.
26986         (expand_decl): Don't access block_stack when outside a function.
26987         (expand_decl_cleanup): Likewise.
26988         (expand_dcc_cleanup): Likewise.
26989         (expand_dhc_cleanup): Likewise.
26990         (expand_anon_union_decl): Likewise.
26991         (set_file_and_line_for_stmt): New function.
26992         (in_control_zone_p): New function.
26993
26994         * function.h (struct function): Add new elt stmt.
26995         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
26996         case_stack, nesting_stack, nesting_depth, block_start_count,
26997         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
26998         emit_lineno, goto_fixup_chain.
26999         (save_eh_status, restore_eh_status, save_stmt_status,
27000         restore_stmt_status): Delete declarations.
27001         * function.c (push_function_context_to): Don't call save_stmt_status.
27002         (pop_function_context_to): Don't call restore_stmt_status.
27003         * tree.h (in_control_zone_p): Declare.
27004         * rtl.h (set_file_and_line_for_stmt): Declare.
27005
27006         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
27007         call set_file_and_line_for_stmt.
27008
27009 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
27010
27011         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
27012         Also update copyright.
27013
27014 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27015
27016         * c-pragma.c: Don't include "except.h".
27017         * emit-rtl.c: Likewise.
27018         * stor-layout.c: Likewise.
27019         * tree.c: Likewise.
27020         * varasm.c: Likewise.
27021
27022         * flow.c: Include "function.h".
27023         * tree.h (init_dummy_function_start): Declare new function.
27024
27025         * except.h (struct eh_status): New structure.
27026         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
27027         been included.
27028         (eh_return_stub_label, ehstack, catchstack, ehqueue,
27029         catch_clauses, false_label_stack, caught_return_label_stack,
27030         protect_list, current_function_ehc): Add accessor macros for the
27031         corresponding fields in current_function->eh; delete declarations
27032         for all items that used to be declared here.
27033         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
27034         catch_clauses, false_label_stack, caught_return_label_stack,
27035         protect_list, current_function_ehc): Delete variables.
27036         (init_eh_for_function): Allocate current_function->eh.
27037         (save_eh_status, restore_eh_status): Delete functions.
27038
27039         * function.h (struct function): Add fields next_global and eh.
27040         Delete all exception handling related fields.
27041         * function.c (current_function): New variable.
27042         (all_functions): New variable.
27043         (push_function_context_to): Don't allocate a struct function,
27044         use current_function instead.  Call init_dummy_function_start when
27045         outside a function.  Clear current_function before returning.
27046         (pop_function_context_from): Restore current_function.
27047         Don't free the restored struct function.
27048         (prepare_function_start): New function.
27049         (init_dummy_function_start): New function.
27050         (init_function_start): Break out some code into prepare_function_start
27051         and call it here.
27052
27053         * stmt.c (save_stmt_status): Don't call save_eh_status.
27054         (restore_stmt_status): Don't call restore_eh_status.
27055
27056         * Makefile.in: Update dependencies.
27057
27058 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
27059
27060         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
27061         of depending on a magic constant value.  Update comments.
27062         (hppa_expand_prologue): Similarly.
27063
27064         * pa.md (reload_indi, reload_outdi): Allow any register for the
27065         original reload register.
27066
27067 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
27068
27069         * cccp.c (print_help): Change marcos to macros.
27070
27071 1999-07-30  Richard Henderson  <rth@cygnus.com>
27072
27073         * c-typeck.c (initializer_constant_valid_p): Move ...
27074         * c-common.c (initializer_constant_valid_p): ... here.  Use
27075         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
27076         of label addresses.
27077         * c-common.h (initializer_constant_valid_p): Declare.
27078         * c-tree.h (initializer_constant_valid_p): Remove.
27079
27080 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
27081
27082         * config/i386/sol2-c1.asm: Align the stack.
27083         * config/i386/sol2-gc1.asm: Likewise.
27084
27085 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
27086
27087         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
27088         -Asparclite for sparc86x.
27089         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
27090         sparc86x.
27091         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
27092
27093 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
27094
27095         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
27096         the user if using the non-default arch size in BI_ARCH configuration.
27097         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
27098
27099         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
27100         Fix patterns so that they actually match.
27101         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
27102         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
27103         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
27104         TARGET_HARD_MUL32.
27105         (mulsidi3): Reflect this in the expand.
27106         (smulsi3_highpart): Only on TARGET_ARCH32.
27107         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
27108         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
27109         (umulsidi3): Reflect this in the expand.
27110         (umulsi3_highpart): Only on TARGET_ARCH32.
27111         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
27112         don't require g0 to be zero.
27113         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
27114         ({,u}divsi3): New expands.
27115         ({,u}divsi3_sp64): New patterns.
27116         (after lshrdi3_v8plus): Four new patterns to help combiner
27117         optimizing nested mixed mode shifts.
27118
27119         * config/sparc/sparc.c (sparc_override_options): Use deprecated
27120         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
27121         speed things up. Don't use them by default on plain v9 in 64bit
27122         mode, according to what SPAMv9 sais.
27123
27124         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
27125         top 32 bits of %[og][0-7] in signal handlers.
27126         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
27127
27128 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
27129
27130         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
27131         (ashlsi3): Corresponding changes.
27132
27133         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
27134
27135 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
27136
27137         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
27138
27139 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27140
27141         * arm.h (Hint): Delete macro.
27142         Substitute HOST_WIDE_INT for Hint in some prototypes.
27143         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
27144
27145 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
27146
27147         * builtins.c (expand_builtin_setjmp): Use force_operand to
27148         make sure that the buffer address is in a suitable form to be
27149         passed to force_reg.
27150
27151 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
27152
27153         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
27154         them here.
27155
27156 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
27157
27158         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
27159         proper mode in the condition string.
27160         (icacheflush, dcacheflush): Remove modes from match_operands.
27161
27162         * pa.c (emit_move_sequence): Always convert scratch_reg to the
27163         proper mode before using it.
27164
27165         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
27166         pair.
27167
27168         * pa.c (store_reg): Do not call add_high_const generator directly.
27169         (load_reg, set_reg_plus_d): Likewise.
27170         * pa.md (add_high_const): No longer a named pattern.
27171
27172         * pa.c (legitimize_address): Consistently use Pmode rather than
27173         SImode.  Do not call gen_pic2_highpart directly anymore.
27174         * pa.md (pic2_highpart): No longer a named pattern.
27175         (pic2_lo_sum): Similarly.  Reformat to make more readable.
27176
27177         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
27178         needed.
27179
27180         * README: Update.
27181
27182 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
27183
27184         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
27185
27186 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
27187
27188         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
27189         and tag the spill mems.
27190         (hppa_va_start): New.
27191         (hppa_va_arg): New.
27192         * pa.h (EXPAND_BUILTIN_VA_START): New.
27193         (EXPAND_BUILTIN_VA_ARG): New.
27194
27195 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
27196
27197         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
27198         and tag the spill mems.
27199         (mn10300_va_start): New.
27200         (mn10300_va_arg): New.
27201         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
27202         (EXPAND_BUILTIN_VA_ARG): New.
27203
27204 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
27205
27206         * mn10200.c (mn10200_va_arg): New.
27207         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
27208
27209 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
27210
27211         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
27212         rather than play with TREE_INT_CST_LOW.
27213
27214 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
27215
27216         * config/arm/telf.h: Include dbxelf.h.
27217         (CPP_PREDEFINES): Only define if not already defined.
27218         (ASM_IDENTIFY_GCC): Likewise.
27219         (SUBTARGET_EXTRA_SECTIONS): Likewise.
27220         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
27221         * config/arm/thumb.h (LINK_SPEC): Only define if not already
27222         defined.
27223         (DBX_DEBUGGING_INFO): Don't define.
27224         * config/arm/linux-telf.h: New file.
27225         * config/arm/linux-tgas.h: New file.
27226         * config/arm/t-thumb-linux: New file.
27227         * config/arm/uclinux-elf.h: New file.
27228         * config/arm/uclinux-telf.h: New file.
27229         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
27230         thumb-*-uclinux): New targets.
27231         * configure: Regenerate.
27232
27233 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
27234
27235         * pa.md (post_store, pre_load): New expanders.
27236         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
27237         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
27238         need to directly generate RTL for them.
27239         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
27240         changes.
27241
27242 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
27243
27244         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
27245         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
27246         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
27247         (secndary_reload_class): Make TARGET_ELF conditional compile.
27248         (print_operand_address): Similar.
27249         (output_toc): Print all values as hex.
27250         (get_issue_rate): Rearrange and add RS64A and PPC630.
27251         * rs6000.h (processor_type): Add RS64A and PPC630.
27252         (PROCESSOR_POWERPC64): New.
27253         (PROMOTE_MODE): Use word_mode.
27254         (RTX_COSTS): Add RS64A and PPC630.
27255         * rs6000.md (scheduling information): Add lmul and ldiv
27256         representing 64-bit integer multiply and divide.  Add rs64a and
27257         PPC630 information.
27258         (ashldi3): Add support for "rldic" instruction.
27259         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
27260
27261 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
27262
27263         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
27264         instead of V8 for sparclite86x in cpu_table.
27265
27266 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27267
27268         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
27269         output_file_directive.
27270
27271 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
27272
27273         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
27274         tree for op1, not the rtl.
27275
27276 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
27277
27278         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
27279         to m88k_va_start, leaving only the register spill.
27280         (m88k_build_va_list): New.
27281         (m88k_va_start): New.
27282         (m88k_va_arg): New.
27283         * m88k.h (BUILD_VA_LIST_TYPE): New.
27284         (EXPAND_BUILTIN_VA_START): New.
27285         (EXPAND_BUILTIN_VA_ARG): New.
27286
27287 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
27288
27289         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
27290         Rename from expand_builtin_saveregs.
27291         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
27292
27293 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
27294
27295         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
27296         for the register spill block.
27297         (i960_build_va_list): New.
27298         (i960_va_start): New.
27299         (i960_va_arg): New.
27300         * i960.h (BUILD_VA_LIST_TYPE): New.
27301         (EXPAND_BUILTIN_VA_START): New.
27302         (EXPAND_BUILTIN_VA_ARG): New.
27303         * i960.md (store_multiple): Use change_address on individul mems.
27304
27305 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
27306
27307         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
27308         an ARRAY_TYPE.
27309         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
27310         (expand_builtin_va_end): Evaluate arg for side effects.
27311         * c-common.c (c_common_nodes_and_builtins): Construct a
27312         va_list_arg_type_node to handle array decomposition to pointer.
27313
27314 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
27315
27316         * except.c (st_dynamic_cleanup): Use force_operand on the
27317         buffer's address.
27318
27319 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
27320
27321         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
27322         * c4x.c (c4x_va_arg): New.
27323
27324 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
27325
27326         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
27327         has manual_pop set.
27328
27329 1999-07-26  Nathan Sidwell  <nathan@acm.org>
27330
27331         * eh-common.h (__eh_matcher): Prototype correctly.
27332
27333 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
27334
27335         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
27336         (TARGET_SINGLE_PIC_BASE): Likewise.
27337         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
27338         definitions.
27339         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
27340         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
27341         (TARGET_OPTIONS): Add -mpic-register=N.
27342         (OUTPUT_INT_ADDR_CONST): New macro.
27343         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
27344         LEGITIMATE_PIC_OPERAND_P): Likewise.
27345         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
27346         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
27347         output_addr_const directly.
27348         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
27349         ARM port.
27350         (thumb_pic_register, thumb_pic_register_string): Declare.
27351
27352         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
27353         from arm.c.
27354         (label_mentioned_p): New function: Imported from arm.c.
27355         (legitimize_pic_address): New function: Imported from arm.c.
27356         (is_pic):New function: Imported from arm.c.
27357         (thumb_finalize_pic):New function: Imported from arm.c.
27358         (add_constant): Cope with PIC constants.
27359         (fixit): Cope with PIC constants.
27360         (output_return): Do not treat the PIC register as live if
27361         TARGET_SINGLE_PIC_BASE is true.
27362         (thumb_function_prologue): Do not treat the PIC register as live if
27363         TARGET_SINGLE_PIC_BASE is true.
27364         (thumb_expand_prologue): Do not treat the PIC register as live if
27365         TARGET_SINGLE_PIC_BASE is true.
27366         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
27367         TARGET_SINGLE_PIC_BASE is true.
27368         (thumb_print_operand): Accept '|'.
27369         (thumb_override_options): Process PIC options.
27370
27371         * config/arm/thumb.md (movsi): Support PIC.
27372         (call_insn): Change "i" constraint to "X".
27373         (call_value_insn): Likewise.
27374         (consttable_4, consttable_8, consttable_end): Set and clear
27375         "making_const_table" as appropriate.
27376         (pic_load_addr, pic_add_dot_plus_four): New insns.
27377
27378         * invoke.texi (Thumb Options): Fix spelling.  Document new
27379         options -msingle-pic-base and -mpic-register=.
27380
27381 1999-07-26  Andrew Haley  <aph@cygnus.com>
27382
27383         * config/m32r/initfini.c (__init): Use a full word immediate for
27384         __fini: this allows it to be placed in any memory region.
27385
27386         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
27387         -mmodel=medium.  This is OK for all memory models.
27388
27389 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
27390
27391         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
27392         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
27393
27394 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
27395
27396         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
27397         defined.
27398
27399         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
27400
27401 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
27402
27403         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
27404         (BUILD_VA_LIST_TYPE): New.
27405         (EXPAND_BUILTIN_VA_START): New.
27406         (EXPAND_BUILTIN_VA_ARG): New.
27407         * i860.c (output_delayed_branch): Disable.
27408         (output_delay_insn): Likewise.
27409         (i860_saveregs): New.
27410         (i860_build_va_list): New.
27411         (i860_va_start): New.
27412         (i860_va_arg): New.
27413         * i860.md: Disable all peepholes using output_delayed_branch.
27414         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
27415
27416 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
27417
27418         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
27419         (BUILD_VA_LIST_TYPE): New.
27420         (EXPAND_BUILTIN_VA_START): New.
27421         (EXPAND_BUILTIN_VA_ARG): New.
27422         * clipper.c (clipper_builtin_saveregs): Only dump registers.
27423         Return the address of the save area.
27424         (clipper_build_va_list): New.
27425         (clipper_va_start): New.
27426         (clipper_va_arg): New.
27427
27428 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
27429
27430         * arc.h (EXPAND_BUILTIN_VA_START): New.
27431         (EXPAND_BUILTIN_VA_ARG): New.
27432         * arc.c (arc_setup_incoming_varargs): Set alias set of
27433         varargs save area.
27434         (arc_va_start): New.
27435         (arc_va_arg): New.
27436
27437 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
27438
27439         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
27440         (BUILD_VA_LIST_TYPE): New.
27441         (EXPAND_BUILTIN_VA_START): New.
27442         (EXPAND_BUILTIN_VA_ARG): New.
27443         * alpha.c (alpha_builtin_saveregs): Delete.
27444         (alpha_build_va_list): New.
27445         (alpha_va_start): New.
27446         (alpha_va_arg): New.
27447
27448 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
27449
27450         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
27451         column zero.
27452         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
27453         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
27454
27455         * gcc.texi: More changes related to list conversion.
27456         * invoke.texi: Likewise.
27457
27458 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
27459
27460         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
27461         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
27462         (expand_builtin_next_arg): Accept ARGLIST not EXP.
27463         (stabilize_va_list): New function.
27464         (std_expand_builtin_va_start): New function.
27465         (expand_builtin_va_start): New function.
27466         (get_varargs_alias_set): New function.
27467         (std_expand_builtin_va_arg): New function.
27468         (expand_builtin_va_arg): New function.
27469         (expand_builtin_va_end): New function.
27470         (expand_builtin_va_copy): New function.
27471         (expand_builtin): Call them.
27472         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
27473         __builtin_{varargs_start,stdarg_start,end,copy}.
27474         (build_va_arg): New function.
27475         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
27476         (build_va_arg): Declare.
27477         * c-decl.c (ptr_type_node, va_list_type_node): New.
27478         * c-parse.gperf (__builtin_va_arg): New.
27479         * c-parse.in (VA_ARG): New token.
27480         (unary_expr): Recognize it.
27481         * expr.c (expand_expr): Expand VA_ARG_EXPR.
27482         * expr.h (std_expand_builtin_va_start): Declare.
27483         (std_expand_builtin_va_arg): Declare.
27484         (expand_builtin_va_arg): Declare.
27485         (get_varargs_alias_set): Declare.
27486         * tree.def (VA_ARG_EXPR): New.
27487         * tree.h (BUILT_IN_VARARGS_START): New.
27488         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
27489         (ptr_type_node, va_list_type_node): Declare.
27490         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
27491         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
27492         * m88k.h, m88k.c: Likewise.
27493         * mn10300.h, mn10300.c: Likewise.
27494         * pa.h, pa.c: Likewise.
27495         * rs6000.h, rs6000.c: Likewise.
27496         * sh.h, sh.c: Likewise.
27497         * sparc.h, sparc.c: Likewise.
27498
27499         * emit-rtl.c (operand_subword): Copy alias set.
27500         (change_address): Likewise.
27501
27502 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
27503
27504         * pa.c (compute_frame_size): Scan all the used callee saved registers,
27505         not just the first one.
27506
27507 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
27508
27509         * config/arm/arm.h (TARGET_SWITCHES): Add
27510         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
27511         (TARGET_OPTIONS): Add -mpic-register=.
27512         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
27513         (arm_pic_register_string): Declare.
27514         (NEED_PLT_GOT): Delete, replace with ...
27515         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
27516         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
27517         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
27518         * config/arm/arm.c (arm_override_options): Add new option
27519         -mpic-register=N.
27520         (arm_pic_register_string): New variable.
27521         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
27522         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
27523         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
27524         (output_return_instruction): Likewise.
27525         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
27526         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
27527         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
27528
27529         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
27530         mention of -msched-prolog.  Document new options -msingle-pic-base
27531         and -mpic-register=.
27532
27533 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
27534
27535         * haifa-sched.c (reemit_notes): Tidy.
27536         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
27537         haifa's routine.
27538
27539 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
27540
27541         * explow.c (trunc_int_for_mode): New function.
27542         (plus_constant_wide): Use it.
27543         * combine.c (simplify_and_const_int): Likewise.
27544         (merge_outer_ops): Likewise.
27545         (simplify_shift_const): Likewise.
27546         * cse.c (simplify_unary_operation): Likewise.
27547         (simplify_binary_operation): Likewise.
27548         * emit-rtl.c (operand_subword): Likewise.
27549         * rtl.h: Declare it.
27550
27551 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27552
27553         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
27554         (use NUM_REGS instead of NUM_INTS).
27555
27556 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27557
27558         * builtins.c: New file.
27559         * expr.c (saveregs_value, apply_args_value):  Delete definition,
27560         moved into builtins.c.
27561         (string_constant): No longer static.
27562         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
27563         apply_args_size, apply_result_size, result_vector,
27564         expand_builtin_apply_args, expand_builtin_apply,
27565         expand_builtin_return): Delete functions, moved into builtins.c.
27566         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
27567         * expr.h (saveregs_value, apply_args_value): Declare variables.
27568         (expand_builtin, string_constant): Declare functions.
27569         * Makefile.in: Update to build builtin.o.
27570
27571 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
27572
27573         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
27574         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
27575         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
27576         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
27577         false.
27578         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
27579         Define to zero.
27580
27581 1999-07-21  Michael Meissner  <meissner@cygnus.com>
27582
27583         * print-rtl.c (print_rtx): Print the names of the virtual
27584         registers.
27585
27586 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
27587
27588         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
27589         introduced in previous delta.
27590
27591 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27592
27593         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
27594         to avoid name clash.
27595
27596 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
27597
27598         * c-lex.c (yylex) : Correct the test for overflow when lexing
27599         integer literals.
27600
27601 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
27602
27603         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
27604         (adjust_priority): Always call ADJUST_PRIORITY.
27605         (schedule_insn): Only put insns into the ready at cost 0.
27606         (schedule_block): Remove redundant initial sort.  Give clock_var
27607         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
27608         is not 0.
27609         * tm.texi (MD_SCHED_REORDER): Update docs.
27610
27611         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
27612         * sparc.c (ultra_reorder_called_this_block): Delete.
27613         (ultrasparc_sched_init): Don't set it.
27614         (ultrasparc_sched_reorder): Don't check it.
27615
27616 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
27617
27618         * rs6000.h (struct rs6000_args): Add sysv_gregno.
27619         * rs6000.c (init_cumulative_args): Init sysv_gregno.
27620         (function_arg_boundary): Align DFmode.
27621         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
27622         to get fp reg and stack overflow correct.
27623         (function_arg): Likewise.
27624         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
27625         (setup_incoming_varargs): Restructure for ABI_V4; use
27626         function_arg_advance to skip final named argument.
27627         (expand_builtin_saveregs): Properly unskip the last integer arg
27628         when doing varargs.  Adjust overflow location calculation.
27629
27630         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
27631         explicitly unsigned.
27632         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
27633         (__VA_GP_REGSAVE): Similarly.
27634         (__va_longlong_p): Delete.
27635         (__va_arg_type_violation): New declaration.
27636         (va_arg): Restructure.  Flag promotion errors.  Align double.
27637         TFmode passed by reference.
27638
27639         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
27640         in the HOST_BITS_PER_WIDE_INT > 32 case.
27641
27642 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
27643
27644         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
27645
27646 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
27647
27648         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
27649         * toplev.c (documented_lang_options): Add -fpreprocessed.
27650         * cpplib.h (struct cpp_buffer): Add preprocessed.
27651         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
27652         (cpp_start_read): Don't expand macros or emit an initial #line
27653         directive if -fpreprocessed.
27654
27655 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
27656
27657         * cpplib.h (struct cpp_buffer): Added manual_pop for
27658         better C++ tokenization.
27659         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
27660         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
27661         * c-common.c (cpp_token): Make non-static.
27662
27663 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27664
27665         * c-common.h: New file.
27666         * c-common.c (permanent_obstack): Delete unused declaration.
27667         (c_global_trees): New array.
27668         (c_common_nodes_and_builtins): New function; split off common code
27669         from init_decl_processing in both c-decl.c and cp/decl.c.
27670         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
27671         c_global_trees and accessor macros defined in c-common.h.
27672         Include c-common.h.
27673         * c-decl.c: Delete definitions for tree nodes that were replaced by
27674         c_global_trees.
27675         (init_decl_processing): Build void_list_node.
27676         Call c_common_nodes_and_builtins; delete code to generate the common
27677         builtins here.
27678         * objc/objc-act.c (build_module_descriptor): Rename variable
27679         void_list_node to avoid clash with c-common.h.
27680
27681         * Makefile.in: Update dependencies.
27682         * objc/Make-lang.in: Likewise.
27683
27684 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
27685
27686         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
27687         (UNIQUE_SECTION_P): Likewise.
27688         (UNIQUE_SECTION): Likewise.
27689
27690 1999-07-19  Linas Vepstas  <linas@linas.org>
27691
27692         * config/i370/README: New file.
27693         * config/i370/linux.h: New file.
27694         * config/i370/mvs.h: New file.
27695         * config/i370/oe.h: New file.
27696         * config/i370/t-linux: New file.
27697         * config/i370/t-mvs: New file.
27698         * config/i370/t-oe: New file.
27699         * config/i370/x-oe: New file.
27700         * config/i370/xm-linux.h: New file.
27701         * config/i370/xm-mvs.h: New file.
27702         * config/i370/xm-oe.h: New file.
27703
27704         * i370.c (label_node_t): Add first_ref_page, label_addr,
27705         label_first_ref, label_last_ref members.
27706         (mvs_need_base_reload): Renamed from mvs_label_emitted.
27707         (MAX_MVS_LABEL_SIZE): Define.
27708         (MAX_LONG_LABEL_SIZE): Define.
27709         (alias_node_t, alias_anchor, alias_number): New.
27710         (mvs_function_table): Reorder for EBCDIC.
27711         (ascebc, ebcasc): Unconditionally define.
27712         (i370_branch_dest, i370_branch_length): New functions.
27713         (i370_short_branch, i370_label_scan): New functions.
27714         (mvs_get_label): Renamed from mvs_add_label.  Search for
27715         an existing label before creating a new one.
27716         (mvs_add_label): New function.
27717         (mvs_get_label_page): New function.
27718         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
27719         over the entire list.
27720         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
27721         (mvs_check_page) [TARGET_ELF_ABI]: New function.
27722         (mvs_add_alias, mvs_need_alias): New functions.
27723         (mvs_get_alias, mvs_check_alias): New functions.
27724         (handle_pragma): New function.
27725         (mvs_function_check): New function.
27726         (unsigned_jump_follows_p): Search harder.
27727         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
27728         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
27729         * i370.h (TARGET_VERSION): Delete.
27730         (CPP_SPEC, CPP_PREDEFINES): Delete.
27731         (mvs_label_emitted): Delete.
27732         (TARGET_EBCDIC): Delete.
27733         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
27734         (HANDLE_PRAGMA): Define.
27735         (HARD_REGNO_NREGS): Handle complex modes.
27736         (HARD_REGNO_MODE_OK): Likewise.
27737         (CLASS_MAX_NREGS): Likewise.
27738         (RET_REG): Likewise.
27739         (EXTRA_CONSTRAINT): Define.
27740         (RETURN_IN_MEMORY): True for DImode.
27741         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
27742         (FUNCTION_PROFILER): Delete.
27743         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
27744         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
27745         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
27746         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
27747         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
27748         (ASM_FILE_START): Add "RMODE ANY".
27749         (ASM_OUTPUT_EXTERNAL): Check for aliases.
27750         (ASM_GLOBALIZE_LABEL): Likewise.
27751         (ASM_OUTPUT_LABELREF): Likewise.
27752         (ASM_OUTPUT_COMMON): Likewise.
27753         (PRINT_OPERAND): Handle 'K', 'W', default.
27754         (PRINT_OPERAND_ADDRESS): New.
27755         (Lots of defines): Add support for TARGET_ELF_ABI.
27756         * i370.md (attr length): New.  Define for all patterns.
27757         (*): Lots of tweeks to assembly output and constraints.
27758
27759 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
27760
27761         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
27762         Disable patterns performing SImode comparisons with SImode values
27763         if TARGET_POWERPC64 and instruction does not sign-extend or does
27764         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
27765         differ for signed quantities.
27766         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
27767         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
27768         (decrement_and_branch_on_count): Add 64-bit variant.
27769
27770 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27771
27772         * final.c (output_asm_insn): When searching for the matching string
27773         for a given dialect, don't run past the end of the list of
27774         alternatives if there are fewer alternatives in the template than
27775         dialects.
27776
27777 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
27778
27779         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
27780         Removed paragraph about compression of files and size limitation,
27781         duplicated in the FAQ.  Use gcc-patches for posting patches.
27782         * gcc.c (main): Updated URL with bug reporting instructions to
27783         gcc.gnu.org.  Removed e-mail address.
27784         * system.h (abort): Likewise.
27785
27786 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27787
27788         * Makefile.in (stmp-multilib-sub): Make the files extracted
27789         from $(LIBGCC1) writable.
27790
27791 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
27792
27793         * config/arm/aout.h: Reformat for improved readability.
27794
27795         * config/arm/arm.h: Reformat for improved readability.
27796         Replace uses of fprintf with asm_fprintf where appropriate.
27797         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
27798         function declaration assembler actions.
27799         (NUM_INTS): New macro: Convert from bytes to words.
27800         (NUM_REGS): New macro: Compute number of registers required to
27801         hold a quanitity of tyep MODE.
27802         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
27803         types.
27804         (NUM_ARG_REGS): New macro: The number of argument registers
27805         available.
27806         (ARG_REGISTER): New macro: Compute the register number of the Nth
27807         argument register.
27808         (LAST_ARG_REGNUM): New macro: The number of the last argument
27809         register.
27810         (SP_REGNUM): New macro: Register number of the stack pointer.
27811         (FP_REGNUM): New macro: Register number of the frame pointer.
27812         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
27813         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
27814         CUMULATIVE_ARGS so that it counts registers not bytes.
27815
27816         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
27817         TARGET_INTERWORK.
27818         Replace uses of fprintf with asm_fprintf where appropriate.
27819         (output_ascii_pseudo_op): Replace with version from thumb.c
27820
27821         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
27822
27823         * config/arm/elf.h (CPP_PREDEFINES): Replace with
27824         SUBTARGET_CPP_SPEC.
27825         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
27826         (ASM_FILE_START): Emit ASM_APP_OFF.
27827
27828 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
27829
27830         * pa.c (compute_frame_size): Round frame according to
27831         STACK_BOUNDARY rather than a hardwired value.
27832
27833         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
27834
27835         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
27836         of "1".
27837         * configure: Rebuilt.
27838
27839         * configure.in (hppa*-*-linux*): New configuration.
27840         * configure: Rebuilt.
27841         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
27842         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
27843         * pa/pa-linux.h: New file.
27844         * pa/t-linux: New file.
27845         * pa/xm-linux.h: New file.
27846
27847         * pa.c (hppa_legitimize_address): Change references from SImode to
27848         either Pmode or word_mode as appropriate.
27849         (emit_move_sequence, store_reg, load_reg): Likewise.
27850         (set_reg_plus_d, hppa_expand_prologue): Likewise.
27851         (output_mul_insn): Likewise.
27852         * pa.h (PROMOTE_MODE): Likewise.
27853         (INITIALZE_TRAMPOLINE): Likewise.
27854         (Pmode): Define to word_mode.
27855
27856         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
27857         value of 4.  Allocate 8 bytes for each FP register save.
27858         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
27859         value of 4.
27860         (hppa_expand_prologue): Likewise.
27861         * pa.h (PROMOTE_MODE): Likewise.
27862         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
27863         (FUNCTION_ARG_BOUNDARY): Likewise.
27864
27865         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
27866
27867         * pa.c (out_of_line_prologue_epilogue): Delete.
27868         (override_options): Remove -mspace related code.
27869         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
27870         (compute_frame_size): Only allocate space for register that
27871         actually need to be saved.
27872         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
27873         (TARGET_SWITCHES): Remove -mspace, -mno-space
27874         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
27875         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
27876         * pa/ee.asm, pa/ee_fp.asm: Delete.
27877
27878         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
27879
27880         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
27881         directive in column zero.
27882
27883 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
27884
27885         * m68k.c (output_function_prologue): Fix computation of save mask
27886         when generating PIC code.
27887
27888 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
27889
27890         * tree.c (build_type_attribute_variant): Move current_obstack restore
27891         after build_qualified_type call.
27892
27893 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
27894
27895         * configure.in: Use t-iris6, even with GNU LD.
27896         * config/mips/iris6gld.h: Fix typo in linker spec.
27897         * config/mips/t-iris6gld: Remove.
27898
27899 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
27900
27901         * rs6000.md (insv, extzv): Remove SImode dependence in named
27902         patterns.  Explicitly generate DImode RTL if PowerPC64 and
27903         operand is DImode.
27904         (insvdi): Reverse start and size in instruction template.
27905
27906 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
27907
27908         * invoke.texi: Typo fixes.
27909
27910 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
27911
27912         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
27913         handle at this time instead of silently generating incorrect code.
27914         (gen_imagpart): Likewise.
27915
27916         * reload.c (find_reloads): Emit a USE for a pseudo register without
27917         a hard register if we could not create an optional reload for the
27918         pseudo.
27919
27920 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27921
27922         * c-typeck.c (output_init_element, process_init_element):
27923         When advancing constructor_unfilled_fields for a RECORD_TYPE,
27924         check for nameless bit fields.
27925
27926 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
27927
27928         * regclass.c (scan_one_insn): Notice subregs that change the
27929         size of their operand.
27930         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
27931
27932 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
27933
27934         * configure.in (alpha*-*-*): Include alpha/t-ieee.
27935         * configure: Rebuilt.
27936         * alpha/t-ieee: New file.
27937
27938 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
27939
27940         * rs6000.c (find_addr_reg): Do not select r0 as an address
27941         register.
27942
27943 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
27944
27945         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
27946
27947 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
27948
27949         * rs6000.md (movsf): Do not force easy FP constants into memory.
27950
27951         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
27952         immed_double_const to ensure they are properly truncated then
27953         sign extended.
27954
27955 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
27956
27957         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
27958         always unless NO_DEBUG is used.  Compile this code
27959         unconditionally.
27960         (replace_symbols_in_block): Compile it unconditionally.
27961
27962 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
27963
27964         * configure.in (i?86-*-elf*): New target.
27965         * configure: Rebuilt.
27966         * i386/i386elf.h, i386/t-i386elf: New files.
27967
27968 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
27969
27970         * toplev.c (main): Don't complain about saying -gdwarf.
27971         (rest_of_compilation): Remove redundant code.
27972
27973 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
27974
27975         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
27976
27977 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
27978
27979         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
27980         "Li960R:", to avoid name clash.
27981
27982 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27983
27984         * loop.c (check_dbra_loop): When reversing a loop, delete all
27985         REG_EQUAL notes referencing the reversed biv except those which are
27986         for a giv based on it.
27987
27988 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
27989
27990         * version.c: Drop "gcc-" prefix from version #.
27991
27992 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
27993
27994         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
27995         the label if we're being verbose.
27996
27997 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
27998
27999         * m68k.c (output_function_prologue): Add pic register to mask
28000         if live and flag_pic.
28001         (output_function_epilogue): Likewise.
28002
28003 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
28004
28005         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
28006         directives in column zero.
28007
28008         * pa/elf.h (ASM_FILE_START): Define.
28009         * pa/som.h (ASM_FILE_START): Include .level directives.
28010         * pa/hpux10.h (ASM_FILE_START): Delete.
28011         * pa/hpux11.h (ASM_FILE_START): Delete.
28012
28013         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
28014
28015 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28016
28017         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
28018         when reload_out equals reload_in.
28019
28020 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
28021
28022         * invoke.texi (Spec Files): New node: Describe the contents of
28023         spec files.
28024
28025 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
28026
28027         * invoke.texi (DEC Alpha Options): Put @end table at
28028         beginning of line, to avoid confusing texi2html.
28029
28030 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
28031
28032         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
28033         introduced in previous delta.
28034
28035 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
28036
28037         * reload1.c (gen_reload): When synthesizing a 3 operand add
28038         sequence, improve test for when to reload OP1 into the reload
28039         register instead of OP0.
28040
28041 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
28042
28043         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
28044
28045 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
28046
28047         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
28048         string literal.
28049
28050 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
28051
28052         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
28053         (va_dcl): Use __builtin_va_alist_t.
28054
28055 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
28056
28057         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
28058         on the permanent_obstack.
28059         * dwarfout.c (output_type): Likewise.
28060
28061 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
28062
28063         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
28064         Merged from c-typeck.c and cp/typeck.c.
28065         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
28066         Merged into c-common.
28067
28068 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
28069
28070         * c-lex.c (errorcount): Declare it.
28071         (finish_parse): Update errorcount when using CPPLIB.
28072
28073 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
28074
28075         * fixinc/inclhack.def(end_else_label): Double the backslash so
28076         sed gets a chance to see it.
28077         * fixinc/inclhack.sh: regen
28078         * fixinc/fixincl.x: regen
28079
28080 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
28081
28082         Add framework to support armv5 architecture when it becomes
28083         available:
28084
28085         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
28086         (arm_arch5): New variable.
28087         (all_architectures): Add armv5 line.
28088         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
28089         -march=armv5 is specified on the command line.
28090         (arm_arch5): Export this variable.
28091         * invoke.texi: Document new string accepted by -march= switch for
28092         ARM ports.
28093
28094         * config/arm/arm.h: Replace use of constant 12 as a register
28095         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
28096         * config/arm/arm.c: Replace use of constant 12 as a register
28097         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
28098
28099         * config/arm/elf.h: Tidy up.
28100         * config/arm/coff.h: Tidy up.
28101
28102 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
28103
28104         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
28105         * gcc/config/mips/t-iris6gld: New file.
28106         * gcc/config/mips/iris6gld.h: Likewise.
28107
28108 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
28109
28110         * c-decl.c (widest_integer_literal_type_node,
28111         widest_unsigned_literal_type) : New.
28112         (init_decl_processing): Handle/use the two new types.
28113         * c-common.c (type_for_size,type_for_mode) : Same.
28114         * c-lex.c (yylex) : Same.
28115         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
28116         Same.
28117         * c-tree.h (widest_integer_literal_type_node,
28118         widest_unsigned_literal_type) : New.
28119
28120 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
28121
28122         * dwarfout.c (field_byte_offset): Correctly compute the object's
28123         byte offset for the first bit of a field which crosses an alignment
28124         boundary on a !BYTES_BIG_ENDIAN target.
28125
28126 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
28127
28128         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
28129         ntohs.
28130
28131 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
28132                           Jeff Law <law@cygnus.com>
28133
28134         * ginclude/varargs.h (va_dcl): Use word_mode for type of
28135         __builtin_va_list.
28136
28137         * except.c: Include intl.h.
28138         (expand_eh_return): Set current_function_cannot_inline.
28139         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
28140         * function.h (struct function): Add eh_return_stub_label.
28141         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
28142         * Makefile.in (except.o): Depend on intl.h.
28143
28144 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
28145
28146         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
28147         same as offsettable in cases 1 and 2.
28148
28149 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
28150
28151         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
28152         (extlh, extwh): Likewise.
28153
28154 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
28155
28156         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
28157
28158 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
28159
28160         * configure.in: Add arm-pe and thumb-pe targets.
28161         * configure: Regenerate.
28162
28163         * thumb.c (arm_naked_function_p): New function: Determines if
28164         a function is naked (has no gcc generated prologue/epilogue).
28165         (is_called_in_ARM_mode): Return true if the func has the
28166         interfacearm attribute.
28167         (output_return): Do not generate a return for naked functions.
28168         (thumb_function_prologue): Do not generate a prologue for
28169         naked functions.
28170         (thumb_expand_prologue): Do not generate a prologue for naked
28171         functions.
28172         (thumb_expand_epilogue): Do not generate an epilogue for naked
28173         functions.
28174         (arm_valid_machine_decl_attribute): New function, copied from
28175         arm.c:  Permit naked and interfacearm attributes.
28176
28177         * config/arm/pe.c: New file: Support code for arm-pe target.
28178         * config/arm/pe.h: New file: Header file for arm-pe target.
28179         * config/arm/tpe.h: New file: Header file for thumb-pe target.
28180         * config/arm/t-thumb-pe: New file: Makefile fragment for
28181         thumb-pe target.
28182
28183 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
28184
28185         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
28186         -fPIC or -fpic is specified.
28187
28188 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
28189
28190         * expr.c (emit_block_move): Use copy_to_mode_reg for
28191         !TARGET_MEM_FUNCTIONS case too.
28192
28193         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
28194         appropriate.
28195         * configure: Rebuilt.
28196         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
28197         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
28198         definitions made redundant by dbxelf.h inclusion.  Delete
28199         lots of definitions related to assembly output that are
28200         specific to the SOM object format.
28201         * pa.c (output_function_prologue): Do not emit the function's
28202         name for OBJ_ELF.
28203         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
28204         * pa-pro.h: Deleted.
28205         * som.h: New file with SOM specific definitions.
28206         * elf.h: New file with ELF specific definitions.
28207
28208         * elfos.h (const_section): Output a tab before assembler directives.
28209         (ctors_section, dtors_section): Likewise.
28210         (ASM_OUTPUT_SECTION_NAME): Likewise.
28211
28212         * pa/pa1.h: Delete unused file.
28213
28214 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
28215
28216         * configure.in (hppa*-hp-hpux11*): New configuration.
28217         * configure: Rebuilt.
28218         * pa/pa-hpux11.h: New file.
28219         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
28220         command line.
28221
28222         * mips.md (leasi, leadi): New patterns.
28223
28224         * expr.c (emit_block_move): Properly handle case where one of the
28225         block move arguments has a queued increment or decrement.
28226         (clear_storage): Similarly.  Fix formatting goof.
28227
28228 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
28229
28230         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
28231         semicolon from the BSD VA_LIST replacement expression.
28232
28233         * fixinc/inclhack.sh: regen
28234         * fixinc/fixincl.x: regen
28235
28236         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
28237         now use the fixincl program.
28238
28239 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
28240
28241         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
28242         case.  Also make the PIC register call_used.
28243
28244         * m68k.h (FINALIZE_PIC): Delete.
28245         * m68k.c (finalize_pic): Delete.
28246
28247 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
28248
28249         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
28250         to memory.
28251
28252 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
28253
28254         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
28255
28256 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
28257
28258         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
28259
28260 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
28261
28262         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
28263
28264 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
28265
28266         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
28267
28268 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
28269
28270         * rs6000.c (output_toc): Always use hex values for floating-point
28271         constants.  Store single-precision values in upper-half of TOC
28272         entry in 64-bit mode.
28273         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
28274         to final constraints.
28275         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
28276         (fctiwz): Improve accuracy of RTL for pattern.
28277
28278 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
28279
28280         * expr.c (expand_expr): Allow RTL_EXPR's through the
28281         MAX_INTEGER_COMPUTATION_MODE checks.
28282
28283 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
28284
28285         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
28286         such that MASK_SUPPORT_ARCH is not negative.
28287
28288 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
28289
28290         * loop.c (verify_dominator): Properly handle ADDR_VEC and
28291         ADDR_DIFF_VEC insns that appear inside loops.
28292
28293 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
28294                           Jeff Law <law@cygnus.com>
28295
28296         * rs6000.md (movdf_hardfloat32): Revert previous patch.
28297         Handle LO_SUM the same as offsettable in cases 1 and 2.
28298         * rs6000.c (find_addr_reg): Revert previous patch.
28299
28300 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
28301
28302         * system.h (strstr): New external function declaration.
28303         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
28304         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
28305         * config.in, configure: Rebuilt.
28306
28307 1999-06-24  Tom Tromey  <tromey@cygnus.com>
28308
28309         * gcc.c (main): Read user-specified specs files after computing
28310         additional startfile_prefixes.
28311
28312 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
28313
28314         Revert these two patches:
28315
28316         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28317         * loop.c (strength_reduce): When doing biv->giv conversion, update
28318         reg note of NEXT->insn.
28319
28320         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28321         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
28322         reg_biv_class.
28323         (recombine_givs): Set ix field after sorting.
28324
28325 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28326
28327         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
28328         for the parts of an UNSPEC / UNSPEC_VOLATILE.
28329
28330 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
28331
28332         *fixinc/inclhack.def:  Add fix development commentary
28333         (read_ret_type): reactivate and add selection clause
28334         (zzz_*): tweak output file name to match what is used in hackshell.tpl
28335         *fixinc/{fixincl.x|inclhack.sh}: regen
28336
28337 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
28338
28339         * expr.c (expand_expr): STRIP_NOPS before checking against
28340         MAX_INTEGER_COMPUTATION_MODE
28341         (check_max_integer_computation_mode): Likewise.
28342
28343 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
28344
28345         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
28346
28347 1999-06-22  Jim Wilson  <wilson@cygnus.com>
28348
28349         * expr.c (store_expr): When target is a promoted subreg, return a
28350         promoted subreg as a result.
28351
28352 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
28353
28354         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
28355         coding standards.
28356         (dwarf2out_define): Mark unused parameters appropriately.
28357         (gen_unspecified_parameters_die): Ditto.
28358         (gen_subprogram_die): Fix signed/unsigned warnings.
28359         (gen_variable_die): Ditto.
28360
28361 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
28362
28363         * fixinc/inclhack.def(end_else_label): combined else_label
28364         and endif_label and fixed the sed expression.
28365         *fixinc/{fixincl.x|inclhack.sh}: regen
28366
28367 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
28368
28369         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
28370         'x' when handling non-offsettable addresses
28371
28372 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
28373
28374         * final.c (shorten_branches): Don't try to split an insn that has
28375         been deleted.
28376
28377 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
28378
28379         * config/mips/mips.c (symbolic_expression_p): New function.
28380         (mips_select_rtx_section): Put symbolic expressions in the
28381         data section, not the read-only data section.
28382
28383 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
28384
28385         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
28386
28387 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
28388
28389         * collect2.c (main): Log frame table count.
28390         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
28391         (scan_prog_file) [COFF]: Handle frame tables.
28392
28393         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
28394         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
28395         * alpha/elf.h: Undef them again.
28396         * alpha/vms.h: Remove their definitions.
28397
28398 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28399
28400         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
28401         remove the clobber of r0 and change the REG_UNUSED note to
28402         REG_INC.
28403
28404 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
28405
28406         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
28407         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
28408         fits in HOST_WIDE_INT and one uses union to access a long constant
28409         as double.
28410
28411 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
28412
28413         * sparc.c (sparc_override_options): Don't allow profiling for
28414         code models other than medlow.
28415         (sparc_function_profiler): New function from old FUNCTION_PROFILER
28416         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
28417         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
28418         (sparc_block_profiler): Likewise.
28419         (sparc_function_block_profiler_exit): Likewise.
28420         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
28421         (FUNCTION_BLOCK_PROFILER): Likewise.
28422         (BLOCK_PROFILER): Likewise.
28423         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
28424         (MCOUNT_FUNCTION): New.
28425         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
28426         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
28427         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
28428         (MCOUNT_FUNCTION): New.
28429         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
28430         (BLOCK_PROFILER): Delete.
28431         (MCOUNT_FUNCTION): New.
28432
28433 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
28434
28435         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
28436
28437 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
28438
28439         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28440         Add the macros.
28441
28442         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28443         Ditto.
28444
28445         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28446         Ditto.
28447
28448         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28449         Ditto.
28450
28451 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
28452
28453         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
28454         types.
28455
28456 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
28457
28458         * i386/djgpp.h (LIB_SPEC): New.
28459         (STARTFILE_SPEC): New.
28460
28461         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
28462
28463 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
28464
28465         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
28466         compiler flags.
28467
28468         * system.h (WSTOPSIG): New macro.
28469
28470 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
28471
28472         * c-pragma.c (push_alignment): Don't ignore alignments greater than
28473         4 bytes.
28474         (insert_pack_attributes): Take into account member natural
28475         alignment.
28476
28477         * i386/winnt.c (exports_head): New static variable.
28478         (i386_pe_record_exported_symbol): New function.
28479         (i386_pe_asm_file_end): Use.
28480         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
28481         symbols to be emitted at end of assembly.
28482         (ASM_DECLARE_OBJECT_NAME): Likewise.
28483         (ASM_DECLARE_FUNCTION_NAME): Likewise.
28484
28485         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
28486         -iwithprefix.
28487
28488 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
28489
28490         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
28491         in last change.
28492
28493 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
28494
28495         * haifa-sched.c (sched_analyze_1): Use free_list instead of
28496         zapping reg_last_uses directly.
28497         (sched_analyze_2, sched_analyze_insn): Likewise.
28498         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
28499
28500 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
28501
28502         * rs6000.md (movdf_hardfloat32): Use worst case insn length
28503         attributes for cases 1 and 2.
28504
28505 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
28506
28507         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
28508         instead of set.
28509
28510 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
28511
28512         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
28513
28514 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
28515
28516         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
28517         PIC_OFFSET_TABLE_REGNUM for general alloaction.
28518         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
28519         must be stacked if it is used for PIC accesses.
28520         * arm.c (use_return_insn): Handle PIC register specially.
28521         (output_return_instruction): Likewise.
28522         (output_func_{prologue,epilogue}): Likewise.
28523         (output_expand_prologue): Likewise.
28524
28525         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
28526         (*strsi_predec): Renamed from *strqi_predec.
28527         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
28528         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
28529
28530         * arm.c (arm_override_options): Remove warning about PIC code
28531         not being supported.
28532
28533 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
28534
28535         * rs6000.c (find_addr_reg): New function.
28536         * rs6000.h (find_addr_reg): Declare.
28537         (offsettable_addr_operand): Delete.
28538         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
28539         from and stores to GPRs.
28540
28541 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
28542
28543         * alpha.c (alpha_expand_block_move): Use get_insns rather than
28544         gen_sequence as argument to emit_no_conflict_block.
28545
28546 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28547
28548         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
28549         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
28550         *fixinc/fixincl.x: regen
28551         *fixinc/inclhack.sh: regen
28552
28553 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
28554
28555         * added support for -mpcrel (PC relative addressing for m68k)
28556         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
28557         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
28558         * m68k.c (print_operand_address): Handle 32-bit PIC case.
28559         (comments for general_src_operand): Add some explanation
28560         about EXTRA_CONSTRAINTS.
28561         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
28562         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
28563         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
28564         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
28565         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
28566         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
28567         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
28568         if not already set.
28569         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
28570         * m68k.h (TARGET_PCREL): New target flag.
28571         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
28572         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
28573         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
28574         contains a SYMBOL_REF.  Relax this constraint during reload, since
28575         we want to use the predicates, not reload's built-in concept of a
28576         valid memory address, to control what insns need reloading.
28577         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
28578         operands (essentially 'g', 'm', and 's' under normal circumstances).
28579         * m68k.c (print_operand): Cause printing of pc-relative addresses
28580         to include pc register.
28581         (print_operand_address): Ditto.
28582         (general_src_operand): Accept operands that are not only
28583         general_operands, but are also valid when used as a pc-relative
28584         source.
28585         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
28586         (memory_src_operand): Similar, for memory_operands.
28587         (pcrel_address): New predicate to accept the special case of a
28588         pc-relative address.
28589         * m68k.md (many patterns): Rewrite common SImode, HImode, and
28590         QImode insns to accept *_src_operand instead of *_operand where
28591         pc-relative operands can fit.  For example, a pc-relative operand
28592         can be used as a memory source operand for addsi3, but not as a
28593         memory destination.
28594         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
28595
28596 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
28597
28598         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
28599         .thumb_set pseudo op to mark aliases of thumb functions.
28600
28601 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
28602
28603         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
28604         preference to ASM_OUTPUT_DEF, if it is defined.
28605
28606         * tm.texi: Document new, optional target macro
28607         ASM_OUTPUT_DEF_FROM_DECLS.
28608
28609 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28610
28611         * fixincludes: ISCNTL patch
28612         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
28613         (dgux_int_varargs): new for DG/UX
28614         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
28615
28616 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
28617
28618         * invoke.texi (ia32 options): Fix typo.
28619
28620 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28621
28622         * loop.c (strength_reduce): When doing biv->giv conversion, update
28623         reg note of NEXT->insn.
28624
28625 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
28626
28627         * loop.c (move_movables): Note issues with replacing REGs with
28628         SUBREGs.
28629         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
28630
28631 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
28632
28633         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
28634
28635         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
28636         the reference to `mcount' was not correct for the ELF on FreeBSD.
28637
28638 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28639
28640         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
28641         reg_biv_class.
28642
28643         (recombine_givs): Set ix field after sorting.
28644
28645 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
28646
28647         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
28648         to safe to extract a subword out of a REG.
28649
28650 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28651
28652         * sh.md (mulsi3): Don't add a no-op move at the end.
28653
28654 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28655
28656         * cse.c (cse_insn): Don't put hard register source into tables for
28657         the last insn of a libcall.
28658
28659 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28660
28661         * loop.c (strength_reduce): Insert sets of derived givs at every
28662         biv increment, even if it's the only one.
28663
28664 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
28665
28666         * dwarfout.c (add_incomplete_type): New fn.
28667         (output_type): Call it.
28668         (retry_incomplete_types): New fn.
28669         (dwarfout_finish): Call it.
28670
28671         From Eric Raskin <ehr@listworks.com>:
28672         (output_type): Output types for bases.
28673
28674 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
28675
28676         * mips.c (mips_output_conditional_branch): Add `break'
28677         between `default' label and `close braces'.
28678
28679 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
28680
28681         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
28682         specifications and make it realistic.
28683         (LIB_SPEC): Likewise.
28684
28685 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
28686
28687         * config/mips/mips.c (mips_secondary_reload_class): Check for
28688         (PLUS (SP) (REG)) and return appropriate register class.
28689         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
28690         Handle (PLUS (SP) (REG)).
28691         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
28692         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
28693         of emit_insn for tablejump.
28694
28695 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
28696
28697         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
28698         asm_fprintf format string by itself.
28699         (output_function_profiler): Likewise.
28700
28701 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
28702
28703         * combine.c (simplify_logical, case AND): Only call
28704         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
28705         or the constant is positive.
28706
28707 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
28708
28709         * configure.in: Fix typo in rs6000-ibm-aix4 case.
28710         * configure: Regenerate.
28711
28712 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
28713
28714         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
28715         require a sub-version #.
28716         * configure: Rebuilt.
28717
28718 1999-06-14  Robert Lipe  (robertlipe@usa.net)
28719
28720         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
28721
28722 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
28723
28724         * c-typeck.c (process_init_element): Detect excess elements in
28725         char array initializer.
28726
28727 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
28728
28729         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
28730
28731 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
28732
28733         * invoke.texi (Option Summary): Add -fpermissive flag.
28734
28735 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
28736
28737         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
28738         that require PIC code sequences.
28739
28740 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
28741
28742         * configure.in: Add new target: thumb-elf.
28743         * configure: Regenerate.
28744         * config/arm/t-thumb-elf: New file: Makefile fragment for
28745         thumb-elf build.
28746         * config/arm/telf.h: New file: Header file for thumb-elf
28747         build.
28748
28749 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
28750
28751         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
28752         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
28753         initializers is some circumstances.
28754
28755         * fixinc/inclhack.def (endif_label): Add additional selector for
28756         more bogus stuff after #endif statements.
28757         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
28758
28759 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
28760
28761         * i386/cygwin.h (SET_ASM_OP): Define.
28762
28763 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
28764
28765         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
28766
28767 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28768
28769         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
28770         latter.
28771
28772         * sh.md (ic_invalidate_line_i): Remove second alternative.
28773
28774 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28775
28776         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
28777         test for the presence of valid prototypes.  Delete bypass expr.
28778         (ioctl_fix_ctrl): Correct the selection expression.
28779         (no_double_slash): Correct quoting rules
28780         *fixinc/fixincl.x: regen
28781         *fixinc/inclhack.sh: regen
28782
28783 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
28784
28785         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
28786
28787 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
28788
28789         * rs6000.md (movsi_got_internal_mem): Delete.
28790         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
28791         (GOT_TOC_REGNUM): Delete.
28792         (PIC_OFFSET_TABLE_REGNUM): Define.
28793         (FINALIZE_PIC): Disable.
28794         * rs6000.c (rs6000_got_register): New code for fixed pic register.
28795         (rs6000_replace_regno): Delete.
28796         (rs6000_finalize_pic): Likewise.
28797         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
28798
28799 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28800
28801         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
28802         is a note; use <= for the compare; advance P while it is
28803         a NOTE.
28804
28805 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
28806
28807         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
28808         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
28809
28810         * varasm.c (remove_from_pending_weak_list): Verify t->name
28811         is non-NULL before passing it to strcmp.
28812
28813 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28814
28815         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
28816         the typed arguments are not part of a comment
28817         (ioctl_fix_ctrl): Added a purpose comment
28818         *fixinc/fixincl.x: regenerate
28819         *fixinc/inclhack.sh: regenerate
28820
28821 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
28822
28823         * invoke.texi: Add C4x invocation docs.
28824
28825 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
28826
28827         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
28828         Define new macros.
28829         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
28830         TARGET_EXPOSE_LDP.
28831         (c4x_legitimize_reload_address): New function.
28832         * config/c4x/c4x.md: Update docs.
28833
28834 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
28835
28836         * fixincludes: Avoid removing '.'.
28837         * fixinc/fixinc.svr4: Likewise.
28838         * fixinc/fixinc.winnt: Likewise.
28839         * fixinc/inclhack.tpl: Likewise.
28840         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
28841
28842 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
28843
28844         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
28845         pattern.
28846         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
28847
28848 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
28849
28850         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
28851         correctly.
28852
28853 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
28854
28855         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
28856         * configure: Regenerate.
28857
28858 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
28859
28860         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
28861         values.
28862
28863 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
28864
28865         * fixinc/inclhack.def (avoid_bool): Also catch
28866         "typedef [unsigned] int bool".
28867         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
28868
28869         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
28870         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
28871         * configure: Rebuilt.
28872
28873 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
28874
28875         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
28876         such that we can override its definitions if necessary.
28877         (CPP_SPEC): New define.  Support processor specific predefines via
28878         %(cpp_cpu).
28879         (CC1_SPEC): New define.  Support processor specific compiler
28880         options via %(cc1_cpu).
28881         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
28882         -static.
28883
28884 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
28885
28886         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
28887         between sed's -e flag, and the open-quote following it.
28888         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
28889
28890 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
28891                           Jeffrey A Law  (law@cygnus.com)
28892
28893         * varasm.c (assemble_start_function): Remove the function
28894         from the pending weak decls list when we define a function.
28895         (assemble_variable): Similarly for variables.
28896         (weak_finish): Ignore items on the list with a NULL name.
28897         (remove_from_ending_weak_list); New function to "remove" an item
28898         from the pending weak declarations list.
28899
28900 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
28901
28902         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
28903
28904 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
28905
28906         * c-lex.c (GETC): Redefine to call getch.
28907         (UNGETC): Redefine to call put_back.
28908         (putback_buffer): New structure type.
28909         (putback): New static structure.
28910         (getch): New function.
28911         (put_back): New function.
28912         (yylex): Replace unused bytes from bad multibyte character.
28913
28914 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
28915
28916         * cpplib.c (do_define): Cast `alloca' return value.
28917         (do_include, do_undef, do_pragma): Likewise.
28918         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
28919         values.
28920         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
28921         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
28922
28923 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
28924
28925         * sparc.md (abstf2): This should be an expand.
28926         (split after abstf2_notv9): Fix mode.
28927         (abstf2_hq_v9): New pattern.
28928         (abstf2_v9): Only use when no hard quad.
28929         (absdf2_v9): Fix if target is not the same as source.
28930         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
28931         Add correct output constraints.
28932
28933 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
28934
28935         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
28936         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
28937
28938 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
28939
28940         * mips.h (mips_output_conditional_branch): New function.
28941         (mips_adjust_insn_length): Likewise.
28942         (ASSEMBLER_SCRATCH_REGNUM): New macro.
28943         (ADJUST_INSN_LENGTH): Likewise.
28944         * mips.c (print_operand): Add `F' and `W' for floating-point
28945         comparison opcodes.
28946         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
28947         are now in bytes.
28948         (mips_adjust_insn_length): New function.
28949         (mips_output_conditional_branch): New function.
28950         * mips.md (length): Adjust attribute definition to handle
28951         conditional branches.  Change lengths to bytes, rather than
28952         instructions throughout.  Remove length attribute from
28953         instructions whose length is four bytes, and rely on the default
28954         instead.
28955         (dslot): Fix typo in comment.
28956         Reword conditional branch patterns to use
28957         mips_output_conditional_branch.
28958
28959 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
28960
28961         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
28962         (LIB_SPEC): Likewise.
28963         Link with -lprof1_r for -g/-pg.
28964
28965 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
28966
28967         * loop.c (check_dbra_loop): Fix change of Jan 19.
28968
28969 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
28970
28971         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
28972         (STARTFILE_SPEC):  Define, override the svr4.h version.
28973         (ENDFILE_SPEC):  Likewise.
28974
28975 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
28976
28977         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
28978         * fixinc/fixincl.x: Regenerated.
28979         * fixinc/inclhack.sh: Regenerated.
28980
28981 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28982
28983         * sh.c (barrier_align): Don't return early for normal branch/barrier
28984         when optimizing for SH2.
28985
28986 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
28987
28988         * i386/udk.h (LINK_SPEC): Correct linker search path for
28989         system libraries.
28990
28991 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28992
28993         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
28994         (braf_label_ref_operand): Delete.
28995         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
28996         * sh.md (casesi_jump_2): Operand1 is now the inside of a
28997         label_ref, and has no predicate.
28998         The patten has a predicate to guard against invalid substitutions.
28999         (dummy_jump): Delete.
29000         (casesi): Update use of casesi_jump_2.
29001
29002 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
29003
29004         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
29005         *fixinc/fixincl.x: regenerate
29006         *fixinc/inclhack.sh: regenerate
29007
29008 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
29009
29010         * dwarf2out.c (add_incomplete_type): New fn.
29011         (gen_struct_or_union_type_die): Call it.
29012         (retry_incomplete_types): New fn.
29013         (dwarf2out_finish): Call it.
29014
29015 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
29016
29017         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
29018         current block starts with a CODE_LABEL and ends with a CALL and
29019         we can not find all the argument setup instructions for the CALL.
29020
29021 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
29022
29023         Revert this change:
29024         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
29025         something is a candidate for optimize_bit_field_compare.
29026
29027 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
29028
29029         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
29030
29031 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
29032
29033         * alpha.c (override_options): Thinko in last patch.
29034
29035         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
29036         (LIB_SPEC): Recognize -pthread.
29037
29038 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
29039
29040         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
29041         definition in config/arm/coff.h
29042         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
29043
29044 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
29045
29046         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
29047         fixes that need "file=xxx\n" prepended before invocation
29048         (start_fixer - new): starting the fixer process is complex enough
29049         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
29050         (process): uses the new routine; omit usage of putenv()
29051         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
29052         * fixinc/fixincl.x: regenerate
29053
29054 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
29055
29056         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
29057         and version #s (1.1 -> 2.96) as needed.
29058         * README.g77: Kill way out of date file in the toplevel directory.
29059
29060 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
29061
29062         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
29063         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
29064         * configure: Rebuilt.
29065         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
29066         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
29067         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
29068         (SWITCH_TAKES_ARG): Likewise.
29069         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
29070         * config/t-freebsd: Moved from config/i386/ so it can used for all
29071         FreeBSD targets.
29072
29073 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
29074
29075         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
29076
29077 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
29078
29079         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
29080         * configure: Rebuilt.
29081
29082 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
29083
29084         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
29085         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
29086         * rs6000/rs6000.c (rs6000_file_start): Use putc.
29087         (rs6000_output_load_toc_table): Same.
29088         (output_prolog, output_mi_thunk): Same.
29089         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
29090         (ASM_GLOBALIZE_LABEL): Use putc.
29091
29092 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
29093
29094         * alpha.md (reload_*_help): New patterns and splitters.
29095         (reload_*): Use them.
29096         (mov[qh]i): Likewise.
29097
29098 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
29099
29100         * cccp.c (handle_directive): Handle backslash-newlines in quoted
29101         strings correctly.
29102
29103 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
29104
29105         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
29106
29107 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
29108
29109         * flow.c (mark_regs_live_at_end, insn_dead_p,
29110         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
29111         and HARD_FRAME_POINTER_REGNUM special treatment if reload
29112         hasn't run or the frame pointer is needed.
29113         * haifa-sched.c (attach_deaths): Likewise.
29114         * sched.c (attach_deaths): Likewise.
29115
29116 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
29117
29118         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
29119         calculate_can_reach_end returns nonzero.
29120
29121         * configure.in (native gas tests): Search for an assembler in the
29122         same manner that the installed compiler will.
29123         * configure: Rebuilt.
29124         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
29125
29126         * alias.c (find_base_term): Improve handling of addresses
29127         constructed from binary operations.
29128
29129 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
29130
29131         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
29132
29133 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
29134
29135         * function.h (cleanup_label, frame_offset): Declare.
29136         (tail_recursion_label, tail_recursion_reentry): Likewise.
29137         (arg_pointer_save_area, rtl_expr_chain): Likewise.
29138         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
29139         (tail_recursion_label, tail_recursion_reentry): Likewise.
29140         (arg_pointer_save_area, rtl_expr_chain): Likewise.
29141
29142 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
29143
29144         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
29145         defined.
29146         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
29147         (MAX_OFILE_ALIGNMENT): Define.
29148
29149 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
29150
29151         * fixincl.c: Replace local include scheme with #includes of
29152         gansidecl.h and system.h.
29153         * procopen.c:  Likewise.
29154         * server.c:  Likewise.
29155
29156 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
29157
29158         * i386/t-dgux (EXTRA_PARTS): Add crti.o
29159         (crti.o): Add build rule and dependencies.
29160         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
29161
29162 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
29163
29164         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
29165         (LIB_LINUX_SPEC): Likewise.
29166         (LIB_LINUX_SPEC): Add support for -pthread
29167         (CPP_OS_LINUX_SPEC): Likewise.
29168         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
29169         specified.
29170
29171 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
29172
29173         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
29174         conditional move.
29175         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
29176         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
29177         for IEEE math and CC_FCOMI.
29178         (put_jump_code): No IEEE if CC_FCOMI is set.
29179
29180 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
29181
29182         * fold-const.c (fold_truthop): Make the field reference unsigned
29183         when converting a single bit compare.
29184
29185 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
29186
29187         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
29188
29189 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
29190
29191         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
29192         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
29193         version did.
29194
29195         * reload.c (push_reload): Do not call remove_address_replacements
29196         when presented with identical optional reloads.
29197
29198 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
29199
29200         * alpha.h (MASK_FIX, TARGET_FIX): New.
29201         (MASK_*): Reorganize constants.
29202         (CPP_AM_FIX_SPEC): New.
29203         (TARGET_SWITCHES): Add FIX.
29204         (EXTRA_SPECS): Likewise.
29205         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
29206         (SECONDARY_MEMORY_NEEDED): Likewise.
29207         (REGISTER_MOVE_COST): Likewise.
29208         * alpha.c (override_options): Add FIX support.  Always use
29209         ALPHA_TP_PROG for ev6.
29210         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
29211         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
29212         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
29213
29214 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
29215
29216         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
29217         something is a candidate for optimize_bit_field_compare.
29218
29219 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
29220
29221         * gcc.texi (Passes): Document branch-shortening.
29222         * invoke.texi (Debugging Options): Document the fact that `-dp'
29223         outputs length information for instructions.
29224
29225 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
29226
29227         * flow.c: Revert previous delta.
29228
29229 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
29230
29231         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
29232         FRAME_POINTER_REGNUM.
29233         (mark_set_1): Ditto.
29234         (mark_used_regs): Ditto.
29235
29236 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
29237
29238         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
29239         (GOT_PCREL): New macro.  Define to 1 if not already defined.
29240         * arm/elf.h (GOT_PCREL): Define to 0.
29241         * arm.c (arm_finalize_pic): Take into account the setting of
29242         GOT_PCREL.
29243
29244 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
29245
29246         * output.h (STRIP_NAME_ENCODING): Provide default definition.
29247         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
29248
29249         * flow.c (mark_set_1): Do not record BLKmode stores as dead
29250         store elimination candidates.
29251
29252 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
29253
29254         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
29255         TARGET_GAS.
29256
29257 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
29258
29259         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
29260         Add use of x-aix41-gld.
29261
29262 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
29263
29264         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
29265         (ASM_OUTPUT_DESTRUCTOR): Define.
29266
29267 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
29268
29269         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
29270         last CODE_LABEL in a loop if we have previously passed a jump
29271         to the top of the loop.
29272
29273 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
29274
29275         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
29276         applying Philip's patch.
29277
29278 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
29279
29280         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
29281         are not VAR_DECLs.
29282
29283 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
29284
29285         * loop.c (strength_reduce): Grow reg_single_usage as needed.
29286
29287 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
29288
29289         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
29290         Also remove a useless comment.
29291
29292 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
29293
29294         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
29295
29296 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
29297
29298         * collect2.c (main): Only generate import or export file and add
29299         to link arguments if non-empty.  Use xmalloc not alloca.
29300         (write_{export,import}_file): Delete.
29301         (write_aix_file): New function.
29302         (locatelib): Use xmalloc not malloc.
29303         (GCC_OK_SYMBOL): Do not check type if aix64.
29304
29305 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
29306
29307         Based on patch by Scott Bambrough and Pat Beirne:
29308         * config/arm/arm.c (making_const_table): New variable.
29309         * config/arm/arm.h (making_const_table): Declare.
29310         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
29311         appropriate.
29312         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
29313         Keep track of when we are building the constant table.
29314
29315 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
29316
29317         * config/arm/arm.c (arm_override_options): Fix erroneous warning
29318         message.
29319
29320 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
29321
29322         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
29323         defined.
29324
29325 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
29326
29327         * tm.texi (FUNCTION_ARG): Correct description of a stack element
29328         in a PARALLEL.
29329
29330 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
29331
29332         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
29333
29334 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
29335
29336         * rs6000.c (output_mi_thunk): Enable full support again.
29337
29338 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
29339
29340         * sh.h (BRANCH_COST): Define.
29341
29342 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
29343
29344         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
29345
29346 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
29347
29348         * function.c (assign_stack_local): Align stack slot propertly.
29349         (assign_outer_stack_local): Likewise.
29350
29351 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
29352
29353         * expr.h (lang_expand_constant): Declare.
29354         * toplev.c (lang_expand_constant): Define it.
29355         * varasm.c (output_constant): Use it.
29356
29357 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29358
29359         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
29360         Change function definitions to K&R style.
29361
29362 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
29363
29364         * fixinc/fixincl.c: We must not ignore SIGCLD now.
29365
29366 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
29367
29368         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
29369         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
29370         (several places): omit static initialization
29371         (process): use single fd, since only the read fd is used
29372         * fixinc/gnu-regex.c: define 'const' away, if not supported
29373         * fixinc/procopen.c(several places): omit static initialization
29374         * fixinc/server.c: define 'volitile' away, if not supported
29375
29376 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
29377
29378         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
29379         asm_fprintf and %L to generate the label name.
29380         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
29381         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
29382
29383 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
29384
29385         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
29386         insn for a conditional jump can not be found.
29387
29388 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
29389
29390         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
29391         on variables in specific sections other than .sbss and .sdata.
29392
29393 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
29394
29395         * stmt.c (expand_return): Call start_cleanup_deferral and
29396         end_cleanup_deferral around conditional code.
29397
29398 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
29399
29400         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
29401         filename lists.  Utilizes new "krstr" AutoGen function.
29402         * fixinc/fixincl.x: Rebuilt.
29403
29404 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
29405
29406         * i386.c (output_float_compare): Avoid GNU-C extensions.
29407
29408 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
29409
29410         * version.c: Bump to distinguish mainline tree from the
29411         gcc-2.95 branch.
29412
29413 See ChangeLog.1 for earlier changes.